第3节 多点控制协议(MPCP)
推荐给好友
打印
加入收藏
更新于2008-08-01 16:16:56

B.3.1 概述

如图B. 2所示,多点MAC控制功能模块包括以下功能:
a) 发现处理(Discovery Processing):该模块管理发现流程,通过该进程发现ONU 并使其注册到网络中,同时对其RTT 进行补偿。
b) 报告处理(Report Processing):该模块管理报告消息的产生和搜集,ONU 通过该模块在上行方向向OLT 发送带宽请求。
c) 选通处理(Gate Processing):该模块管理GATE 消息的产生和搜集,通过该模块实现多个发送端的复用。如图B. 2所示,分层的系统可以实例化多个MAC实体,而只使用一个物理层。每个实例化的MAC通过MPCP和与操作码(opcode)相关的功能模块的实例进行通信。此外,多个实例共享一些全局变量。通过MPCP使用公共状态控制来同步多个MAC。有关公共状态控制的操作不在本标准规范的范围内。

B.3.2 MPCP的原理

多点MAC控制通过控制MAC客户端的接收和发送使其工作在点对多点光网络中,而对MAC客户端来说就好象连接到一个独享的链路上。为了达到此目的,多点MAC控制协议遵循以下原则:

a) MAC客户端通过多点MAC 控制子层发送和接收帧。
b) 多点MAC 控制决定何时允许客户端接口控制复用器发送一个帧。
c) 在某些情况下,当MAC 客户端发送帧时MAC 控制可能产生控制帧,并利用MAC 控制帧传送优先级高于MAC 客户帧的特性,优先发送MAC 控制帧。
d) 通过使用时分复用(TDMA)的方法,在任意给定时刻仅允许一个MAC 在网络中发送上行帧,使得多个MAC 可以在共享介质上操作。
e) 通过GATE 处理功能协调此类发送的GATE。
f) 通过发现处理功能在网络中发现新设备并允许其发送数据。
g) 利用报告处理功能提供的反馈机制可以合理地控制网络带宽的分配。
h) P2MP 网络的操作是非对称的,其中OLT 为主设备,ONU 为从设备。

B.3.3 兼容性考虑

B.3.3.1 PAUSE操作

虽然MPCP和流量控制兼容,但是在传输时延很大的情况下可选的流量控制使用效率不高。
注意:ONU端的MAC可以接收来自单播信道和单拷贝广播(SCB)信道的帧。如果SCB信道用于向多个ONU广播数据帧,那么即使ONU已向它的单播远端发出了PAUSE请求,ONU的MAC仍然可以继续从SCB信道接收数据帧。

B.3.3.2 可选的共享LAN仿真

通过结合P2PE,ONU端的适当过滤规则以及OLT端的适当过滤转发规则,可以仿真一个有效的共享LAN。共享LAN仿真的支持是可选的,它需要MAC层上额外的一层,这超出了本标准规定的范围。因此,这里的共享LAN仿真仅仅做为一般性说明。

B.3.3.3 组播和单拷贝广播支持

在下行方向,PON是一种广播介质。为利用PON的这一能力,使OLT向ONU发送广播帧时不对每个ONU都拷贝该帧,因此引入单拷贝广播(SCB)支持。

OLT针对每个ONU至少有一个MAC与之对应。此外,OLT还有一个标记为SCB的MAC。SCBMAC处理所有下行广播业务,但是不能用于上行方向的业务流(客户注册除外)。组播功能可通过可选的上层功能实现。这些层可能需要在OLT中进行为某些或者所有的ONU实例化额外的MAC(组播MAC),从而使MAC的总数超过(ONU数+1)个。

当把SCB MAC连接到802.1D桥接端口时,由于广播自身特点从而有可能形成回路。因此建议不把SCB MAC连接到802.1D桥接端口。

C.1.3.4.3 节定义了SCB通道配置以及用于SCB支持的帧过滤和标记。

B.3.3.4 时延要求

MPCP协议依赖于严格定时,这是通过分发时间戳来实现。为了维护时间戳机制的正确性,相应的实现必须保证从MAC到PHY的时延不变。实际的时延大小取决于实现方式。但是,遵循规范的实现应该使所实现的MAC栈时延维持在一定范围内,而该范围变化不超过16比特时间。为了使得ONU在接收到GATE消息后有足够的处理时间,OLT不能发布起点时刻早于当前时刻加上1024个时间量子(time_quantum)的授权。ONU应该用小于这个时间段的时间来处理所有的消息。OLT不应该以大于每1024个时间量子(time_quantum)一个消息的速度向一个ONU发布消息。时间量子(time_quantum)的单位是16ns。

