一种时间敏感网络集中用户配置实现方法与流程

文档序号:31078898发布日期:2022-08-09 22:05阅读:404来源:国知局
一种时间敏感网络集中用户配置实现方法与流程

1.本发明涉及时间敏感网络技术领域,尤其涉及一种时间敏感网络集中用户配置实现方法。


背景技术:

2.时间敏感网络(time-sensitive networking,tsn)定义于ieee 802.1q标准,属于以太网上提供确定性传输的技术。tsn工作在osi二层,数据载荷可以是任何内容,不局限于ip包,适合任意工业应用的数据承载。tsn要求从发送端到接收端的时敏业务以周期、确定性延迟的方式传输,同时不影响低优先级非时敏业务的传输。tsn移除了关键业务通信与非关键业务通信的物理隔离,支持it与ot的开放数据交换。
3.tsn标准以ieee 802.1标准扩展的形式定义和发布,描述了添加到标准以太网的一系列特性,例如时钟同步、流量整形、网络配置等内容,其中802.1qbv和802.1as是保证时间敏感流确定性通信的关键子标准,ieee 802.1qbv定义了一种可编程的门控机制,使用时间传输门和门控列表来确定交换机及终端的出端口的当前时刻哪些队列用于传输,又称为时间感知整形器(time-aware shaper,tas)。值得注意的是,为了保证tas部署成功,所有设备需要基于ieee 802.1 as实现时钟同步。然而,虽然ieee802 .1qbv规定了门控机制的行为,但是如何规划调度全网的门控列表以实现时间敏感流确定性延迟和有界抖动是极具挑战性的,目前最常用的建模方法主要是整数线性规划 (integer linear programming,ilp)方法和可满足性模块理论(satisfiability modulo theories,smt)方法。
4.在网络配置方面,ieee 802.1qcc标准描述了三种用户/网络配置模型,分别是全分布模型、集中式网络/分布式用户模式、完全集中的模型。完全集中的模型是当前业界主流的配置模型,包含集中用户配置(cuc)和集中网络配置(cnc),以及cuc与cnc之间的用户网络接口(uni)。cuc用于终端发现、收集终端的时间敏感业务需求以及配置终端的tsn特性。cnc用于根据时间敏感业务需求进行全网调度计算、使用远程网管协议进行网络物理拓扑发现、检索交换机能力,以及配置网桥的tsn特性。qcc标准提到cnc使用的网管协议可以是snmp、netconf、restconf等,然而cuc使用的协议与用户应用紧密相关,不在qcc标准的范围内,依赖于tsn各设备厂家自己实现。qcc还定义了tsn用户/网络配置相关的yang数据模型,但用户网络接口(uni)的基于yang的实现目前并不完整,完全集中的模型协议的具体实现仍在工作中。


技术实现要素:

