10. 媒体无关层规范
10.1 概述
10.1.1 操作模式
时间感知系统包含最佳主时钟选择功能和同步功能。 这些功能包括特定于端口的方面以及与时间感知系统相关的方面。 这些函数分布在许多实体中,这些实体一起描述了兼容实现的行为。 这些功能由许多状态机指定。
时间感知系统的媒体无关层模型如图10-1所示。 它包括一个SiteSync实体,ClockMaster实体和ClockSlave实体,用于整个时间感知系统,以及每个端口的一个PortSync和一个MD实体。 MD实体执行媒体相关功能,这些功能在相应媒体的子句中描述。 除了实体之外,图10-1还显示了通过PortSyncSync,MDSyncSend和MDSyncReceive结构在实体之间流动的信息(分别参见10.2.2.3,10.2.2.1和10.2.2.2)。
SiteSync,ClockMaster,ClockSlave和PortSync实体每个都包含许多协作状态机,本节后面将对其进行描述(MD实体状态机在相应的媒体相关子句中进行了描述)。 ClockMaster实体通过应用程序接口从外部时间源(称为ClockSource实体(见9.2))接收信息,并将信息提供给SiteSync实体。 ClockSlave实体从SiteSync实体接收主时间同步和当前的主时间信息,并通过一个或多个应用服务接口将信息提供给外部应用程序,称为clockTarget实体(见9.3到9.6)。 SiteSync实体作为一个整体执行与时间感知系统相关联的最佳主时钟选择部分,即,它使用在每个端口上接收的最佳主信息来确定哪个端口已收到最佳信息,并更新所有端口的角色端口(有关端口角色的讨论,请参见10.3.1)。它还将SlavePort上接收的同步信息分发给角色为MasterPort的所有端口(见10.3.1)。 SlavePort的PortSync实体从相关链路另一端的时间感知系统接收最佳主选择信息,将其与当前最佳主信息进行比较,并将比较结果转发给站点同步实体。 SlavePort的PortSync实体还从与端口关联的MD实体接收时间同步信息,并将其转发到SiteSync实体。 MasterPort的PortSync实体将最佳主选择和时间同步信息发送到端口的MD实体,后者又发送相应的消息。
注 - 本章不要求连接到同一gPTP通信路径的时间感知系统的PortSync实体之间一一对应(见3.9),即可以将两个以上的时间感知系统连接到gPTP,使用共享介质并满足本条要求的通信路径。 但是,媒体相关章节可能有额外的要求,将gPTP通信路径限制为该媒体的点对点链路; 在这种情况下,每个链接都有两个PortSync实体,可以认为它们是一对一的对应关系。 其中一个例子是第11章中规定的全双工,点对点媒体相关层。此外,一个或多个gPTP通信路径可以在逻辑上是点对点但遍历相同的共享媒体。
LocalClock实体是一个自由运行的时钟(见3.3),它为时间感知系统提供相对于任意时期的公共时间。 时间感知系统包含LocalClock实体。 LocalClock实体的要求在B.1中指定。 所有时间戳都是相对于LocalClock实体获取的(见8.4.3)。 LocalClock实体还提供currentTime的值(见10.2.3.12),它在状态机中用于指定各种定时器。
注 - LocalClock实体的epoch可以是启用时间感知系统的时间。
10.2中描述了时间同步状态机。 最好的主时钟选择状态机在10.3中描述。 Announce消息的属性和格式在10.4和10.5中描述。 协议的时序特性在10.6中描述。
10.1.2 具有特级大师能力的时间感知系统
时间感知系统可能具有特级大师能力。时间感知系统可以可选地通过管理接口被配置为具有特级大师能力。
注意 - 虽然不支持特级大师的时间感知系统永远不能成为gPTP域的特级大师,但这样的时间感知系统包含最佳主选择功能,调用最佳主选择算法,并传递从当前特级大师接收到的同步信息。
10.2 时间同步状态机
10.2.1 概述
时间感知系统中的时间同步功能由许多协作状态机指定。 图10-2本身并不是状态机,但它说明了机器,它们之间的相互关系,用于在它们之间进行通信的主要变量和结构,它们的局部变量和性能参数。 图10-2包括本标准的媒体相关子句中描述的状态机,以说明这些状态机与本节中描述的与媒体无关的层状态机之间的相互关系。 图10-2没有显示第9章中描述的应用程序接口函数,也没有显示介质相关层和LLC之间的服务接口原语。
ClockMasterSyncReceive,ClockMasterSyncOffset和ClockMasterSyncSend状态机对于不支持超级主控的时间感知系统是可选的(见8.6.2.1和10.1.2)。 这些状态机可能存在于不具备大师能力的时间感知系统中; 但是,如果时间感知系统不支持超级主机,则SiteSyncSync状态机不会使用它们通过ClockMasterSyncSend状态机提供给SiteSyncSync状态机的任何信息。
图10-2中与媒体无关的图层状态机如下:
a) ClockMasterSyncReceive(每个时间感知系统一个实例):从ClockSource实体接收ClockSourceTime.invoke函数和LocalClock实体滴答的通知(见10.2.3.18),更新masterTime,并向ClockMasterSyncOffset和ClockMasterSyncSend状态机提供masterTime。对于不支持超级主控的时间感知系统,此状态机是可选的(参见8.6.2.1和10.1.2)。
b) ClockMasterSyncOffset(每个时间感知系统一个实例):从ClockSlave实体接收syncReceiptTime,从ClockMasterSyncReceive状态机接收masterTime,如果时间感知系统不是主控制器,则计算masterTime和syncReceiptTime之间的相位偏移和频率偏移,并提供ClockMasterSyncSend状态机的频率和相位偏移。对于不支持超级主控的时间感知系统,此状态机是可选的(参见8.6.2.1和10.1.2)。
c) ClockMasterSyncSend(每个时间感知系统一个实例):从ClockMasterSyncReceive状态机接收masterTime,从ClockMasterSyncOffset状态机接收masterTime和syncReceiptTime之间的相位和频率偏移,并提供masterTime(即同步时间)以及相位和频率使用PortSyncSync结构偏移到SiteSync实体。对于不支持超级主控的时间感知系统,此状态机是可选的(参见8.6.2.1和10.1.2)。
d) PortSyncSyncReceive(每个端口一个实例):从相应端口的MD实体接收时间同步信息,计算累积的rateRatio,计算syncReceiptTimeoutTime,并将信息发送到SiteSync实体。
e) SiteSyncSync(每个时间感知系统一个实例):从当前从端口的PortSync实体或从ClockMaster实体接收时间同步信息,累积rateRatio和syncReceiptTimeoutTime,并将信息发送到所有的PortSync实体。端口和ClockSlave实体。
f) PortSyncSyncSend(每个端口一个实例):从SiteSync实体接收时间同步信息,请求相应端口的MD实体发送时间同步事件消息,从MD实体接收此事件消息的 < s y n c E v e n t E g r e s s T i m e s t a m p > <syncEventEgressTimestamp> <syncEventEgressTimestamp> ,使用从SiteSync实体接收的最新时间同步信息和时间戳来计算MD实体在一般消息(例如,对于全双工IEEE 802.3媒体)或后续事件中发送的时间同步信息消息(例如,对于IEEE 802.11媒体),并将后一信息发送到MD实体。
g) ClockSlaveSync(每个时间感知系统一个实例):从SiteSync实体接收时间同步信息,计算clockSlaveTime和syncReceiptTime,设置syncReceiptLocalTime,GmTimeBaseIndicator,lastGmPhaseChange,lastGmFreqChange,将clockSlaveTime发送到ClockMaster实体,并向ClockTarget提供信息实体(通过ClockTargetPhaseDiscontinuity接口,见9.6)使该实体能够确定是否发生了相位或频率不连续。
10.2.2 状态机之间通信的数据结构
10.2.2.1 MDSyncSend
10.2.2.1.1 General
该结构包含当请求MD实体导致发送时间同步信息时由端口的PortSync实体发送到该端口的MD实体的信息。 该结构包含反映该时间用户系统接收的最新时间同步信息的信息,并用于确定时间同步事件消息的内容,并可能分离将由该端口发送的一般消息。
结构如下:
MDSyncSend {
followUpCorrectionField,
sourcePortIdentity,
logMessageInterval,
preciseOriginTimestamp,
upstreamTxTime,
rateRatio,
gmTimeBaseIndicator,
lastGmPhaseChange,
lastGmFreqChange
}
结构的成员定义如下。
10.2.2.1.2 followUpCorrectionField (ScaledNs)
followUpCorrectionField包含自grandmaster捕获preciseOriginTimestamp以来的累计时间。 这等于相对于特级大师在大师发送接收的时间同步事件消息的时间,截断到最接近的纳秒之间以及上游时间感知系统发送该事件消息的时间之间的经过时间。followUpCorrectionField等于此端口的PortSync实体最近收到的PortSyncSync结构的followUpCorrectionField成员的值(见10.2.2.3.4)。
10.2.2.1.3 sourcePortIdentity (PortIdentity)
sourcePortIdentity是此端口的portIdentity(参见8.5.2)。
10.2.2.1.4 logMessageInterval (Integer8)
logMessageInterval是此端口的currentLogSyncInterval的值(见10.6.2.3)。
10.2.2.1.5 preciseOriginTimestamp (Timestamp)
preciseOriginTimestamp是特级大师的ClockMaster实体的sourceTime,当主控发送接收到的时间同步信息时,会截断任何小数纳秒。 preciseOriginTimestamp是此端口的PortSync实体最近收到的PortSyncSync结构的preciseOriginTimestamp成员的值(见10.2.2.3.7)。
10.2.2.1.6 upstreamTxTime (UScaledNs)
upstreamTxTime是与接收时间同步信息相对应的 < s y