B.3.4 发现处理

B.3.4.1 功能描述

发现是指新连接或者非在线的ONU接入PON的进程。该进程由OLT发起,它周期性地产生合法的发现时间窗口(Discovery Time Windows),使OLT有机会检测到非在线的ONU。发现时间窗口的周期没有定义,由厂商决定。OLT通过广播一个发现GATE消息来通知ONU发现窗口的周期。发现GATE消息包含发现窗口的开始时间和长度,非在线ONU接收到该消息后将等待该周期的开始,然后向OLT发送REGISTER_REQ消息。发现窗口是唯一有多个ONU同时访问PON的窗口,因此这些发送可能发生冲突。为了减少发送冲突,所有的ONU应使用同一种竞争算法。通过模拟ONU到OLT距离的随机分布等措施可以减少冲突发生的概率。每个ONU在发送REGISTER_REQ消息前应等待一段随机大小的时间,该时间段小于发现时间窗口的长度。值得注意的是在一个发现时间周期内OLT可能会接收到多个有效的REGISTER_REQ消息。

REGISTER_REQ消息中包括ONU的MAC地址以及最大等待授权(Pending Grant)的数目。OLT接收到有效的REGISTER_REQ消息后,将注册该ONU,分配和指定新端口的标识(LLID),并将相应的MAC和LLID绑定。

发现进程的下一步是OLT向新发现的ONU发送注册(Register)消息,该消息包含ONU的LLID以及OLT要求的同步时间。同时,OLT还应对ONU最大等待授权的数目进行响应。此时OLT已经有足够的信息用于调度ONU 访问PON , 并发送标准的GATE 消息允许ONU 发送REGISTER_ACK。当接收到REGISTER_ACK,该ONU的发现进程完成,该ONU注册成功并且可以开始发送正常的消息流。层管理(Layer Management)负责执行MAC绑定并开始对新注册的ONU进行发送和接收。图B. 13给出了发现消息的交换过程,图B. 14、图B. 15和图B. 16分别给出了发现处理服务接口(OLT广播实例)、发现处理服务接口(OLT单播实例)和发现处理服务接口(ONU)。

OLT可以要求ONU重新执行发现进程并重新注册。同样,ONU也可以通知OLT请求注销,然后通过发现进程进行重注册。OLT的REGISTER消息可以设置一个值来指示重注册(Reregister)或注销(Deregister),如果规定了上述的任一种,则将强制接收到该消息的ONU进行重注册。对于ONU,REGISTER_ACK消息可包含注销位,该比特通知OLT应注销本ONU。

B.3.4.2 常量

无定义。

B.3.4.3 变量

BEGIN
该变量在B.2.3.4 节中定义。
data_rx
该变量在B.2.3.4 节中定义。
data_tx
该变量在B.2.3.4 节中定义。
grantEndTime

该变量表示OLT期望ONU授权完成的时刻。在发现进程中,如果ONU的REGISTER_ACK消息不能在grantEndTime前到达OLT,则这个致命错误将导致指定的ONU注册失败,该ONU可在以后重新注册。GrantEndTime的单位是时间量子(time_quantum)。类型:32比特无符号数

insideDiscoveryWindow
该变量表示发现窗口的当前状态。当发现窗口打开时,该值为true,当发现窗口关闭时,该值为false。
类型:布尔型
localTime
该变量在B.2.3.3 节中定义。
opcode_rx
该变量在B.2.3.4 节中定义。
opcode_tx
该变量在B.2.3.4 节中定义。
pendingGrants
该变量表示ONU能够排队等待的授权最大值。
类型:16比特无符号数
registered
该变量表示发现进程的当前结果。一旦发现进程完成并且确认注册完成,该值为true。
类型:布尔型
syncTime
该变量表示稳定OLT端接收机所需的时间。它从发送输出稳定时刻开始计时,直到获得同步时刻为止,以时间量子(time_quantum)为单位计数。syncTime的值包括激光开启时间(Ton)、增益调整时间(Treceiver_settling)、时钟同步时间(Tcdr)以及码组对齐时间(Tcode_group_align)。OLT将syncTime的值通过发现GATE和注册消息传给ONU。在同步期间,ONU只能发送IDLE。
类型:16比特无符号数
timestampDrift
该变量在B.2.3.4 节中定义。

B.3.4.4 函数

