一种PTP报文回传方法和装置与流程

文档序号:31726738发布日期:2022-10-05 00:47阅读:122来源:国知局
一种PTP报文回传方法和装置与流程
一种ptp报文回传方法和装置
【技术领域】
1.本发明涉及5g承载网芯片支持时间同步技术领域,特别是涉及一种ptp报文回传方法和装置。


背景技术:

2.随着5g技术的发展演进,各种承载业务端口均带来了时间同步技术的应用需求,5g承载网的spn/mtn/otn/osu支持的业务接口类型众多,flexe(flex ethernet,灵活以太网)和flexo(灵活光传送网)技术已在5g承载网得到广泛应用,使得包括flexe和flexo接口及各种otn业务接口以及otu25、otu50等新兴速率接口都要求支持高精度时间同步技术成为了必然趋势。
3.目前,时间同步和频率同步主要通过ptp(precision time protocol,精确时间同步协议)报文实现,通过两个端口间发送ptp报文和接收ptp报文的时间差,来调整两个端口各自对应的时钟,以实现时间同步或频率同步。
4.随着5g技术的发展,5g承载网芯片内包括ptp报文及时间戳的同步信息带宽越来越高,在现有技术中,通常采用中断寄存器或时间戳管道来存储同步信息,由处理器主动访问读取的方式获取同步信息,这两种方式均存在带给处理器的负载较高且获取同步信息缓慢的缺点,对于处理5g承载网大容量、多端口、高频率(大于16packet/s的交互频率)的ptp报文及时间戳信息时,cpu处于大负载下运行ieee1588同步协议几乎无法支持单步时钟模式和两步时钟模式及达到256packet/s交互频率的同步信息处理,更无法支持ptp频率同步的应用场景。
5.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

