PPPoE 在以太网上传输PPP的方法( 五 )


0x0105Vendor-Specific
该TAG用来传送厂商自定义的信息 。TAG_VALUE的头4个字节包含了厂商的识别码,其余字节尚未定义 。厂商识别码的高字节为0,低3个字节为网络字节序的厂商的SMI网络治理专用企业码,如“定义值RFC”(参考文献[4])中定义的那样 。
不推荐使用该TAG 。为了确保互操作性,实现可以静静的忽略Vendor-SpecificTAG 。
0x0110Relay-Session-Id
该TAG可由中继流量的中间代理加入到Discovery数据包中 。TAG_VALUE对主机和访问集中器都是晦涩难懂的(paque) 。假如主机或访问集中器收到该TAG,则它们必须在所有的Discovery数据包中包含该TAG以作为响应 。所有的PADI数据包必须保证足够空间来加入TAG_VALUE长度为12字节的Relay-Session-Id标签 。
假如Discovery数据包中已经包含一个Relay-Session-Id标签,则不答应再加入该标签 。这种情况下,中间代理应该使用该现有的Relay-Session-Id标签 。假如它不能使用现有的标签,或者没有足够空间来增加一个Relay-Session-Id标签,那么它应该向发送者返回一个Generic-Error标签 。
0x0201Service-Name-Error
该TAG(典型的有一个长度为零的数据部分)表明了由于某种原因,没有理睬所请求的Service-Name 。假如有数据部分,并且数据部分的头一个字节非0,那么它必须是一个可打印的UTF-8字符串,解释请求被拒绝的原因 。该字符串可以不以NULL结束 。
0x0202AC-System-Error
该TAG表明了访问集中器在处理主机请求时出现了某个错误 。(例如没有足够资源来创建一个虚拟电路 。PADS数据包中可以包含该标签 。
假如有数据,并且数据的第一个字节不为0,那么(数据)必须是一个可打印的UTF-8字符串,该字符串解释了错误的性质 。该字符串可以不以NULL结束 。
0x0203Generic-Error
该TAG表明发生了一个错误 。当发生一个不可恢复的错误并且没有其它合适的TAG时,它可被加到PADO,PADR或PADS数据包中 。假如出现数据部分,那么数据必须是一个UTF-8字符串,解释错误的性质 。该字符串不答应以NULL结束 。
附录B
下面是数据包的几个例子:
PADI数据包:
0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
0xffffffff
0xffff
Host_mac_addr
Host_mac_addr(续)
ETHER_TYPE=0x8863
v=1
t=1
CODE=0x09
SESSION_ID=0x0000
LENGTH=0x0004
TAG_TYPE=0x0101
TAG_LENGTH=0x0000
PADO数据包:
0
1
2
3
1
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
Host_mac_addr
Host_mac_addr(续)
Access_Concentrator_mac_addr
Access_Concentrator_mac_addr(续)
ETHER_TYPE=0x8863
v=1
t=1
CODE=0x07
SESSION_ID=0x0000
LENGTH=0x0020
TAG_TYPE=0x0101
TAG_LENGTH=0x0000
0x47
0x6f
0x20
0x52
0x65
0x64
0x42
0x61
0x63
0x6b
0x20
0x2d
0x20
0x65
0x73
0x68
0x73
0x68
0x65
0x73
0x68
0x6f
0x6f
0x74
PPPLCP数据包:显示了PPPprotocol的值(0xc021),但是PPP的净载数据留给读者 。这是一个从主机发给访问集中器的数据包 。
0
1
2
3
0
1
2

推荐阅读