ReceiveFrame(DA,SA,Length/Type,data)
该函数在B.2.3.5 节中定义。
TransmitFrame(DA,SA,Length/Type,data)
该函数在B.2.3.5 节中定义。

B.3.4.5 定时器

discovery_window_size_timer
该定时器用于标识发现窗口终止的事件。
该定时器的值是根据接收到的发现选通(DISCOVERY GATE)消息中的参数而动态设定的。
mpcp_timer

该定时器用于测量链路中MPCP帧的到达速率。未能接收到帧将是致命错误并将导致注销。

B.3.4.6 消息

MA_CONTROL.request(DA,GATE,discovery,start,length,discovery_length,sync_time)
OLT端的MAC控制客户端使用该服务原语来发起发现进程。该原语使用如下参数:
DA: 组播或单播MAC地址。
GATE: 表B. 1中定义的GATE MPCPDU操作码。
Discovery: 该标志表示指定的GATE消息仅用于发现。
start: 发现窗口的开始时刻。
length: 用于发现的授权的长度。
discovery_length:发现窗口进程的长度。
sync_time: OLT端用于稳定接收机所需的时间间隔。
MA_CONTROL.request(DA,GATE,grant_number,start[4],length[4],force_report[4])
OLT端的MAC控制客户端使用该服务原语向ONU发布GATE消息。该原语使用如下参数:
DA: 单播MAC地址。
GATE: 表B. 1中定义的GATE MPCPDU操作码。
grant_number: 随GATE消息一起发布的授权的个数。授权个数从0到4。
start[4]: 各个授权的开始时刻。目前只使用数组中第1个grant_number元素。
length[4]: 各个授权的长度。目前只使用数组中第1个grant_number元素。
force_report[4]: 标识是否在相应的授权中产生REPORT消息,只使用数组中第1个grant_number元素。
MA_CONTROL.request(DA,REGISTER_REQ,status)
ONU端的MAC客户端使用该服务原语请求发现进程进行注册。该原语使用如下参数:
DA: 组播MAC控制地址,应符合IEEE 802.3 Annex 31B的定义。
REGISTER_REQ: 表B. 1定义的REGISTER_REQ MPCPDU操作码。
status: 表B. 4定义的REGISTER_REQ MPCPDU中的标志域。
MA_CONTROL.indication(REGISTER_REQ,status,flags,pengding_grants,RTT)发现进程使用该原语来通知客户端和层管理,注册进程正在进行。该原语使用如下参数:
REGISTER_REQ: 表B. 1中定义的REGISTER_REQ MPCPDU操作码。
status: 该参数指示加入或者重试。OLT使用“加入”来表示成功接收到REGISTER_REQ消息。ONU使用“重试”来通知客户注册失败,注册将被再次进行。
flags: 该参数为REGISTER_REQ消息中标志域的内容。仅当本原语由OLT的发现进程产生时,该参数的值才有效。

pengding_grants: 该参数为REGISTER_REQ消息中
pengding_grants域的内容,仅当本原语由OLT的发现进程产生时,该参数的值才有效。
RTT: 该参数保存已测量的ONU往返时间。RTT单位是时间量子(time_quantum)。仅当本原语由OLT的发现进程产生时,该参数的值才有效。
MA_CONTROL.request(DA, REGISTER, LLID, status, pending_grants)
OLT端的MAC控制客户端使用该服务原语来初始化ONU的接收。该原语使用如下参数:
DA: 组播MAC控制地址,应符合IEEE 802.3 Annex 31B的定义。


REGISTER: 表B. 1中定义的REGISTER MPCPDU操作码。
LLID: MAC控制客户端指配的逻辑链路标识号。
status: 表B. 5中定义的REGISTER MPCPDU中的标志域。

pending_grants: 该参数为先前接收到的REGISTER_REQ消息中的pending_grants域。
MA_CONTROL.indication(REGISTER, SA, LLID, status)
OLT或ONU端的发现进程使用该服务原语将注册状态改变的结果通知MAC控制客户端和层管理。该原语使用如下参数:

