一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种流标识获取方法、装置、设备及介质与流程

2022-10-26 16:27:15 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别是涉及一种流标识获取方法、装置、设备及介质。


背景技术:

2.随流检测技术是一种通过对网络真实业务流进行检测以得到网络性能指标的检测技术。网络中的带内操作管理和维护(in-band operation administration and maintenance,ioam)设备可以通过flow id(流标识)标识一条流,ioam设备接收到需要进行随流检测的原始业务报文后,可以在原始报文中插入ioam头,ioam头中携带flow id,转发路径中的网络设备可以通过该flow id向分析器上报检测数据。
3.目前ioam设备获取flow id的方法为:控制器向ioam设备下发四元组规则,四元组可以包括需要进行随流检测的流的源ip地址、源媒体访问控制(media access control,mac)地址、目的ip地址以及目的mac地址。然后当ioam设备的转发层接收到与该四元组匹配的报文时,可基于该四元组规则将与该四元组匹配的报文上报中央处理器(central processing unit,cpu),cpu提取报文的五元组,并将五元组上送到控制器,该五元组相比于四元组增加了端口号。
4.然后,控制器在flow id池中为接收到的五元组生成一个flow id,将五元组与flow id的映射规则下发给ioam设备的cpu,cpu再将该映射规则下发到转发层。后续转发层接收到与该映射规则中的五元组匹配的报文时,可以获取与该五元组匹配的flow id,为该报文封装包括该flow id的ioam头。
5.上述ioam设备获取flow id的过程中,ioam设备向控制器上报五元组、控制器生成flow id以及控制器下发映射规则的过程都需要消耗时间,导致ioam设备获取flow id的速度较慢。而有些需要被随流检测的流的生存时间很短,生存时间可能会小于上述过程消耗的总时间,在控制器为这些流生成flow id,下发映射规则到ioam设备之后,这些流可能已经消亡,ioam设备也就无法通过映射规则匹配到这些流的报文,导致无法对生存时间较短的流进行随流检测。


技术实现要素:

