Voice, video, and data services from multiple users are transmitted on a network, and 802.1p priorities of voice, video, and data services are 6, 5, and 2 respectively. Bandwidth needs to be guaranteed for the voice, video, and data services in descending order of priority. Table 1 and Table 2 describe the configuration requirements.
Because the bandwidth is limited, the device needs to differentiate service priorities and shape traffic from different users to provide different bandwidth. Table 3 describes the configuration requirement.
Service Type |
Font Color |
Lower Drop Threshold (%) |
Upper Drop Threshold (%) |
Maximum Drop Probability |
---|---|---|---|---|
Voice |
Green |
80 |
100 |
10 |
Video |
Yellow |
60 |
80 |
20 |
Data |
Red |
40 |
60 |
40 |
Service Type |
CoS Value |
---|---|
Voice |
EF |
Video |
AF3 |
Data |
AF1 |
User |
PIR |
---|---|
Users in VLAN 10 |
8000 kbit/s |
Users in VLAN 20 |
5000 kbit/s |
# Create VLAN 10 on SwitchA, configure GE0/0/1 and GE0/0/2 on SwitchA as access interfaces and add them to VLAN 10, and configure GE0/0/3 as a trunk interface and add it to VLAN 10.
<HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan batch 10 [SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] port link-type access [SwitchA-GigabitEthernet0/0/1] port default vlan 10 [SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] port link-type access [SwitchA-GigabitEthernet0/0/2] port default vlan 10 [SwitchA-GigabitEthernet0/0/2] quit [SwitchA] interface gigabitethernet 0/0/3 [SwitchA-GigabitEthernet0/0/3] port link-type trunk [SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 [SwitchA-GigabitEthernet0/0/3] quit
# Create VLAN 20 on SwitchB, configure GE0/0/1 and GE0/0/2 on SwitchB as access interfaces and add them to VLAN 20, and configure GE0/0/3 as a trunk interface and add it to VLAN 20.
<HUAWEI> system-view [HUAWEI] sysname SwitchB [SwitchB] vlan batch 20 [SwitchB] interface gigabitethernet 0/0/1 [SwitchB-GigabitEthernet0/0/1] port link-type access [SwitchB-GigabitEthernet0/0/1] port default vlan 20 [SwitchB-GigabitEthernet0/0/1] quit [SwitchB] interface gigabitethernet 0/0/2 [SwitchB-GigabitEthernet0/0/2] port link-type access [SwitchB-GigabitEthernet0/0/2] port default vlan 20 [SwitchB-GigabitEthernet0/0/2] quit [SwitchB] interface gigabitethernet 0/0/3 [SwitchB-GigabitEthernet0/0/3] port link-type trunk [SwitchB-GigabitEthernet0/0/3] port trunk allow-pass vlan 20 [SwitchB-GigabitEthernet0/0/3] quit
# Create VLAN 10 and VLAN 20 on SwitchC, configure GE0/0/1 on SwitchC as a trunk interface and add it to VLAN 10 and VLAN 20, and configure GE0/0/2 as a trunk interface and add it to VLAN 10 and VLAN 20.
<HUAWEI> system-view [HUAWEI] sysname SwitchC [SwitchC] vlan batch 10 20 [SwitchC] interface gigabitethernet 0/0/1 [SwitchC-GigabitEthernet0/0/1] port link-type trunk [SwitchC-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SwitchC-GigabitEthernet0/0/1] quit [SwitchC] interface gigabitethernet 0/0/2 [SwitchC-GigabitEthernet0/0/2] port link-type trunk [SwitchC-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SwitchC-GigabitEthernet0/0/2] quit
# Create VLAN 10 and VLAN 20 on the Switch, configure GE0/0/1, GE0/0/2, and GE0/0/3 as trunk interfaces, and add GE0/0/1 to VLAN 10, GE0/0/2 to VLAN 20, and GE0/0/3 to VLAN 10 and VLAN 20.
<HUAWEI> system-view [HUAWEI] sysname Switch [Switch] vlan batch 10 20 [Switch] interface gigabitethernet 0/0/1 [Switch-GigabitEthernet0/0/1] port link-type trunk [Switch-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 [Switch-GigabitEthernet0/0/1] quit [Switch] interface gigabitethernet 0/0/2 [Switch-GigabitEthernet0/0/2] port link-type trunk [Switch-GigabitEthernet0/0/2] port trunk allow-pass vlan 20 [Switch-GigabitEthernet0/0/2] quit [Switch] interface gigabitethernet 0/0/3 [Switch-GigabitEthernet0/0/3] port link-type trunk [Switch-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20 [Switch-GigabitEthernet0/0/3] quit
# Create DiffServ domain ds1, map 802.1p priorities 6, 5, 2 to EF, AF3, and AF1, and color packets green, yellow, and red.
[Switch] diffserv domain ds1 [Switch-dsdomain-ds1] 8021p-inbound 6 phb ef green [Switch-dsdomain-ds1] 8021p-inbound 5 phb af3 yellow [Switch-dsdomain-ds1] 8021p-inbound 2 phb af1 red [Switch-dsdomain-ds1] quit
# Bind the DiffServ domain to GE0/0/1 and GE0/0/2 on the Switch.
[Switch] interface gigabitethernet 0/0/1 [Switch-GigabitEthernet0/0/1] trust upstream ds1 [Switch-GigabitEthernet0/0/1] trust 8021p inner [Switch-GigabitEthernet0/0/1] quit [Switch] interface gigabitethernet 0/0/2 [Switch-GigabitEthernet0/0/2] trust upstream ds1 [Switch-GigabitEthernet0/0/2] trust 8021p inner [Switch-GigabitEthernet0/0/2] quit
# Create flow queue WRED drop profile wred1 on the Switch and set parameters of green, yellow, and red packets in the flow queue WRED drop profile.
[Switch] flow-wred-profile wred1 [Switch-flow-wred-wred1] color green low-limit 80 high-limit 100 discard-percentage 10 [Switch-flow-wred-wred1] color yellow low-limit 60 high-limit 80 discard-percentage 20 [Switch-flow-wred-wred1] color red low-limit 40 high-limit 60 discard-percentage 40 [Switch-flow-wred-wred1] quit
# Configure flow queue profile flow1 on the Switch, bind flow queue profile flow1 to flow queue WRED drop profile wred1, and configure different scheduling parameters.
[Switch] flow-queue-profile flow1 [Switch-flow-queue-flow1] qos queue 5 pq flow-wred-profile wred1 [Switch-flow-queue-flow1] qos queue 3 wfq weight 20 flow-wred-profile wred1 [Switch-flow-queue-flow1] qos queue 1 wfq weight 10 flow-wred-profile wred1 [Switch-flow-queue-flow1] quit
# Configure ACL 4001 and ACL 4002 on the Switch, and configure ACL rules based on VLAN 10 and VLAN 20.
[Switch] acl number 4001 [Switch-acl-L2-4001] rule 1 permit vlan-id 10 [Switch-acl-L2-4001] quit [Switch] acl number 4002 [Switch-acl-L2-4002] rule 1 permit vlan-id 20 [Switch-acl-L2-4002] quit
# Configure subscriber queues based on ACL 4001 and ACL 4002 on the Switch and reference flow queue profile flow1.
[Switch] interface gigabitethernet 0/0/3 [Switch-GigabitEthernet0/0/3] traffic-user-queue outbound acl 4001 pir 8000 flow-queue-profile flow1 [Switch-GigabitEthernet0/0/3] traffic-user-queue outbound acl 4002 pir 5000 flow-queue-profile flow1 [Switch-GigabitEthernet0/0/3] quit [Switch] quit
# Check the configuration of the flow queue WRED drop profile, including the profile name, upper and lower drop thresholds of green, yellow, and red packets, and maximum drop probability.
<Switch> display flow-wred-profile name wred1
Flow-wred-profile[1]: wred1
Queue depth : 1048576
Color Low-limit High-limit Discard-percentage
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Green 80 100 10
Yellow 60 80 20
Red 40 60 40
-----------------------------------------------------------------
# Check the flow queue profile configuration, including the profile name and WFQ weights.
<Switch> display flow-queue-profile name flow1
Flow-queue-profile[1]: flow1
Queue Schedule(Weight) Shaping flow-wred-profile
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 PQ None default
1 WFQ(10) None wred1
2 PQ None default
3 WFQ(20) None wred1
4 PQ None default
5 PQ None wred1
6 PQ None default
7 PQ None default
-----------------------------------------------------------------------
# Check traffic statistics on subscriber queues.
<Switch> display traffic-user-queue statistics interface gigabitethernet 0/0/3 outbound acl 4001 -------------------------------------------------------------------------------- Interface: GigabitEthernet0/0/3 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 0 | packets: pass: 4,127 | drop: 2,798,787,076 | bytes: pass: 610,796 | drop: 414,220,487,248 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 1 | packets: pass: 4,127 | drop: 5,597,436,717 | bytes: pass: 610,796 | drop: 828,420,634,116 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 2 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 3 | packets: pass: 4,127 | drop: 5,597,436,713 | bytes: pass: 610,796 | drop: 828,420,633,524 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 4 | packets: pass: 4,127 | drop: 2,798,716,293 | bytes: pass: 610,796 | drop: 414,210,011,364 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 5 | packets: pass: 4,127 | drop: 2,798,716,294 | bytes: pass: 610,796 | drop: 414,210,011,512 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 6 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 7 | packets: pass: 1,119,509,460 | drop: 1,679,210,961 | bytes: pass: 165,687,400,080 | drop: 248,523,222,228 --------------------------------------------------------------------------------
<Switch> display traffic-user-queue statistics interface gigabitethernet 0/0/3 outbound acl 4002 -------------------------------------------------------------------------------- Interface: GigabitEthernet0/0/3 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 0 | packets: pass: 4,125 | drop: 5,218,026 | bytes: pass: 610,500 | drop: 772,267,848 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 1 | packets: pass: 4,125 | drop: 10,440,178 | bytes: pass: 610,500 | drop: 1,545,146,344 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 2 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 3 | packets: pass: 4,125 | drop: 10,440,178 | bytes: pass: 610,500 | drop: 1,545,146,344 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 4 | packets: pass: 4,125 | drop: 5,218,027 | bytes: pass: 610,500 | drop: 772,267,996 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 5 | packets: pass: 4,125 | drop: 5,218,027 | bytes: pass: 610,500 | drop: 772,267,996 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 6 | packets: pass: 0 | drop: 0 | bytes: pass: 0 | drop: 0 -------------------------------------------------------------------------------- Queue ID | Statistics information -------------------------------------------------------------------------------- 7 | packets: pass: 2,092,988 | drop: 3,129,165 | bytes: pass: 309,762,224 | drop: 463,116,420 --------------------------------------------------------------------------------
SwitchA configuration file
# sysname SwitchA # vlan batch 10 # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 10 # return
SwitchB configuration file
# sysname SwitchB # vlan batch 20 # interface GigabitEthernet0/0/1 port link-type access port default vlan 20 # interface GigabitEthernet0/0/2 port link-type access port default vlan 20 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 20 # return
SwitchC configuration file
# sysname SwitchC # vlan batch 10 20 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 # return
Switch configuration file
# sysname Switch # vlan batch 10 20 # diffserv domain ds1 8021p-inbound 2 phb af1 red 8021p-inbound 5 phb af3 yellow 8021p-inbound 6 phb ef green # acl number 4001 rule 1 permit vlan-id 10 acl number 4002 rule 1 permit vlan-id 20 # flow-wred-profile wred1 color green low-limit 80 high-limit 100 discard-percentage 10 color yellow low-limit 60 high-limit 80 discard-percentage 20 color red low-limit 40 high-limit 60 discard-percentage 40 # flow-queue-profile flow1 qos queue 1 wfq weight 10 flow-wred-profile wred1 qos queue 3 wfq weight 20 flow-wred-profile wred1 qos queue 5 flow-wred-profile wred1 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 trust upstream ds1 trust 8021p inner # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 20 trust upstream ds1 trust 8021p inner # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 10 20 traffic-user-queue outbound acl 4001 pir 8000 flow-queue-profile flow1 traffic-user-queue outbound acl 4002 pir 5000 flow-queue-profile flow1 # return