REGISTER: 表B. 1中定义的REGISTER MPCPDU操作码。
SA: 该参数为OLT的MAC地址。
LLID: 该参数为MAC控制客户端指配的逻辑链路标识号。
status: 该参数为accepted/denied/deregistered/reregistered。
MA_CONTROL.request(DA, REGISTER_ACK, status)
ONU和OLT端的MAC控制客户端使用该服务原语来确认注册完成。该原语使用如下参数:
DA: 组播MAC控制地址,应符合IEEE 802.3 Annex 31B的定义。
REGISTER_ACK: 表B. 1中定义的REGISTER_ACK MPCPDU操作码。
status: 表B. 5定义的REGISTER MPCPDU中的标志域值。
MA_CONTROL.indication(REGISTER_ACK, SA, LLID, status, RTT)
OLT端的发现进程使用该服务原语将注册进程完成这一事件通知客户端和层管理。该原语使用如下参数:
REGISTER_ACK: 表B. 1中定义的REGISTER_ACK MPCPDU操作码。
SA: 该参数为对端设备的MAC地址(ONU侧的OLT地
址,OLT侧的ONU地址)。
LLID: 该参数为MAC控制客户端指配的逻辑链路标识号。
status: 该参数为accepted/denied/reset/deregistered。
RTT: 该参数为已测量的ONU往返时间。RTT的单位是时间量子。仅当OLT调用发现进程时,该参数才有效。
Opcode-specific function(opcode)
从操作码相关的功能块中导出的函数,这些函数由相应的操作码所对应的MAC控制消息的到达而触发。

B.3.4.7 状态转移图

OLT端的发现进程应实现图B. 17所示的发现窗口创建状态图,图B. 18所示的请求处理状态图,图B. 19所示的注册处理状态图以及图B. 20所示的最终注册状态图。ONU端的发现进程应实现图B. 21所示的注册状态图。

图B. 17,图B. 18,图B. 19所示的状态机的实例,仅在与广播LLID关联的多点MAC控制实体中实现。每个多点MAC控制实体均应实现图B. 20和图B. 21所示的状态机实例(关联于广播通道的实体除外)。


注意:在发送REGISTER消息后, MAC控制客户端紧接着发送授权,该过程已考虑ONU处理REGISTER消息的时延。

B.3.5.1 概述

报告处理功能模块负责处理网络中的队列状态报告的产生和终结。上层产生报告并由MAC控制客户端传递给MAC控制子层。状态报告用于上报带宽的需求,也可用来为OLT安装看门狗定时器(watchdog Timer)。

即使没有带宽请求,也应该周期性的产生报告,这将保证OLT的看门狗定时器不会因超时注销ONU。为了保证该机制正常运转,OLT将周期性地向ONU授权。

报告处理功能模块以及MPCP协议设计为可与IEEE 802.1P桥协同使用。

图B. 22定义报告处理服务接口。

B.3.5.2 常量

mpcp_timeout
该常量为两个MPCPDU消息之间的最大允许时间间隔。在此间隔内如果不能接收到至少一帧,那么将是一个致命的错误并将导致注销。
类型:32比特无符号数
值:03-B9-AC-A0(1秒)
report_timeout
该常量表示由ONU产生的两个REPORT消息的最大允许时间间隔。
类型:32比特无符号数
值:00-2F-AF-08(50毫秒)

B.3.5.3 变量

BEGIN
该变量用于功能模块状态机的初始化操作。在初始化以及每次复位后,该变量设为true。
类型:布尔型
data_rx
该变量定义见B.2.3.4 节。
data_tx
该变量定义见B.2.3.4 节。

opcode_rx
该变量定义见B.2.3.4 节。
opcode_tx
该变量定义见B.2.3.4 节。
registered
该变量定义见B.3.4.3 节。

 B.3.5.4 函数

TransmitFrame(DA,SA,Length/Type,data)
该函数定义见B.2.3.5 节。

B.3.5.5 定时器

report_periodic_timer
要求ONU以小于report_timeout的周期产生REPORT MPCPDU。在ONU强制产生REPORT消息之前,该定时器对剩余的时间进行倒计时。
mpcp_timer
该定时器定义见B.3.4.5 节。

B.3.5.6 消息

MA_CONTROL.request(DA,REPORT,report_number,report_list)
MAC控制客户端使用该服务原语请求ONU端的报告进程发送队列状态报告。为了反映网络的实时变化,可独立于授权进程并在任意间隔内调用该原语。该原语使用如下参数:
DA: 组播MAC控制地址。
REPORT: 表B. 1中定义的REPORT MPCPDU操作码。
report_number: 报告列表中队列状态报告集的个数,取值范围0~13。

report_list: 队列状态报告列表。队列状态报告包括两个域:valid和status。参数valid是长度为8的布尔型数组,‘0’或‘false’表示不存在相应的状态位(状态域的长度为0),‘1’或‘ture’表示存在相应的状态域(状态域的长度是2个8位字节)。数组的索引和IEEE 802.1P命名规则中的优先级队列的编号一致。参数status为16比特无符号整型数组,该数组仅包含valid域中相应比特为ture的条目。

