From 883f8c91176950c754a3513219e36d519bf629f6 Mon Sep 17 00:00:00 2001 From: Mohd Husaam Mehdi <husaam.mehdi@iopsys.eu> Date: Tue, 4 Mar 2025 15:05:45 +0530 Subject: [PATCH] qosmngr: remove dhcp_type from UCI doc and fix a typo for dst_mac --- docs/api/uci/qos.md | 927 ++++++++++++++++++++++++++++++++++++++++++- schemas/uci/qos.json | 10 +- 2 files changed, 928 insertions(+), 9 deletions(-) diff --git a/docs/api/uci/qos.md b/docs/api/uci/qos.md index eda5448..c26dc19 100644 --- a/docs/api/uci/qos.md +++ b/docs/api/uci/qos.md @@ -1 +1,926 @@ -<tbody><tr><td colspan="2"><div style="font-weight: bold">qos</div><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">section</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td><td><div style="font-weight: bold; font-size: 14px">multi</div></td><td><div style="font-weight: bold; font-size: 14px">options</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">classify</div></td><td class="td_row_even"><div class="td_row_even">QoS classification settings</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">boolean</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Enables or disables this classifier.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">src_vendor_class_id</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Used to identify one or more LAN devices, value of the DHCPv4 Vendor Class Identifier (Option 60) as defined in [RFC2132].</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dest_vendor_class_id</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">null</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Used to identify one or more LAN devices, value of the DHCPv4 Vendor Class Identifier (Option 60) as defined in [RFC2132].</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">src_user_class_id</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP User Class Identifier. The DHCP User Class Identifier is Option 77 (as defined in [RFC3004]) for DHCPv4, or is Option 15 (as defined in [RFC3315]) for DHCPv6.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dest_user_class_id</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">null</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP User Class Identifier. The DHCP User Class Identifier is Option 77 (as defined in [RFC3004]) for DHCPv4, or is Option 15 (as defined in [RFC3315]) for DHCPv6.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">src_client_id</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP Client Identifier. The DHCP Client Identifier is Option 61 (as defined in [RFC2132]) for DHCPv4, or is Option 1 (as defined in [RFC3315]) for DHCPv6.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dest_client_id</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">null</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP Client Identifier. The DHCP Client Identifier is Option 61 (as defined in [RFC2132]) for DHCPv4, or is Option 1 (as defined in [RFC3315]) for DHCPv6.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">vid_check</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classification criteria, Current Ethernet VLAN ID as defined in 802.1Q.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">traffic_class</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classification action, Identifier of the traffic class associated with traffic that falls in this classification.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">src_port</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Source port number.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dest_port</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Destination port number.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">src_port_range</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Indicates that it is to include the port range from SourcePort through SourcePortRangeMax(inclusive).</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dst_port_range</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Indicates that it is to include the port range from DestPort through DestPortRangeMax(inclusive).</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">ifname</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classification criteria, Linux interface name of the port associated with this shaper entry.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">policer</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classification criteria, Indicates the Policer entry for traffic that falls in this classification.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">ethertype</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Ethertype as indicated in either the Ethernet or SNAP Type header.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dhcp_type</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, The DHCP protocol associated with the Classification instance.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">proto</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Protocol number.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">src_ip</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">null</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Source IP address.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dest_ip</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Destination IP address.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">ip_len_min</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">null</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Minimum IP Packet Length (including header) in bytes.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">ip_len_max</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Maximum IP Packet Length (including header) in bytes.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">pcp_check</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, PCP check.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">dscp_filter</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classification criteria, DSCP value in the packet.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dscp_mark</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Classification action, DSCP to mark traffic with that falls into this classification entry.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">src_mac</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Classificaton criteria, Source MAC address.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">dest_mac</div></td><td class="td_row_even"><div class="td_row_even">string</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">null</div></td><td class="td_row_even"><div class="td_row_even">Classificaton criteria, Destination MAC address.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">shaper</div></td><td class="td_row_odd"><div class="td_row_odd">Used to shape the egress traffic associated with the interface specified in ifname.</div></td><td class="td_row_odd"><div class="td_row_odd">true</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">boolean</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><div class="td_row_even">Enables or disables this shaper.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">burst_size</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Burst size in bytes.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">rate</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Rate to shape the associated interface connection's egress traffic to.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">ifname</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Linux interface name of the port associated with this shaper entry.</div></td></tr></tbody></table></td></tr><tr><td class="td_row_even"><div class="td_row_even">policer</div></td><td class="td_row_even"><div class="td_row_even">QoS policy settings</div></td><td class="td_row_even"><div class="td_row_even">true</div></td><td class="td_row_even"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">boolean</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><div class="td_row_even">Enables or disables this policer.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">committed_rate</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Committed rate allowed for this policer in bits per second.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">committed_burst_size</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Committed Burstsize in bytes.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">excess_burst_size</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Excess Burstsize in bytes.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">peak_rate</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Peak rate allowed for this Meter in bits per second.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">peak_burst_size</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">0</div></td><td class="td_row_odd"><div class="td_row_odd">Peak Burstsize in bytes.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">meter_type</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">The value MUST be a member of the list reported by the PossibleMeterTypes parameter.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">name</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">cfg2b6c73</div></td><td class="td_row_odd"><div class="td_row_odd">Value is used to identify the policer instance, and associate it with a classification entry</div></td></tr></tbody></table></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">queue</div></td><td class="td_row_odd"><div class="td_row_odd">QoS queue is associated with a port.</div></td><td class="td_row_odd"><div class="td_row_odd">true</div></td><td class="td_row_odd"><table style="width:100%"><tbody><tr><td><div style="font-weight: bold; font-size: 14px">name</div></td><td><div style="font-weight: bold; font-size: 14px">type</div></td><td><div style="font-weight: bold; font-size: 14px">required</div></td><td><div style="font-weight: bold; font-size: 14px">default</div></td><td><div style="font-weight: bold; font-size: 14px">description</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">enable</div></td><td class="td_row_even"><div class="td_row_even">boolean</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">false</div></td><td class="td_row_even"><div class="td_row_even">Enables or disables this queue.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">ifname</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Specifies the port with which the specified queue exist.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">precedence</div></td><td class="td_row_even"><div class="td_row_even">varies</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Precedence of this queue relative to others. Lower numbers imply greater precedence.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">scheduling</div></td><td class="td_row_odd"><div class="td_row_odd">string</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">null</div></td><td class="td_row_odd"><div class="td_row_odd">Scheduling algorithm used for the queue.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">rate</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">0</div></td><td class="td_row_even"><div class="td_row_even">Rate to shape this queue's traffic to.</div></td></tr><tr><td class="td_row_odd"><div class="td_row_odd">burst_size</div></td><td class="td_row_odd"><div class="td_row_odd">integer</div></td><td class="td_row_odd"><div class="td_row_odd">no</div></td><td class="td_row_odd"><div class="td_row_odd">-1</div></td><td class="td_row_odd"><div class="td_row_odd">Port shaping burst size in bytes. A value of -1 disables the threshold.</div></td></tr><tr><td class="td_row_even"><div class="td_row_even">weight</div></td><td class="td_row_even"><div class="td_row_even">integer</div></td><td class="td_row_even"><div class="td_row_even">no</div></td><td class="td_row_even"><div class="td_row_even">1</div></td><td class="td_row_even"><div class="td_row_even">Specified the weight of the queue in case the WRR algorithm is used.</div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody> \ No newline at end of file +<tbody> + <tr> + <td colspan="2"> + <div style="font-weight: bold">qos</div> + <table style="width:100%"> + <tbody> + <tr> + <td> + <div style="font-weight: bold; font-size: 14px">section</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">description</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">multi</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">options</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">classify</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">QoS classification settings</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">true</div> + </td> + <td class="td_row_even"> + <table style="width:100%"> + <tbody> + <tr> + <td> + <div style="font-weight: bold; font-size: 14px">name</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">type</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">required</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">default</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">description</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">enable</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">boolean</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">false</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Enables or disables this classifier.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">src_vendor_class_id</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Used to identify one or more LAN devices, value of the DHCPv4 Vendor Class Identifier (Option 60) as defined in [RFC2132].</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dest_vendor_class_id</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">null</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Used to identify one or more LAN devices, value of the DHCPv4 Vendor Class Identifier (Option 60) as defined in [RFC2132].</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">src_user_class_id</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP User Class Identifier. The DHCP User Class Identifier is Option 77 (as defined in [RFC3004]) for DHCPv4, or is Option 15 (as defined in [RFC3315]) for DHCPv6.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dest_user_class_id</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">null</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP User Class Identifier. The DHCP User Class Identifier is Option 77 (as defined in [RFC3004]) for DHCPv4, or is Option 15 (as defined in [RFC3315]) for DHCPv6.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">src_client_id</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP Client Identifier. The DHCP Client Identifier is Option 61 (as defined in [RFC2132]) for DHCPv4, or is Option 1 (as defined in [RFC3315]) for DHCPv6.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dest_client_id</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">null</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, string used to identify one or more LAN devices, value of the DHCP Client Identifier. The DHCP Client Identifier is Option 61 (as defined in [RFC2132]) for DHCPv4, or is Option 1 (as defined in [RFC3315]) for DHCPv6.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">vid_check</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classification criteria, Current Ethernet VLAN ID as defined in 802.1Q.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">traffic_class</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classification action, Identifier of the traffic class associated with traffic that falls in this classification.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">src_port</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Source port number.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dest_port</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Destination port number.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">src_port_range</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Indicates that it is to include the port range from SourcePort through SourcePortRangeMax(inclusive).</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dst_port_range</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Indicates that it is to include the port range from DestPort through DestPortRangeMax(inclusive).</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">ifname</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classification criteria, Linux interface name of the port associated with this shaper entry.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">policer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classification criteria, Indicates the Policer entry for traffic that falls in this classification.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">ethertype</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Ethertype as indicated in either the Ethernet or SNAP Type header.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">proto</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Protocol number.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">src_ip</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Source IP address.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dest_ip</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">null</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Destination IP address.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">ip_len_min</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Minimum IP Packet Length (including header) in bytes.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">ip_len_max</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">null</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Maximum IP Packet Length (including header) in bytes.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">pcp_check</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, PCP check.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">dscp_filter</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classification criteria, DSCP value in the packet.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">dscp_mark</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classification action, DSCP to mark traffic with that falls into this classification entry.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">src_mac</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">string</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Classificaton criteria, Source MAC address.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">dst_mac</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Classificaton criteria, Destination MAC address.</div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">shaper</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Used to shape the egress traffic associated with the interface specified in ifname.</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">true</div> + </td> + <td class="td_row_odd"> + <table style="width:100%"> + <tbody> + <tr> + <td> + <div style="font-weight: bold; font-size: 14px">name</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">type</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">required</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">default</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">description</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">enable</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">boolean</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">false</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Enables or disables this shaper.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">burst_size</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Burst size in bytes.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">rate</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Rate to shape the associated interface connection's egress traffic to.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">ifname</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Linux interface name of the port associated with this shaper entry.</div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">policer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">QoS policy settings</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">true</div> + </td> + <td class="td_row_even"> + <table style="width:100%"> + <tbody> + <tr> + <td> + <div style="font-weight: bold; font-size: 14px">name</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">type</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">required</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">default</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">description</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">enable</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">boolean</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">false</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Enables or disables this policer.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">committed_rate</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Committed rate allowed for this policer in bits per second.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">committed_burst_size</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Committed Burstsize in bytes.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">excess_burst_size</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Excess Burstsize in bytes.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">peak_rate</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Peak rate allowed for this Meter in bits per second.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">peak_burst_size</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">0</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Peak Burstsize in bytes.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">meter_type</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">The value MUST be a member of the list reported by the PossibleMeterTypes parameter.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">name</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Value is used to identify the policer instance, and associate it with a classification entry</div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">queue</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">QoS queue is associated with a port.</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">true</div> + </td> + <td class="td_row_odd"> + <table style="width:100%"> + <tbody> + <tr> + <td> + <div style="font-weight: bold; font-size: 14px">name</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">type</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">required</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">default</div> + </td> + <td> + <div style="font-weight: bold; font-size: 14px">description</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">enable</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">boolean</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">false</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Enables or disables this queue.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">ifname</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Specifies the port with which the specified queue exist.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">precedence</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">varies</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Precedence of this queue relative to others. Lower numbers imply greater precedence.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">scheduling</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">string</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">null</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Scheduling algorithm used for the queue.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">rate</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">0</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Rate to shape this queue's traffic to.</div> + </td> + </tr> + <tr> + <td class="td_row_odd"> + <div class="td_row_odd">burst_size</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">integer</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">no</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">-1</div> + </td> + <td class="td_row_odd"> + <div class="td_row_odd">Port shaping burst size in bytes. A value of -1 disables the threshold.</div> + </td> + </tr> + <tr> + <td class="td_row_even"> + <div class="td_row_even">weight</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">integer</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">no</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">1</div> + </td> + <td class="td_row_even"> + <div class="td_row_even">Specified the weight of the queue in case the WRR algorithm is used.</div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + </tr> +</tbody> \ No newline at end of file diff --git a/schemas/uci/qos.json b/schemas/uci/qos.json index 6bf1a7a..3a8f6da 100644 --- a/schemas/uci/qos.json +++ b/schemas/uci/qos.json @@ -102,12 +102,6 @@ "required": "no", "default": 0, "description": "Classificaton criteria, Ethertype as indicated in either the Ethernet or SNAP Type header." - },{ - "name": "dhcp_type", - "type": "integer", - "required": "no", - "default": 0, - "description": "Classificaton criteria, The DHCP protocol associated with the Classification instance." },{ "name": "proto", "type": "integer", @@ -163,7 +157,7 @@ "default": 0, "description": "Classificaton criteria, Source MAC address." },{ - "name": "dest_mac", + "name": "dst_mac", "type": "string", "required": "no", "default": null, @@ -252,7 +246,7 @@ "name": "name", "type": "string", "required": "no", - "default": "cfg2b6c73", + "default": null, "description": "Value is used to identify the policer instance, and associate it with a classification entry" } ] -- GitLab