EPON 测试
IEEE 802.1P
简介
IEEE 802.1P 是[IEEE 802.1Q](https://baike.baidu.com/item/IEEE 802.1Q)(VLAN 标签技术)标准的扩展协议,两者共同运作,使第二层网上交换器能够提供流量优先级和动态多播 过滤服务。
[IEEE 802.1Q](https://baike.baidu.com/item/IEEE 802.1Q) 标准定义了以太网 MAC 数据帧添加的标签。VLAN 标签有两部分:VLAN ID(12位)和 PCP(Priority Code Point)(3 比特)。IEEE 802.1Q VLAN 标准中没有定义和使用 PCP,而 802.1P 中则定义了 PCP。
PCP 定义了从 0 至 7 的优先值,可以为第二层服务质量(QoS)或服务类(CoS)区分流量。此外,IEEE 802.1P 标准也提供了多播 流量过滤功能,以确保该流量不超出第二层交换网上范围。
优先级
可用的服务档次有八个,透过加到 IEEE802.1Q 数据帧表头 3 比特的 PCP 字段表达,IEEE 作了大量建议。
P性价比 | 优先级 | 缩写 | 流量类型 |
---|---|---|---|
1 | 0(最低) | BK | 后台(Background) |
0 | 1(默认) | BE | 尽力而为(Best Effort) |
2 | 2 | EE | 极大努力(Excellent effort) |
3 | 3 | CA | 关键应用程序 |
4 | 4 | VI | 视频,< 100 ms延迟和抖动 |
5 | 5 | VO | 音频,< 10 ms延迟和抖动 |
6 | 6 | IC | 网间控制 |
7 | 7(最高) | NC | 网络控制 |
它是位于二层带标签的以太网帧的CoS字段,和VLAN ID在一起使用,在字节中的位置如下:
P2 P1 P0 CU V11 V10 V9 V8 V7 V6 V5 V4 V3 V2 V2 V1 V0
其中:
IEEE802.1p优先级 :3bit(P2-P0)
未用(CU):1bit
VLAN ID :12bit(V11-V0)
IEEE802.1p优先级值有8个(0-7),0优先级最低,7优先级最高。报文分为三种情况:带优先级和VLAN ID的标签报文,其优先级值是自身带的值;只带优先级的标签报文,此时VLAN ID为0,其优先级值是自身带的值;未带标签的报文,一般默认的优先级值为0,也可以进行更改指定新的优先级。
Spirent TestCenter
华为 OLT
进入配置模式
MA5800-X17>enable
MA5800-X17#config
MA5800-X17(config)#
查看所有模板信息
MA5800-X17(config)#display dba-profile all
{ <cr>|detail<K>||<K> }:
Command:
display dba-profile all
----------------------------------------------------------------------------
Profile-ID type Bandwidth Fix Assure Max Bind
compensation (kbps) (kbps) (kbps) times
----------------------------------------------------------------------------
0 3 No 0 8192 20480 4
1 1 No 5120 0 0 130
2 2 No 0 5120 0 1
3 1 No 102400 0 0 1
4 2 No 0 102400 0 4
5 3 No 0 81920 102400 4
6 4 No 0 0 204800 1
7 5 No 40960 40960 102400 1
8 4 No 0 0 1024000 7
9 4 No 0 0 899968 4
10 4 No 0 0 1000000 91
11 4 No 0 0 1249984 0
12 4 No 0 0 102400 17
13 4 No 0 0 1000000 11
14 1 No 10240 0 0 0
15 4 No 0 0 512000 2
16 4 No 0 0 49984 5
17 1 No 1000000 0 0 1
18 4 No 0 0 1024000 15
19 4 No 0 0 204800 7
20 3 No 0 59968 80000 2
21 1 No 274944 0 0 1
22 4 No 0 0 36864 21
23 1 No 576 0 0 2
24 1 No 40000 0 0 0
25 2 No 0 9984 0 1
26 4 No 0 0 99968 2
27 1 No 899968 0 0 1
28 4 No 0 0 2400000 0
29 1 No 29952 0 0 0
30 4 No 0 0 10000000 0
31 4 No 0 0 512 1
32 4 No 0 0 49984 0
33 1 No 1200000 0 0 0
36 3 No 0 8192 1024000 1
37 4 No 0 0 2499968 0
38 1 No 1024 0 0 1
100 4 No 0 0 2299968 1
101 1 No 10048 0 0 1
102 2 No 0 99968 0 1
103 3 No 0 80000 99968 1
104 4 No 0 0 200000 3
105 5 No 40000 40000 99968 2
106 4 No 0 0 1000000 3
107 4 No 0 0 9984 1
108 4 No 0 0 35968 0
150 4 No 0 0 1000000 1
199 4 No 0 0 102400 2
200 1 No 4992 0 0 8
201 4 No 0 0 1024 1
202 4 No 0 0 2048 1
203 3 No 0 11264 102400 4
204 4 No 0 0 992000 4
205 4 No 0 0 5120 1
210 4 No 0 0 10240 0
222 4 No 0 0 1000000 4
333 4 No 0 0 1024000 24
410 4 No 0 0 1000000 2
509 5 No 960 4992 99968 3
510 4 No 0 0 1200000 16
513 4 No 0 0 1024000 1
514 4 No 0 0 2239488 1
515 4 No 0 0 8957952 1
----------------------------------------------------------------------------
查看流分类信息
方法一:
MA5800-X17(config)#display classification profile-id 150
{ <cr>||<K> }:
Command:
display classification profile-id 150
-----------------------------------------------------------------------------
profile-id : 150
profile-name: ont-classification_150
-----------------------------------------------------------------------------
Precedence of the rule : 1 // 规则优先级
Mapped queue index : 2 // 队列
Ethernet priority to mark : 5 // 以太网优先级标记
-----------------------------------------------------------------------------
Condition Field Validation Match
Index Type Operator Value
-----------------------------------------------------------------------------
1 IP TYPE == 0x6 // 协议为 TCP
2 SPORT == 0x1001 // 源端口,还可以配置目的端口 DPORT
-----------------------------------------------------------------------------
Precedence of the rule : 2 // 规则优先级
Mapped queue index : 3
Ethernet priority to mark : 4
-----------------------------------------------------------------------------
Condition Field Validation Match
Index Type Operator Value
-----------------------------------------------------------------------------
1 NEXT-HD == 0x11
-----------------------------------------------------------------------------
Binding times: 1
-----------------------------------------------------------------------------
方法二:
MA5800-X17(config-classification-150)#display classification-profile
{ <cr>||<K> }:
Command:
display classification-profile
-----------------------------------------------------------------------------
profile-id : 150
profile-name: ont-classification_150
-----------------------------------------------------------------------------
Precedence of the rule : 1
Mapped queue index : 2
Ethernet priority to mark : 5
-----------------------------------------------------------------------------
Condition Field Validation Match
Index Type Operator Value
-----------------------------------------------------------------------------
1 IP TYPE == 0x6
2 SPORT == 0x1001
-----------------------------------------------------------------------------
Precedence of the rule : 2
Mapped queue index : 3
Ethernet priority to mark : 4
-----------------------------------------------------------------------------
Condition Field Validation Match
Index Type Operator Value
-----------------------------------------------------------------------------
1 NEXT-HD == 0x11
-----------------------------------------------------------------------------
Binding times: 1
-----------------------------------------------------------------------------
***
rule add precedence 1 queue-mapped 2 ethernet-priority-mark 5 condition-num 1
DSCP 优先级
RFC 791 中 OS 位的 IP Precedence 划分成了 8 个优先级,应用于流分类,数值越大表示优先级越高。
P性价比 | 优先级 | 缩写 | 流量类型 |
---|---|---|---|
1 | 0(最低) | BK | 后台(Background) |
0 | 1(默认) | BE | 尽力而为(Best Effort) |
2 | 2 | EE | 极大努力(Excellent effort) |
3 | 3 | CA | 关键应用程序 |
4 | 4 | VI | 视频,< 100 ms延迟和抖动 |
5 | 5 | VO | 音频,< 10 ms延迟和抖动 |
6 | 6 | IC | 网间控制 |
7 | 7(最高) | NC | 网络控制 |
但是在网络中实际部署的时候这 8 个优先级是远远不够的,于是在 RFC 2474 中又对 TOS 进行了重新定义。把前 6 位定义成 DSCP,后两位保留。
before:
P2 P1 P0 CU V11 V10 V9 V8 V7 V6 V5 V4 V3 V2 V2 V1 V0
after:
P5 P4 P3 P2 P1 P0 CU CU V11 V10 V9 V8 V7 V6 V5 V4 V3 V2 V2 V1 V0
| DSCP | CU |
DSCP: differentiated services codepoin
CU: currently unused
但是由于 DSCP 和 IP Precedence 是共存的,于是存在了一些兼容性的问题,DSCP 的可读性比较差,比如 DSCP 43 我们并不知道对应着 IP Precedence 的什么取值,于是就把 DSCP 进行了进一步的分类。DSCP 总共分成了 4 类。
- 类选择器Class Selector (CS)aaa 000
- 加速转发Expedited Forwarding (EF) 101 110
- 确保转发Assured Forwarding (AF) aaa bb0
- 默认Default (BE) 000 000
1,默认的DSCP为000 000 2,CS的DSCP后三位为0,也就是说CS仍然沿用了IP PRECEDENCE只不过CS定义的DSCP=IP PRECEDENCE8,比如CS6=68=48,CS7=7*8=56
3,EF含义为加速转发,也可以看作为IP PRECEDENCE为5,是一个比较高的优先级,取值为101110(46),但是RFC并没有定义为什么EF的取值为46。
4,AF分为两部分,a部分和b部分,a部分为3 bit仍然可以和IP PRECEDENCE对应,b部分为2 bit表示丢弃性,可以表示3个丢弃优先级,可以应用于RED或者WRED。目前a部分由于有三个bit最大取值为8,但是目前只用到了1~4。为了迅速 的和10进制转换,可以用如下方法,先把10进制数值除8得到的整数就是AF值,余数换算成二进制看前两位就是丢弃优先级,比如34/8=4余数为2,2 换算成二进制为010,那么换算以后可以知道34代表AF4丢弃优先级为middle的数据报。
如果把CS EF AF和BE做一个排列可以发现一个有趣的现象,如下表。这个表也就是我们在现实当中应用最多的队列。根据IP PRECEDENCE的优先级,CS7 最高依次排列 BE 最低。一般情况下这些队列的用途看这个表的 Usage 字段
对应的服务 IPv4优先级/EXP/802.1P DSCP(二进制) DSCP[dec][Hex] TOS(十六进制) 应用 丢包率 BE 0 0 0 0 Internet AF1 Green 1 001 010 10[0x0a] 40[0x28] Leased Line L AF1 Green 1 001 100 12[0x0c] 48[0x30] Leased Line M AF1 Green 1 001 110 14[0x0e] 56[0x38] Leased Line H AF2 Green 2 010 010 18[0x12] 72[0x48] IPTV VOD L AF2 Green 2 010 100 20[0x14] 80[0x50] IPTV VOD M AF2 Green 2 010 110 22[0x16] 88[0x58] IPTV VOD H AF3 Green 3 011 010 26[0x1a] 104[0x68] IPTV Broadcast L AF3 Green 3 011 100 28[0x1c] 112[0x70] IPTV Broadcast M AF3 Green 3 011 110 30[0x1e] 120[0x78] IPTV Broadcast H AF4 Green 4 100 010 34[0x22] 136[0x88] NGN/3G Singaling L AF4 Green 4 100 100 36[0x24] 144[0x90] NGN/3G Singaling M AF4 Green 4 100 110 38[0x26] 152[0x98] NGN/3G Singaling H EF 5 101 110 46[0x2E] 184[0xB8] NGN/3G voice CS6(INC) 6 110 000 48[0x30] 192[0xC0] Protocol CS7(NC) 7 111 000 56[0x38] 224[0xE0] Protocol
1,CS6 和 CS7 默认用于协议报文,比如说 OSPF 报文,BGP 报文等应该优先保障,因为如果这些报文无法接收的话会引起协议中断。而且是大多数厂商硬件队列里最高优先级的报文。
7,最不重要的业务是 INTERNET 业务,可以放在 BE 模型来传输。
**而在硬件队列里是如何保证协议报文(CS6 和 CS7 中的数据)优先传输呢?**在制作路由器的时候一般都是把 CS6 和 CS7 中的数据做 PQ 也就是绝对优先处理,无论下面是否有数据也是要优先来传递这两个队列中的数据。而其他 EF 到 AF1 的队列中是用 WFQ 来做的,保证所有队列都可以得到带宽来传输。
DBA
DBA (Dynamic Bandwidth Assignment) 模板定义了 ONU 的上行接入带宽
优先级介绍
优先级用于标识报文传输的优先程度,可以分为两类:报文携带优先级和设备调度优先级。
报文携带优先级包括:802.1P优先级、DSCP优先级、IP优先级、EXP优先级等。这些优先级都是根据公认的标准和协议生成,体现了报文自身的优先等级。
设备调度优先级是指报文在设备内转发时所使用的优先级,只对当前设备自身有效。设备调度优先级包括以下几种:
l 本地优先级(LP):设备为报文分配的一种具有本地意义的优先级,每个本地优先级对应一个队列,本地优先级值越大的报文,进入的队列优先级越高,从而能够获得优先的调度。
l 丢弃优先级(DP):在进行报文丢弃时参考的参数,丢弃优先级值越大的报文越被优先丢弃。
l 用户优先级(UP):设备对于进入的流量,会自动获取报文的优先级,这种报文优先级称为用户优先级。
优先级映射表
设备提供了多张优先级映射表,分别对应相应的优先级映射关系。
通常情况下,可以通过查找缺省优先级映射表来为报文分配相应的优先级。如果缺省优先级映射表无法满足用户需求,可以根据实际情况对映射表进行修改。
802.1P、IP Precedence、DSCP
在 IP 网络中,IPv4 报文中有三种承载 QoS 优先级标签的方式,分别为基于二层的 CoS 字段(IEEE802.1P)的优先级、基于 IP 层的 IP 层的 IP 优先级字段 ToS 优先级和基于 IP 层的 DSCP(Differentiated Services Codepoint)字段优先级。
IEEE802.1P 优先级
它是位于二层带标签的以太网帧的 CoS 字段,和 VLAN ID 在一起使用,在字节中的位值如下:
P2 P1 P0 CU V11 V10 V9 V8 V7 V6 V5 V4 V3 v2 V2 V1
IEEE802.1p优先级值有8个(0-7),0优先级最低,7优先级最高。报文分为三种情况:带优先级和VLAN ID的标签报文,其优先级值是自身带的值;只带优先级的标签报文,此时VLAN ID为0,其优先级值是自身带的值;未带标签的报文,一般默认的优先级值为0,也可以进行更改指定新的优先级。
IP 优先级
它由 IP 分组报头中的服务类型(ToS)字节中的 3 bit 组成,其在字节中的位值如下:
P2 P1 P0 T3 T2 T1 T0 CU
IP优先级值有8个(0-7),0优先级最低,7优先级最高。在默认情况下,IP优先级6和7用于网络控制通讯使用,不推荐用户使用。ToS字段的服务类型未能在现有的IP网络中普及使用。
IP优先级可用于流分类,将服务分为8类,分别对应优先级0-7,如下:
111-Network Control 网络控制
110 -Internetwork Control 网间控制
101 -Critic 关键
100 - FlashOverride 疾速
011 -Flash 闪速
010 -Immediate快速
001 -Priority 优先
000 -Routine 普通
优先级6和7一般保留给网络控制数据使用,比如路由。
优先级5推荐给语音数据使用。
优先级4由视频会议和视频流使用。
优先级3给语音控制数据使用。
优先级1和2给数据业务使用。
优先级0为缺省标记值。
在标记数据时,既可以使用数值,也可以使用名称(英文名称)。
DSCP 优先级
在RFC 2474中又对TOS进行了重新的定义。将服务类型的3bit用于优先级(T3 T2 T1)。
实测
通过 cat gcnat_l2_entry_list 查看硬件加速的报文内容
root@ONT1GE:/proc/gcnat # cat gcnat_l2_entry_list
GCNAT entries: 2
udp (hw:00000) IN:(20.20.20.20:01024)->(20.20.20.10:01024) pri=0 vid=554 (inner: 0000h) gem=0 cnt=28
OUT: pri=4 vid=554 (inner: 0000h) rxdev=eth0 txdev=pon0 gem=0 tcont=0 que=3
udp (hw:00000) IN:(20.20.20.10:01024)->(20.20.20.20:01024) pri=0 vid=554 (inner: 0000h) gem=0 cnt=27
OUT: pri=0 vid=554 (inner: 0000h) rxdev=pon0 txdev=eth0 gem=0 tcont=0 que=0
TestCenter设置12口(下联口),发udp 包,priority=0, vlan_id=554 –> GC1601 –> OLT –> TestCenter 9口