MA_CONTROL.indication(REPORT,RTT,report_number,report_list)
OLT端的报告进程使用该服务原语将MPCP链路另一端的队列状态通知MAC控制客户端及上层。为了反映网络的实时变化,可以多次调用该原语。该原语使用如下参数:
REPORT: 表B. 1中定义的REPORT MPCPDU操作码。
RTT: 该参数为更新的往返路程时间,在每次接收到REPORT消息后重新计算该值。

report_number: 报告列表中队列状态报告集的个数,取值范围0~13。
report_list: 队列状态报告的列表。队列状态报告包括两个域:valid和status。参数valid是一个长度为8的布尔型数组,‘0’或‘false’表示不存在相应的状态位(状态域的长度为0),‘1’或‘ture’表示存在相应的状态域(状态域的长度是2个8位字节)。数组的索引和IEEE 802.1P命名规则中的优先级队列的编号一致。

参数status为16比特无符号整型数组,该数组仅包含valid域中相应比特为ture的条目。

Opcode-specific function( opcode )
从操作码相关的功能块中导出的函数,这些函数由相应的操作码所对应的MAC控制消息的到达而触发。

B.3.5.7 状态图

OLT端的报告进程将实现图B. 23所示的报告处理状态图。ONU端的报告进程将实现图B. 24所示的报告处理状态图。只有关联于单播LLIDs的多点MAC控制实体才实现图B. 23和图B. 24所示的状态机实例。

B.3.6 选通处理(GATE Processing)

B.3.6.1 概述

多点MAC控制的关键是它能够对多个ONU进行仲裁并选出一个发送器。OLT通过分配授权来控制ONU的发送。

GATE消息指示ONU的发送窗口,包括窗口的开始时间和长度。当ONU的localTime计数器和GATE消息中的start_time相同时,ONU开始发送。ONU将给结束发送留有足够的余量,从而保证在授权长度间隔用完前关闭激光器。

可以向一个ONU发送多个授权。OLT发送授权数目不应多于ONU注册进程中声明支持的最大授权个数。

为了维护ONU端的看门狗定时器,OLT将周期性地产生授权。因此也会定期发送空的GATE消息。

在注册的时候,ONU将忽略所有已设置发现标志的GATE消息。

B.3.6.2 常量

discoveryGrantLength
该常量表示在执行发现进程时ONU的发送持续时间。该常量包括MPCPDU的发送时间和B.2.3.2 节定义的tailGuard。该常量的单位是time_quantum。
类型:32比特无符号数
值:00-00-00-26(608ns)

gate_timeout
该常量表示OLT为同一个ONU产生的两个GATE消息的最大允许时间间隔。
类型:32比特无符号数
值:00-2F-AF-08(50ms)
laserOffTime
该常量为关闭激光器所需的时间。它以time_quantum为单位对关闭PMD所需的时间周期进行计数。
类型:32比特无符号数
值:00-00-00-20(512ns)


laserOnTime
该常量为开启PMD所需的时间。它以time_quantum为单位对开启PMD所需的时间周期进行计数。
类型:32比特无符号数
值:00-00-00-20(512ns)

max_future_grant_time
该常量为某个有效到达授权的期望到达的最大时刻。
类型:32比特无符号
数值:03-B9-AC-A0(1s)
min_proccesing_time
该常量为ONU处理所需的时间。
类型:32比特无符号数
值:00-00-04-00(16.384ns)
tqSize
该常量定义见B.2.3.2 节。

B.3.6.3 变量

BEGIN
该变量用于功能模块状态机的初始化操作。每当初始化以及复位后,该变量设为真。
类型:布尔型
couter
该变量是一个循环计数器,对GATE消息中的到达授权进行计数。
类型:整型

currentGrant
该变量用于处理期间本地存储等待的授权状态。GATE处理功能模块动态设值该变量并且
该变量不可见。授权状态是一个包含多个子域的结构体域。
类型:structure{
DA 48比特无符号数,也就是MAC地址类型
start 32比特无符号数
length 16比特无符号数
force_report 布尔
discovery 布尔}
data_rx
该变量定义见B.2.3.4 节。
data_tx
该变量定义见B.2.3.4 节。
effectiveLength
该变量用于临时存储归一化的净时间(net time)。该变量保存授权净有效长度,该值用使用时间进行归一化处理,并用开启/关闭激光器以及等待接收器锁定时间进行补偿。
类型:32比特无符号数