5.有鉴于此,本发明提出一种时间敏感网络集中用户配置实现方法,集中用户配置内部采用二次多播或单播接口,消息应答确认机制保证了信息传输可靠性,同时定义用户/网络接口的restful api方法,实现时间敏感网络集中用户配置的自动化。
6.为达到上述目的,本发明提供如下技术方案:一种时间敏感网络集中用户配置实现方法,设置集中用户配置客户端和多个集中
用户配置代理端,集中用户配置客户端在网络中唯一存在,集中用户配置代理端设置在各时间敏感网络终端内;集中用户配置客户端包括终端设备信息维护模块、网络拓扑显示模块、时敏业务需求管理模块、时敏业务运行管理模块、全网调度规划显示模块、终端调度规划管理模块;集中用户配置客户端通过二层多播或单播消息与各集中用户配置代理端进行通信,各集中用户配置代理端通过二层单播与集中用户配置客户端通信,通过消息应答确认机制保证传输可靠性;具体方式如下:步骤1:集中用户配置通过多播接口感知各时间敏感网络终端设备的存在;步骤2:集中用户配置通过用户/网络接口向集中网络配置获取网络实际物理拓扑,并在集中用户配置客户端的用户界面上显拓扑;步骤3:集中用户配置通过单播接口获取来自时间敏感网络终端的时敏业务需求,也支持用户界面自定义时敏业务需求;步骤4:集中用户配置通过用户/网络接口向集中网络配置下发时敏业务需求;步骤5:集中网络配置根据时敏业务需求及网络拓扑情况计算全网调度规划结果;步骤6:集中网络配置将调度算法求解的结果通过用户/网络接口返回给集中用户配置,在物理拓扑基础上,显示全网调度规划结果;步骤7:集中用户配置通过单播接口对各时间敏感网络 talker配置优先级到出口队列的映射,以及出端口门控列表;步骤9:集中用户配置通过单播接口对各时间敏感网络 talker、时间敏感网络 listener进行时间敏感流的配置;步骤10:各时间敏感网络终端按照约定的业务启动时间进行时敏业务的收发;步骤12:时间敏感网络终端向集中用户配置发送时敏业务释放请求,申请时间敏感业务资源释放;集中用户配置通过单播接口响应时间敏感网络 talker或listener的时敏业务释放请求,也支持用户界面自定义时敏业务释放任务,或检测不活跃时间敏感网络终端设备,及时释放相应设备的资源;步骤13:集中用户配置通过用户/网络接口向集中网络配置下发时敏业务释放请求,集中网络配置将时间敏感流经过的各时间敏感网络交换机所占用资源释放。
7.进一步的,步骤7和步骤9之间还包括:步骤8:集中用户配置代理端将步骤7中对时间敏感网络 talker的配置要求,转为linux下的tc qdisc taprio及etf命令,直接配置相应的设备。
8.进一步的,步骤10和步骤12之间还包括:步骤11:集中用户配置通过单播接口收到各时间敏感网络 listener运行的集中用户配置代理端汇报的时敏业务接收情况;时间敏感网络 listener的集中用户配置代理端上报时敏业务接收情况,消息类型为listener_recv_rpt,包括流编号、接收帧数目、周期内每一帧的到达时间分布的信息,用于标识异常数据,以改进时间敏感网络终端或交换机性能;集中用户配置客户端回复listener_recv_rpt_ack,通知集中用户配置代理端相关消息已收到,时间敏感网络 listener的集中用户配置代理端收到listener_recv_rpt_ack后不再重复发送该listener_recv_rpt消息。
9.进一步的,步骤1的具体方式为:a)集中用户配置客户端周期性发送多播心跳消息heartbeat;
b)各时间敏感网络终端的集中用户配置代理端收到heartbeat消息后,记录集中用户配置客户端的mac地址,单播回复heartbeat_ack消息至集中用户配置客户端,报告自身的设备名称、mac地址、支持设备类型、支持时间敏感网络应用的类型、时间敏感网络应用类型相关地址、制造商名称、网络接口名称信息;c)集中用户配置客户端收到时间敏感网络终端的heartbeat_ack应答后更新,重置与该终端的无握手计数为0;如果集中用户配置客户端认为该终端是新加入设备,则增加至其维护的时间敏感网络终端列表中;若未收到某终端的heartbeat_ack应答,则无握手计数增加,直至达到no_heartack_max,则认为此时间敏感网络终端不在网络中,则从集中用户配置客户端维护的时间敏感网络终端列表中删除。
10.进一步的,步骤3所述的时敏业务需求,包含每个时间敏感网络流的流周期、流优先级、流数据长度及每周期帧数、talker、一个或多个listener、流端到端最大传输延迟。
11.进一步的,步骤3通过如下消息实现:tsn_requirement_rpt消息,时间敏感网络终端通过集中用户配置代理端发给集中用户配置客户端,表示时间敏感网络 talker终端报给集中用户配置客户端该终端的时间敏感业务需求;tsn_requirement_rpt_ack消息,集中用户配置客户端对集中用户配置代理端发送tsn_requirement_rpt的应答,集中用户配置代理端收到后不再重复发送tsn_requirement_rpt;tsn_requirement_custom消息,集中用户配置客户端通知集中用户配置代理端所在的时间敏感网络 talker被安排此通信需求;tsn_requirement_custom_ack消息,集中用户配置代理端对集中用户配置客户端发送tsn_requirement_custom的应答,集中用户配置客户端收到后不再重复发送tsn_requirement_custom消息。
12.进一步的,步骤7所述的集中用户配置对各时间敏感网络 talker配置优先级到出口队列的映射,以及出端口门控列表,包括:a)对时间敏感网络 talker业务类的设置,即优先级到业务类及业务类到出口队列的映射,集中用户配置客户端通过单播向各talker的集中用户配置代理端下发set_queue消息,集中用户配置代理端回复set_queue_ack消息向集中用户配置客户端上报对时间敏感网络 talker的优先级映射结果,集中用户配置客户端收到set_queue_ack后不再重复发送该set_queue消息;b)对时间敏感网络 talker门控的设置,包含门控的周期及门控列表的组成,集中用户配置客户端通过单播向各talker的集中用户配置代理端下发set_gcl消息,集中用户配置代理端回复set_gcl_ack消息向集中用户配置客户端上报对时间敏感网络 talker的门控设置结果,集中用户配置客户端收到set_gcl_ack后不再重复发送该set_gcl消息。
13.进一步的,步骤9所述的集中用户配置通过单播接口对各时间敏感网络 talker、时间敏感网络 listener进行时间敏感流的配置,包括:a)对时间敏感网络 talker发送每个时间敏感流的设置,包含流的vlan id、vlan优先级、目的地址、流周期、以及周期内流每一帧的开始发送时间偏移、发送窗口大小、业务启动时刻等信息,集中用户配置客户端通过单播向所有talker的集中用户配置代理端下发
set_traffic_talker消息,集中用户配置代理端回复set_traffic_talker_ack消息向集中用户配置客户端上报时间敏感网络 talker的业务准备结果,集中用户配置客户端收到set_traffic_talker_ack后不再重复发送该set_traffic_talker消息;b)对时间敏感网络 listener接收每个时间敏感流的设置,包含接收业务的vlan id、vlan优先级、源地址、目的地址、最大端到端延迟、业务启动时刻等信息,集中用户配置客户端通过单播向每个流对应的所有listener的集中用户配置代理端下发set_traffic_listener消息,集中用户配置代理端回复set_traffic_listener_ack消息向集中用户配置客户端上报时间敏感网络 listener的业务准备结果,集中用户配置客户端收到set_traffic_listener_ack后不再重复发送该set_traffic_listener消息。
14.进一步的,步骤12中,时间敏感网络终端向集中用户配置发送时敏业务释放请求,申请时间敏感业务资源释放,包含如下过程:a)时间敏感网络终端上集中用户配置代理端利用包含流id信息的tsn_release_request消息发送时敏业务释放请求,集中用户配置客户端回复tsn_release_ack消息通知该时间敏感网络终端相关请求已受理,该集中用户配置代理端收到tsn_release_ack后停止发送tsn_release_request消息;b)集中用户配置客户端稍后发送tsn_release_action消息命令时间敏感网络终端释放资源,分三种情况:如果发送tsn_release_request的时间敏感网络终端为talker,则集中用户配置客户端还向该时敏流所有的listener发送tsn_release_action消息;如果发送tsn_release_request消息的时间敏感网络终端为listener,且当前时间敏感流包含两个及以上listener,则只对该listener本身发送tsn_release_action消息;如果tsn_release_request消息的时间敏感网络终端为listener,且当前时间敏感流只有唯一的listener,则集中用户配置客户端还对该时间敏感流的talker发送tsn_release_action消息;c)时间敏感网络终端收到tsn_release_action消息后释放终端占用的资源,包括终止该时敏流相关的业务进程,若时间敏感网络终端为talker,还包括清除该时间敏感流占用的出口队列及门控列表,将其占用的时间片释放,交给非时敏业务使用。最后发送tsn_release_action_ack消息,向集中用户配置客户端报告资源释放情况。
15.进一步的,所述用户/网络接口采用restful风格的api,基于https协议实现,具体方式如下:步骤1:集中用户配置使用get /tsn/networktopo方法获得集中网络配置利用lldp协议得到的网络物理拓扑的json数据,包含网络中所有设备的名称、类型、能力、mac地址、所有端口的连接设备情况、接口速率;步骤2:集中用户配置使用post /tsn/streamrequirements方法下发时敏业务需求;步骤3:集中网络配置收到来自集中用户配置的get /tsn/streamscheduleresults方法时,如果调度成功,将“200 ok”成功结果返回给集中用户配置,并附带json数据描述的所有时间敏感网络流的路由、帧偏移及队列值,以及终端、交换机各端口的门控列表、业务类映射;如果调度失败,集中网络配置将“404 id_no_found”返回给集中用户配置;如果集中网络配置正在执行调度算法,将“201 creating”返回给集中
用户配置;步骤4:集中用户配置使用delete /tsn/streamconfig方法,使集中网络配置将时间敏感流涉及的时间敏感网络交换机占用的资源释放。
16.本发明具有以下有益效果:本发明提出的时间敏感网络集中用户配置方法基于二层消息应答确认,用户/网络接口方法基于restful api,处理流程简洁、可靠、扩展性强,能够跟随业务需要或网络变化动态调整时间敏感业务的配置,支持多种tsn应用接入,有助于时间敏感网络系统快速搭建,实现了时间敏感网络终端设备配置的自动化。
附图说明
17.图1 完全集中的模型示意图。
18.图2 集中用户配置客户端与集中用户配置代理端通信示意图。
19.图3 用户/网络接口rest api示意图。
20.图4 集中用户配置感知终端设备。
21.图5 集中用户配置获取网络物理拓扑。
22.图6 集中用户配置向集中网络配置下发时敏业务需求示例。
23.图7 集中用户配置向集中网络配置获取调度结果(门控及业务类映射部分)。
24.图8 业务类映射及门控列表转为linux tc qdisc命令。
25.图9 集中用户配置向集中网络配置获取调度结果(时敏业务设置部分)。
26.图10 终端3向cuc上报时敏流1包间延迟统计。
27.图11 终端3向cuc上报时敏流1端到端延迟统计。
28.图12 时间敏感流2在终端3接收业务释放后交换机1端口10的规划变化。
具体实施方式
29.下面结合附图和实施例,对本发明的具体实施方式做进一步详细描述。以下实施例或者附图用于说明本发明,但不用来限制本发明的范围。
30.一种时间敏感网络集中用户配置实现方法,其采用集中用户配置客户端(cuc client)和多个集中用户配置代理端(cuc agent),cuc client在网络中唯一存在,cuc agent设置在各时间敏感网络(tsn)终端内。其中,集中用户配置客户端包含终端设备信息维护、网络拓扑显示、时敏业务需求管理、时敏业务运行管理(配置、释放)、全网调度规划显示、终端调度规划管理等功能。在本方法中,cuc client通过二层多播或单播消息与各cuc agent进行通信,各cuc agent通过二层单播与cuc client通信,通过消息应答确认机制保证传输可靠性。本方法具体包括以下步骤:步骤1:cuc通过多播接口感知各tsn终端设备的存在。
31.步骤2:cuc通过用户/网络接口向cnc获取网络实际物理拓扑,并在cuc client的用户界面上显拓扑步骤3:cuc通过单播接口获取来自tsn终端的时敏业务需求,也支持用户界面自定义时敏业务需求。
32.步骤4:cuc通过用户/网络接口向cnc下发时敏业务需求。
33.步骤5:cnc根据时敏业务需求及网络拓扑情况计算全网调度规划结果步骤6:cnc将调度算法求解的结果通过用户/网络接口返回给cuc,在物理拓扑基础上,显示全网调度规划结果。
34.步骤7:cuc通过单播接口对各tsn talker配置优先级到出口队列的映射,以及出端口门控列表。
35.步骤8:作为可选功能,cuc agent可将对tsn talker步骤7的配置要求,转为linux下的tc qdisc taprio及etf命令,直接配置相应的设备。
36.步骤9:cuc通过单播接口对各tsn talker、tsn listener进行时间敏感流的配置步骤10:各tsn终端按照约定的业务启动时间进行时敏业务的收发步骤11:作为可选功能,cuc通过单播接口收到各tsn listener运行的cuc agent汇报的时敏业务接收情况。
37.步骤12:时间敏感网络终端可向cuc申请时间敏感业务资源释放,cuc通过单播接口响应tsn talker或listener的时敏业务释放请求,也支持用户界面自定义时敏业务释放任务,或检测不活跃tsn终端设备,及时释放相应设备的资源步骤13:cuc通过用户/网络接口向cnc下发时敏业务释放请求,cnc将时间敏感流经过的各tsn交换机所占用资源释放其中,步骤1所描述的感知tsn终端设备过程包括:a) cuc client周期性发送多播心跳消息heartbeat。
38.b) 各tsn终端的cuc agent收到heartbeat消息后,记录cuc client的mac地址,单播回复heartbeat_ack消息至cuc client,报告自身的设备名称、mac地址、支持设备类型(talker、listener或两者都支持)、支持tsn应用的类型、tsn应用类型相关地址、制造商名称、网络接口名称等信息,这里的应用类型可以是二层,也可以是三层及以上类型,不局限于ip包,表明支持多种类型的时敏业务应用同时在网络中运行。
39.c) cuc client收到tsn终端的heartbeat_ack应答后更新,重置与该终端的无握手计数为0;如果cuc客户端认为该终端是新加入设备,则增加至其维护的tsn终端列表中;若未收到某终端的heartbeat_ack应答,则无握手计数增加,直至达到no_heartack_max,则认为此tsn终端不在网络中,则从cuc client维护的tsn终端列表中删除。
40.步骤3所描述的时敏业务需求,包含每个tsn流的流周期、流优先级、流数据长度及每周期帧数、talker、listener(s)(一或多个)、流端到端最大传输延迟等内容。
41.步骤3所描述的cuc通过单播接口获取tsn终端业务需求或自定义业务需求,需要如下消息支持:tsn_requirement_rpt消息,tsn终端通过cuc agent发给cuc client,表示tsn talker终端报给cuc client该终端的时间敏感业务需求;tsn_requirement_rpt_ack消息,cuc client对cuc agent发送tsn_requirement_rpt的应答,cuc agent收到后不再重复发送tsn_requirement_rpt;tsn_requirement_custom消息,cuc client通知cuc agent所在的tsn talker被安排此通信需求;tsn_requirement_custom_ack消息,cuc agent对cuc client发送tsn_requirement_custom的应答,cuc client收到后不再重复发送tsn_requirement_custom消
息。
42.步骤7所描述的cuc对各tsn talker配置优先级到出口队列的映射,以及出端口门控列表,包括:a) 对tsn talker业务类的设置,即优先级到业务类及业务类到出口队列的映射,cuc client通过单播向各talker的cuc agent下发set_queue消息,cuc agent回复set_queue_ack消息向cuc client上报对tsn talker的优先级映射结果(成功、失败),cuc client收到set_queue_ack后不再重复发送该set_queue消息;b) 对tsn talker门控的设置,包含门控的周期及门控列表的组成,cuc client通过单播向各talker的cuc agent下发set_gcl消息,cuc agent回复set_gcl_ack消息向cuc client上报对tsn talker的门控设置结果(成功、失败),cuc client收到set_gcl_ack后不再重复发送该set_gcl消息对上述两种tsn talker的成功设置,依赖于tsn终端网口设备驱动的功能实现。
43.步骤8所描述的通过调用tc qdisc taprio及etf命令设置tsn终端,作为可选功能,依赖于所使用的tsn终端运行于linux操作系统,且实现了tc命令相关的网口设备驱动步骤9所描述的cuc通过单播接口对各tsn talker、tsn listener进行时间敏感流的配置,包括:a) 对tsn talker发送每个时间敏感流的设置,包含流的vlan id、vlan优先级、目的地址(单播或组播,对应1或多个lister)、流周期、以及周期内流每一帧的开始发送时间偏移、发送窗口大小、业务启动时刻等信息,cuc client通过单播向所有talker的cuc agent下发set_traffic_talker消息,cuc agent回复set_traffic_talker_ack消息向cuc client上报tsn talker的业务准备结果(成功、失败),cuc client收到set_traffic_talker_ack后不再重复发送该set_traffic_talker消息;b) 对tsn listener接收每个时间敏感流的设置,包含接收业务的vlan id、vlan优先级、源地址、目的地址(多个lister需要发送组播的情况,单播不涉及)、周期内每一帧的开始发送时间偏移,最大端到端延迟、业务启动时刻等信息,cuc client通过单播向每个流对应的所有listener的cuc agent下发set_traffic_listener消息,cuc agent回复set_traffic_listener_ack消息向cuc client上报tsn listener的业务准备结果(成功、失败),cuc client收到set_traffic_listener_ack后不再重复发送该set_traffic_listener消息步骤11中,tsn listener的cuc agent上报时敏业务接收情况,消息类型为listener_recv_rpt,包括流编号、接收帧数目、周期内每一帧的到达时间分布等信息,可标识异常数据,以改进tsn终端或交换机性能;cuc client回复listener_recv_rpt_ack通知cuc agent相关消息已收到,tsn listener的cuc agent收到listener_recv_rpt_ack后不再重复发送该listener_recv_rpt消息。
44.步骤12中,向cuc申请时间敏感业务资源释放的具体过程如下:a) tsn终端上cuc agent利用包含流id信息的tsn_release_request消息发送时敏业务释放请求,cuc client回复tsn_release_ack消息通知该tsn终端相关请求已受理,该cuc agent收到tsn_release_ack后停止发送tsn_release_request消息;b) cuc client稍后发送tsn_release_action消息命令tsn终端释放资源,分三种
情况:如果发送tsn_release_request的tsn终端为talker,则cuc client还需要向该时敏流所有的listener发送tsn_release_action消息;如果发送tsn_release_request消息的tsn终端为listener,且当前时间敏感流包含两个及以上listener,则只需要对该listener本身发送tsn_release_action消息;如果发送tsn_release_request消息的tsn终端为listener,且当前时间敏感流只有唯一的listener,则cuc client还需要对该时间敏感流的talker发送tsn_release_action消息;c) tsn终端收到tsn_release_action消息后释放终端占用的资源,包括终止该时敏流相关的业务进程,若tsn终端为talker,还包括清除该时间敏感流占用的出口队列及门控列表,将其占用的时间片释放,交给非时敏业务使用。最后发送tsn_release_action_ack消息,向cuc client报告资源释放情况。
45.为保证集中用户配置功能的完整性,本方法采用了一种时间敏感网络用户/网络接口,接口实现采用restful风格的api,基于https协议,包括以下步骤:步骤1:cuc使用get /tsn/networktopo方法获得cnc利用lldp协议得到的网络物理拓扑的json数据,包含网络中所有设备的名称、类型、能力、mac地址、所有端口的连接设备情况、接口速率等内容;步骤2:cuc使用post /tsn/streamrequirements方法下发时敏业务需求;步骤3:cnc收到来自cuc的get /tsn/streamscheduleresults方法时,如果调度成功,将“200 ok”成功结果返回给cuc,并附带json数据描述的所有tsn流的路由、帧偏移及队列值,以及终端、交换机各端口的门控列表、业务类映射等信息;如果调度失败,cnc将“404 id_no_found”返回给cuc;如果cnc正在执行调度算法,将“201 creating”返回给cuc。
46.步骤4:cuc 使用delete /tsn/streamconfig方法,使cnc将时间敏感流涉及的tsn交换机占用的资源释放,如门控设置、出口队列设置等内容。
47.以下为一个更具体的例子:图1描述了ieee 802.1qcc中完全集中的模型。cuc用于终端发现、收集终端的时间敏感业务需求以及配置终端的tsn特性。cnc用于根据时间敏感业务需求进行全网调度计算、使用远程网管协议进行网络物理拓扑发现、检索交换机能力,以及配置交换机的tsn特性。不过,cuc使用的协议与用户应用紧密相关,不在qcc标准的范围内。qcc虽然定义了tsn用户/网络配置相关的yang数据模型,但用户网络接口(uni)的基于yang的实现目前并不完整,完全集中的模型协议的具体实现仍在工作中。图1同时标示了本发明所涉及的范围,即一种时间敏感网络集中用户配置实现方法。
48.本方法采用集中用户配置客户端(cuc client)和多个集中用户配置代理端(cuc agent),cuc client在网络中唯一存在,cuc agent设置在各时间敏感网络(tsn)终端内。集中用户配置客户端包含终端设备信息维护、网络拓扑显示、时敏业务需求管理、时敏业务运行管理(配置、释放)、全网调度规划显示、终端调度规划管理等功能,如图2所示。
49.在时间敏感网络集中用户配置实现方法中,cuc client通过二层多播或单播消息与各cuc agent进行通信,各cuc agent通过二层单播与cuc client通信,通过消息应答确认机制保证传输可靠性。具体包括以下步骤:步骤1:cuc通过多播接口感知各tsn终端设备的存在。
50.步骤2:cuc通过用户/网络接口向cnc获取网络实际物理拓扑,并在cuc client的
用户界面上显拓扑步骤3:cuc通过单播接口获取来自tsn终端的时敏业务需求,也支持用户界面自定义时敏业务需求。
51.步骤4:cuc通过用户/网络接口向cnc下发时敏业务需求。
52.步骤5:cnc根据时敏业务需求及网络拓扑情况计算全网调度规划结果步骤6:cnc将调度算法求解的结果通过用户/网络接口返回给cuc,在物理拓扑基础上,显示全网调度规划结果。
53.步骤7:cuc通过单播接口对各tsn talker配置优先级到出口队列的映射,以及出端口门控列表。
54.步骤8:作为可选功能,cuc agent可将对tsn talker步骤7的配置要求,转为linux下的tc qdisc taprio及etf命令,直接配置相应的设备。
55.步骤9:cuc通过单播接口对各tsn talker、tsn listener进行时间敏感流的配置步骤10:各tsn终端按照约定的业务启动时间进行时敏业务的收发步骤11:作为可选功能,cuc通过单播接口收到各tsn listener运行的cuc agent汇报的时敏业务接收情况。
56.步骤12:时间敏感网络终端可向cuc申请时间敏感业务资源释放,cuc通过单播接口响应tsn talker或listener的时敏业务释放请求,也支持用户界面自定义时敏业务释放任务,或检测不活跃tsn终端设备,及时释放相应设备的资源步骤13:cuc通过用户/网络接口向cnc下发时敏业务释放请求,cnc将时间敏感流经过的各tsn交换机所占用资源释放。
57.图2描述了集中用户配置客户端与集中用户配置代理端通信涉及到的各种消息类型,根据tsn终端是talker或listener,集中用户配置代理端有些消息类型区分使用。消息类型可分为如下几类:tsn终端设备感知、时敏业务需求上报及用户自定义、对talker配置业务类映射及门控列表、对talker配置时敏业务、对listener配置时敏业务、时敏业务释放、listener上报业务接收情况。tsn终端时敏业务的成功配置及运行还依赖于终端网口硬件、设备驱动以及时间敏感业务应用的配合。
58.所述步骤1所描述的感知tsn终端设备过程包括:a) cuc client周期性发送多播心跳消息heartbeat。
59.b) 各tsn终端的cuc agent收到heartbeat消息后,记录cuc client的mac地址,单播回复heartbeat_ack消息至cuc client,报告自身的设备名称、mac地址、支持设备类型(talker、listener或两者都支持)、支持tsn应用的类型、tsn应用类型相关地址、制造商名称、网络接口名称等信息,这里的应用类型可以是二层,也可以是三层及以上类型,不局限于ip包,表明支持多种类型的时敏业务应用同时在网络中运行。
60.c) cuc client收到tsn终端的heartbeat_ack应答后更新,重置与该终端的无握手计数为0;如果cuc客户端认为该终端是新加入设备,则增加至其维护的tsn终端列表中;若未收到某终端的heartbeat_ack应答,则无握手计数增加,直至达到no_heartack_max,则认为此tsn终端不在网络中,则从cuc client维护的tsn终端列表中删除。
61.步骤3所描述的时敏业务需求,包含每个tsn流的流周期、流优先级、流数据长度及每周期帧数、talker、listener(s)(一或多个)、流端到端最大传输延迟等内容。
62.所述步骤3所描述的cuc通过单播接口获取tsn终端业务需求或自定义业务需求,需要如下消息支持:tsn_requirement_rpt消息,tsn终端通过cuc agent发给cuc client,表示tsn talker终端报给cuc client该终端的时间敏感业务需求;tsn_requirement_rpt_ack消息,cuc client对cuc agent发送tsn_requirement_rpt的应答,cuc agent收到后不再重复发送tsn_requirement_rpt;tsn_requirement_custom消息,cuc client通知cuc agent所在的tsn talker被安排此通信需求;tsn_requirement_custom_ack消息,cuc agent对cuc client发送tsn_requirement_custom的应答,cuc client收到后不再重复发送tsn_requirement_custom消息。
63.步骤7所描述的cuc对各tsn talker配置优先级到出口队列的映射,以及出端口门控列表,包括:a) 对tsn talker业务类的设置,即优先级到业务类及业务类到出口队列的映射,cuc client通过单播向各talker的cuc agent下发set_queue消息,cuc agent回复set_queue_ack消息向cuc client上报对tsn talker的优先级映射结果(成功、失败),cuc client收到set_queue_ack后不再重复发送该set_queue消息;b) 对tsn talker门控的设置,包含门控的周期及门控列表的组成,cuc client通过单播向各talker的cuc agent下发set_gcl消息,cuc agent回复set_gcl_ack消息向cuc client上报对tsn talker的门控设置结果(成功、失败),cuc client收到set_gcl_ack后不再重复发送该set_gcl消息;对上述两种tsn talker的成功设置,依赖于tsn终端网口设备驱动的功能实现。
64.步骤8所描述的通过调用tc qdisc taprio及etf命令设置tsn终端,作为可选功能,依赖于所使用的tsn终端运行于linux操作系统,且实现了tc命令相关的网口设备驱动。
65.步骤9所描述的cuc通过单播接口对各tsn talker、tsn listener进行时间敏感流的配置,包括:a) 对tsn talker发送每个时间敏感流的设置,包含流的vlan id、vlan优先级、目的地址(单播或组播,对应1或多个lister)、流周期、以及周期内流每一帧的开始发送时间偏移、发送窗口大小、业务启动时刻等信息,cuc client通过单播向所有talker的cuc agent下发set_traffic_talker消息,cuc agent回复set_traffic_talker_ack消息向cuc client上报tsn talker的业务准备结果(成功、失败),cuc client收到set_traffic_talker_ack后不再重复发送该set_traffic_talker消息;b) 对tsn listener接收每个时间敏感流的设置,包含接收业务的vlan id、vlan优先级、源地址、目的地址(多个lister需要发送组播的情况,单播不涉及)、周期内每一帧的开始发送时间偏移,最大端到端延迟、业务启动时刻等信息,cuc client通过单播向每个流对应的所有listener的cuc agent下发set_traffic_listener消息,cuc agent回复set_traffic_listener_ack消息向cuc client上报tsn listener的业务准备结果(成功、失败),cuc client收到set_traffic_listener_ack后不再重复发送该set_traffic_listener消息。
66.步骤11中,tsn listener的cuc agent上报时敏业务接收情况,消息类型为listener_recv_rpt,包括流编号、接收帧数目、周期内每一帧的到达时间分布等信息,可标识异常数据,以改进tsn终端或交换机性能;cuc client回复listener_recv_rpt_ack通知cuc agent相关消息已收到,tsn listener的cuc agent收到listener_recv_rpt_ack后不再重复发送该listener_recv_rpt消息。
67.步骤12中,向cuc申请时间敏感业务资源释放的具体过程如下:a) tsn终端上cuc agent利用包含流id信息的tsn_release_request消息发送时敏业务释放请求,cuc client回复tsn_release_ack消息通知该tsn终端相关请求已受理,该cuc agent收到tsn_release_ack后停止发送tsn_release_request消息;b) cuc client稍后发送tsn_release_action消息命令tsn终端释放资源,分三种情况:如果发送tsn_release_request的tsn终端为talker,则cuc client还需要向该时敏流所有的listener发送tsn_release_action消息;如果发送tsn_release_request消息的tsn终端为listener,且当前时间敏感流包含两个及以上listener,则只需要对该listener本身发送tsn_release_action消息;如果发送tsn_release_request消息的tsn终端为listener,且当前时间敏感流只有唯一的listener,则cuc client还需要对该时间敏感流的talker发送tsn_release_action消息;c) tsn终端收到tsn_release_action消息后释放终端占用的资源,包括终止该时敏流相关的业务进程,若tsn终端为talker,还包括清除该时间敏感流占用的出口队列及门控列表,将其占用的时间片释放,交给非时敏业务使用。最后发送tsn_release_action_ack消息,向cuc client报告资源释放情况。
68.为保证集中用户配置功能的完整性,本方法提供了一种时间敏感网络用户/网络接口,如图3所示,接口实现采用restful风格的api,基于https协议,包括以下步骤:步骤1:cuc使用get /tsn/networktopo方法获得cnc利用lldp协议得到的网络物理拓扑的json数据,包含网络中所有设备的名称、类型、能力、mac地址、所有端口的连接设备情况、接口速率等内容;步骤2:cuc使用post /tsn/streamrequirements方法下发时敏业务需求;步骤3:cnc收到来自cuc的get /tsn/streamscheduleresults方法时,如果调度成功,将“200 ok”成功结果返回给cuc,并附带json数据描述的所有tsn流的路由、帧偏移及队列值,以及终端、交换机各端口的门控列表、业务类映射等信息;如果调度失败,cnc将“404 id_no_found”返回给cuc;如果cnc正在执行调度算法,将“201 creating”返回给cuc。
69.步骤4:cuc 使用delete /tsn/streamconfig方法,使cnc将时间敏感流涉及的tsn交换机占用的资源释放,如门控设置、出口队列设置等内容。
70.集中网络配置的成功运行除了用户/网络接口的实现,还依赖于图3表述的调度规划引擎及对tsn交换机的远程网络管理。这些内容属于本发明涉及范围之外,在此不进行具体展开。
71.下面借助一个例子来说明所述处理方式。考虑图6中的时间敏感网络场景,3台tsn终端通过1台tsn交换机相连。集中用户配置与集中网络配置接入该网络,这两个实体可位于同一设备,也可位于不同设备,可以作为独立节点加入,也可运行于tsn终端或交换机,以下所有内容的阐述均基于此场景。
72.图5描述了cuc从cnc获取网络物理拓扑的过程,cuc使用get /tsn/networktopo方法获得cnc利用lldp协议得到的网络物理拓扑的json数据,包含网络中所有设备的名称、类型、能力、mac地址、所有端口的连接设备情况、接口速率等内容,并通过图3集中用户配置实体中的网络拓扑显示功能显示到用户界面。
73.图4描述了cuc client感知终端1、终端2、终端3设备信息的过程,利用了cuc client周期性多播心跳消息heartbeat与终端上cuc agent单播应答消息heartbeat_ack,数据信息可组织为json格式传递。终端1的tsn应用类型包含udp和ethernet类型,同时可以作为talker、listener,具有ip地址100.1.1.1;终端2的tsn应用类型仅包含ethernet,只作为talker;终端3的tsn应用类型包含udp和ethernet,只作为listener,具有ip地址100.1.1.2。
74.图6描述了cuc向cnc下发时敏业务需求的过程,使用post /tsn/streamrequirements方法完成此目的。示例中包含两个时间敏感流需求:流1是udp包,优先级6,终端1发送,终端3接收,周期100μs,周期内帧数1,端到端时延要求60μs,最大载荷1500字节;流2是以太网帧,优先级4,终端2发送,终端1和终端3接收,周期150μs,周期内帧数3,端到端时延要求80μs,最大载荷1500字节。时间敏感流需求获取是通过tsn_requirement_rpt、tsn_requirement_rpt_ack或tsn_requirement_custom、tsn_requirement_custom_ack完成,数据信息可组织为json格式传递。
75.cnc收到cuc下发的时敏业务需求后使用调度规划引擎计算调度结果,使用ilp方法求解ieee 802.1qbv时间感知整形的规划,此部分在本发明范围外,不做详述。图7描述了cuc使用get /tsn/streamscheduleresults方法获得cnc调度计算结果,此图中包括各终端、交换机业务类映射及出口门控的调度值,假定交换机各出口含8个队列,终端各出口含4个队列。注意终端1、终端2的出口门控周期分别为100μs、150μs,均为2个业务类(traffic class),业务类0用于时敏业务,业务类1用于非时敏业务。交换机的出口只涉及端口10、端口1,周期分别为300μs、150μs。注意交换机1端口10涉及3个业务类,时敏流1、2分别映射至业务类0、业务类1,业务类2用于非时敏业务。cnc通过远程网管协议配置交换机,这部分在本发明范围外,不做详述。cuc client的终端调度规划管理通过set_queue、set_gcl消息及其应答对各talker的队列及门控进行设置。此图中涉及的各种数据信息可组织为json格式传递。
76.在图7,终端2的出口业务类映射描述中,“4 0 etf 200000ns”为优先级到业务类的映射,“0 q0”、“1 q1,q2,q3”为业务类到队列的映射,两者综合起来,表示优先级为4的时敏流2,其数据包从终端2的队列q0发出。诸如终端2门控“s 0x2 13000”的信息表示在周期的第13μs开始(“s 0x1 13000”),允许业务类1(0x2代表第1个比特(0开始),即业务类1)关联的队列q1、q2、q3打开,q0关闭,持续13μs,此时q1、q2、q3允许队列中的数据包发出,以此类推。“etf 200000ns”表示使能etf qdisc排队准则,设定delta值为200000ns。作为可选功能,本发明支持set_queue、set_gcl消息到linux流控(traffic control)tc qdisc命令的转换,如图8所示。如果tsn终端设备的网络硬件及驱动支持此命令,可通过此方式对终端设备规划的配置。
77.cuc使用get /tsn/streamscheduleresults方法获得cnc调度计算结果,还包括时间敏感流在各终端的设置。图9描述了时敏流1在talker终端1、listener终端3,以及时敏流
2在talker终端2,listener终端1、3的应用配置信息,包含业务启动时刻、源端、目的端。talker中的应用信息还包括发送窗口数目及各窗口发送偏移、持续时间、帧数等。listener中的应用信息还包括talker中周期内各帧的发送偏移、规划估计的最大端到端延迟、接收报告是否上报等内容。cuc对tsn终端的时间敏感应用配置是通过set_traffic_talker、set_traffic_listener消息及其应答完成。此图中涉及的各种数据信息可组织为json格式传递。
78.作为可选的功能,如果cuc给listener下达的时间敏感应用配置信息要求接收状态上报,tsn listener的cuc agent使用listener_recv_rpt消息上报时敏业务接收情况,包括流编号、接收帧数目、周期内每一帧的到达时间分布等、包间延迟等信息,如图10、图11所示为终端3向cuc client上报的时敏流1的接收情况,从图中可看到包间延迟与时间敏感流周期100μs一致,接收最大端到端延迟不超过图9中描述的27.336μs。listener_recv_rpt、listener_recv_ack的数据信息可组织为json格式传递。
79.图12描述了释放listener终端3对时间敏感流2接收业务的过程。终端3上的cuc agent向cuc client发送tsn_release_request消息请求释放终端3对时敏流2的接收业务,cuc client回复tsn_release_ack消息通知终端3已收到业务释放请求,随后发送tsn_release_action消息通知终端3释放该业务。终端3在时间敏感流2的接收业务释放完毕后应答cuc client。涉及的各种数据信息可组织为json格式传递。在终端的业务释放完毕后,cuc使用delete /tsn/streamconfig 方法通知cnc调整原路径途径的tsn交换机1进行业务释放,如门控设置、出口队列设置等内容,业务释放后,交换机1的端口10只剩下对时间敏感流1的调度规划,如图12所述。此delete方法传递的信息只是描述终端3对时敏流2的接收业务已撤除,数据信息同样可组织为json格式传递。
80.以上所述仅为本发明的一种实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1