队列调度和流量整形管理
本章节介绍队列调度和流量整形管理的配置模型,以及配置的XML报文示例。
数据模型
队列调度和流量整形管理模型文件名为huawei-qos.yang。
节点 |
说明 |
取值范围 |
备注 |
---|---|---|---|
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile/name |
队列调度模板名称。 |
字符串形式,不支持空格,不区分大小写。S2720-EI、S5720I-SI、S5720-LI、S1730S-H、S5735-L、S5735S-L、S5735S-L-M、S5720S-LI、S5720S-SI、S5720-SI、S5735-S、S5735S-S、S5735-S-I、S5730S-EI、S5730-SI、S6720-LI、S6720S-LI、S6720S-SI和S6720-SI的长度范围是1~16。 |
对于S2720-EI、S5720I-SI、S5720-LI、S1730S-H、S5735-L、S5735S-L、S5735S-L-M、S5720S-LI、S5720S-SI、S5720-SI、S5735-S、S5735S-S、S5735-S-I、S5730S-EI、S5730-SI、S6720-LI、S6720S-LI、S6720S-SI和S6720-SI,定义的队列调度模板数量不能超过6个。 |
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile/id |
队列索引。 |
整数形式,取值范围是0~7。 |
配置队列时,必须8个队列同时配置。 |
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile/queue/schedule/schedule-mode |
队列调度模式。 |
枚举类型,取值如下:
|
S5720-HI、S5730-HI、S5731-H-K、S5731-H、S5731-S、S5731S-H、S5731S-S、S5732-H、S5732-H-K、S6720-HI、S6730-H-K、S6730-H、S6730S-H、S6730-S和S6730S-S不支持weight-round-robin-queuing。 |
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile/queue/schedule/weight |
参与WRR或WDRR调度的队列的权值。 |
S5720-EI的取值范围是0~63,其他形态的取值范围是0~100。 |
N/A |
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile/queue/shaping/cir |
队列整形的承诺信息速率。 |
整数形式,不同的接口类型取值范围不同,取值范围如下:
单位为kbit/s。缺省值为接口的最大带宽。 |
N/A |
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile/queue/shaping/cbs |
队列整形的承诺突发尺寸。 |
整数形式,取值范围是4000~4294967295,单位是字节。 |
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/marking/trust |
对报文进行映射的优先级类型。 |
字符串类型,取值如下:
|
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/meter/meter-field/direction |
对接口指定方向上的报文进行限速。 |
枚举类型,取值为inbound,表示入方向。 |
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/meter/meter-field/cir |
接口限速的承诺信息速率。 |
整数形式,单位是kbit/s。不同的接口类型取值范围不同,取值范围如下:
|
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/meter/meter-field/cbs |
接口限速的承诺突发尺寸。 |
整数形式,取值范围是4000~4294967295,单位是字节。 若不指定该节点,meter-field/cbs缺省为meter-field/cir的125倍。 |
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/queues/queue-porfile |
队列调度模板名称。 |
已经存在的队列调度模板名称。 |
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/shaping/cir |
对接口出方向上报文进行流量整形时的承诺信息速率。 |
整数形式,单位是kbit/s。不同的接口类型取值范围不同,取值范围如下:
|
N/A |
/ietf-interfaces:interfaces/interface/huawei-qos:qos/shaping/cbs |
对接口出方向上报文进行流量整形时的承诺突发尺寸。 |
整数形式,取值范围是4000~4294967295,单位是字节。 若不指定该节点,shaping/cbs缺省为shaping/cir的125倍。 |
N/A |
配置队列调度和流量整形示例
本章节主要介绍通过rpc方法对队列调度和流量整形进行配置、修改和删除操作。
操作 |
XPATH |
---|---|
rpc |
/huawei-qos:qos/traffic-queuing/queue-profiles/queue-profile /ietf-interfaces:interfaces/interface/huawei-qos:qos/marking/trust /ietf-interfaces:interfaces/interface/huawei-qos:qos/meter/meter-field /ietf-interfaces:interfaces/interface/huawei-qos:qos/queues/queue-porfile /ietf-interfaces:interfaces/interface/huawei-qos:qos/shaping |
数据需求1
配置队列调度和流量整形。
项目 |
数据 |
描述 |
---|---|---|
队列调度模板名称 |
test |
队列调度模板名称为test。 |
队列索引 |
0、1、2、3、4、5、6、7 |
配置队列0~7的队列调度和流量整形。 |
队列调度模式 |
deficit-round-robin-queuing |
队列调度模式为WDRR。 |
参与指定调度模式的队列的权值 |
10、11、12、13、14、15、16、17 |
队列0~7参与WDRR调度模式的权值分别为10、11、12、13、14、15、16、17。 |
队列整形的承诺信息速率 |
5000 |
队列整形的承诺信息速率为5000kbit/s。 |
队列整形的承诺突发尺寸 |
125000 |
队列整形的承诺突发尺寸为125000字节。 |
对报文进行映射的优先级类型 |
dscp |
对报文按照DSCP优先级进行映射。 |
对接口指定方向上的报文进行限速 |
inbound |
对接口入方向上的报文进行限速。 |
接口限速的承诺信息速率 |
6000 |
接口限速的承诺信息速率为6000kbit/s。 |
接口限速的承诺突发尺寸 |
150000 |
接口限速的承诺突发尺寸为150000字节。 |
对接口出方向上报文进行流量整形时的承诺信息速率 |
8000 |
对接口出方向上报文进行流量整形时的承诺信息速率为8000kbit/s。 |
对接口出方向上报文进行流量整形时的承诺突发尺寸 |
200000 |
对接口出方向上报文进行流量整形时的承诺突发尺寸为200000字节。 |
请求示例
<?xml version='1.0' encoding='UTF-8'?> <rpc message-id="5" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <edit-config> <target> <running/> </target> <config> <qos:qos xmlns:qos="urn:huawei:params:xml:ns:yang:huawei-qos"> <qos:traffic-queuing> <qos:queue-profiles> <qos:queue-profile> <qos:name>test</qos:name> <qos:queue> <qos:id>0</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>10</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>1</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>11</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>2</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>12</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>3</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>13</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>4</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>14</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>5</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>15</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>6</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>16</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>7</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>17</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> </qos:queue-profile> </qos:queue-profiles> </qos:traffic-queuing> </qos:qos> </config> </edit-config> </rpc>
<?xml version='1.0' encoding='UTF-8'?> <rpc message-id="6" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <edit-config> <target> <running/> </target> <config> <if:interfaces xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <if:interface> <if:name>GigabitEthernet0/0/1</if:name> <if:type xmlns:iana-if-type="urn:ietf:params:xml:ns:yang:iana-if-type">iana-if-type:ethernetCsmacd</if:type> <qos:qos xmlns:qos="urn:huawei:params:xml:ns:yang:huawei-qos"> <qos:marking> <qos:trust>dscp</qos:trust> </qos:marking> <qos:meter> <qos:meter-field> <qos:direction>inbound</qos:direction> <qos:cir>6000</qos:cir> <qos:cbs>150000</qos:cbs> </qos:meter-field> </qos:meter> <qos:queues> <qos:queue-porfile>test</qos:queue-porfile> </qos:queues> <qos:shaping> <qos:cir>8000</qos:cir> <qos:cbs>200000</qos:cbs> </qos:shaping> </qos:qos> </if:interface> </if:interfaces> </config> </edit-config> </rpc>
响应示例
配置成功响应示例。
<?xml version='1.0' encoding='UTF-8'?> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5"> <ok/> </rpc-reply>
配置失败响应示例。
<?xml version='1.0' encoding='UTF-8'?> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5"> <rpc-error> <error-type>application</error-type> <error-tag>operation-failed</error-tag> <error-severity>error</error-severity> <error-message>Some node(s) does not supported in protocol layer right now.</error-message> </rpc-error> </rpc-reply>
数据需求2
修改队列1的调度权值。此处仅体现修改的项目数据,其他内容请参考数据需求1。
项目 |
数据 |
描述 |
---|---|---|
队列索引 |
1 |
队列1的WDRR调度权值为50。 |
参与指定调度模式的队列的权值 |
50 |
请求示例
<?xml version='1.0' encoding='UTF-8'?> <rpc message-id="5" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <edit-config> <target> <running/> </target> <config> <qos:qos xmlns:qos="urn:huawei:params:xml:ns:yang:huawei-qos"> <qos:traffic-queuing> <qos:queue-profiles> <qos:queue-profile> <qos:name>test</qos:name> <qos:queue> <qos:id>0</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>10</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>1</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0" xc:operation="replace">50</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>2</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>12</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>3</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>13</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>4</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>14</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>5</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>15</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>6</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>16</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> <qos:queue> <qos:id>7</qos:id> <qos:schedule> <qos:schedule-mode>deficit-round-robin-queuing</qos:schedule-mode> <qos:weight>17</qos:weight> </qos:schedule> <qos:shaping> <qos:cir>5000</qos:cir> <qos:cbs>125000</qos:cbs> </qos:shaping> </qos:queue> </qos:queue-profile> </qos:queue-profiles> </qos:traffic-queuing> </qos:qos> </config> </edit-config> </rpc>
响应示例
配置成功响应示例。
<?xml version='1.0' encoding='UTF-8'?> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="7"> <ok/> </rpc-reply>
配置失败响应示例。
<?xml version='1.0' encoding='UTF-8'?> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="7"> <rpc-error> <error-type>application</error-type> <error-tag>operation-failed</error-tag> <error-severity>error</error-severity> <error-message>parse rpc config error.</error-message> </rpc-error> </rpc-reply>
数据需求3
删除队列调度和流量整形配置,即删除数据需求1中的配置。
请求示例
<?xml version='1.0' encoding='UTF-8'?> <rpc message-id="5" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <edit-config> <target> <running/> </target> <config> <qos:qos xmlns:qos="urn:huawei:params:xml:ns:yang:huawei-qos"> <qos:traffic-queuing> <qos:queue-profiles> <qos:queue-profile xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0" xc:operation="delete"> <qos:name>test</qos:name> <qos:queue> <qos:id>0</qos:id> </qos:queue> <qos:queue> <qos:id>1</qos:id> </qos:queue> <qos:queue> <qos:id>2</qos:id> </qos:queue> <qos:queue> <qos:id>3</qos:id> </qos:queue> <qos:queue> <qos:id>4</qos:id> </qos:queue> <qos:queue> <qos:id>5</qos:id> </qos:queue> <qos:queue> <qos:id>6</qos:id> </qos:queue> <qos:queue> <qos:id>7</qos:id> </qos:queue> </qos:queue-profile> </qos:queue-profiles> </qos:traffic-queuing> </qos:qos> </config> </edit-config> </rpc>
<?xml version='1.0' encoding='UTF-8'?> <rpc message-id="9" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <edit-config> <target> <running/> </target> <config> <if:interfaces xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <if:interface> <if:name>GigabitEthernet0/0/1</if:name> <if:type xmlns:iana-if-type="urn:ietf:params:xml:ns:yang:iana-if-type">iana-if-type:ethernetCsmacd</if:type> <qos:qos xmlns:qos="urn:huawei:params:xml:ns:yang:huawei-qos" xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0" xc:operation="delete"> <qos:marking> <qos:trust>dscp</qos:trust> </qos:marking> <qos:meter> <qos:meter-field> <qos:direction>inbound</qos:direction> <qos:cir>6000</qos:cir> <qos:cbs>150000</qos:cbs> </qos:meter-field> </qos:meter> <qos:queues> <qos:queue-porfile>test</qos:queue-porfile> </qos:queues> <qos:shaping> <qos:cir>8000</qos:cir> <qos:cbs>200000</qos:cbs> </qos:shaping> </qos:qos> </if:interface> </if:interfaces> </config> </edit-config> </rpc>
响应示例
配置成功响应示例。
<?xml version='1.0' encoding='UTF-8'?> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5"> <ok/> </rpc-reply>
配置失败响应示例。
<?xml version='1.0' encoding='UTF-8'?> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5"> <rpc-error> <error-type>application</error-type> <error-tag>operation-failed</error-tag> <error-severity>error</error-severity> <error-message>parse rpc config error.</error-message> </rpc-error> </rpc-reply>