参考文档:G.7041Y.1303
GFP帧长最大为65535字节,GFP帧结构如下:
//-------------核心报头----------------
PLI:净荷长度指示符,表示4个字节的核心帧头后面的净荷区的字节数。
cHEC:核心报头差错控制字段,校验生成多项式:crc-16/xmodem x16+x12+x5+1
在网站http://www.ip33.com/crc.html可以计算校验码。
最后总的核心报头四字节异或上 B6AB31E0 进行核心报头的扰码。
//---------------净荷区------------------
PTI:净荷使用类型识别符, 000:客户数据;100:客户管理。
PFI:净荷校验FCS指示符,1:有FCS;0:无FCS。
EXI:扩展报头识别符,0000:空扩展报头;0001:线性帧;0010:环形帧。
UPI:客户数据帧的类型或客户管理帧的类型识别符。
tHEC:净荷类型差错控制,校验生成多项式:crc-16/xmodem x16+x12+x5+1 。
上图为线性帧扩展报头,CID用来指示本帧是GFP 256个通信通道中的哪一个(这里不是很确定)。
eHEC:扩展报头差错控制,校验生成多项式:crc-16/xmodem x16+x12+x5+1
FCS:净荷差错控制,校验生成多项式:x 32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
对于GFP空闲帧,只发送四个字节:00000000(加扰后为:B6AB31E0)。
加扰前的GFP帧例子:
字节 字段 值(十六进制) 注释
1 PLI[15:8] 00 ; PLI = 长度 { 净荷报头 + 净荷信息字段 + 净荷 FCS }
2 PLI[7:0] 4C ; = 8 + 64 + 4 = 76 字节
3 cHEC[15:8] 89 ;
4 cHEC[7:0] 48 ;
5 TYPE[15:8] 11 ; [15:13]='000' (客户数据)
6 TYPE[7:0] 01 ; [12] ='1' (净荷 FCS 使能)
7 tHEC[15:8] 20 ; [11:8] ='0001' (线状报头)
8 tHEC[7:0] 63 ; [7:0] ='00000001' (以太网)
9 EHDR[15:8] 80 ; CID[07:00]=0x8000(例子的值)
10 EHDR[7:0] 00 ; SPARE[7:0]
11 eHEC[15:8] 1B ; 在 CID,SPARE 上计算的 eHEC
12 eHEC[7:0] 98 ; 扩展报头结尾
13 DATA FF ; 1d 以太网 DA=0xFFFFFFFFFFFF
14 DATA FF ; 2d
15 DATA FF ; 3d
16 DATA FF ; 4d
17 DATA FF ; 5d
18 DATA FF ; 6d
19 DATA 06 ; 7d 以太网 SA=0x060504030201
20 DATA 05 ; 8d
21 DATA 04 ; 9d
22 DATA 03 ; 10d
23 DATA 02 ; 11d
24 DATA 01 ; 12d
25 DATA 00 ; 13d 以太网类型/长度
26 DATA 2E ; 14d
27 DATA 00 ; 15d 以太网净荷
28 DATA 01 ; 16d
29 DATA 02 ; 17d
30 DATA 03 ; 18d
31 DATA 04 ; 19d
32 DATA 05 ; 20d
33 DATA 06 ; 21d
34 DATA 07 ; 22d
35 DATA 08 ; 23d
36 DATA 09 ; 24d
37 DATA 0A ; 25d
38 DATA 0B ; 26d
39 DATA 0C ; 27d
40 DATA 0D ; 28d
41 DATA 0E ; 29d
42 DATA 0F ; 30d
43 DATA 10 ; 31d
44 DATA 11 ; 32d
45 DATA 12 ; 33d
46 DATA 13 ; 34d
47 DATA 14 ; 35d
48 DATA 15 ; 36d
49 DATA 16 ; 37d
50 DATA 17 ; 38d
51 DATA 18 ; 39d
52 DATA 19 ; 40d
53 DATA 1A ; 41d
54 DATA 1B ; 42d
55 DATA 1C ; 43d
56 DATA 1D ; 44d
57 DATA 1E ; 45d
58 DATA 1F ; 46d
59 DATA 20 ; 47d
60 DATA 21 ; 48d
61 DATA 22 ; 49d
62 DATA 23 ; 50d
63 DATA 24 ; 51d
64 DATA 25 ; 52d
65 DATA 26 ; 53d
66 DATA 27 ; 54d
67 DATA 28 ; 55d
68 DATA 29 ; 56d
69 DATA 2A ; 57d
70 DATA 2B ; 58d
71 DATA 2C ; 59d
72 DATA 2D ; 60d
73 DATA DE ; 61d 以太网 FCS(在 60字节上计算的)
74 DATA E1 ; 62d
75 DATA 90 ; 63d
76 DATA D0 ; 64d
77 FCS[31:24] 56 ; 任选的 GFP 净荷 FCS 的第一个字节
78 FCS[23:16] CF ; 只包含净荷信息字段
79 FCS[15:8] 2B ; 扩展字段(即 64 字节)
80 FCS[7:0] B0 ; 任选的 GFP FCS最末字节
注意以太网的FCS计算后在以太帧中的顺序是低字节在前:
//------------------净荷区扰码---------------------
净荷区所有校验计算完后需要对整个净荷区进行扰码,即对核心报头之后的数据进行扰码。
扰码多项式为:43x + 1。
扰码器只在净荷数据时进行扰码,其他数据时扰码器保持,因此每帧开始时扰码器的状态为上帧扰码结束时扰码器的状态。根据扰码器结构可以看出每帧开始时扰码器D43-D1的初始值就是上帧加扰后的数据的最后43bit。