fecEnabled
该变量定义见B.2.3.4 节。
GrantList
该变量用于存储等待授权的列表。GATE处理功能模块动态设置该变量并且该变量不可见。一旦接收到授权就将其加入到列表中。列表的元素是包含多个子域的结构体域。该列表以每个元素的开始子域作为索引,从而可以加快搜索。

类型:列表中的元素使用currentGrant定义的结构体

insideDiscoveryWindow
该变量定义见B.3.4.3 节。
maxDelay

该变量表示ONU在发送REGISTER MPCPDU前允许的最大时延。该时延的值必须保证ONU有足够的时间来发送REGISTER消息和相应的开销(FEC校验数据,帧结束序列等等)以及在发现授权结束前关闭激光器。
类型:16比特无符号数

nextGrant
该变量用于处理进程中在本地存储等待的授权状态。GATE处理功能模块动态设置该变量并且该变量不可见。该变量的值为下一个即将被激活的授权。
类型:元素使用currentGrant定义的结构体

nextStopTime
该变量为相应于下一个结束时刻的localTime计数器的值。
类型:32比特无符号数

registered
该变量定义见B.3.4.3 节。
stopTime
该变量定义见B.2.3.4 节。
syncTime
该变量定义见B.3.4.3 节。
transmitAllowed
该变量定义见B.2.3.4 节。

B.3.6.4 函数

empty(list)
该函数用于检查列表是否为空。当列表中没有元素排队时,该函数返回true。否则,返回false。
InsertInorder(sorted_list,inserted_element)该函数用于把某个元素插到已排序的列表中,并对插入后的列表进行排序。如果列表已满,那么该元素将被丢弃。列表的长度是变化的,它的最大值等于注册进程中给出的等待授权的最大个数。

IsBroadcast(grant)

该函数用于检查它所带的参数是否表示广播授权,即给多个ONU的授权。这取决于相应GATE消息的目的MAC地址。当MAC地址是全局分配的MAC控制地址时,该函数返回true,否则返回false。

PeekHead(sorted_list)
该函数用于检查已排序列表的内容。它返回列表头的元素,且不从列表中清除该元素。
Random(r)
该函数用于计算一个均匀分布于0和r之间的随机整数。该函数返回这个随机产生的整数。
RemoveHead(sorted_list)
该函数用于从已排序列表中清除头元素。该函数的返回值为被清除的元素。
TransmitFrame(DA,SA,Length/Type,data)
该函数定义见B.2.3.5 节。

B.3.6.5 定时器

gntStTmr
该定时器用于等待标识授权窗口开始的事件。
值:根据标识的授权开始时刻来动态设置定时器的值。

gntWinTmr
该定时器用于等待标识授权窗口结束的事件。
值:根据标识的授权长度来动态设置定时器的值。

gate_periodic_timer
要求OLT以小于gate_timeout的周期来产生GATE MPCPDU。在OLT强制产生一个GATE消息前,该定时器对剩余的时间进行倒计时。
mpcp_timer

该定时器定义见B.3.4.5 节。

mdDlyTmr
该定时器用于在发现窗口内测量随机时延。该时延用于在注册过程中事先减小发送重叠的概率,从而在PON中降低注册时间的期望值。
值:该随机值小于净发现窗口的大小减掉REGISTER_REQ MPCPDU帧大小,空闲周期和激光器的开启和关闭时延,前导大小和IFG大小。该定时器的值将根据客户端发来的参数动态设定。

B.3.6.6 消息

MA_CONTROL.request(DA,GATE,grant_number,start[4],length[4],force_report[4])该服务原语定义见B.3.4.6 节。

MA_CONTROL.indication(GATE,start,length,force_report,discovery,status)ONU端的GATE进程使用该服务原语将某个授权正在等待的消息通知MAC控制客户端和上层。当包含多个授权的一个单独的GATE消息到达时,将多次调用该原语。当授权激活时,在每个授权的开始和结束时刻同样产生该原语。该原语使用以下参数:
GATE: 表B. 1中定义的GATE MPCPDU操作码。

start: 授权的开始时刻。当状态位的值为非激活时,该参数不存在。
length: 授权的长度。当状态位的值为非激活时,该参数不存在。

force_report: 用于指示在该授权中是否发送REPORT消息的标志。当状态位的值为非激活时,该参数不存在。

discovery: 当授权用于发现进程时,该参数的值为true,否则为
false。当状态位的值为非激活时,该参数不存在。
status: 该参数为接收授权进程中的arrive值,当授权激活时,
该参数为激活(active),在授权结束时,该参数为非激活(deactive)。
Opcode-specific function(opcode)