6.本技术实施例的目的在于提供一种流标识获取方法、装置、设备及介质,以实现解决无法对生存时间较短的流进行随流检测的问题。具体技术方案如下:
7.第一方面,本技术实施例提供了一种流标识获取方法,所述方法应用于ioam设备的cpu,所述方法包括:
8.接收基于随流检测识别表项获取的首报文;
9.根据所述首报文的流特征信息从预设子flow id池选择一个处于空闲状态的子flow id;
10.基于设备id与选择的子flow id生成所述首报文所属业务流的flow id;
11.向硬件芯片下发acl表项,所述acl表项的匹配域为所述流特征信息,动作项为在
报文中添加包括所述flow id的ioam头。
12.第二方面,本技术实施例提供了一种流标识获取装置,所述装置应用于ioam设备的cpu,所述装置包括:
13.接收模块,用于接收基于随流检测识别表项获取的首报文;
14.选择模块,用于根据所述首报文的流特征信息从预设子flow id池选择一个处于空闲状态的子flow id;
15.生成模块,用于基于设备id与选择的子flow id生成所述首报文所属业务流的flow id;
16.下发模块,用于向硬件芯片下发acl表项,所述acl表项的匹配域为所述流特征信息,动作项为在报文中添加包括所述flow id的ioam头。
17.采用上述技术方案,ioam设备的cpu接收到基于随流检测识别表项获取的首报文后,可以根据首报文的流特征信息从子flow id池选择一个处于空闲状态的子flow id,进而,可以基于设备id与子flow id生成flow id,并向硬件芯片下发acl表项,acl表项的匹配域为流特征信息,动作项为在报文中添加包括flow id的ioam头。可见,上述过程中,ioam设备无需向控制器请求获取flow id,而是可以在自身的cpu中生成acl表项,生成速度较快。并且,相比于现有技术,节省了向控制器上送五元组信息以及控制器下发flow id的时间,而且ioam设备自身生成flow id比控制器为多个ioam设备生成flow id所需的时间更短,很大程度上减少了耗时。进而可以避免因获取flow id所需的耗时过长,导致的无法对生存时间较短的流进行随流检测的问题。
18.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
20.图1为本技术实施例提供的一种随流检测组网的结构示意图;
21.图2为本技术实施例提供的三种添加ioam头的业务报文的示例性示意图;
22.图3为本技术实施例提供的一种ipv4报文格式;
23.图4a为本技术实施例提供的一种flow id下发示意图;
24.图4b为本技术实施例提供的一种ioam设备获取flow id的过程示意图;
25.图5为本技术实施例提供的一种流标识获取方法的流程示意图;
26.图6为本技术实施例提供的一种子flow id状态机示意图;
27.图7a为本技术实施例提供的一种子flow id链表和五元组链表关系图;
28.图7b为本技术实施例提供的另一种子flow id链表和五元组链表关系图;
29.图8为本技术实施例提供的一种下发设备id和子flow id规格的示意图;
30.图9为本技术实施例提供的另一种ioam设备获取flow id的过程示意图;
31.图10为本技术实施例提供的一种流标识获取装置的结构示意图;
32.图11为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
34.为方便理解,首先对本技术实施例涉及的相关概念进行介绍。
35.本技术实施例中的随流检测技术是基于ioam的随流检测技术,即在随流检测组网中传输的业务报文携带有ioam头,随流检测组网中的各设备在识别到业务报文包括的ioam头后,可基于ioam头向分析器上报统计数据,分析器通过对统计数据分析可以得到设备时延、链路时延、链路丢包和设备丢包等信息,还可绘制流经过设备的路径。
36.如图1所示,图1为一种随流检测组网的结构示意图,控制器可以通过网络配置(network configuration,netconf)协议向各ioam节点下发随流检测的配置信息,作为路径头节点的ioam节点可根据随流检测的配置信息为接收到的业务报文添加ioam头,然后该业务报文的转发路径上的各ioam节点按照业务报文包括的ioam头对业务报文进行随流检测,并通过telemetry向分析器上送统计数据。其中,telemetry是新一代从设备上远程高速采集数据的网络监控技术。
37.如图2所示,图2为三种添加ioam头的业务报文的示例性示意图,可以在原始业务报文的ip头之后封装ioam头。
38.图2中的第1个报文中包括:mac层、ip层、ioam header(ioam头)和payload(载荷);
39.图2中第2个报文中包括:mac层、ip层、ioam header、tcp/udp(协议层)和payload。
40.图2中第3个报文中包括:outer mac层、outer ip层、ioam header、out udp、vxlan和payload。
41.在图2示出的各报文中,ioam头中均存在一个和五元组有映射关系的flow id来标识特定流量,以ipv4报文为例,如图3所示,ipv4报文包括ipv4头、ioam头和传输控制协议(transmission control protocol,tcp)\用户数据报协议(user datagram protocol,udp)\payload。
42.其中,ipv4头中包括:
43.版本(version,ver.),占4个比特位,表示ip版本。
44.头长度(header length,hl),占4个比特位,表示整个报头的长度。
45.差异化服务编码点(differentiated services code point,dscp),占6个比特位,为qos优先级描述符。
46.总长度(total length),占16个比特位,表示整个报文的长度。
47.标识(identification),占16个比特位,用于表示数据包的标识。
48.标志位(flag),占8个比特位,为标志位信息。
49.片偏移(fragmet offset),占13个比特位,表示ip片的位置。
50.生存时间(time to live,ttl),占8个比特位,表示报文的生存时间。
51.协议(protocol),占8个比特位,标识上层协议。
52.校验和(checksum),占16个比特位,用于对报头进行校验。
53.源地址(source ip),占32个比特位。
54.目的地址(destination ip),占32个比特位。
55.ioam头中包括:
56.流标识(flow id),标识一条检测流。
57.and other function bit,其他功能位。
58.如图4a所示,在相关技术中,控制器维护flow id池,ioam设备(例如图4a中的设备1和设备2)可以向控制器申请flow id,进而控制器可以从flow id池中分别为设备1和设备2生成flow id,并分别向设备1和设备2下发flow id。
59.各ioam设备获取flow id的过程具体如图4b所示,以ioam设备为路由器为例,路由器包括设备cpu平台和设备驱动,控制器下发待检测流的四元组规则到ioam设备的设备cpu平台,设备cpu平台再将四元组规则下发到设备驱动。
60.设备驱动接收到原始报文后,若确定原始报文与访问控制列表(access control lists,acl)中的四元组规则匹配,则将该原始报文上送到设备cpu平台,设备cpu平台通过解析该原始报文,得到该报文的五元组,然后将五元组上送到控制器。
61.控制器接收到五元组后,在规定大小的flow id规格池中为该五元组生成flow id,并建立该五元组和flow id的映射关系,然后将映射关系下发到ioam设备的设备驱动中的acl。
62.后续设备驱动通过acl匹配到符合五元组的原始报文后,可以在在匹配到原始报文中插入ioam头,ioam头中包括与该五元组存在映射关系的flow id。
63.设备驱动在该原始业务报文的入方向上,可以统计计数,比如记录接收到该业务报文的时间戳,统计接收到的属于该flow id的报文数量等。在出方向上,解析ioam头部后,可以基于ioam头部进行统计计数。设备驱动可以周期性将入方向和出方向上进行统计计数得到的流统计信息上报给分析器。
64.但是上述过程中,设备cpu平台通过telemetry等技术上送五元组到控制器,上送过程需要消耗时间(消耗时间x),整网中多台ioam设备都需要控制器计算生成flow id(消耗时间y),控制器下发映射关系到ioam设备(消耗时间z),x y z=获取flow id总消耗时间t。而网络中存在很多短连接,流的生存时间很短,生存时间可能会小于上述总消耗时间t,在ioam设备的设备驱动获取到flow id之后,这些流可能已经消亡,ioam设备的设备驱动也就无法通过映射规则中的五元组匹配到这些流的报文,导致无法对生存时间较短的流进行随流检测。
65.为了解决上述问题,本技术实施例提供了一种流标识获取方法,该方法应用于ioam设备的cpu,如图5所示,该方法包括:
66.s501、接收基于随流检测识别表项获取的首报文。
67.本技术实施例中,ioam设备的硬件芯片接收到报文后,可以将接收到的报文与随流检测识别表项进行匹配,若接收到的报文与随流检测识别表项匹配成功,则向cpu上报该首报文。作为示例,若ioam设备为交换机,则该硬件芯片具体可以为专用集成电路(application specific integrated circuit,asic)芯片。
68.随流检测识别表项可以为控制器预先向ioam设备下发的四元组规则,该四元组规
则具体可以为一条acl规则,四元组规则的匹配域为需要进行随流检测的业务流的四元组,动作项为向cpu上报首报文,四元组可以包括源ip地址、源mac地址、目的ip地址和目的mac地址。
69.s502、根据首报文的流特征信息从预设子flow id池选择一个处于空闲状态的子flow id。
70.其中,cpu可以对首报文进行解析,得到首报文的流特征信息。
71.流特征信息为用于标识一条流的特征信息集合。流特征信息可以为报文的五元组。
72.报文的五元组是在上述四元组的基础上增加协议号,或者增加源端口号或目的端口号得到的。
73.或者报文的五元组也可以为源ip地址、源端口号、协议号、目的ip地址和目的端口号,其中五元组包括的源ip地址和目的ip地址与上述四元组包括的源ip地址和目的ip地址相同。
74.此外,流特征信息也可以为其他用于标识一条流的特征信息的集合,不限于五元组,比如流特征信息可以包括:源ip地址、源端口号、协议号、目的ip地址、目的端口号、源mac地址以及目的mac地址,此处不再一一举例。
75.在后续实施例中,以流特征信息为报文的五元组为例进行解释说明。
76.子flow id池为控制器预先为ioam设备配置的规格池,选择子flow id的方法将在后续实施例中进行详细介绍。
77.s503、基于设备id与选择的子flow id生成首报文所属业务流的flow id。
78.其中,设备id是控制器预先为ioam设备配置的,cpu可以将设备id与选择的子flow id进行拼接,得到首报文所属业务流的flow id。
79.需要说明的是,flow id中,设备id和子flow id各自所占的比特位可基于实际需求设置,本技术实施例对此不作限制。
80.s504、向硬件芯片下发acl表项。
81.其中,acl表项的匹配域为流特征信息,动作项为在报文中添加包括flow id的ioam头。
82.采用本技术实施例提供的流标识获取方法,ioam设备的cpu接收到基于随流检测识别表项获取的首报文后,可以根据首报文的流特征信息从子flow id池选择一个处于空闲状态的子flow id,进而,可以基于设备id和子flow id生成flow id,并向硬件芯片下发acl表项,acl表项的匹配域为流特征信息,动作项为在报文中添加包括flow id的ioam头。可见,上述过程中,ioam设备无需向控制器请求获取flow id,而是可以在自身的cpu中生成acl表项,生成速度较快。并且,相比于现有技术,节省了向控制器上送五元组信息以及控制器下发flow id的时间,而且ioam设备自身生成flow id比控制器为多个ioam设备生成flow id所需的时间更短,很大程度上减少了耗时。进而可以避免因获取flow id所需的耗时过长,导致的无法对生存时间较短的流进行随流检测的问题。
83.另外,如果整网的flow id统一由控制器生成,在网络中需要随流检测的流较多,且流的变化较快的时候,可能会导致规格池中的flow id耗尽,进而可能会出现反复释放并占用某个flow id的情况,使得不同设备振荡反复使用同一个flow id,导致设备统计的随
流检测数据刷新混乱。比如,头节点1为报文1的ioam头中添加的flow id为100,在报文1被传到尾节点之前,头节点1可能会释放flow id 100,控制器又将flow id 100分配给头节点2接收到的其他流,那么头节点2可以在报文2的ioam头中添加flow id 100,那么中间节点可能在很短的时间间隔内先后收到报文1和报文2,并分别基于报文1和报文2对flow id 100对应的统计信息进行刷新,而实际上报文1和报文2不属于同一条流,导致该中间节点为各条流统计的随流检测数据发送错误。
84.因本技术实施例中的flow id基于设备id和子flow id生成,即使不同设备生成的子flow id可能相同,但由于不同设备的设备id不同,所以不同设备生成的flow id不会相同,可以避免不同设备为不同的流选择相同的flow id,避免设备统计的随流检测数据刷新混乱的问题。
85.可以理解的是,cpu向硬件芯片下发的acl表项的匹配域包括流特征信息,动作项为在报文中添加包括flow id的ioam头,硬件芯片接收到报文后,若报文与该acl表项的流特征信息匹配,则硬件芯片为报文封装包括flow id的ioam头,进而转发路径上的设备可以基于该ioam头进行随流检测,并基于flow id记录随流检测数据。
86.在本技术实施例中,在执行图5所示的流程之前,ioam设备的cpu需要生成子flow id池,ioam设备可以接收控制器下发的设备id和子flow id规格。然后,cpu存储设备id,并基于子flow id规格生成子flow id池。
87.其中,子flow id规格用于表示为ioam设备分配的子flow id池的范围。例如,若子flow id规格为10,则cpu生成的子flow id池的范围包括1至10。
88.以下对cpu根据首报文的流特征信息从子flow id池选择一个处于空闲状态的子flow id的过程进行详细介绍。
89.如图6所示,cpu可以维护一个子flow id状态机,每个子flow id包括三个状态,分别为映射状态(可称为e1)、待释放状态(可称为e2)和空闲状态(可称为e3)。
90.其中,e1:映射状态,是指五元组和子flow id的映射状态,即如果已经将该子flow id分配给一个业务流,则该子flow id处于映射状态,具体可以通过状态机维护该子flow id与五元组的软件映射关系。
91.e2:待释放状态,是指处于映射状态的子flow id对应的流消亡后,该子flow id的状态会被切换为待释放状态。也就是说被分配后的子flow id在不被使用之后,有一个冷却期,在该冷却期内处于待释放状态,冷却期结束之后,恢复成空闲状态。
92.e3:空闲状态,表示子flow id可以被选择。
93.结合图6,cpu可以根据首报文的流特征信息从子flow id池选择一个处于空闲状态的子flow id。
94.在一种实施方式中,cpu可以从子flow id池中,随机为流特征信息选择一个处于空闲状态的子flow id。
95.在一种实施方式中,cpu可以按照一定的顺序为流特征信息选择处于空闲状态的子flow id,具体选择过程为:
96.从子flow id池中指定子flow id开始,按照子flow id从小到大的顺序,查找处于空闲状态的子flow id。若查找到子flow id池的结尾处,仍未查找到处于空闲状态的子flow id,则从子flow id池的起始处开始,按照子flow id从小到大的顺序,查找处于空闲
状态的子flow id。选择查找到的第一个处于空闲状态的子flow id。
97.其中,指定位置为子flow id池中上一次被选择的子flow id的位置。
98.如图7a所示,图7a示出了通过状态机维护的子flow id池中各子flow id与五元组之间的软件映射关系,可选地,可以以子flow id链表的形式维护子flow id池,也可以以五元组链表的形式维护已被选择子flow id的五元组。
99.控制器在为五元组选择子flow id过程中,可以从子flow id1开始选择,图7a中,子flow id1已被分配给五元组a,所以子flow id1的状态为映射状态(e1);
100.子flow id2曾经被分配给五元组b,但五元组b所属的流已经不存在,子flow id2处于待释放状态(e2);
101.子flow id3已被分配给五元组c,所以子flow id3的状态为映射状态(e1);
102.子flow id3之后的flow id状态均为空闲状态。
103.结合图7a,指定位置为子flow id3的位置,那么cpu可以从子flow id3之后查找处于空闲状态的子flow id,那么可以查找到子flow id4,为流特征信息选择子flow id4。
104.可以理解的是,假设该流特征信息为五元组d,为五元组b选择子flow id4之后,子flow id4的状态更新为映射状态(e1),即可通过状态机维护子flow id4与五元组d的软件映射关系。
105.后续,若flow id2处于待释放状态的时长超过预设时长,即冷却期结束,那么子flow id2被更新为空闲状态(e3),那么图7a演变为图7b。
106.如果此时ioam设备的cpu再次接收到硬件芯片上报的另一条流中的报文,获取该报文的流特征信息,则可以从子flow id4开始查找处于空闲状态的子flow id,由于子flow id4已经处于子flow id池的结尾,所以可以重新从子flow id池的起始处开始查找,那么可以查找到子flow id2处于空闲状态,为流特征信息选择子flow id2,并将子flow id2更新为映射状态。
107.在本技术实施例中,如果需要为流特征信息选择子flow id,但是子flow id池中无空闲子flow id,则可以发出超规格提醒,以提示管理员当前暂无可选择的子flow id。
108.采用上述方法,控制器可以从上一次选择的子flow id的位置开始,按照子flow id从小到大的顺序查找处于空闲状态的子flow id,查到子flow id池的结尾处,再进行翻转查找,如此可以避免同一子flow id在短时间内被分配给两个不同的业务流,避免同一设备内不同业务流振荡反复使用同一子flow id。
109.通过上述实施例可知,根据流特征信息选择子flow id后,子flow id的状态也会发生变化。
110.具体地,在选择查找到的第一个处于空闲状态的子flow id之后,可以将选择的子flow id更新为映射状态,并通过状态机维护选择的子flow id与流特征信息的软件映射关系。
111.若到达流特征信息的老化时间,硬件芯片仍未接收到与流特征信息匹配的报文,或者,随流检测识别表项被删除,则将根据流特征信息选择的子flow id更新为待释放状态;并在预设时长之后,将根据流特征信息选择的子flow id更新为空闲状态。
112.其中,若到达流特征信息的老化时间,硬件芯片仍未接收到与流特征信息匹配的报文,说明该流特征信息标识的流已经不存在,所以可以将根据该流特征信息选择的子
flow id更新为待释放状态。由于待释放状态的子flow id不会被选择,所以可以避免该子flow id短时间内被不同业务流振荡使用的情况。
113.若随流检测识别表项被删除,说明已经无需对该流特征信息标识的流进行随流检测,但是这条业务流之前的报文可能仍在网络中沿着转发路径传输,所以可以将根据该流特征信息选择的子flow id更新为待释放状态,可以避免该子flow id短时间内被选择给其他业务流,进而可以避免该子flow id短时间内被不同业务流振荡使用的情况,进而避免设备统计的随流检测数据刷新混乱而影响随流检测结果的准确性。
114.在本技术实施例中,ioam设备的cpu若接收到控制器下发的对设备id的删除指令,则将设备id、随流检测识别表项、子flow id池和acl表项删除。若控制器接收到对设备id的删除指令,则说明ioam设备不需要进行随流检测,或者ioam设备当前不被控制器纳管,那么ioam的cpu可释放该设备id和已被选择的子flow id,进而控制器还可以将该设备id分配给其他ioam设备,且不会导致不同ioam设备使用相同的flow id。
115.另外,ioam设备的cpu若接收到控制器下发的更新后的设备id,则将自身存储的设备id更新为更新后的设备id,后续使用更新后的设备id生成flow id。
116.以下对控制器为ioam设备预先配置设备id和子子flow id池的方法进行介绍,该方法应用于控制器,该方法包括:
117.为ioam设备的cpu配置设备id和子flow id池,以使得cpu接收基于随流检测识别表项获取的首报文后,根据首报文的流特征信息从预设子flow id池选择一个处于空闲状态的子flow id,并基于设备id和选择的子flow id生成首报文所属业务流的flow id,向硬件芯片acl表项。acl表项的匹配域为流特征信息,动作项为在报文中添加包括flow id的ioam头。
118.其中,控制器为ioam设备的cpu配置设备id和子flow id池,具体可以实现为:向ioam设备的cpu下发设备id和子flow id规格,以使得cpu存储设备id,并基于flow id规格生成子flow id池,子flow id规格用于表示为ioam设备分配的子flow id的范围。
119.其中,控制器中可以维护为自身纳管的每个设备分配的设备id和子flow id规格,各个设备的设备id和子flow id规格可以人工在控制器中配置,或者也可以由控制器自动分配。
120.控制器可以通过netconf向设备下发设备id和子flow id规格,如图8所示,假设控制器当前纳管设备1和设备2,那么可以从自身的设备id池和flow id规格池中为设备分配设备id和子flow id规格。进而分别向设备1和设备2下发设备id和子flow id规格,例如,为设备1下发的设备id为x,子flow id规格为30。为设备1下发的设备id为y,子flow id规格为20。
121.由于为不同设备分配的设备id不同,所以不同设备基于设备id生成的flow id不会相同,从而可以避免不同设备使用相同的flow id。
122.在本技术另一实施例中,在控制器为ioam设备的cpu配置设备id和子flow id池之后,该方法还包括:
123.当与ioam设备之间的通信断开且再次恢复通信后,获取ioam设备的cpu存储的设备id。如果控制器为ioam设备维护的设备id与从ioam设备获取的设备id不一致,则向ioam设备的cpu下发自身为ioam设备维护的设备id,以使得ioam设备的cpu将设备id更新为此次
接收到的设备id。
124.本技术实施例中,若控制器与ioam设备失联,即与ioam设备之间的通信暂时断开,ioam设备可以自己维护已被分配的设备id。因控制器与ioam设备失联期间,为ioam设备分配的设备id可能被管理员误修改,所以当控制器与ioam设备之间再次恢复通信之后,控制器可以对自身为该ioam设备维护的设备id,与该ioam设备当前使用的设备id进行对齐操作,如果两者维护的设备id不同,则以控制器维护的设备id为准,以避免控制器为其他ioam设备分配相同的设备id,从而避免不同其他ioam设备使用相同的flow id。
125.下面结合具体例子对本技术实施例提供的一种流标识获取方法进行说明,本技术实施例中的ioam设备可以为路由器、交换机、虚拟交换机或者防火墙等网元,以ioam设备为路由器、随流检测识别表项为四元组规则、流特征信息为五元组为例,交换机包括设备cpu平台和设备驱动,设备驱动可实现上述实施例中硬件芯片执行的方法步骤。如图9所示,该方法包括:
126.步骤1、控制器获取到需要进行随流检测的业务流的四元组后,向ioam设备的设备cpu平台下发四元组规则,设备cpu平台将四元组规则下发到设备驱动。
127.步骤2、设备驱动接收到与四元组规则匹配的首报文,将首报文上报设备cpu平台。
128.步骤3、设备cpu平台提取首报文的五元组,为五元组生成flow id,并下发给设备驱动。
129.其中,该flow id由设备id和子flow id组成。
130.步骤4、设备驱动接收到与该五元组匹配的报文,为该报文插入携带上述flow id的ioam头。
131.后续设备驱动即可在入方向上按照随流检测方法进行统计计数,且可在出方向上解析报文的头部,并进行统计计数,且向其他设备发送携带ioam头的报文。
132.基于相同的发明构思,本技术实施例还提供了一种流标识获取装置,该装置应用于ioam设备的cpu,如图10所示,该装置包括:
133.接收模块1001,用于接收基于随流检测识别表项获取的首报文;
134.选择模块1002,用于根据首报文的流特征信息从预设子flow id池选择一个处于空闲状态的子flow id;
135.生成模块1003,用于基于设备id与选择的子flow id生成首报文所属业务流的flow id;
136.下发模块1004,用于向硬件芯片下发acl表项,acl表项的匹配域为流特征信息,动作项为在报文中添加包括flow id的ioam头。
137.可选地,选择模块1002,具体用于:
138.从子flow id池中指定子flow id开始,按照子flow id从小到大的顺序,查找处于空闲状态的子flow id,指定子flow id为子flow id池上一次被选择的子flow id的位置;
139.若查找到子flow id池的结尾处,仍未查找到处于空闲状态的子flow id,则从子flow id池的起始处开始,按照子flow id从小到大的顺序,查找处于空闲状态的子flow id;
140.选择查找到的第一个处于空闲状态的子flow id。
141.可选地,该装置还包括第一更新模块:
142.第一更新模块,用于:
143.将选择的子flow id更新为映射状态,并通过状态机维护选择的子flow id与所述流特征信息的软件映射关系;
144.若到达流特征信息的老化时间,硬件芯片仍未接收到与流特征信息匹配的报文,或者,随流检测识别表项被删除,则将根据流特征信息选择的子flow id更新为待释放状态;
145.在预设时长之后,将根据流特征信息选择的子flow id更新为空闲状态。
146.可选地,该装置还包括:
147.删除模块,用于若接收模块1001接收到控制器下发的对设备id的删除指令,则将设备id、随流检测表项、子flow id池和acl表项删除。
148.可选地,该装置还包括:
149.第二更新模块,用于若接收模块1001接收到控制器下发的更新后的设备id,则将自身存储的设备id更新为更新后的设备id。
150.本技术实施例还提供了一种电子设备,如图11示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
151.存储器1103,用于存放计算机程序;
152.处理器1101,用于执行存储器1103上所存放的程序时,实现上述实施例中任一流标识获方法的步骤。
153.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
154.通信接口用于上述电子设备与其他设备之间的通信。
155.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
156.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
157.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一流标识获取方法的步骤。
158.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一流标识获取方法。
159.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
160.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
161.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
162.以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献