D.4.1 字节排序和表示
所有的OAMPDU包含整数个字节。生成OAMPDU应遵循以下规则:
a) 字节发送从上到下;
b) 字节中的比特0在左,比特7在右;
c) 用连续字节表示二进制数时,首先发送有最高有效值的字节;
d) 用连续字节表示MAC地址时,MAC地址第一个比特值分配到第一个字节的LSB,MAC地址的第二个比特值分配到第一字节的MSB,依此类推。对OAMPDU进行编码时,比特0是LSB。
OAMPDU的OUI(Organizationally Unique Identifier)域的比特/字节排序和DA/SA的OUI比特/字节排序一致。OUI格式的具体规定见IEEE Std 802-2001 Clause 9。
D.4.2 帧结构
D.4.2.1 基本规定
OAMPDU帧结构如图D. 8所示

OAMPDU帧中各域描述如下:
a) Destination Address (DA) : OAMPDU 中的DA 是Slow_Protocols_Multicast地址,使用和编码规定见IEEE 802.3-2002 Annex 43B;
b) Source Address (SA):OAMPDU中的SA是独立的MAC地址,该地址与发送OAMPDU的端口相关联;
c) Length/Type:OAMPDU采用Type编码,并且承载Slow_Protocols_Type域值,使用和编码规定见IEEE 802.3-2002 Annex 43B;
d) Subtype :Subtype 域标识封装的特定的Slow Protocol ,OAMPDUSubtype域值为0x03;
e) Flags:Flags域包含状态比特;
f) Code:Code域标识特定的OAMPDU;
g) Data/Pad:包含OAMPDU数据和任何必需的pad,应至少支持最小帧长(minFrameSize)OAMPDU的实现;
h) FCS:Frame Check Sequence。
D.4.2.2 Flags域
Flags域两个字节的比特独立进行编码,如表D. 3所示。其它诊断信息可使用EventNotification OAMPDU进行发送。


D.4.2.3 Code域
Code域的值由control功能模块的transmit流程设置。OAM Client对所有它产生的OAMPDU的Code域值进行设置。如表D. 4所示

D.4.3 OAMPDU描述
本地OAM子层通过OAMPDU与远端OAM子层通信。OAMPDU用特定编码来标识。OAMPDU格式应兼容IEEE 802.3帧。OAMPDU定义见图D. 8,包含IEEE 802.3规定的Length/Type域后的Subtype域、Flags域和Code域。OAMPDU中的Data域从固定位置开始。不同OAMPDU的Data域内容不同。所有收到的OAMPDU(包括具有保留Code域值的OAMPDU)被送至OAM Client。具有保留Code域值的OAMPDU不应被发送。
D.4.3.1 Information OAMPDU
Information OAMPDU的编码域值为0x00,用于将OAM状态信息发送至远端DTE。
Information OAMPDU帧结构如图D. 9所示。

当local_pdu置为LF_INFO时,Information OAMPDU Data域不应有任何InformationTLVs。当local_pdu不置为LF_INFO时,Information OAMPDU Data域应包含紧跟Code域的Local Information TLV。此外,如果Discovery状态图变量remote_state_valid为TRUE,Data域也应包含紧跟Local Information TLV的Remote Information TLV,也可以包含其它Information TLVs。
D.4.3.2 Event Notification OAMPDU
可选的Event Notification OAMPDU的Code域设为0x01,用于通知远端DTE链路事件。Event Notification OAMPDU帧结构见图D. 10所示。

Data域的头两个字节应包含一个类型为16比特无符合整型的Sequence Number。OAMClient可重复发送Event Notification OAMPDU以增强远端DTE收到特殊事件通知的机率。OAM Client每生成一个Event Notification OAMPDU就将Sequence Number加1。特殊EventNotification OAMPDU可使用相同的Sequence Number重复发送多次。建议源OAMPDU后重复发送的Event Notification OAMPDU不应插入不同的Event Notification OAMPDU。如果新的Event Notification OAMPDU已经跟在源OAMPDU后,则不应发送重复的EventNotification OAMPDU。任何特殊事件只能用唯一的Event Notification OAMPDU来通知(虽然OAMPDU可多次重复发送)。当接收到Event Notification OAMPDU时,OAM Client对它的Sequence Number和前一个收到的Sequence Number进行比较。如果相等,则当前AMPDU是重复发送的应被OAM Client忽略。
Sequence Number域后的Data域应包含一个或多个可选的Link Event TLV,可提供有用的事件和故障诊断信息。
D.4.3.3 Variable Request OAMPDU
可选Variable Request OAMPDU的Code域编码为0x02,用于向远端DTE请求一个或多个MIB变量。Variable Request OAMPDU帧结构如图D. 11所示。
Variable Request OAMPDU的Data域应包含一个或多个变量描述。

D.4.3.4 Variable Response OAMPDU
可选Variable Response OAMPDU的Code域编码为0x03,用于返回一个或多个MIB变量。Variable Response OAMPDU帧结构如Sequence Number图D. 12所示。

Variable Response OAMPDU的Data域应包含一个或多个Variable Container。OAMClient收到Variable Request OAMPDU后在1s内发送Variable Response OAMPDU。如果DTE不能获得一个或多个变量,应在1s内进行相应并指示错误。如果DTE不能在分组包或对象中获得一个或多个属性,应进行下面其中之一的动作:
a) 返回与特殊属性对应的Variable Indication并返回所有其它要求的变量;
b) 返回与整个分组包或对象对应的Variable Indication。
D.4.3.5 Loopback Control OAMPDU
可选Loopback Control OAMPDU的Code域编码为0x04,用于控制远端DTE的OAM远端环回状态。Loopback Control OAMPDU帧结构如图D. 13所示。

Loopback Control OAMPDU的Data域应包含OAM远端环回命令,表D. 5定义了OAM远端环回命令。

D.4.3.6 Organization Specific OAMPDU
可选Organization Specific OAMPDU的Code域编码为0xFE,用于组织特定扩展。
Organization Specific OAMPDU帧结构如图D. 14所示。

Organization Specific OAMPDU Data域的头三个字节应包含OUI,其它部分的格式和功能由OUI值决定,这不在本标准规定范围内。