从操作码相关的功能块中导出的函数,这些函数由相应的操作码所对应的MAC控制消息的到达而触发。

B.3.6.7 状态图

OLT端的GATE进程应该实现图B. 26所示的GATE处理状态图。ONU端的GATE进程应该实现图B. 27和图B. 28所示的GATE处理状态图。所有的多点MAC控制实体应执行图B. 26、图B. 27和图B. 28所示的状态机实例。

B.3.7.1 基本定义

MPCP PDU(MPCPDU)为基本的IEEE 802.3帧,这些帧不应该加上标记。MPCPDU结构如图B. 29所示,详细的定义如下:

a) 目的地址(DA):MPCPDU 中的DA 为MAC 控制组播地址,或者是MPCPDU 的目的端口关联的单独MAC 地址。
b) 源地址(SA):MPCPDU 中的SA 是和发送MPCPDU 的端口相关联的单独的MAC 地址。对于源于OLT 端的MPCPDU,源地址可以是任意一个单独MAC 的地址。如B.1.3 节的规定,所有这些MAC 可以共享一个单一的单播地址。
c) Length/Type:MPCPDU 都进行类型编码,并且承载MAC_Control_Type 域值。
d) Opcode:操作码指示所封装的特定MPCPDU。值的定义在表B. 1中。
e) Timestamp:在MPCPDU 发送时刻,时间戳域传递localTime 寄存器中的内容。该域长度为32 比特,对16 比特发送进行计数。时间戳计时步进值为16 比特。
f) Data/Reserved/PAD:这40 个八位字节用于MPCPDU 的有效载荷。当不使用这些字节时,在发送时填充为0,并在接收时忽略。
g) FCS:该域为帧校验序列,一般由下层MAC 产生。

根据用于产生特定的MPCPDU的MAC实体,RS子层将产生相应的LLID。

B.3.7.2 选通(GATE)描述

GATE消息的目的在于给ONU分配发送窗口,使得ONU可以进行发现消息的发送以及正常的数据发送。一个GATE消息可包括4个授权。为了将GATE消息作为MPCP从而使得OLT到ONU保持激活状态,授权的个数可以被设置为0。

GATE MPCPDU是通用MPCPDU的一个实例,如图B. 30所示,进一步定义如下:
a) Opcode:GATE MPCPDU 的操作码是00-02。
b) Flag:由一个8 比特标志(Flag)寄存器保存下列标志,如表B. 2所述。Number of grants标志域包含授权的个数,授权由有效长度以及该MPCPDU 中的开始时间组成。个数介于0到4 之间。注意:当Number of grants 设为0 时,那么该消息的唯一目的就是向ONU 传递时间戳。Discovery 标志域表明被标记的授权将用于发现进程,在这种情况下GATE 消息将发布一个单一的授权。Force Report 标志域请求ONU 发布REPORT 消息,而该消息和GATE中标明的相应发送机会的授权序号对应。
c) Grant #n Length。被标记的授权的长度,该域为16 比特无符号数。长度以16 比特时间计数。在GATE MPCPDU 中有可能封装4 个授权。长度包含laserOnTime、syncTime 以及laserOffTime,因此它们占用了Grant #n Length 的一部分。
d) Grant #n Start Time。授权的开始时刻,为32 比特无符号域。将开始时刻和本地时钟比较,从而校正授权的开始时刻。在同一个GATE MPCPDU 中连续的两个授权的发送值应该满足条件Grant #n Start Time<Grant #n+1 Start Time。
e) Sync Time。该值为16 比特无符号数,表示OLT 接收器同步所需的时间。在同步期间,ONU将发送IDLE 码字对。该值以16 比特时间为单位递增计数。给出的值包括所有接收器同步所需的时间,而这些接收器包括PMD,PMA,PCS。仅当该GATE 为发现GATE 时,该域才存在,否则该域不存在。是否为发现GATE 由Discovery 标志标识。
f) Pad/Reserved。当构建遵循规范的MPCP 协议实现时,该域是一个以比特0 填充的空域,在接收的时候被忽略掉。该域的大小取决于Grant #n Length 和Start Time,因此长度大小介于13 和39 之间。
GATE MPCPDU应由激活ONU的MAC控制实体产生,该MPCPDU应被标记为LLID的单播类型。而当ONU的MAC控制实体设置了Discovery flag,该MPCPDU应被标记为广播LLID。

B.3.7.3 REPORT描述

