本博客(http://blog.csdn.net/livelylittlefish)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
http://www.ieee802.org/21/doctree/2006_Meeting_Docs/2006-11_meeting_docs/802.3ah-2004.pdf
64.2 Multi-point MAC Control operation
As depicted in Figure 64–3, the Multi-point MAC Control functional block comprises the following functions:
a) Multi-point Transmission Control. This block is responsible for synchronizing Multi-point MAC Control instances associated with the Multi-point MAC Control. This block maintains the Multipoint MAC Control state and controls the multiplexing functions of the instantiated MACs.
b) Multi-point MAC Control Instance n. This block is instantiated for each MAC and respective MAC and MAC Control clients associated with the Multi-point MAC Control. It holds all the variables and state associated with operating all MAC Control protocols for the instance.
c) Control Parser. This block is responsible for parsing MAC Control frames, and interfacing with Clause 31 entities, the opcode specific blocks, and the MAC Client.
d) Control Multiplexer. This block is responsible for selecting the source of the forwarded frames.
e) Clause 31 Annexes. This block holds MAC Control actions as defined in Clause 31 annexes for support of legacy and future services.
f) Discovery, Report and Gate Processing. These blocks are responsible for handling the MPCP in the context of the MAC.
如图64–3,多点MAC控制功能块包括如下功能:
a) 多点发送控制(Multi-point Transmission Control):该模块负责同步多点MAC 控制实例。它维护多点MAC 控制状态并控制多个实例化MAC 的复用功能。
b) 多点MAC 控制实例n(Multi-point MAC Control Instance n):该模块负责对每个MAC 以及与多点MAC 控制相关联的MAC 控制客户端进行实例化,它负责维护本实例中与操作各种MAC 控制协议有关的所有变量和状态。
c) 控制解析器(Control Parser):该模块负责对MAC 控制帧进行解析,并同IEEE 802.3 31章规定的实体、操作码定义块、MAC 客户端进行接口。
d) 控制复用器(Control Multiplexer):该模板负责选择转发帧的源。
e) MAC 控制:该模块负责表B. 1定义的MAC 控制行为,可支持传统业务和将来的新业务。
f) 发现、报告和选通处理(Discovery Processing,Report Processing,GATE Processing):这些模块负责处理MAC 上下文中的MPCP。
64.2.1 Principles of Multi-point MAC Control
As depicted in Figure 64–3, Multi-point MAC Control sublayer may instantiate multiple Multi-point MAC Control instances in order to interface multiple MAC and MAC Control clients above with multiple MACs below. A unique unicast MAC instance is used at the OLT to communicate with each ONU. The individual MAC instances utilize the point-to-point emulation service between the OLT and the ONU as defined in 65.1.
如图64-3所示,多点MAC控制子层可实例化多个多点MAC控制实体从而将上层的多个MAC控制客户端同下层的多个MAC进行接口。OLT在与每个ONU通信时均使用一个单播MAC实体。各个MAC实体在OLT和ONU间使用点到点仿真服务。
At the ONU, a single MAC instance is used to communicate with a MAC instance at the OLT. In that case, the Multi-point MAC Control contains only a single instance of the Control Parser/Multiplexer function.
ONU侧仅使用一个MAC实体来同OLT的一个MAC实体进行通信,在这种情况下,多点MAC控制只包含控制解析器/复用器功能的唯一实体。
Multi-point MAC Control protocol supports several MAC and client interfaces. Only a single MAC interface and Client interface is enabled for transmission at a time. There is a tight mapping between a MAC service interface and a Client service interface. In particular, the assertion of the ReceiveFrame interface in MAC j enables the indication interface of Client j. Conversely, the assertion of the request service interface in Client i enables the TransmitFrame interface of MAC i. Note that the Multi-Point MAC sublayer need not receive and transmit packets associated with the same interface at the same time. Thus the Multi-point MAC Control acts like multiple MAC Controls bound together with common elements.
MPCP支持多个MAC和客户端接口。任一时刻只有一个MAC接口和客户端接口允许发送。MAC服务接口和客户端服务接口间具有严格的映射关系。特定地,MACj 的接收帧(ReceiveFrame)接口设置为有效则将使能客户端j的指示接口。相应地,客户端i的请求服务接口设置为有效则将使能MACi的发送帧(TransmitFrame)接口。应注意:多点MAC子层不需要在同一个接口同时接收和发送帧,这样多点MAC控制就象将多个MAC控制绑定在同一个公共部分上。
The scheduling algorithm is implementation dependent, and is not specified for the case where multiple transmit requests happen at the same time.
调度算法与实现相关,对多个发送请求同时产生的情况没有定义具体的调度算法。
The reception operation is as follows. The Multi-point MAC Control instances generate ReceiveFrame function calls continuously to the underlying MAC instances. Since these MACs are receiving frames from a single PHY only one frame is passed from the MAC instances to Multi-point MAC Control. The MAC instance responding to the ReceiveFrame is referred to as the enabled MAC, and its service interface is referred to as the enabled MAC interface. The MAC passes to the Multi-point MAC Control sublayer all valid frames. Invalid frames, as specified in 3.4, are not passed to the Multi-point MAC Control sublayer in response to a ReceiveFrame function call.
接收操作如下:多点MAC控制实体向下层的MAC实体连续调用接收帧功能。由于这些MAC从同一个PHY接收帧,因而只有一个帧从MAC实体传递到多点MAC控制。响应接收帧的MAC实体称为使能MAC,其服务接口称为使能MAC接口。MAC把所有有效帧传递给多点MAC控制子层。在响应接收帧功能调用时,无效帧将不被传递给多点MAC控制子层。
The enabling of a transmit service interface is performed by the Multi-point MAC Control instance in collaboration with the Multi-Point Transmission Control. Frames generated in the MAC Control are given priority over MAC Client frames, in effect, prioritizing the MA_CONTROL primitive over the MA_DATA primitive, and for this purpose MA_DATA.request primitives may be delayed, discarded or modified in order to perform the requested MAC Control function. For the transmission of this frame, the Multi-point MAC Control instance enables forwarding by the MAC Control functions, but the MAC Client interface is not enabled. The reception of a frame in a MAC enables the ReceiveFrame interface of the MAC. Only one receive MAC interface will be enabled at any given time since there is only one PHY interface.
多点MAC控制实体与多点发送控制(Multi-point Transmission Control)共同完成对发送服务接口的使能操作。MAC控制产生的帧的优先级高于MAC客户端产生的帧,实际上,由MA_CONTROL原语的优先级高于MA_DATA原语,因此,为了执行所请求的MAC控制功能,MA_DATA.request原语可能会被延迟,丢弃或修改。为了发送MAC控制帧,多点MAC控制实体将使能MAC控制功能模块的转发功能,但不使能MAC客户端接口。接收帧时该MAC的接收帧接口将被使能。由于只有一个PHY接口,任意时刻只有一个MAC接收接口被使能。
The information of the enabled interfaces is stored in the controller state variables, and accessed by the Multiplexing Control block.
被使能接口的信息存储在控制器状态变量中,并由复用控制块访问。
The Multi-point MAC Control sublayer uses the services of the underlying MAC sublayer to exchange both data and control frames.
多点MAC控制子层使用下层的MAC子层的服务来交换数据和控制帧。
Receive operation at each instance:
a) A frame is received from the underlying MAC.
b) The frame is parsed according to Length/Type field
c) MAC Control frames are demultiplexed according to opcode and forwarded to the relevant processing functions
d) Data frames are forwarded to the MAC Client by asserting MA_DATA.indication primitives
每个实体的接收操作包括:
a) 从下层的MAC 接收帧;
b) 根据长度/类型域对帧进行解析;
c) 根据操作码对MAC 控制帧解复用并转发给相应的处理功能块;
d) 通过设置MA_DATA.indication 原语将数据帧转发给MAC 客户端。
Transmit operation at each instance:
a) The MAC Client signals a frame transmission by asserting MA_DATA.request, or
b) A protocol processing block attempts to issue a frame, as a result of a previous MA_CONTROL.request or as a result of an MPCP event that generates a frame.
c) When allowed to transmit by the Multi-Point Transmission Control block, the frame is forwarded.
每个实体的发送操作包括:
a) MAC 客户端通过设置MA_DATA.request 指示一个帧的发送;或者
b) 根据先前的MA_CONTROL.request 的结果或一个MPCP 产生帧事件的结果,协议处理模块将尝试发送一个帧;
c) 当多点发送控制块允许其发送时,该帧被转发。
64.2.1.1 Ranging and Timing Process(测距及定时过程)
Both the OLT and the ONU have 32-bit counters that increment every 16 ns. These counters provide a local time stamp. When either device transmits an MPCPDU, it maps its counter value into the timestamp field. The time of transmission of the first octet of the MPCPDU frame from the MAC Control to the MAC is taken as the reference time used for setting the timestamp value.
OLT和ONU都有每16ns增1的32位计数器。这些计数器提供一个本地时间戳。当OLT或ONU任一设备发送MPCPDU时,它将把计数器的值映射入时间戳域。从MAC控制发送给MAC的MPCPDU的第一个八位字节的发送时间被作为设定时间戳的参考时间。
When the ONU receives MPCPDUs, it sets its counter according to the value in the timestamp field in the received MPCPDU.
当ONU接收到MPCPDU时,将根据所接收的MPCPDU的时间戳域的值来设置其计数器。
When the OLT receives MPCPDUs, it uses the received timestamp value to calculate or verify a round trip time between the OLT and the ONU. The RTT is equal to the difference between the timer value and the value in the timestamp field. The calculated RTT is notified to the client via the MA_CONTROL.indication primitive. The client can use this RTT for the ranging process.
当OLT接收到MPCPDU时,将根据所接收到的时间戳来计算或校验OLT和ONU之间的往返时间。往返时间RTT等于定时器的值和接收到的时间戳之间的差。通过MA_CONTROL.indication原语将计算的RTT通知客户端。客户端的测距可利用该RTT来完成。
A condition of timestamp drift error occurs when the difference between OLT’s and ONU’s clocks exceeds some predefined threshold. This condition can be independently detected by the OLT or an ONU. The OLT detects this condition when an absolute difference between new and old RTT values measured for a given ONU exceeds the value of guardThresholdOLT (see 64.2.2.1), as shown in Figure 64–10. An ONU detects the timestamp drift error condition when absolute difference between a timestamp received in an MPCPDU and the localTime counter exceeds guardThresholdONU (see 64.2.2.1), as is shown in Figure 64–11.
当OLT和ONU的时钟差超过预定门限时,将产生时间戳漂移错误(timestamp drift error)。这个时间戳漂移错误的触发条件可由OLT或ONU独立地检测到。当OLT检测到某一ONU的新旧RTT值之绝对差超过OLT保护门限(guardThresholdOLT)时,OLT将检测到时间戳漂移错误的触发条件,如图64–10。当所接收的MPCPDU的时间戳和localTime计数器值之绝对差超过ONU保护门限(guardThresholdONU)时,ONU将检测到时间戳漂移错误的触发条件,如图64–11。
64.2.2 Multi-point transmission control, Control Parser, and Control Multiplexer
多点发送控制,控制解析器以及控制复用器
The purpose of the multi-point transmission control is to allow only one of the multiple MAC clients to transmit to its associated MAC and subsequently to the RS layer at one time by only asserting one transmitEnable signal at a time.
多点发送控制的目的是任意时刻只允许多个MAC客户端中的一个向所关联的MAC以及RS子层发送数据,这通过任意时刻只使能一个transmitEnable信号实现,如图64-5所示。
Multi-point MAC Control Instance n function block communicates with the Multi-Point Transmission Control using transmitEnable[n], transmitPending[n], and transmitInProgress[n] state variables (see Figure 64–3).
多点MAC 控制实体n 功能块使用transmitEnable[n],transmitPending[n],以及transmitInProgress[n]状态变量(如图64-3所示)与多点发送控制进行通信。
The Control Parser is responsible for opcode independent parsing of MAC frames in the reception path. By identifying MAC Control frames, demultiplexing into multiple entities for event handling is possible. Interfaces are provided to existing Clause 31 entities, functional blocks associated with MPCP, and the MAC Client.
控制解析器负责对接收通道上的MAC帧进行与操作码无关的解析。通过识别MAC控制帧,允许将其解复用到多个实体进行事件处理。同时,提供了与IEEE 802.3 31章规定的实体,MPCP相关联的功能块,以及MAC客户端的接口,如图B. 5所示。
The Control Multiplexer is responsible for forwarding frames from the MAC Control opcode-specific functions and the MAC Client to the MAC. Multiplexing is performed in the transmission direction. Given multiple MA_DATA.request primitives from the MAC Client, and MA_CONTROL.request primitives from the MAC Control Clients, a single TransmitFrame is generated for transmission. At the OLT, multiple MAC instances share the same Multi-point MAC Control, as a result, the transmit block is enabled based on an external control signal housed in Multi-Point Transmission Control for transmission overlap avoidance. At the ONU the Gate Processing functional block interfaces for upstream transmission administration.
控制复用器负责转发从MAC控制中与操作码相关的功能块及MAC客户端到MAC的帧。在发送方向进行复用处理。对于一个MAC客户端发来的MA_DATA.request原语,以及从MAC控制客户端发来的MA_CONTROL.request原语,将产生一个TransmitFrame用于发送。在OLT侧,多个MAC实体共享同一个多点MAC控制,因此为避免发送冲突,发送模块的使能要根据多点发送控制中的一个外部控制信号来进行。在ONU侧,GATE处理功能块提供上行发送管理接口。
64.2.2.1 Constants
defaultOverhead
This constant holds the size of packet transmission overhead. This overhead is measured in units of time quanta.
TYPE: integer
VALUE: 6
该常量为帧发送开销的大小,测量单位为时间量子(time-quantum)。
guardThresholdOLT
This constant holds the maximal amount of drift allowed for a timestamp received at the OLT. This value is measured in units of time_quantum (16 bit times).
TYPE: integer
VALUE: 8
该常量为OLT所接收的时间戳的最大允许漂移,测量单位为time_quantum(16比特时间)。
guardThresholdONU
This constant holds the maximal amount of drift allowed for a timestamp received at the ONU. This value is measured in units of time_quantum (16 bit times)
TYPE: integer
VALUE: 12
该常量为ONU所接收的时间戳的最大允许漂移,测量单位为time_quantum(16比特时间)。
MAC_Control_type
The value of the Length/Type field as defined in Clause 31.4.1.3.
TYPE: integer
VALUE: 0x8808
该常量为类型/长度域值。
tailGuard
This constant holds the value used to reserve space at the end of the upstream transmission at the ONU in addition to the size of last MAC service data unit (m_sdu) in units of octets. Space is reserved for the MAC overheads including: preamble, SFD, DA, SA, Length/Type, FCS, and the End of Packet Delimiter (EPD). The sizes of the above listed MAC overhead items are described in Clause 3.1.1. The size of the EPD is described in Clause 36.2.4.14.
TYPE: integer
VALUE: 29
该常量值指示ONU在发送上行数据的末尾所预留的空间,不包括最后的MAC服务数据单元(m_sdu),单位为八位字节。为MAC开销预留的空间包括:前导,SFD,DA,SA,长度/类型域,FCS以及帧结束定界符(EPD)。
time_quantum
The unit of time_quantum is used by all mechanisms synchronized to the advancement of the localTime variable. All variables that represent counters and time intervals are defined using time_quantum. Each time_quantum is equal 16ns.
TYPE: integer
VALUE: 16
所有与localTime变量的增量同步的机制都使用时间量子(time_quantum)为单位。表示计数器和时间间隔的所有变量都用时间量子(time_quantum)单位定义。一个time_quantum等于16ns。
tqSize
This constant represents time_quantum in octet transmission times.
TYPE: integer
VALUE: 2
该常量表示用八位字节发送次数表示的时间量子(time_quantum)。
64.2.2.2 Counters
localTime
This variable holds the value of the local timer used to control MPCP operation. This variable is advanced by a timer at 62.5MHz, and counts in time_quanta. At the OLT the counter shall track the transmit clock, while at the ONU the counter shall track the receive clock. For accuracy of receive clock see 65.3.1.2. It is reloaded with the received timestamp value (from the OLT) by the Control Parser (see Figure 64–11). Changing the value of this variable while running using Layer Management is highly undesirable and is unspecified.
TYPE: 32 bit unsigned
该变量值为控制MPCP操作所需的本地定时器值。该变量根据62.5MHz的定时器进行增1,同时以时间量子(time_quantum)计数。在OLT侧,计数器将跟踪发送时钟,同时在ONU侧,计数器将跟踪接收时钟。每当从OLT接收到时间戳,控制解析器通过重载入接收到的时间戳得到localTime。在运行时不应要求通过层管理改变该变量,本标准对这种处理不做规定。
64.2.2.3 Variables
BEGIN
This variable is used when initiating operation of the functional block state machine. It is set to true following initialization and every reset.
TYPE: Boolean
该变量用于初始化功能块状态机。在初始化以及每次复位后,该值被设置为真(true)。
data_rx
This variable represents a 0-based bit array corresponding to the payload of a received MPCPDU. This variable is used to parse incoming MPCPDU frames.
TYPE: bit array
该变量表示为一个以0为基的比特序列,它对应于接收到的MPCPDU的净荷。该变量用于解析接收到的MPCPDU帧。
data_tx
This variable represents a 0-based bit array corresponding to the payload of an MPCPDU being transmitted. This variable is used to access payload of outgoing MPCPDU frames, for example to set the timestamp value.
TYPE: bit array
该变量表示为一个以0为基的比特序列,它对应于正被发送的MPCPDU的净荷。该变量用于访问发送MPCPDU帧中的净荷,例如用于设置时间戳值。
fecEnabled
This variable represents whether the FEC function is enabled. If FEC function is enabled, this variable equals true, otherwise it equals false.
TYPE: Boolean
该变量表示FEC功能是否被使能。如果FEC功能被使能,那么该变量为真(true),否则为假(false)。
newRTT
This variable temporary holds a newly-measured Round Trip Time to the ONU. The new RTT value is represented in units of time_quanta.
TYPE: 16 bit unsigned
该变量用于暂时保存新测量到的ONU往返时间RTT。该新RTT值的单位为时间量子time_quantum)。
nextTxTime
This variable represents a total transmission time of next packet and is used to check whether the next packet fits in the remainder of ONU’s transmission window. The value of nextTxTime includes packet transmission time, tailGuard defined in 64.2.2.1, and FEC parity data overhead, if FEC is enabled. This variable is measured in units of time quanta.
TYPE: 16 bit unsigned
该变量表示下一个帧的全部发送时间,同时也用于检查下一个帧是否在ONU余下的发送窗口中。NextTxTime包括帧发送时间和tailGuard,如果FEC被使能则还包括FEC奇偶校验数据开销。该变量测量单位为时量子(time_quantum)。
opcode_rx
This variable holds an opcode of the last received MPCPDU.
TYPE: 16 bit unsigned
该变量保存上一个接收到的MPCPDU操作码。
opcode_tx
This variable holds an opcode of an outgoing MPCPDU.
TYPE: 16 bit unsigned
该变量保存正在发送的MPCPDU操作码。
packet_initiate_delay
This variable is used to set the time-out interval for packet_initiate_timer defined in 64.2.2.5. The packet_initiate_delay value is represented in units of time_quanta.
TYPE: 16 bit unsigned
该变量用于设置packet_initiate_timer 的超时时间间隔。该变量的单位为量子时间(time_quantum)。
RTT
This variable holds the measured Round Trip Time to the ONU. The RTT value is represented in units of time_quanta.
TYPE: 16 bit unsigned
该变量为所测量的到ONU的往返时间。RTT值的单位为量子时间(time_quantum)。
stopTime
This variable holds the value of the localTime counter corresponding to the end of the nearest grant. This value is set by the Gate Processing function as described in 64.3.5.
TYPE: 32 bit unsigned
该变量保存对应于最近一个授权(grant)末尾的localTime计数器值。该变量的值由GATE处理功能设置。
timestamp
This variable holds the value of timestamp of the last received MPCPDU frame.
TYPE: 32 bit unsigned
该变量保存上一个接收到的MPCPDU帧的时间戳值。
timestampDrift
This variable is used to indicate whether an error is signaled as a result of uncorrectable timestamp drift.
TYPE: boolean
当出现不可纠正的时间戳漂移时,该变量用于表示是否要产生一个错误。
transmitAllowed
This variable is used to control PDU transmission at the ONU. It is set to true when the transmit path is enabled, and is set to false when the transmit path is being shut down. transmitAllowed changes its value according to the state of the Gate Processing functional block.
TYPE: Boolean
该变量用于在ONU侧控制PDU发送。当发送通道被使能时,该变量被设置为true,当发送路径被关断时,该变量被设置为false。根据GATE处理功能块的状态来改变该变量的值。
transmitEnable[j]
These variables are used to control the transmit path in a Multi-point MAC Control instance at the OLT. Setting them to on indicates that the selected instance is permitted to transmit a frame. Setting it to off inhibits the transmission of frames in the selected instance. Only one of transmitEnable[j] should be set to on at a time.
TYPE: Boolean
这些变量用于控制OLT侧的多点MAC控制实例中的发送通道。将其设置为on,表示允许所选择的实例发送帧。将其设置为off,将禁止所选择的实例发送帧。任意时刻,只有一个 transmitEnable可以被设置为on。
transmitInProgress[j]
This variable indicates that the Multi-point MAC Control instance j is in a process of transmitting a frame.
TYPE: boolean
该变量表示多点MAC控制实例j正在发送一个帧。
transmitPending[j]
This variable indicates that the Multi-point MAC Control instance j is ready to transmit a frame.
TYPE: boolean
该变量表示多点MAC控制实例j准备发送一个帧。
64.2.2.4 Functions
abs(n)
This function returns the absolute value of the parameter n.
该函数返回参数n的绝对值。
Opcode-specific function(opcode)
Functions exported from opcode specific blocks that are invoked on the arrival of a MAC Control message of the appropriate opcode.
该函数从操作码相关的功能块中导出,并由相应的操作码所对应的MAC控制消息的到达而触发。
FEC_Overhead(length)
This function calculates the size of additional overhead to be added by the FEC encoder while encoding a frame of size length. Parameter length represents the size of an entire frame including preamble, SFD, DA, SA, Length/Type, and FCS. As specified in 65.2.3, FEC encoder adds 16 parity octets for each block of 239 data octets. Additionally, 26 codegroups are required to accommodate IPG and longer start-of-frame and end-of-frame sequences, which are used to allow reliable packet boundary detection in presence of high bit error ratio. The function returns the value of FEC overhead in units of time quanta. The following formula is used to calculate the overhead:
当对长度为length的帧进行编码时,该函数计算FEC编码器所加入的额外开销大小。参数length表示整个帧的大小,包括前导,SFD,DA,SA,长度/类型域以及FCS。FEC编码器对每239个八位字节的数据块要增加16个奇偶校验字节。此外,为了在高误比特率下实现可靠的帧边界检测,还需要26个码组来容纳IPG以及更长的帧起始和帧结束序列。本函数返回以时间量子(time_quantum)为单位的FEC开销大小。下列公式用来计算开销:
NOTE–The notation éxù represents a ceiling function, which returns the value of its argument x rounded up to the nearest integer.
ReceiveFrame(DA, SA, Length/Type, data)
The MAC Sublayer function that is called to receive a frame with the specified parameters.
该MAC子层函数根据特定的参数来接收帧。
select
This function selects the next Multi-point MAC Control instance allowed to initiate transmission of a frame. The function returns an index to the transmitPending array for which the value is not false. The selection criteria in the presence of multiple active elements in the list is implementation dependent.
该函数选择下一个允许发送操作的多点MAC控制实例。它返回transmitPending阵列的索引,该索引所指的值不能是false。如果阵列中同时有多个活动项,则选择原则取决于具体的实现。
SelectFrame()
This function enables the interface, which has a pending frame. If multiple interfaces have frames waiting at the same time, only one interface will be enabled. The selection criteria is not specified, except for the case when some of the pending frames have Length/Type =MAC_Control. In this case, one of the interfaces with a pending MAC Control frame shall be enabled.
该函数使能具有等待帧的接口。如果多个接口同时有帧在等待,那么只有一个接口被使能。如果一些接口中等待帧的类型/长度域为MAC_Control类型,那么这些接口中的一个将被使能。对于其它情况, 选择原则不做规定。
sizeof(sdu)
This function returns the size of the sdu in octets.
该函数返回以八位字节为单位的sdu大小。
transmissionPending()
This function returns true if any of the Multi-point MAC Control instances has a frame waiting to be transmitted. The function can be represented as
只要有一个多点MAC控制实例有帧等待发送,那么该函数返回真。该函数可表示为
transmissionPending() = transmitPending[0] +
transmitPending[1] +
... +
transmitPending[n-1]
where n is the total number of Multi-point MAC Control instances.
其中n为多点MAC控制实例的总数。
TransmitFrame(DA, SA, Length/Type, data)
The MAC Sublayer function that is called to transmit a frame with the specified parameters.
该MAC子层函数根据指定参数来发送帧。
64.2.2.5 Timers
packet_initiate_timer
This timer is used to delay frame transmission from MAC Control to avoid variable MAC delay while MAC enforces IPG after a previous frame. In addition, when FEC is enabled, this timer increases interframe spacing just enough to accommodate the extra parity data to be added by the FEC encoder.
该定时器用来延缓MAC控制帧的发送,以避免MAC延迟发生变化。同时,MAC在上一个帧后强制加入IPG。如果FEC被使能,该定时器将增加足够的帧间隔来容纳FEC编码器所增加的额外的奇偶校验数据。
64.2.2.6 Messages
MA_DATA.indication(DA, SA, m_sdu, receiveStatus)
The service primitive is defined in 2.3.2.
64.2.2.7 State Diagrams
The Multi-point transmission control function in the OLT shall implement state diagram shown in Figure 64–9. Control parser function in the OLT shall implement state diagram shown in Figure 64–10. Control parser function in the ONU shall implement state diagram shown in Figure 64–11. Control multiplexer function in the OLT shall implement state diagram shown in Figure 64–12. Control multiplexer function in the ONU shall implement state diagram shown in Figure 64–13.
OLT的多点发送控制功能应实现图64–9所示的状态图。OLT的控制解析器功能应实现图64–10所示的状态图。ONU的控制解析器功能应实现图64–11的状态图。OLT的控制复用器功能应实现图64–12所示的状态图。ONU的控制复用器功能应实现图64–13所示的状态图。
注:操作码相关的操作由MAC控制子层以并行进程发起,而不是作为一个同步函数发起。一般的MAC控制接收状态机(如图示)不会因操作码相关函数的调用而被隐式中断。
http://www.ieee802.org/21/doctree/2006_Meeting_Docs/2006-11_meeting_docs/802.3ah-2004.pdf