用于处理精确时间协议的方法和网络节点的制作方法
【专利摘要】在数据网络节点中实现精确时间协议,将低接触PTP分组处理功能从PTP处理单元移到高效网络处理器。因此示例网络节点包含时间传输协议处理单元,其生成用于时间传输协议的协商消息和管理消息并且将所述协商消息和管理消息转发到一个或多个客户端。网络节点也包含单独的网络处理器单元,适应于:从时间传输协议处理单元接收配置消息,配置消息包括用于第一类型的重复的时间传输消息的流配置数据;使用流配置数据,根据第一类型的重复的时间传输消息生成多个时间传输消息;并且经由一个或多个线路端口,将所述多个时间传输消息转发到一个或多个远程网络节点。
【专利说明】用于处理精确时间协议的方法和网络节点
【背景技术】
[0001]本发明通常涉及用于同步计算机网络中的时钟的系统,并且更特别地涉及用于改进网络节点(它将时间传输协议服务提供到其它网络节点)中的时间传输处理能力的技术。
[0002]如在标题为“连网测量和控制系统的精确时钟同步协议标准(Stardard for aPrecis1n Clock Synchronizat1n Protocol for Networked Measurement and ControlSystems)"的IEEE-1588-2008标准中定义的,精确时间协议(PTP)允许在数据分组网络上的时钟的精确同步。简言之,PTP用于将“大师(grandmaster)”时钟的精确的一天中的时间分配到从时钟。这通过使用PTP分组(它包含内部携带的时间戳)的交换来完成。从时钟调整这些时间戳来考虑端到端的延迟,并且在一些情况下可以获得对准到具有亚微秒精确的大师的本地的一天中的时间。
[0003]IEEE 1588标准描述用于时钟分配的分层的主从架构。在此架构中,“普通时钟”是具有单个网络连接的装置。普通时钟可以是同步参考的来源(在这种情况下它被称为“主(master)”)。备选地,普通时钟可以是同步参考的目的地(在这种情况下它被称为“从(slave)”)。与此相反,“边界时钟(boundary clock)”具有多个网络连接并且可以将同步从一个网络段传输到另一个。系统中的根定时参考称为“大师”。大师将同步信息传送到驻留在其网络段上的从时钟。这些从时钟可包含一个或多个边界时钟,然后边界时钟可以将同步的时间传输到其它时钟(对其而言,边界时钟用作主)。
[0004]虽然通常使用组播发消息来发送PTP消息,但是IEEE 1588-2008包含规范来允许主时钟以逐端口为基础而协商单播传送。普通和边界时钟所使用的PTP消息包含
De I ay_Re q、Fo 11 ow_Up热Delay—Resp消息,它们用于跨过网络传输时间相关信息。所谓的“透明时钟”使用附加的消息类型来为传输的一天中的时间的改进的校正测量跨过网络的延迟。这些包含和消息。在所谓的“最佳主时钟算法”(BMCA)中使用消息来确定网络中的主从层次的配置,并且选择大师。特别地,在IEEE1588-2008中,最佳主时钟算法使用消息来建立时钟层次并且选择大师。附加的管理和信令消息用于配置并且维持PTP系统。
[0005]一些PTP消息类型是时间关键的,因为它们必须在传送或接收上被准确地定时间戳。被称作“事件(event)”消息并且通常多次重复的这些消息包含
PDelay_Req取PDeleiy—Resp消息。其它非时间关键的PTP消息被称作“一般”消息。这些包含 Aimounc e、Fb 11 ow_ Up > Delay_Resp > PDelay_Resp_Follow_ Up 消息、以及管理和信令消肩、O
[0006]PTP边界时钟(BC)的每个主端口可要求将服务提供到多个从客户端。PTP主端口可以支持的客户端的总数量受限于运行用于PTP端口的PTP协议栈的处理器的计算能力。如果使用到和来自每个从的单播传输,则尤其如此。因此,需要改进的技术来在边界时钟中实现PTP。
【发明内容】
[0007]在本发明的若干实施例中,通过将PTP边界时钟主端口的更高速率、更低接触的PTP分组处理功能从PTP协议引擎移到网络处理器来更充分地开发网络处理器的高效分组处理能力。这样做可以减少95%那样多的通用处理器的负荷,因此显著改进边界时钟的扇出(fan-out)能力。低接触功能包含重复的、高速率消息生成功能,例如,Sync和Delay_Resp消息的生成。高接触功能包含由PTP主端口功能执行的更高级别的、较不频繁执行的任务(例如,单播协商、管理消息的生成和处理等)。通过将低接触功能移到高效网络处理单元,可以显著减少在PTP处理器上的处理负载。
[0008]在具有时间传输协议处理单元和由与时间传输协议单元分开的硬件资源组成的网络处理器单元的网络节点中,实现根据本发明的若干实施例的示例方法。使用时间传输协议处理单元来生成用于时间传输协议的协商消息和管理消息,并且将协商消息和管理消息转发到一个或多个远程网络节点。使用网络处理器单元来对从一个或多个线路端口接收的并且在一个或多个背板端口上传送的数据分组以及从一个或多个背板端口接收的并且在一个或多个线路端口上传送的数据分组执行路由或交换操作,其中数据分组不包含时间传输协议时间戳数据。将配置消息从时间传输协议处理单元传输到网络处理器单元,配置消息包括用于第一类型的重复的时间传输消息的流配置数据。网络处理器单元使用流配置数据根据第一类型的重复的时间传输消息来生成多个时间传输消息,并且经由一个或多个线路端口将时间传输消息转发到一个或多个远程网络节点。
[0009]本发明的实施例还包含对应于以上总结的方法的设备。因此,示例网络节点包含时间传输协议处理单元,适应于生成用于时间传输协议的协商消息和管理消息并且将所述协商消息和管理消息转发到一个或多个远程网络节点。网络节点还包含由与时间传输协议处理单元分开的硬件资源组成的网络处理器单元。网络处理器单元适应于:对从一个或多个线路端口接收的并且在一个或多个背板端口上传送的第一数据分组以及从一个或多个背板端口接收的并且在一个或多个线路端口上传送的第二数据分组执行路由操作、或交换操作、或两者,其中第一和第二数据分组不包含时间传输协议时间戳数据;从时间传输协议处理单元接收配置消息,配置消息包括用于第一类型的重复的时间传输消息的流配置数据;使用流配置数据根据第一类型的重复的时间传输消息来生成多个时间传输消息;以及经由一个或多个线路端口,将所述多个时间传输消息转发到一个或多个远程网络节点。
[0010]在根据以上总结的设备和方法的若干实施例中,配置消息包含对应于一个或多个附加类型的重复的时间传输消息的附加的流配置数据。这些实施例中的网络处理器单元进一步适应于生成一个或多个附加的类型中的每个的附加的时间传输消息并且将该附加的时间传输消息转发到一个或多个远程网络节点。
[0011]在一些实施例中,时间传输协议符合由IEEE标准1588-2008规定的精确时钟同步协议。在这些实施例的一些中,第一类型的时间传输消息是由IEEE标准1588-2008规定的以下类型中的一个-Announce消息.,Sync消息.J7OIlow_Up消息Iay_Resp消息。
[0012]在若干实施例中,网络处理器单元适应于通过将递增的序列标识符插入到时间传输消息的连续消息来生成第一类型的多个时间传输消息。在这些实施例中的一些中,第一类型的时间传输消息每个包括从流配置数据复制并且由网络处理器单元保持不变的时间传输协议字段。在各实例中,时间传输协议字段是时钟质量字段、优先级字段、以及通用时间偏移字段中的一个。
[0013]当然,本发明不限于以上总结的特征和优势。实际上,本领域技术人员将在阅读以下的详细描述、以及观看附图后认识到附加的特征和优势。
【专利附图】
【附图说明】
[0014]图1是图示配置为支持精确时间协议的数据网络节点的一些部件的框图。
[0015]图2A、图 2B 以及图 2C 图不 PTP Announce、Sync 取 Follow_Up、认及 Delay_Resp消息的正常处理。
[0016]图3是图示具有卸载的主端口功能的数据网络节点的一些部件的框图。
[0017]图4A、图4B以及图4C图示使用卸载的主端口功能的PTP Announce、Sync和Follow—吻、以及Delay_Resp消息的处理。
[0018]图5图示用于PTP卸载的示例控制结构。
[0019]图6是图示用于在具有时间传输协议处理单元和网络处理器单元的网络节点中支持时间传输协议的示例方法的过程流程图。
[0020]图7图示用于处理和Sync消息的示例技术。
[0021]图8图示用于处理沖770#_吻消息的示例技术。
[0022]图9示出用于处理消息的示例技术。
[0023]图10图示用于生成重复的和Sync消息的过程。
【具体实施方式】
[0024]现在在下文中将参考附图(其中示出本发明的实施例的示例)来更完整地描述本发明。然而,本发明可在许多不同的形式中实现并且不应解释为受限于本文阐述的实施例。也应该注意的是这些实施例不是互相排斥的。因此,来自一个实施例的部件或特征可假设为在另一实施例中存在或使用,其中这样的包含是合适的。
[0025]只为了图示和解释的目的,本文在使用精确时间协议(PTP)的网络节点的上下文中描述本发明的若干实施例。然而,将理解的是本发明不限于这样的实施例并且可连同其它时间传输协议来实现,无论那些协议是否与IEEE 1588-2008标准有关。
[0026]PTP边界时钟(BC)的每个主端口可要求将服务提供到多个从客户端。PTP主端口可以支持的客户端的总数量受限于运行用于PTP端口的PTP协议栈的处理器的计算能力,尤其是在使用到和来自每个从的单播传输的情况下。一般来说,主端口要求近似17Dhrystone MIPS (DMIPS)的处理能力来将服务提供到单个PTP单播。因此,例如,假设300MHz MPC8260 Power QUICC 1133个单播客户端将使处理器饱和。在典型的系统中,此处理器将具有其它任务,包含也会消耗中央处理单元(CPU)周期的开销任务。更进一步,应该注意到此分析假设具有64/16的SynC/Delay_Req速率的单步通信。对于两步硬件,或对于增加的SynC/Delay_Req速率,CPU利用率会增加,它将更进一步减少所支持的客户端的数量。
[0027]当用于电信环境中的同步时,单播客户端装置扇出对于边界时钟是重要的。一般来说,随着扇出改进,要求更少的边界时钟。因此,增加边界时钟中的PTP协议栈的单个实例可以服务的客户端的数量是有益的。
[0028]现在转向图,图1图示包含PTP边界时钟功能的数据网络节点100的示例。如图1所示,具有PTP边界时钟能力的常规网络装置典型地包括四个主要组件:PTP硬件处理引擎110、PTP处理器单元(PPU) 120、网络处理器单元(NPU) 130、以及传送(TX)时间戳FIFO单元140。
[0029]PTP硬件处理引擎110用于对进来的和外出的PTP事件消息分类并且定时间戳。它包含PTP定时间戳器112,它将感兴趣的PTP分组(进来的和外出的两者)识别到网络节点100,并且对它们定时间戳。PTP定时间戳器112不对其它分组(无论是与PTP不相关的分组还是要送往其它节点的PTP消息)定时间戳。在进来的方向中(即,对于在网络节点100处接收的那些分组),时间戳通常记在消息中。在传送方向中(即,对于外出的分组),时间戳典型地与PTP消息标识符一起被推送到FIFO 140。例如,这样做是用于由作为PTP主起作用的端口发送的两步消息,以及用于由作为PTP从起作用的端口发送的消息,以及也用于作为透明时钟起作用的节点中的PDelay_Req、PDelay_Resp、和PDelay_Resp_Follow_Up消息。伴随时间戳的PTP消息标识符可以是PTP消息中的若干字段的组合,它们可以用于唯一识别对应的PTP消息。
[0030]PTP硬件处理引擎110还可包含入口早期业务成形和转发硬件引擎114、以及出口原始分组注入引擎116。然而,在一些实施例中,这些功能单元可包含在NPU 130中。入口早期业务成形和转发引擎114主要用于允许感兴趣的PTP消息被重定向到PPU 120,相对于非PTP相关的分组到用于正常业务处理的NPU 130的常规转发。另一方面,如果入口早期业务成形和转发功能驻留在NPU 130上,则它用来拦截PTP消息用于到PPU 120的重定向。入口早期业务成形和转发引擎114是位于PTP硬件处理引擎110中还是位于NPU 130中是实现选择。出口原始分组注入单元116用于将分组注入到不同的线路端口,并且可包含排队机制。像入口早期业务成形和转发硬件引擎114 一样,出口原始分组注入单元116也可驻留在NPU 130上。
[0031]PPU 120通常使用通用处理器和对应软件来实现,并且执行PTP协议(在图1中描绘的系统中,它实现为PTP栈121)。如前面指出的,在传统的实现中,如图1中图示的,PTP协议可以是非常CPU密集的。
[0032]通常来说,PTP栈121利用协议定义的操作来处理PTP客户端请求和/或响应回客户端。如图1所示,PTP栈121中有若干子部件。首先,PTP时钟配置管理功能122提供基本的PTP时钟和端口配置控制。PTP端口状态机123是维持PTP端口的运行时间状态机。PTP本地BMCA功能125为由PTP栈121覆盖的PTP端口提供PTP定义的最佳主时钟算法。PTP从端口功能126接收来自远程主端口的用于时间同步的服务。PTP杂项功能124覆盖杂项功能,例如,处理统计并且监视整个系统。最后,PTP栈121包含PTP主端口功能127,它将服务提供到远程客户端来传递PTP消息,它包含Announce、S_ync (和两步情况中的Follow—Up)、认RDelay_Resp (如果客户端使用Delay_Req\ PTP主端口功能127也提供一些管理和信令功能(例如,单播协商)。
[0033]上述的四种类型的PTP消息具有以下特性。第一,它们大部分是重复的操作,在每个循环中具有微小差别。即,它们要求非常低的逻辑处理。第二,它们是非常“爱闲聊的(chatty)”,即以非常高的速率发生,因为对于每个客户端每秒必须以及时方式传递数百个消息(取决于客户端请求)。另外,这些消息的重复时期的精确需要处于单个位的毫秒级别以及高的置信度。对于完全单播模型,估计这四种类型的消息的传递消耗多于95%的总主端口功能CPU消耗。为了简化后续描述,本文将这四种类型的消息称为PTP事件相关消息(PERM)。然而,此术语不应与术语“事件消息”(在PTP标准中它具有更窄的意义)混淆。
[0034]NPU 130的主要目的是支持非PTP相关的路由/交换网络功能,它们包含入口分组处理132和出口分组处理134。这些功能要求非常高的带宽来维持网络节点100的高吞吐量。因此,NPU 130的大容量集中于较不“智能”的任务,每个可以用相对少的操作来执行。
[0035]如由存储在NPU 130中的配置数据规定的,入口分组处理单元132从网络接收“常规”分组,并且将它们转发到背板端口或在本地(即,到出口分组处理单元134)。如前面指出的,在一些实施例中,入口分组处理单元132可包含入口早期业务成形和转发单元114。
[0036]出口分组处理单元134从背板端口或在本地(即,从入口分组处理单元132)接收常规分组并且将分组发送到线路端口用于到其它网络节点的传送。如前面指出的,在一些实施例中,出口分组处理单元134可包含出口原始分组注入单元116。
[0037]硬件FIFO 140用于携带用于传送的PTP事件消息的时间戳。这些时间戳允许PPU120精确地确定何时发送给定PTP消息。注意到FIFO中的时间戳记录不只包含时间戳自身,还包含PTP消息标识符(在一些实施例中,它可能被散列)来唯一识别给定的时间戳所对应的发送分组。此标识符可包含但不限于:PTP内部流ID ;消息类型;序列ID ;和/或传输ID (例如,IP地址和VLAN标签)。
[0038]图2Α、图2Β和图2C图示服务从客户端210的作为PTP主端口起作用的网络节点100中的PTP消息的正常处理。更特别地,图2Α图示消息的处理。如图中可以看到的(图中省略非PTP相关的分组处理的任何图示),过程开始于从客户端210与PTP主端口功能127之间的单播协商,PTP主端口功能127驻留在PPU 120 (参见图1)中。然后,主端口功能127生成一系列消息并且将它们发送到从客户端210。此过程持续了多达几十分钟,以高达每秒几百个消息的速率,直到协商的时期结束。例如,在电信环境中,典型的每个从客户端速率是用于X/wowflce消息的每秒8个消息、用于热FoI1wJJp消息的每秒64个消息、以及用于取Delay_Resp消息的每秒16个消息。最大速率可以高于这些,并且随着标准发展受到改变。在大多数情况中,此过程是重复的。
[0039]每个Announce消息从主端口功能127传到NPU 130中的出口分组处理单元134。在最终被中继到从客户端210之前,它被从出口分组处理单元134传到PTP定时间戳器112。
[0040]图2B图示用于消息的处理的类似过程,Sync消息是时间关键的事件消息。如如消息的情况那样,对于持续多达几十分钟的时期,每分钟可发送几百个消息。然而,利用消息,由PPU 120的附加的处理可能是必要的,因为在两步模式中定时间戳器112对每个消息定时间戳,并且时间戳被经由FIFO 140而发送回主端口功能127用于处理。
[0041]在图2B中也示出一系列吻消息。这些只用在两步模式中,并且携带用于较早发送的Sync消息中的对应消息的时间戳。在单步模式中,精确的时间戳被插入到Sync消息自身并且不需要follow-up消息。
[0042]图2C图示用于消息的处理的过程,消息也是时间关键的事件消息。在接收时由PTP定时间戳器112对每个消息定时间戳。通过比较用于接收的时间戳与用于由从客户端210包姚Delay—Req消息中的用于传送的时间戳,PTP主端口功能127使用时间戳来计算从到主时差。PTP主端口功能127生MDelay_ReSp消息,并且经由NPU 130中的出口分组处理单元134和PTP硬件处理引擎110将它转发到从客户端 210。
[0043]如图2A、图2B和图2C中可以看到的,PTP处理器120处理、或“接触”与主端口相关的每个PTP消息。由于大量消息和高重复率,此处理是PTP处理器120上的总处理负载的主要成分。
[0044]很多网络节点(例如,高性能路由器和交换机)利用为每个分组提供高效、低接触处理的网络处理器。这些网络处理器被专门建造来提供高性能分组处理和转发。在图1中,NPU 130是这样的处理器。
[0045]此外,这些路由器或交换机也具有用于在分组上提供“高接触”操作的通用处理单元。网络处理器典型地将高接触分组转发到通用处理器,并且接受来自通用处理器的高接触分组用于到数据流的插入。当前可用的传统PTP协议引擎将所有PTP消息当作在通用处理器中执行所有分组处理和生成的高接触来对待。
[0046]应该注意到,与千兆以太网端口的整个数据带宽相比,在边界时钟主端口上的PTP消息所要求的带宽是可忽略的,即使PTP消息的高接触处理消耗PTP处理单元的处理能力。例如,给定一百个典型的PTP客户端,PTP消息消耗小于千兆以太网端口的整个数据带宽的0.1%。同时,如前面指出的,只支持33个单播客户端可以消耗用于运行PTP协议的典型处理器的所有计算资源。
[0047]在本发明的若干实施例中,通过将PTP边界时钟主端口的更高速率、更低接触的PTP分组处理功能从PTP协议引擎移到网络处理器来更充分地开发网络处理器的高效分组处理能力。这样做可以减少多达95%的通用处理器的负荷,因此显著改进边界时钟的扇出能力。
[0048]返回参考图1,可以看到PTP主端口功能127可以被分为两组不同的功能(“高接触”处理功能128、和“低接触”处理功能129)。低接触功能129包含重复的、高速率的消息生成功能,例如,Sync和Delay_ReSp消息的生成。高接触功能128包含由PTP主端口功能127执行的更高级别、较不频繁执行的任务,例如单播协商、管理消息的生成和处理等。通过将低接触功能129移到高效网络处理单元,可以显著减少在PTP处理器上的处理负载。
[0049]图3图示实现此方法的数据网络节点的示例。数据网络节点400在若干方面中类似于数据网络节点100(图1),并且包含相同的PTP硬件处理引擎110和FIFO 140。此外,网络处理器430包含入口分组处理单元132 (相对于图1中的类似单元没有变化)。然而,与图1的其相对物相比,已经修改NPU 430中的出口分组处理435。在NPU 430中,出口分组处理单元435包含主端口低接触处理功能438,它已经与PTP处理器420分离。在PTP处理器420中保留主端口功能的高接触处理部分来作为PTP栈421的主端口高接触处理部件425。
[0050]在一些实施例中,为PTP主端口的所有PTP事件相关消息(PERM)执行低接触PTP功能的此“卸载”。基于卸载逻辑差别,可以进一步将PERM分为2个类别-Announce和Sync作为 PERM-A、WkFollow_Up MDelay—Resp 作为 PERM-B。
[0051]图4A、图4B和图4C图不用于如/70^//?<^<9,5>77<^取Delay—Resp消息的处理的详细序列图。在这些序列图的每个中,可以看到:因为驻留在NPU 430上的出口分组处理单元435中的卸载的低接触处理438执行重复的消息处理,所以PPU 420上的处理负载显著地减少。保留在PPU 420中的高接触处理425包含单播协商和其它管理功能。高接触处理单元425也负责使用一个或多个配置消息来配置低接触处理单元435。然而,产生这些消息相对于产生的高频度的PTP事件相关消息而言较不频繁。
[0052]例如,图4A图示在本发明的一些实施例中的Awtwwce消息的处理的序列图。在PPU 420中,高接触处理425处理数据网络节点400与从客户端210之间的单播协商,就像它在图1的数据网络节点100中那样。在NPU 430中,高接触处理425也通过发送一个或多个配置消息来建立低接触处理单元435。将给出配置消息的示例实现的细节。通常来说,配置消息将关于PTP消息的特定流的足够信息提供给NPU 430,以使NPU 430可以自主地生成重复的消息的全部序列。因此,如在图4A看到的消息由卸载的低接触处理435生成并且经由硬件定时间戳器112中继到从客户端210,而没有来自PPU 420的逐消息的参与。请注意,虽然取Fo I low_Up序列图被画在一起,但是网络处理单元430中的处理的内部机制是不同的,如以下将进一步详细论述的。
[0053]图4B和图4C分别图示用于和消息的处理的对应序列图。再次,在卸载的低接触处理428的初始配置之后,PPU 420中的高接触主端口处理425在重复的消息的后续发送中不需要在逐消息的基础上参与。因为消息的每个流可包含几百个消息,并且因为可同时处理若干客户端,所以显著减少了 PPU 420支持主端口功能所需要的计算资源。
[0054]每个PTP主端口为一个或多个流保留配置信息,它可以是静态或动态的。图4A、图4B和图4C的示例信号流基于单播协商的使用,所以流配置是动态的。在完成与特定从客户端的协商并且准许一些消息传递之后,高接触主端口功能425可以将PTP流配置下载到卸载的低接触主端口功能438,因此允许出口分组处理单元435由配置的逻辑来自主地生成PTP分组和/或响应,几乎或没有PPU 420的后续参与。
[0055]在一个示例实施例中,流配置是结构C0NF。此结构的大小通常与由配置消息配置的流的数量成线性,其中,每个流将不到几百字节添加到配置消息。图5给出这样的控制结构605的示例,它包含流报头610和一个或多个PTP流描述符615。PTP流描述符615又包含传输属性620和PTP流属性625,它们一起为NPU提供足够的信息来在给定流中自主地生成并且发送重复的PTP消息。封装相关的字段(在ITU术语中封装被称作“映射”)是路由特定的,它应用于应用的路由器类型。在一些实施例中,PPU在一个或多个消息中将所有或部分CONF结构605提供到NPU,而在其它实施例中CONF结构605是由从PI3U发送到NPU的配置消息维持的NPU中的存储器结构。
[0056]在一些实施例中,字段包含在每个流的CONF结构605中来允许或禁止用于卸载的主端口功能435的流上的卸载控制。对于单播协商,无论何时准许时间期满而没有从端口的合约的续期,主端口将禁止流直到重新协商发生。因此,在一些实施例中,卸载的主端口功能435可在至少一些时间间隔内保留禁止的流的配置信息。在其它实施例中,还可利用指示应该删除的流及其配置的字段或命令来实现禁止。
[0057]高接触主端口功能425的一个职责是维持卸载的主端口功能438要使用的CONF最新。在图5的下半部分中图示CONF结构的此维持,它通常图示在整个主端口功能中涉及的信息流,在图5中示为PTP本地时钟主端口功能630。如图5所示,驻留在PPU中的主端口功能425经由PTP从端口功能665基于从PTP本地时钟650 (它包含PTP伺服功能655)接收的信息以及从远程从端口 660接收的信息来维持CONF结构605。驻留在NPU中的卸载的主端口功能438使用来自CONF结构的信息来生成用于到PTP远程从端口 660的中继的消息。
[0058]以下给出用于维持CONF的输入信息的示例。各实施例可包含这些示例的一些或所有,并且可包含此处不论述的附加的信息项。
[0059]首先,CONF结构明确地或暗含地包含每个消息类型的流的PTP消息模板,其中,掩埋的所有PTP要求的信息作为卸载的主端口功能435的不透明的对象来消耗。因此,在一些实施例中,卸载的主端口功能435只需要在和Sync消息生成时增加序列ID。序列ID是在大端形式中具有2字节的字的PTP消息的固定偏移。(Follow_Up序列ID匹配对应的Sync序列ID,而Delay_Resp序列ID匹配对应的Delay_Req序列ID)。在这些实施例中,所有其它PTP相关信息(例如,时钟质量(clockQuality)、优先级和当前Utc偏移(currentUtcOffset))全部包含在由高接触主端口功能425提供的流配置数据中,并且卸载的主端口功能435不需要具有此信息的生成中的任何参与。
[0060]由高接触主端口功能425提供的其它信息包含PTP端口的用户配置。这覆盖传输层定义、端口主权、目的地端口描述、上述的消息模板等等。其它信息包含单播协商的结果,这覆盖消息发送速率并且也被反映在流配置数据中。更进一步的信息可能包含从网络中的管理实体接收的管理消息信息。
[0061]图6是图示用于在根据以前的论述构成的网络节点中支持时间传输协议(S卩,具有时间传输协议处理单元和由与时间传输协议单元分开的硬件资源组成的网络处理器单元)的示例技术的过程流程图。图的左侧图示由协议处理单元(PPU)执行的操作而右侧图示由网络处理器单元(NPU)执行的操作。
[0062]如在框710处看到的,除其它事物以外,PTO还生成用于时间传输协议的协商消息和管理消息并且将所述协商消息和管理消息转发到一个或多个远程网络节点。在单播模式中,响应于由从时钟发起的协商而生成这些协商消息。如以上论述的,这些操作是“高接触”操作。为了支持卸载的低接触操作,PPU也将一个或多个配置消息传输到网络处理器单元,如在框720处示出的。配置消息包含用于第一类型的重复的时间传输消息(例如,Announce消息或消息)的流配置数据。
[0063]如在框730处示出的,NPU从PPU接收配置消息并且处理它。如之前描述的,配置消息中的数据用于设置重复的时间传输消息。
[0064]当然,NPU的中央职责是处理与时间传输协议不相关的数据分组的低接触处理。因此,如在框740处示出的,NPU对从一个或多个线路端口接收的并且在一个或多个背板端口上传送的非时间传输数据分组以及从一个或多个背板端口接收的并且在一个或多个线路端口上传送的非时间传输数据分组执行路由或交换操作。通常来说,这些数据分组不携带时间传输协议时间戳数据,尽管这些数据分组的一些当然可包含另一网络节点所使用的时间传输协议分组。
[0065]NPU也处理重复的时间传输消息。因此,如在框750处示出的,NPU使用从PPU接收的流配置数据根据第一类型的重复的时间传输消息来生成多个时间传输消息,并且经由一个或多个线路端口将时间传输消息转发到远程网络节点。如在框760处示出的,此过程被重复,直到它正常结束(例如,根据配置的重复数量)或直到从PPU接收到新的配置消息。
[0066]NPU可以基于从PPU接收的消息流特定配置数据来同时地处理多个类型的重复的时间传输消息。类似地,NPU可以同时处理若干远程从的消息。因此,在一些情况下,上面论述的配置消息包含对应于一个或多个附加的类型的重复的时间传输消息的附加的流配置数据(备选地,可使用多个配置消息),并且NPU生成一个或多个附加的类型的每个的附加的时间传输消息并且将附加的时间传输消息转发到一个或多个远程网络节点。
[0067]虽然在图6中图示的过程和本文描述的技术不必受此限制,但是在一些情况下时间传输协议符合由IEEE标准1588-2008规定的精确时钟同步协议。因此,由NPU处理的时间传输消息的类型或多个类型可以是由IEEE标准1588-2008规定的以下类型中的任何一个或多个 \Aimoimce 消息.,Sync 消息-,Follow_Up 消息Delay—Resp 消息。
[0068]在一些情况下和/或对于一些类型的消息,在NPU中生成多个事件消息包括将递增的序列标识符插入到相同类型和来自相同流的连续消息中。在一些情况下,由于改变序列标识符,这可要求根据传输协议需求来为这样的PTP有效载荷补偿传输层校验和或循环冗余校验(CRC)。
[0069]在一些情况下和/或对于一些类型的消息,每个消息包括一个或若干时间传输协议字段,并且NPU通过将一个或多个时间传输协议字段从流配置数据复制到所生成的消息来生成重复的消息。例如,这些字段可包含时钟质量字段、优先级字段和/或通用时间偏移字段。
[0070]应该注意到,虽然以上论述主要集中于主端口功能的卸载,但是类似结构和类似技术可应用于一个或多个时间传输从端口的重复的消息处理的卸载。因此,例如,使用在图6中图示的技术,可将用于一个或多个从端口的Delay_Req消息的处理卸载到NPU。类似地,可通过将在图3中描绘的PTP从端口功能126分为高接触部分和低接触部分,并且将低接触部分移到网络过程430来完成从端口功能的卸载,就像是对于主端口低接触处理功能438进行的那样。
[0071]通过NPU的重复的时间传输消息的具体处理将取决于消息类型而有所不同。图7图示用于一个类别的PTP消息C4/moi/nce和Sync消息)的多个消息流的处理的示例细节。每个消息流被划分为周期,在其中周期是处理的一个循环。例如,对于高于每秒I个消息的消息速率,周期可以是I秒。对于更低的消息速率,可以方便地将周期简单设置为发送间隔。
[0072]如在框810处示出的,每次实时时钟(RTC)滴答(tick)事件到达NPU处,NPU需要识别相对于周期开始的当前偏移。以此方式,发送的消息可以跨过整个周期均匀分布而当发送消息时没有其它复杂性。如在框820处示出的,NPU读取当前的RTC值并且循环通过所有当前配置的流(例如,如CONF结构指示的)来查看任何和/或消息的发送时间是否到期。如果NPU发现具有到期发送的消息的流,则NPU使用CONF信息来形成消息,如在框830处示出的;这可包含封装报头(例如,IP报头)的添加,以使由NPU形成的消息准备被传递而没有通用处理器的进一步处理。然后经由PTP硬件处理引擎将消息发送到远程从客户端。(例如,查看图3中的路径C)。
[0073]图10图示跨过发送周期为给定流均匀分布重复的消息的一个示例方法的细节。然而,将理解可使用其它技术。首先,给出图示过程如何工作的一些示例数量。例如,假设Sync消息速率要求为每秒128个消息并且RTC滴答粒度为3毫秒。周期可以为一秒。
[0074]当第一个滴答进来时(如在框1110处示出的),卸载的PTP主端口功能438读取RTC (如在框1120处示出的),并且记录RTC的秒之下的部分。通常通过生成特殊的RTC事件消息来处理NPU中的RTC滴答。因为到卸载的主端口功能的此消息的生成和传递需要一点时间,所以RTC滴答应该周期性地落在秒的边界上,具有作为数据路径延迟的一点更多的额外时间。然而,延迟通常足够小(例如,在微秒级别)来避免任何重大问题。让TS指代RTC读数的秒之下的部分。NPU首先检查TS是否小于3毫秒的滴答周期(在图中示为“TR”),如在框1130处示出的,来确定我们是否在周期的开始。滴答周期应该足够小来处理消息生成的最高期望速率。因此,例如,如果最大期望的消息速率是每秒128个消息,则最大滴答周期是大约1000/ (128X2),或大约4毫秒。当然,可使用其它值,但是3毫秒对于此算法足够好并且对于高效硬件实现足够大。由于TS小于一个发送间隔(INTV=1000/128毫秒),所以将发送序列号N复位为O来标记此周期的处理开始,如在框1140处示出的。
[0075]然后,对于每个RTC滴答(包含第一个RTC滴答),比较TS与目标时间TT,如在框1150处示出的。目标时间计算为TT=INTVXN。如果TS超过目标时间,则N和消息序列ID递增,如在框1160处示出的,并且发送消息。否则,此滴答的消息处理完成。
[0076]此算法将均匀地分布消息生成,并且要求网络处理器中的更少状态处理逻辑,它对于处理低接触分组是优化的。算法还可容许RTC滴答速率的抖动。
[0077]图8图示另一类别的PTP消息{FoilowJJp消息)的处理的示例细节。由在NPU处的传送时间戳(TxT)的接收触发此过程,如在框910处示出的。流标识符可用于确定时间戳属于哪个流。如在框920处示出的,此流标识符用于索引配置数据(例如,CONF结构)以发现对应的流定义。然后NPU检查来确定时间戳是否用于Sync消息,如在框930处示出的。如果不是,则NPU延迟到PI3U用于进一步处理。另一方面,如在框940处示出的,如果时间戳用于消息,则过程继续到用于消息的缓冲器的分配和预定义的模板到缓冲器的复制。在一些实施例中,预定义的模板取自CONF结构。
[0078]接着,如在框950处示出的,将序列ID从流配置数据(例如,查看图5中的PTP流特性625)复制到分配的缓冲器。NPU检查当前时间的RTC (如在框960处示出的),并且检查自从消息被定时间戳以来是否有一秒间隔的翻转(如在框965示出的)。如果没有,则从接收的时间戳的纳秒分辨率和来自RTC的当前的一秒分辨率读数来形成将要包含电Follow—Up消息中的时间戳,如在框970处示出的。另一方面,如果有一秒翻转,则从接收的时间戳和来自RTC的当前的一秒分辨率读数减一秒来形成将要包含在7^770^^消息中的时间戳,如在框980处示出的。最后,如在框990处示出的,将因此形成的时间戳复制
FoI1wJJp的精确起始时间戳(preciseOriginTimestamp)字段并且处理缓冲器用于发送到远程从客户端,如在框990处示出的。此处理可包含封装。注意,在发送时不需要对Follow_Up消息定时间戳。
[0079]图9图示非常类似的示例过程,但是用于处理消息。Delay_Req消息的接收触发此过程,如在框1010处示出的。DelaLReq消息的封装信息用于寻找对应于消息的本地端口身份,如在框1020和1025示出的。如果没有发现匹配,则NPU不要求进一步处理,如在框1030处示出的。然而,如在框1040处示出的,如果发现匹配,则处理继续到用子Delay_ReSp消息的缓冲器的分配和预定义的模板到缓冲器的复制。在一些实施例中,预定义的模板取自CONF结构。
[0080]接着,如在框1050处不出的,将序列ID (sequenceld)、域号(domainNumber)和校正字段(correct1nField)字段}kDelay_Req复制到分配的缓冲器。NPU检查当前时间的RTC (如在框1060处示出的),并且检查自从消息被定时间戳以来是否有一秒间隔的翻转(如在框1065示出的)。如果没有,则从接收的时间戳的纳秒分辨率和来自RTC的当前的一秒分辨率读数来形成将要包含在消息中的时间戳,如在框1070处示出的。另一方面,如果有一秒翻转,则从接收的时间戳和来自RTC的当前的一秒分辨率读数减一秒来形成将要包含在消息中的时间戳,如在框1080处示出的。最后,如在框1090处示出的,将因此形成的时间戳复制到的接收时间戳(receivedTimestamp)字段并且处理缓冲器用于发送到远程从客户端,如在框990处示出的。此处理可包含封装。再次,注意,在发送时不需要对消息定时间戳。
[0081 ] 利用上述技术,通过将PTP边界时钟主端口的更高速率、更低接触的PTP分组处理功能从PTP协议引擎移到网络处理器可以更充分地开发网络处理器的高效分组处理能力,从而减少PTP处理器上的处理负载并且改进网络处理附加的PTP客户端的能力。
[0082]如熟悉网络装置设计的那些人将容易理解的,可使用数字逻辑和/或一个或多个微控制器、微处理器或其它数字硬件来实现本文描述的数据网络节点的各种功能块的若干(例如,图3的示例网络节点400)。若干图示的功能可在一起实现,例如,在单个专用集成电路(ASIC)中,或在两个或者更多单独的装置中(具有它们之间的适当硬件和/或软件接口)。另外,可通过专属硬件的使用来提供数据网络节点的若干功能元件,而其它配备有用于执行软件的硬件(与适当的软件或固件关联)。因此,如本文所使用的术语“处理器”或“控制器”不专指能够执行软件的硬件并且可暗含地包含(而不限于)数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、用于存储软件和/或程序或应用数据的随机存取存储器、以及非易失性存储器。还可包含其它硬件(传统和/或定制的)。网络装置的设计者将意识到这些设计选择中固有的成本、性能和维护折衷。
[0083]记住本发明的这些和其它变化和扩展,应该意识到上文的描述和附图代表本文教导的用于在数据网络节点中管理时间传输协议的设备和方法的非限制性示例。因此,本文教导的发明的设备和技术不受限于上文的描述和附图。相反,本发明只受限于以下的权利要求和它们的法律等效。
【权利要求】
1.一种用于分组数据处理的网络节点,所述网络节点包括: 时间传输协议处理单元,适应于生成用于时间传输协议的协商消息和管理消息并且将所述协商消息和管理消息转发到一个或多个远程网络节点,以及网络处理器单元,由与所述时间传输协议处理单元分开的硬件资源组成并且适应于:对从一个或多个线路端口接收的并且在一个或多个背板端口上传送的第一数据分组以及从所述一个或多个背板端口接收的并且在所述一个或多个线路端口上传送的第二数据分组执行路由操作、或交换操作、或两者,其中所述第一和第二数据分组不包含时间传输协议时间戳数据; 从所述时间传输协议处理单元接收配置消息,所述配置消息包括用于第一类型的重复的时间传输消息的流配置数据; 使用所述流配置数据、根据所述第一类型的重复的时间传输消息来生成多个时间传输消息;以及 经由所述一个或多个线路端口,将所述多个时间传输消息转发到所述一个或多个远程网络节点。
2.如权利要求1所述的网络节点,其中所述配置消息包括对应于一个或多个附加的类型的重复的时间传输消息的附加的流配置数据,并且其中所述网络处理器单元进一步适应于基于所述附加的流配置数据来生成所述一个或多个附加的类型的每一个的附加的时间传输消息,并且将所述附加的时间传输消息转发到所述一个或多个远程网络节点。
3.如权利要求1所述的网络节点,其中所述时间传输协议符合由IEEE标准1588-2008规定的精确时钟同步协议。
4.如权利要求3所述的网络节点,其中所述第一类型的时间传输消息是由IEEE标准1588-2008规定的以下类型中的一个: Announce 消息; Sync消息;
Fo I 1wJJp 消息; Delay_Req消息;以及 Delay_Resp 消息。
5.如权利要求1所述的网络节点,其中所述网络处理器单元适应于通过将递增的序列标识符插入到所述时间传输消息中的连续消息来生成所述第一类型的多个时间传输消肩、O
6.如权利要求5所述的网络节点,其中所述时间传输消息每个包括从所述流配置数据复制并且由所述网络处理器单元保持不变的时间传输协议字段。
7.如权利要求6所述的网络节点,其中所述时间传输协议字段是时钟质量字段、优先级字段以及通用时间偏移字段中的一个。
8.一种用于在具有时间传输协议处理单元和网络处理器单元的网络节点中支持时间传输协议的方法,所述网络处理器单元由与所述时间传输协议单元分开的硬件资源组成,所述方法包括: 使用所述时间传输协议处理单元来生成用于所述时间传输协议的协商消息和管理消息,并且将所述协商消息和管理消息转发到一个或多个远程网络节点; 使用所述网络处理器单元,对从一个或多个线路端口接收的并且在一个或多个背板端口上传送的第一数据分组以及从所述一个或多个背板端口接收的并且在所述一个或多个线路端口上传送的第二数据分组执行路由或交换操作或两者,其中所述第一和第二数据分组不包含时间传输协议时间戳数据; 将配置消息从所述时间传输协议处理单元传输到所述网络处理器单元,所述配置消息包括用于第一类型的重复的时间传输消息的流配置数据; 利用所述网络处理器单元,使用所述流配置数据,根据所述第一类型的重复的时间传输消息来生成多个时间传输消息;以及 经由所述一个或多个线路端口,将所述多个时间传输消息转发到所述一个或多个远程网络节点。
9.如权利要求8所述的方法,其中所述配置消息包括对应于一个或多个附加的类型的重复的时间传输消息的附加的流配置数据,并且其中所述方法还包括使用所述网络处理器,基于所述附加的流配置数据来生成所述一个或多个附加的类型中的每一个的附加的时间传输消息,并且将所述附加的时间传输消息转发到所述一个或多个远程网络节点。
10.如权利要求8所述的方法,其中所述时间传输协议符合由IEEE标准1588-2008规定的精确时钟同步协议。
11.如权利要求10所述的方法,其中所述第一类型的时间传输消息是由IEEE标准1588-2008规定的以下类型中的一个: Announce 消息; Sync消息;
Fo I 1wJJp 消息; Delay_Req消息;以及 Delay_Resp 消息。
12.如权利要求8所述的方法,其中生成所述第一类型的多个时间传输消息包括将递增的序列标识符插入到所述时间传输消息中的连续消息。
13.如权利要求12所述的方法,其中所述时间传输消息每个包括时间传输协议字段,并且其中生成所述第一类型的多个时间传输消息包括将所述时间传输协议从所述流配置数据复制到所述第一类型的时间传输消息。
14.如权利要求13所述的方法,其中所述时间传输协议字段是时钟质量字段、优先级字段以及通用时间偏移字段中的一个。
【文档编号】H04J3/06GK104170291SQ201380010641
【公开日】2014年11月26日 申请日期:2013年2月18日 优先权日:2012年2月22日
【发明者】郑群, T.热耶 申请人:瑞典爱立信有限公司