报告(REPORT)消息有几个功能。每个报告消息中的时间戳用于计算RTT。ONU在每个报告消息中指明针对每个802.1Q优先级队列所需的上行带宽。同时报告消息用于保持ONU到OLT的激活状态。为了保持OLT端的链路如B.3.4 节所规定,ONU将周期性地发布报告消息。此外OLT可以明确的请求一个报告消息。

报告MPCPDU是通用MPCPDU的一个实例,如图B. 31所示,具体定义如下:
a) 操作码(Opcode)。报告MPCPDU 的操作码是00-03。
b) 队列的数量(Number of Queue Sets)。该域具体说明报告消息中请求队列的个数。报告帧可以包括Number of Queue Sets 域中声明的第n 个队列(Queue #n)和报告位图(Report bitmap)组成的多个集合。
c) 报告位图(Report bitmap)。这是一个8 比特标志寄存器,指明哪些队列在ReportMPCPDU 中,如表B. 3所示。
d) Queue #n Report。该值表示在报告消息产生时刻队列n 的长度。根据必要的帧间隔以及FEC(如果FEC 使能)校验数据开销可适当调整该长度。该域为16 比特无符号整数,以时间量子(time_quantum)为单位。仅当报告位图的相应标志设置时,该域才有效。
e) Pad/Reserved。当构建遵循规范的MPCP 协议实现时,这是一个比特0 填充的空域,并且在接收的时候忽略掉。该域的大小取决于已使用的队列报告的条目数,因此长度大小介于0 和39 之间。REPORT MPCPDU由某个激活的ONU的MAC控制实体产生。该MPCPDU被标记为单播类型的LLID。


B.3.7.4 REGISTER_REQ描述

REGISTER_REQ MPCPDU是通用MPCPDU的一个实例,如图B. 32所示,具体定义如下:
a) Opcode。报告REGISTER_REQ 的操作码是00-04。
b) Flags。这是一个8 比特的标志寄存器,用以说明注册的具体要求,如表B. 4所示。
c) Pending grants。这是一个8 比特无符号值,表明ONU 被配置成可以缓存即将到达授权的最大数目。OLT 不应该将多于该数目的授权赋予ONU。等待授权的向量为{start,length,force_report,discovery}。
d) Pad/Reserved。当构建遵循规范的MPCP 协议实现时,这是一个以比特0 填充的空域,
并且在接收的时候被忽略掉。

REGISTER_REQ MPCPDU由某个未发现ONU的MAC控制实体产生。该MPCPDU被标记为广播类型的LLID。

B.3.7.5 REGISTER描述

REGISTER MPCPDU是通用MPCPDU的一个实例,如图B. 33所示,具体定义如下:
a) DA。目的地址应该是单独的MAC 地址。
b) Opcode。用于REGISTER MPCPDU 的操作码是00-05。
c) Assigned Port。该域为16 比特无符号的值,它反映注册后指配端口的LLID。
d) Flags。这是一个8 比特的标志寄存器,表示注册的特定需求,如表B. 5所示。
e) Sync Time。该域为16 比特无符号数,表明OLT 接收器同步所需的时间。在同步期间ONU 仅发送IDLE 码字对,以16 比特时间增量对该值进行计数。给出的值包括所有接收器的同步要求,其中包括PMD,PMA 以及PCS。
f) Echoed pending grants。该域为8 比特无符号数,表明ONU 在激活前可以缓存的即将到达授权的个数。OLT 不赋予ONU 多于该个数的授权。
g) Pad/Reserved。当构建遵循规范的MPCP 协议实现时,这是一个以比特0 填充的空域,并且在接收的时候被忽略掉。

REGISTER MPCPDU由对应于所有ONU的MAC控制实体产生,并被标记为广播LLID。

B.3.7.6 REGISTER_ACK描述

REGISTER_ACK是通用MPCPDU的一个实例,如图B. 34所示,具体定义如下:

a) Opcode。用于REGISTER_ACK MPCPDU 的操作码是00-06。
b) Flags。这是一个8 比特的标志寄存器,声明注册的特定需求,如表B. 6所示。
c) Echoed assigned port。该域为16 比特无符号数,它反映注册后指配端口的LLID。
d) Echoed Sync Time。这是一个16 比特无符号数,响应先前所通告的OLT 接收器所需同步时间。
e) Pad/Reserved。当构建遵循规范的MPCP 协议实现时,这是一个以比特0 填充的空域,在接收的时候被忽略掉。

REGISTER_ACK MPCPDU由对应于某个激活的ONU的MAC控制实体产生,该MPCPDU被标记为单播类型的LLID

<<上一节 下一节>>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.