6.本发明要解决的技术问题是当前技术中同步信息的获取方式负载高、获取速度慢。
7.本发明采用如下技术方案:
8.第一方面,本发明提供了一种ptp报文回传方法,包括:
9.发送模块在检测到第一标识字回传标记已置位,并且正在发送原始ptp报文的第一个字节时,向回传处理模块发送回传完成的指示,同时继续读出报文,完成对原始ptp报文的后续发送处理;
10.所述回传处理模块还接收由发送模块发送的补偿后的发送时间戳,将补偿后的发送时间戳、原始ptp报文和其他同步信息一起写入回传缓存中等待;
11.当所述回传处理模块收到发送模块发送的回传完成的指示时,所述回传处理模块将原始ptp报文、补偿后的发送时间戳和其他同步信息发送给处理器,以便处理器完成相应同步操作。
12.优选的,所述回传处理模块将原始ptp报文、补偿后的发送时间戳和其他同步信息
发送给处理器,具体包括:
13.所述回传处理模块将原始ptp报文、补偿后的发送时间戳和其他同步信息发送给归一化接收模块,所述归一化接收模块根据原始ptp报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文,将所述回传ptp报文与正常路径接收到的报文按优先级发送给处理器。
14.优选的,所述发送模块在检测到第一标识字回传标记已置位,具体包括:
15.处理器将原始ptp报文封装到自定义报文中,将自定义报文中的第一标识字回传标记置位,并将自定义报文发送给发送模块,所述发送模块检测自定义报文中是否携带了已置位的第一标识字回传标记;
16.或处理器将原始ptp报文发送给所述发送模块,所述发送模块根据待发送的原始ptp报文,判断是否在寄存器中记录与原始ptp报文对应的已置位的第一标识字回传标记。
17.优选的,所述将所述回传ptp报文与正常路径接收到的报文按优先级发送给处理器,具体包括:
18.在所述回传ptp报文中携带已置位的第一标识字回传标记,所述归一化接收模块将携带已置位的第一标识字回传标记的报文优先发送给处理器;
19.当所述归一化接收模块中同时存在多个回传ptp报文时,所述归一化接收模块按照回传ptp报文中携带的虚拟端口id的大小决定优先级顺序,按照所述优先级顺序将回传ptp报文发送给处理器。
20.优选的,所述补偿后的发送时间戳是由发送原始ptp报文时所得到的原始发送时间戳经补偿后得到的,具体包括:
21.所述发送模块记录发送原始ptp报文时的原始发送时间戳,再根据本领域技术人员预设的第一补偿值或根据精确时间同步协议计算得出的第二补偿值,对所述原始发送时间戳进行数值修正,得到补偿后的发送时间戳。
22.优选的,所述以便处理器完成相应同步操作,具体包括:
23.当处理器位于主时钟一侧时,所述处理器根据原始ptp报文、补偿后的发送时间戳和其他同步信息生成相应的报文,将相应的报文发送给从时钟,以便从时钟修正本地时钟,实现与主时钟的时间同步或频率同步;
24.当处理器位于从时钟一侧时,所述处理器根据原始ptp报文、补偿后的发送时间戳和其他同步信息得到主从时钟偏差和传输延时,根据主从时钟偏差和传输延时修正本地时钟,实现与主时钟的时间同步或频率同步。
25.优选的,所述方法适用于5g承载网络中的各种业务,所述各种业务包括:灵活以太网flexe、灵活光传送网flexo、otn业务、otu25业务、otu50业务、otucn业务和osu业务中的一种或者多种。
26.优选的,所述方法还包括:若未检测到第一标识字回传标记置位,则发送模块不执行原始ptp报文、补偿后的发送时间戳和其他同步信息的回传处理,直接完成对报文的后续发送处理。
27.优选的,所述归一化接收模块根据原始ptp报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文,具体包括:
28.所述回传ptp报文由自定义报文头、原始ptp报文和fcs字节组成,归一化处理模块
将不包括fcs字节的原始ptp报文封装在回传ptp报文的原始报文域,在原始报文域前添加自定义报文头,所述自定义报文头所包含的信息包括第一标识字回传标记、vlan域和补偿后的发送时间戳,其中,vlan域用于存储虚拟端口id,所述虚拟端口id用于区分原始ptp报文的接收端口,在原始报文域后添加组装完成后的回传ptp报文的fcs字节。
29.第二方面,本发明还提供了一种ptp报文回传系统,所述系统包括至少一个端口,其中,所述端口使用第一方面所述的ptp报文回传方法,进行ptp报文的回传。
30.第三方面,本发明还提供了一种ptp报文回传装置,用于实现第一方面所述的ptp报文回传方法,所述装置包括:
31.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的ptp报文回传方法。
32.第四方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的ptp报文回传方法。
33.本发明通过ptp报文回传的方式通过在发送原始ptp报文的第一个字节时,将同步信息主动回传给处理器,使处理器无需从中断寄存器或时间戳管道中读取同步信息,从而缩减处理器获取同步信息的时间,减轻处理器的负载,使得处理器更易于支持大容量、多接口交互实现高精度时间同步和支持ptp频率同步。
【附图说明】
34.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1是本发明实施例提供的一种ptp报文回传方法的流程图;
36.图2是本发明实施例提供的一种ptp报文回传方法的流程图;
37.图3是本发明实施例提供的一种ptp报文回传方法的应用场景图;
38.图4是本发明实施例提供的一种应用ptp报文回传方法实现时间同步的流程图;
39.图5是本发明实施例提供的一种ptp报文回传方法的架构示意图;
40.图6是本发明实施例提供的一种回传ptp报文的结构图;
41.图7是本发明实施例提供的一种ptp报文回传方法的流程图;
42.图8是本发明实施例提供的一种ptp报文回传方法的架构示意图;
43.图9是本发明实施例提供的一种ptp报文回传方法的流程图;
44.图10是本发明实施例提供的一种ptp报文回传系统的架构示意图;
45.图11是本发明实施例提供的一种ptp报文回传装置的架构示意图。
【具体实施方式】
46.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并
不用于限定本发明。
47.在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
48.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
49.实施例1:
50.本发明实施例1提供了一种ptp报文回传的方法,如图1所示,具体包括:
51.在步骤201中,发送模块在检测到第一标识字回传标记已置位,并且正在发送原始ptp报文的第一个字节时,向回传处理模块发送回传完成的指示,同时继续读出报文,完成对原始ptp报文的后续发送处理。
52.其中,第一标识字在ptp报文中可以由pkts_side进行表现。本发明实施例后续内容也将直接用pkts_side作为第一标识字描述的代表形式呈现;相对应的,所述回传完成的指示也被示例性的直观表述为回传完成的finish指示。
53.所述原始ptp报文是需要回传的ptp报文。所述发送模块和回传处理模块包含在端口中,所述处理器包含在业务处理侧,发送模块用于将从处理器接收的报文发送至外部端口,发送模块根据pkts_side回传标记判断是否需要进行报文回传。
54.一个端口中可能存在多个待发送的报文,所述正在发送原始ptp报文的第一个字节时为当端口接收到需要发送给外部端口的报文并正在按端口发送速率要求发送原始ptp报文的第一个字节时。
55.所述pkts_side回传标志可以是存在于发送模块中的一个标志位,由端口读取自身中的缓存得到,也可以是由其他途径获取得到的,如从处理器中获取,也可以通过对原始报文进行封装处理生成新的报文,在新的报文中携带pkts_side回传标志。
56.在步骤202中,所述回传处理模块还接收由发送模块发送的补偿后的发送时间戳,将补偿后的发送时间戳、原始ptp报文和其他同步信息一起写入回传缓存中等待。
57.其中,所述补偿后的发送时间戳是由发送原始ptp报文时所得到的原始发送时间戳经补偿后得到的,具体包括:
58.所述发送模块记录发送原始ptp报文时的原始发送时间戳,再根据本领域技术人员预设的第一补偿值或根据ieee1588同步协议计算得出的第二补偿值,对所述原始发送时间戳进行数值修正,得到补偿后的发送时间戳。
59.所述第一补偿值是由本领域技术人员根据发送模块所在侧的时钟设计得出的,第二补偿值由发送模块的寄存器或处理器等具有数据处理功能的模块根据固定的计算方法得出,第二补偿值由于是由具有数据处理功能的模块计算得出的,可根据不同的环境生成不同的第二补偿值,故具有一定的泛用性,第一补偿值则可针对本领域技术人员的设计需求对原始发送时间戳进行补偿。
60.所述回传处理模块还接收由发送模块发送的补偿后的发送时间戳具体为:在发送模块从处理器接收到自定义报文后,发送模块读出自定义报文中的原始ptp报文和其他同步信息发送给回传处理模块,并在发送原始ptp报文时生成补偿后的发送时间戳,将补偿后的发送时间戳发送给回传处理模块,发送模块在将原始ptp报文、其他同步信息和补偿后的
发送时间戳发送给回传处理模块后,继续完成原始ptp报文的后续发送。其中,原始ptp报文、补偿后的发送时间戳都属于同步信息,与其他同步信息一同构成了处理器所需的全部同步信息,所述其他同步信息包括但不限于:原始ptp报文的接收端口、原始ptp报文的类型等。
61.在步骤203中,当所述回传处理模块收到发送模块发送的回传完成的finish指示时,所述回传处理模块将原始ptp报文、补偿后的发送时间戳和其他同步信息发送给处理器,以便处理器完成相应同步操作。
62.所述finish指示在发送原始ptp报文的第一个字节时产生,故回传处理模块在原始ptp报文发送结束前,已将原始ptp报文、补偿后的发送时间戳和相关信息发送给处理器,使处理器能够快速获取到原始ptp报文、补偿后的发送时间戳和相关信息,以用于时间同步或频率同步。
63.所述方法还包括:若未检测到pkts_side回传标记置位,则发送模块不执行原始ptp报文、补偿后的发送时间戳和其他同步信息的回传处理,直接完成对报文的后续发送处理。
64.所述直接完成对报文的后续发送处理具体包括:当报文是需要携带时间戳的ptp报文时,发送模块记录发送原始ptp报文时的原始发送时间戳,进行时间戳补偿后得到补偿后的发送时间戳,将补偿后的发送时间戳写入到ptp报文的特定位置,将写入补偿后的发送时间戳后的ptp报文发送出去,当报文不是需要携带时间戳的ptp报文时,则直接发送报文。
65.所述以便处理器完成相应同步操作,具体包括:
66.当处理器位于主时钟一侧时,所述处理器根据原始ptp报文、补偿后的发送时间戳和其他同步信息生成相应的报文,将相应的报文发送给从时钟,以便从时钟修正本地时钟,实现与主时钟的时间同步或频率同步。
67.当处理器位于从时钟一侧时,所述处理器根据原始ptp报文、补偿后的发送时间戳和其他同步信息得到主从时钟偏差和传输延时,根据主从时钟偏差和传输延时修正本地时钟,实现与主时钟的时间同步或频率同步。
68.所述主时钟与从时钟都代指需要进行时间同步或频率同步的系统,一个系统为主时钟还是从时钟由需要进行时间同步或频率同步的技术人员配置,主时钟提供精确的时间参考,从时钟则根据ptp报文的发送与接收修正本地时钟,以实现与主时钟的时间同步或频率同步,所述本地时钟是指位于从时钟一侧的时钟。
69.本发明实施例通过在发送原始ptp报文的第一个字节时,将同步信息主动回传给处理器的方式,使处理器能够在端口发送ptp报文还未结束前,已获取到同步信息,提高了处理器获取同步信息的速度,从而能够支持高频率、高精度的时间同步或频率同步,并且,本发明实施例无需中断寄存器和时间戳管道的参与,处理器无需主动读取同步信息,减轻了处理器的负载。
70.在实际运用过程中,由于一个处理器可能对应多个端口,当多个端口均向处理器发送同步信息时,处理器需要控制同步信息的接收顺序,其中的一种实现方式是,在处理器中新增一个专用于接收同步信息的接收模块,处理同步信息的接收顺序,该实现方式需要额外占用处理器的资源,增加处理器的负载。为了控制同步信息的接收顺序,如图2所示,还存在以下优选的实现方式:
71.在步骤301中,所述回传处理模块将原始ptp报文、补偿后的发送时间戳和其他同步信息发送给归一化接收模块。
72.在步骤302中,所述归一化接收模块根据原始ptp报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文,将所述回传ptp报文与正常路径接收到的报文按优先级发送给处理器。
73.所述归一化接收模块为在报文得正常接收路径中用于处理多端口报文调度得模块,当一个处理器对应多个端口时,处理器需要从多个端口接收报文,故通常会通过在处理器与端口之间接入归一化接收模块,对多个端口的报文接收进行调度,使处理器无需关注报文是由哪个端口接收的,从而减轻处理器的负载。
74.所述归一化接收模块根据原始ptp报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文,具体包括:
75.所述回传ptp报文由自定义报文头、原始ptp报文和fcs字节组成,归一化处理模块将不包括fcs字节的原始ptp报文封装在回传ptp报文的原始报文域,在原始报文域前添加自定义报文头,所述自定义报文头所包含的信息包括第一标识字回传标记、vlan域和补偿后的发送时间戳,其中,vlan域用于存储虚拟端口id,所述虚拟端口id用于区分原始ptp报文的接收端口,在原始报文域后添加组装完成后的回传ptp报文的fcs字节。
76.所述fcs字节为帧校验序列,用于验证报文在传输过程中的完整性,当将原始ptp报文封装到回传ptp报文中,需校验的报文发生改变,原始ptp报文的fcs字节已无法实现整体报文的校验,故根据回传ptp报文生成新的fcs字节,添加至原始报文域后。
77.其中,自定义报文头在本发明实施例后续内容将直接用fsl_header作为描述的代表形式呈现。
78.本实现方式通过归一化接收模块将同步信息包装成为回传ptp报文,与正常路径接收到的报文一同参与调度进入处理器,使处理器无需关注接收的是报文还是同步信息,也无需新添额外的模块对同步信息进行调度处理,从而减轻处理器的负载。
79.在以上优选的实现方式中,由于将回传ptp报文与正常路径接收到的报文按照优先级发送给处理器,根据所采用的优先级不同,可能存在处理器先接收其他报文,再接收回传ptp报文的情况,当从外部端口接收到的报文数量过多或体积过大时,可能导致回传ptp报文的接收时间延长,处理器获取同步信息的速度减慢,针对此问题,存在以下优选实施例:
80.在所述回传ptp报文中携带已置位的pkts_side回传标记,所述归一化接收模块将携带已置位的pkts_side回传标记的报文优先发送给处理器。
81.当所述归一化接收模块中同时存在多个回传ptp报文时,所述归一化接收模块按照回传ptp报文中携带的虚拟端口id的大小决定优先级顺序,按照所述优先级顺序将回传ptp报文发送给处理器。
82.归一化接收模块通过pkts_side回传标记判断需要调度的报文是否是回传ptp报文,若是回传ptp报文,则将回传ptp报文优先于外部接口接收到的报文调度,当存在多个回传ptp报文时,则通过虚拟端口id执行调度,所述虚拟端口id是根据原始ptp报文中接收端口的端口id映射得出的,一个端口id映射得出一个虚拟端口id。
83.本优选实施例通过将回传ptp报文优先调度,使处理器能够更快速地获取到同步
信息,提高了处理器获取同步信息的速度,从而能够支持更高频率和更高精度的时间同步。
84.在上述步骤201中,所述发送模块在检测到pkts_side回传标记置位的自定义报文可以是由处理器生成携带有已置位的pkts_side回传标记,由发送模块进行检测,该实现方式具体包括:
85.处理器将原始ptp报文封装到自定义报文中,将自定义报文中的pkts_side回传标记置位,并将自定义报文发送给发送模块,所述发送模块检测自定义报文中是否携带了已置位的pkts_side回传标记。
86.所述处理器将原始ptp报文封装到自定义报文中,具体包括:处理器根据内部配置信息得出哪些ptp报文是需要回传的报文,将需要回传的报文封装到自定义报文中,本发明对自定义报文的结构不做限定,凡是能够携带原始ptp报文和pkts_side回传标记的报文结构均可作为自定义报文的结构,但作为一种优选的结构实现方式,可将自定义报文与回传ptp报文设置为同一结构,以便于在生成自定义报文时可携带部分同步信息。所述内部配置信息是由本领域技术人员根据经验或ieee1588同步协议设计得出的。
87.以时间同步为例,根据同步过程所使用的同步模式的不同,同步过程中所涉及到的ptp报文也不同,当采用单步时钟模式时,同步过程中所涉及的ptp报文类型有sync报文、delay_req报文和delay_resp报文,当采用两步时钟模式时,ptp报文类型有sync报文、follow_up报文、delay_req报文和delay_resp报文,其中,sync报文由主时钟生成,在两步时钟模式时,需要获取发送sync报文时的同步信息,将获取到的同步信息添加到follow_up报文中发送给从时钟,delay_req报文由从时钟生成,在单步时钟模式和两步时钟模式下,都需要获取发送delay_req报文时的同步信息,以根据同步信息同步本地时钟。
88.由本领域技术人员设计得出在单步时钟模式下将delay_req报文回传,在两步时钟模式下将sync报文和delay_req报文回传的内部配置信息,处理器在生成待发送的报文时,根据内部配置信息判断当前所处的同步模式以及需要待发送的报文是否是sync报文和delay_req报文,还根据系统的配置,如判断报文的接收端口是否是需要进行同步的端口,系统中的同步开关是否打开,综合判断是否将sync报文和delay_req报文作为原始报文封装到自定义报文中且将自定义报文中的pkts_side回传标记置位。
89.还存在以下优选的实现方式,具体包括:
90.或处理器将原始ptp报文发送给所述发送模块,所述发送模块根据待发送的原始ptp报文,判断是否在寄存器中记录与原始ptp报文对应的已置位的pkts_side回传标记。
91.在本优选的实现方式中,处理器不进行pkts_side回传标记的置位,而是由端口的发送模块根据原始ptp报文的类型和端口中的配置,选择是否在寄存器中存储已置位的pkts_side回传标记,从而减轻处理器的负载,其中一种实现方式为:
92.由本领域技术人员在发送模块的寄存器中存储用于区分报文的配置文件,在发送模块接收到来自于处理器的原始ptp报文时,读取原始ptp报文,得到原始ptp报文的类型以及原始ptp报文的接收端口,同时读取寄存器中的配置文件,得到需要回传的ptp报文的类型和需要将发送给哪些接收端口的ptp报文回传,再根据配置文件中的同步开关,在同步开关打开时,将符合配置文件中需回传的ptp报文类型和接收端口的报文作为原始ptp报文,在寄存器中存储已置位的pkts_side回传标记,以便后续执行原始ptp报文的回传操作。
93.在对同步过程要求较严苛的情况下,本优选的实现方式还可同上述由处理器生成
携带有已置位的pkts_side回传标记的实现方式一同使用,即在处理器中生成pkts_side回传标记置位的自定义报文,在端口的发送模块中检测原始报文中,存储与原始报文对应的已置位的pkts_side回传标记,通过双重检测把关,使需要获取同步信息的原始ptp报文有对应的已置位的pkts_side回传标记,处理器能够获得相应的同步信息。
94.本实施例可适用于5g承载网络中的各种业务,所述各种业务包括但不限于:灵活以太网flexe、灵活光传送网flexo、otn业务、otu25业务、otu50业务、otucn业务、osu业务。
95.实施例2:
96.本发明基于实施例1所描述的方法基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。如图3所示,为两步时钟模式下的时间同步场景,其中,主时钟一侧和从时钟一侧所使用的用于时间同步的端口均为flexe接口,这两个flexe接口均应用了实施例1中的方法,在两步时钟模式下,应用实施例1中的方法进行时间同步的流程如图4所示,具体包括:
97.在步骤401中,主时钟生成sync报文并将sync报文发送给从时钟,主时钟通过sync报文回传获取同步信息,将同步信息中sync报文的发送时间添加到follow_up报文中,将follow_up报文发送给从时钟。
98.在步骤402中,从时钟在接收到sync报文时,记录接收时间为t2,从时钟接收到follow_up报文时,从follow_up报文中读取sync报文的发送时间为t1。
99.在步骤403中,从时钟生成delay_req报文并将delay_req报文发送给主时钟,从时钟通过delay_req报文回传获取同步信息,记录同步信息中delay_req报文的发送时间为t3。
100.在步骤404中,主时钟在接收到delay_req报文时,记录接收时间为t4,将t4添加到delay_resp报文中,将delay_resp报文发送给从时钟,从时钟从delay_resp报文获取delay_req报文的接收时间t4。
101.在步骤405中,从时钟计算主从时钟偏差计算传输延时根据offset和delay修正本地时钟,实现与主时钟的时间同步。
102.在步骤401中主时钟通过sync报文回传获取同步信息和在步骤403中从时钟通过delay_req报文回传获取同步信息时采用了实施例1中所述的ptp报文回传方法,下面将对步骤403中从时钟的delay_req报文回传获取同步信息的过程进行详细展示。
103.如图5所示为从时钟的架构示意图,从时钟可能存在多个端口,多个端口可能同时用于时间同步,本实施例以端口501的时间同步为例,故在图5中仅展示了一个用于时间同步的端口501,端口501中包含有发送模块504、回传处理模块505和接收模块506,从时钟中还包含有业务处理侧,由归一化发送模块503、归一化接收模块507和处理器502组成。
104.使用端口501进行报文发送时,报文的正常发送路径为处理器502将待发送报文发送至归一化发送模块503中,归一化发送模块503将待发送报文发送到对应的端口,此处为将待发送报文发送到端口501中,端口501通过发送模块504将待发送报文发送到主时钟下的端口。
105.使用端口501进行报文接收时,报文的正常接收路径为由接收模块506接收由主时
钟下的端口发送的待接收报文,将待接收报文发送到归一化接收模块507中,由归一化接收模块507实现对待接收报文接收顺序的调度,将待接收报文发送到处理器502中。
106.当从时钟的处理器502生成delay_req报文时,处理器502将delay_req报文封装到自定义报文中,为了后续报文回传时处理便利,令自定义报文的结构与后续生成的回传ptp报文的结构相同,所设定的自定义报文与回传ptp报文的结构如图6所示,由自定义报文头fsl_header和预留了4字节fcs位置的原始ptp报文的结构组成,归一化处理模块将不包括fcs字节的原始ptp报文封装在回传ptp报文的原始报文域,在原始报文域前添加自定义报文头fsl_header,在原始报文域后添加组装完成后的回传ptp报文的fcs字节所述自定义报文头fsl_header由vlan域、pkts_side回传标记、消息类型、消息长度和补偿后的发送时间戳组成,各个组成部分所占的大小分别为4字节、1位、1字节、2字节和10字节,所组成的自定义报文头fsl_header的大小为17字节+1位。其中,vlan域用于存储虚拟端口id,虚拟端口id用于区分原始ptp报文的接收端口。
107.需要说明的是,本实施例所展示的自定义报文与回传ptp报文的结构仅为本发明的一种较佳实现方式而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。如在自定义报文头fsl_header中增添用于存储其他信息的域,设用于存储其他信息的域的大小为n字节,则自定义报文头fsl_header的大小为(17+n)字节+1位。
108.处理器502在将delay_req报文封装到自定义报文中后将自定义报文中的pkts_side回传标记置位,具体为:设置pkts_side回传标记的值为0时为不置位,为1时为置位,将pkts_side回传标记的值设为1,将pkts_side回传标记置位后的自定义报文通过归一化发送模块503发送到端口501,由端口501与归一化接收模块507实现报文的发送与回传。
109.所述由端口501与归一化接收模块507实现报文的发送与回传的过程如图7所示,具体包括:
110.在步骤601中,发送模块504读取自定义报文的pkts_side回传标记。
111.在步骤602中,判断pkts_side回传标记的值是否为1,若pkts_side回传标记的值为1,则认为pkts_side回传标记已置位,进入步骤603中,在发送过程中进行报文回传,否则,进入步骤607中,直接完成对报文的后续发送处理。
112.在步骤603中,发送模块504读取自定义报文,取出其中的delay_req报文,并根据本地时钟生成原始发送时间戳,将原始发送时间戳锁存后,对原始发送时间戳进行补偿得到补偿后的发送时间戳,将delay_req报文、补偿后的发送时间戳和和其他同步信息发送给回传处理模块505,发送模块504等待发送delay_req报文的时刻到来,进入步骤604,其中,所述锁存是为了记录原始发送时间戳,以使原始发送时间戳不随着本地时钟的时刻变化而变化。
113.在步骤604中,在发送delay_req报文的时刻到来时,发送delay_req报文的第一个字节,发送模块504向回传处理模块505发送finish指示,继续发送delay_req报文到主时钟,进入步骤605。
114.在步骤605中,回传处理模块505接收到finish指示,将delay_req报文、补偿后的发送时间戳和和其他同步信息发送给接收模块506,由接收模块506发送到归一化接收模块507,即通过原本用于接收报文的路径进入归一化接收模块507,进入步骤606。
115.在步骤606中,归一化接收模块507根据delay_req报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文,将回传ptp报文与正常路径接收到的报文按优先级发送给处理器502,由处理器502进行后续处理。
116.在步骤607中,发送模块504读取自定义报文,取出其中的delay_req报文,并根据本地时钟生成原始发送时间戳,将原始发送时间戳锁存后,对原始发送时间戳进行补偿,进入步骤608。
117.在步骤608中,在发送delay_req报文的时刻到来时,发送delay_req报文。
118.上述步骤仅对两步时钟模式下delay_req报文的发送与回传做了详细展示,而当在单步时钟模式时下主时钟发送sync报文时,通常需要在发送的sync报文中携带补偿后的发送时间戳,其发送与回传过程与上述步骤601到步骤608的过程大致相同,不同之处在于在步骤604中,在继续发送sync报文到从时钟的过程中,在发送到sync报文中用于放置时间戳的位置时,将补偿后的发送时间戳放入该位置,继续发送sync报文,使补偿后的发送时间戳通过sync报文发送到从时钟侧。本方法并未对不同模式下该携带补偿后的发送时间戳的报文类型做限定,如在两步时钟模式下,若出于本领域技术人员的设计需求,delay_req报文中仍需要携带补偿后的发送时间戳,本方法依旧能够支持。
119.在上述步骤606中,归一化接收模块507根据delay_req报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文具体为:将delay_req报文拆分为不带fcs字节的delay_req报文和fcs字节,将不带fcs字节的delay_req报文放入回传ptp报文的原始报文域中,从其他同步信息中获取delay_req报文的类型,将delay_req报文的类型放入回传ptp报文中的消息类型位置,将delay_req报文的长度放入回传ptp报文的消息长度位置,将补偿后的发送时间戳放入到回传ptp报文的补偿后的发送时间戳位置,将ptp报文的pkts_side回传标记位置的值设1,从其他同步信息中获取虚拟端口的id和tag,将虚拟端口的id和tag放入回传ptp报文的vlan域中,并根据回传ptp报文生成fcs字节,放置在原始报文域后。
120.在上述步骤606中,将回传ptp报文与正常路径接收到的报文按优先级发送给处理器502具体为:
121.归一化接收模块507将回传ptp报文与正常路径接收到的报文一同执行调度,根据pkts_side回传标记检测是否需要将报文优先调度,若检测到pkts_side回传标记置位,则将携带已置位的pkts_side回传标记的报文优先发送给处理器,如在归一化接收模块507根据delay_req报文、补偿后的发送时间戳和其他同步信息生成回传ptp报文后,归一化接收模块还存在其他等待调度的报文,如接收到的普通报文或其他ptp报文,则先将回传ptp报文添加到调度队列中,再将普通报文和其他ptp报文添加到调度队列中,等待处理器502接收。
122.当归一化接收模块507中生成了多个回传ptp报文时,则对回传ptp报文按照携带的虚拟端口id从小到大的优先级顺序发送给处理器,具体为:读取回传ptp报文中的vlan域,获取各个ptp报文的虚拟端口id,将各个回传ptp报文按照所包含的虚拟端口id从小到大排序,将排序后的回传ptp报文添加到调度队列的队头,等待处理器502接收。
123.端口501与归一化接收模块507实现报文的回传后,处理器502在回传ptp报文的fsl_header域即得到同步信息,记录同步信息中delay_req报文的发送时间为t3,用于上述步骤404到步骤405的时间同步处理。
124.在步骤603、步骤604和步骤605中同时涉及了报文的发送过程和报文的回传过程的同时进行,下面将针对这些过程,采用更详细的结构划分的方式,展示端口501内部的工作流程,如图8所示,将发送模块504划分为发送单元701、1588协议处理单元702,由发送单元701、1588协议处理单元702和回传处理模块505一同实现报文的发送与回传的过程如图9所示,具体包括:
125.在步骤801中,1588协议处理单元702读取自定义报文中的原始报文域和fcs,得到delay_req报文,将delay_req报文发送至回传处理模块505,1588协议处理单元702根据delay_req的接收端口,映射得出唯一的虚拟端口,将虚拟端口的id和tag、delay_req报文的类型、delay_req报文的长度等同步信息发送至回传处理模块,同时,1588协议处理单元生成发送时间戳回传指示,将发送时间戳回传指示发送给发送单元701。
126.在步骤802中,发送单元701在接收到发送时间戳回传指示并正在发送delay_req报文时生成原始发送时间戳,将原始发送时间戳锁存并完成时间戳补偿生成补偿后的发送时间戳,将补偿后的发送时间戳同时发送给1588协议处理单元702和回传处理模块505。
127.在步骤803中,1588协议处理单元702等待delay_req报文的发送位置到来时,发送delay_req报文,在发送delay_req报文的第一个字节时,向回传处理模块505发送finish指示;继续发送delay_req报文。
128.在步骤804中,回传处理模块505接收到finish指示时,将delay_req报文、补偿后的发送时间戳、虚拟端口的id和tag、delay_req报文的类型、delay_req报文的长度等同步信息发送给接收模块506,由接收模块506进行后续报文回传处理。
129.实施例3:
130.如图10所示为本发明实施例的ptp报文回传系统的架构示意图,所述系统包括至少一个端口,其中,所述端口使用实施例1和实施例2所述的ptp报文回传方法,进行ptp报文的回传。
131.值得说明的是,上述系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
132.实施例4:
133.如图11所示,是本发明实施例的ptp报文回传装置的架构示意图。本实施例的ptp报文回传装置包括一个或多个处理器21以及存储器22。其中,图11中以一个处理器21为例。
134.处理器21和存储器22可以通过总线或者其他方式连接,图11中以通过总线连接为例。
135.存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的ptp报文回传方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行ptp报文回传方法。
136.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
137.所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执
行时,执行上述实施例1和实施例2中的ptp报文回传方法,例如,执行以上描述的图1、图2、图4、图7和图9所示的各个步骤。
138.值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
139.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
140.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1