CN112087387B - 一种网络处理器和数据包转发方法 - Google Patents

一种网络处理器和数据包转发方法 Download PDF

Info

Publication number
CN112087387B
CN112087387B CN202010816625.0A CN202010816625A CN112087387B CN 112087387 B CN112087387 B CN 112087387B CN 202010816625 A CN202010816625 A CN 202010816625A CN 112087387 B CN112087387 B CN 112087387B
Authority
CN
China
Prior art keywords
label
tag
target
service
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010816625.0A
Other languages
English (en)
Other versions
CN112087387A (zh
Inventor
赵继诚
李先鲜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN202010816625.0A priority Critical patent/CN112087387B/zh
Publication of CN112087387A publication Critical patent/CN112087387A/zh
Application granted granted Critical
Publication of CN112087387B publication Critical patent/CN112087387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing

Abstract

本发明公开了一种网络处理器和数据包转发方法,该数据包转发方法包括:获取目的业务表,在目的业务表中设置与数据包相匹配的标签类型和标签层数,将数据包与目的业务表建立第一关联;根据标签类型和标签层数获取多个目的标签表,在多个目的标签表中设置相应的标签值,并将目的业务表与多个目的标签表建立第二关联;在进行数据包转发时,通过第一关联和第二关联确定数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至数据包中,将经过封装的数据包转发至下游设备。在本发明中,通过该数据包转发方法,可以实现SR‑MPLS/SRv6等不同业务的资源共用,提高了存贮资源的利用效率。

Description

一种网络处理器和数据包转发方法
技术领域
本发明属于通信领域,更具体地,涉及一种网络处理器和数据包转发方法。
背景技术
段路由SR(Segment Routing,简写为SR)是基于源路由理念而设计的在网络上转发数据包的一种协议。SR-MPLS(Segment Routing MPLS,简写为SR-MPLS)是指基于MPLS转发平面的Segment Routing,通过MPLS标签实现数据包的转发。
IPv6段路由SRv6(Segment Routing IPv6,简写为SRv6)是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。基于IPv6转发面的SRv6,通过在IPv6报文中插入一个路由扩展头SRH(Segment Routing Header,简写为SRH),在SRH中压入一个显式的IPv6地址栈,通过中间节点不断的更新目的地址和偏移地址栈的操作来完成逐跳转发。
现有的SR-MPLS和SRv6作为SR技术的2个方向,二者适用的标签类型不同,由于每个MPLS标签的长度占4个字节,每个SID((Segment Identifier,简写为SID)标签的长度占16个字节,每个uSID标签占4个字节,其中,当SRv6为简约模式,采用uSID标签。由前述分析可知MPLS标签、SID标签和uSID标签的长度相差很大,难以统一管理和存贮,如果都按照最大10层标签的存贮空间去预留,不仅浪费了存贮空间,而且管理方法也无法复用。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种网络处理器和数据包转发方法,其目的在于通过相互关联的业务表和标签表设置标签构成转发路径,以转发不同类型的业务,扩展了所支持的业务种类,提高软件的复用性和稳定性,由此解决不同业务所使用的标签的长度相差很大,难以统一管理和存贮的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种数据包转发方法,所述数据包转发方法应用于网络处理器,所述网络处理器在其存贮空间上建立多个业务表和多个标签表;
所述数据包转发方法包括:
获取目的业务表,在所述目的业务表中设置与数据包相匹配的标签类型和标签层数,将所述数据包与所述目的业务表建立第一关联;
根据所述标签类型和所述标签层数获取多个目的标签表,在多个所述目的标签表中设置相应的标签值,并将所述目的业务表与多个所述目的标签表建立第二关联;
在进行数据包转发时,通过所述第一关联和所述第二关联确定所述数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备。
优选地,每个所述标签表均具有表索引,所述业务表设置有第一表项,所述第一表项用于设置所述业务表所指向的第一个标签表,所述标签表设置有第二表项,所述第二表项用于设置所述标签表所指向的下一个标签表;
所述根据所述标签类型和所述标签层数获取多个目的标签表,在多个所述目的标签表中设置相应的标签值,并将所述目的业务表与多个所述目的标签表的表索引建立第二关联包括:
根据所述标签类型和所述标签层数获取多个目的标签表;
将所述目的业务表的第一表项设置为第一个目的标签表的表索引,在所述第一个目的标签表中设置相应的标签值,将所述第一个目的标签表的第二表项设置为第二个目的标签表的表索引;
在所述第二个目的标签表中设置相应的标签值,将所述第二个目的标签表的第二表项设置为下一个目的标签表的表索引,直至完成全部标签值的设置,将最后一个目的标签表的第二表项设置为设定值。
优选地,每个所述业务表均具有表索引;
将所述数据包与所述目的业务表建立第一关联包括:
将所述数据包与所述目的业务表的表索引建立第一关联。
优选地,在进行数据包转发时,通过所述第一关联和所述第二关联确定所述数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备包括:
在进行数据包转发时,根据所述目的业务表的表索引确定相应的目的业务表;
根据所述目的业务表的第一表项所对应的表索引,确定第一个目的标签表,取出所述第一个目的标签表的标签值;
根据所述第一个目的标签表的第二表项所对应的表索引,确定第二个目的标签表,取出所述第二个目的标签表的标签值;
根据所述第二个目的标签表的第二表项所对应的表索引,确定下一个目的标签表,取出所述下一个目的标签表的标签值,直至取出全部的标签值;
将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备。
优选地,多个所述业务表配套设置有第一资源管理器,多个所述标签表配套设置有第二资源管理器;
所述数据包转发方法还包括:
在取出所述目的业务表后,将所述第一资源管理器的头指针往后移动,指向没有被取出的业务表;
在取出多个所述目的标签表后,将所述第二资源管理器的头指针往后移动,指向没有被取出的标签表。
优选地,所述数据包转发方法还包括:
在由所述目的业务表和所述目的标签表所构成的转发路径被删除后,将所述目的业务表和所述目的标签表重置为初始化状态;
将所述第一资源管理器的尾指针指向所述目的业务表,将所述第二资源管理器的尾指针指向所述最后一个目的标签表。
优选地,所述数据包转发方法还包括:
获取数据包的以太帧类型,根据所述以太帧类型确定所述数据包的业务类型,以根据所述业务类型确定所述数据包对应的标签类型。
优选地,每个所述标签表可以存储32bit的标签值。
优选地,所述业务类型包括SR-MPLS业务和SRv6业务;
当业务类型为SR-MPLS业务时,标签类型为MPLS标签,每个MPLS标签占用32bit,针对SR-MPLS业务,若需要三层MPLS标签形成标签栈,则共需要三个目的标签表;
当业务类型为SRv6业务时,标签类型为SID标签,每个SID标签占用128bit,每个SID标签占用四个目的标签表,针对SRv6业务,若需要将四层SID标签形成一个标签栈,则共需要十六个目的标签表。
按照本发明的另一方面,提供了一种网络处理器,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的数据包转发方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种网络处理器和数据包转发方法,该数据包转发方法包括:获取目的业务表,在所述目的业务表中设置与数据包相匹配的标签类型和标签层数,将所述数据包与所述目的业务表建立第一关联;根据所述标签类型和所述标签层数获取多个目的标签表,在多个所述目的标签表中设置相应的标签值,并将所述目的业务表与多个所述目的标签表建立第二关联;在进行数据包转发时,通过所述第一关联和所述第二关联确定所述数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备。
在本发明中,通过该数据包转发方法,可以实现SR-MPLS/SRv6等不同业务的资源共用,提高了存贮资源的利用效率,在有限的硬件资源上,可以共用资源,通过相互关联的业务表和标签表设置标签构成转发路径,以转发不同类型的业务,扩展了所支持的业务种类,提高软件的复用性和稳定性。
附图说明
图1是本发明实施例提供的一种数据包转发方法的流程示意图;
图2是本发明实施例提供的业务表和标签表的表结构示意图;
图3是本发明实施例提供的数据包的业务类型为SR-MPLS业务时,设置标签值的过程示意图;
图4是本发明实施例获取图3设置的标签值的过程示意图;
图5是本发明实施例回收图3所取出的表的过程示意图;
图6是本发明实施例提供的数据包的业务类型为SRv6业务时,设置标签值的过程示意图;
图7是本发明实施例获取图6设置的标签值的过程示意图;
图8是本发明实施例提供的一种网络处理器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了便于理解本发明的技术方案,首先对下列名词作解释:
SR:Segment Routing,简写为SR,段路由,SR架构基于源路由。
MPLS:Multi-Protocol Label Switching,简写为MPLS,多协议标签交换,MPLS是新一代的IP高速骨干网络交换标准,MPLS是利用标记(label)进行数据转发的,当分组进入网络时,要为其分配固定长度MPLS标签,并将MPLS标签与分组封装在一起,在整个转发过程中,交换节点仅根据MPLS标签进行转发。其中,每个MPLS标签占用32bit(4个字节)。
SR-MPLS:Segment Routing MPLS,简写为SR-MPLS,指的是基于MPLS转发面的SR,采用MPLS标签进行数据的转发。
SRv6:Segment Routing IPv6,简写为SRv6,指的是基于IPv6转发面的SR,采用路由扩展头SRH(Segment Routing Header,简写为SRH)进行数据的转发。
EtherType:以太帧类型,在以太网链路上的数据包称作以太帧,通过EtherType可以区分以太网帧数据类型字段。例如,一个0x86dd的以太帧类型说明这个帧包含的是IPv6帧,一个0x8847的以太帧类型说明这个帧包含的是MPLS帧,通过以太帧类型可以确定报文的业务类型。
实施例1:
本实施例提供一种数据包转发方法,所述数据包转发方法应用于网络处理器,所述网络处理器在其存贮空间上建立多个业务表和多个标签表。
参阅图1,本实施例的数据包转发方法包括如下步骤:
步骤101:获取目的业务表,在所述目的业务表中设置与数据包相匹配的标签类型和标签层数,将所述数据包与所述目的业务表建立第一关联。
其中,目的业务表指的是空闲可用的业务表。
其中,在业务表中可以设置该业务表所对应的数据包的业务类型,其中,业务类型包括SR-MPLS业务和SRv6业务,不同类型的业务所适用的标签类型也有差异。针对SR-MPLS业务,标签类型为MPLS标签;针对SRv6业务,标签类型为SID标签。
以图2为例,可以通过为Type赋值,表示该业务表对应的数据包的标签类型,例如,Type=0代表标签类型为MPLS标签,Type=1代表业务类型为SID标签。
其中,每个所述业务表均具有表索引,将所述数据包与所述目的业务表的表索引建立第一关联,在后续进行数据包转发时,可以根据与数据包相关联的表索引找到相应的目的业务表。
在本实施例中,获取数据包的以太帧类型,根据所述以太帧类型确定所述数据包的业务类型,以根据所述业务类型确定所述数据包对应的标签类型。例如,一个0x86dd的以太帧类型说明这个帧包含的是IPv6帧,一个0x8847的以太帧类型说明这个帧包含的是MPLS帧,通过以太帧类型可以确定报文的业务类型。
步骤102:根据所述标签类型和所述标签层数获取多个目的标签表,在多个所述目的标签表中设置相应的标签值,并将所述目的业务表与多个所述目的标签表建立第二关联。
其中,在业务表中可以设置标签层数,根据标签表可存储的位数、标签层数和标签类型确定标签表的个数。
在可选的实施例中,每个所述标签表可以存储32bit的标签值,当业务类型为SR-MPLS业务时,标签类型为MPLS标签,每个MPLS标签占用32bit,针对SR-MPLS业务,若需要三层MPLS标签形成标签栈,则共需要三个目的标签表;当业务类型为SRv6业务时,标签类型为SID标签,每个SID标签占用128bit,每个SID标签占用四个目的标签表,针对SRv6业务,若需要将四层SID标签形成一个标签栈,则共需要十六个目的标签表。
在本实施例中,每个所述标签表均具有表索引,所述业务表设置有第一表项,所述第一表项用于设置所述业务表所指向的第一个标签表,所述标签表设置有第二表项,所述第二表项用于设置所述标签表所指向的下一个标签表。其中,所述目的业务表和多个所述标签表通过表索引建立第二关联。
在实际应用场景下,步骤102的具体实现过程如下:
根据所述标签类型和所述标签层数获取多个目的标签表,将所述目的业务表的第一表项设置为第一个目的标签表的表索引,在所述第一个目的标签表中设置相应的标签值,将所述第一个目的标签表的第二表项设置为第二个目的标签表的表索引。
在所述第二个目的标签表中设置相应的标签值,将所述第二个目的标签表的第二表项设置为下一个目的标签表的表索引,以此类推,直至完成全部标签值的设置,将最后一个目的标签表的第二表项设置为设定值,其中设定值可以为0,或者其他不等于任一表索引的值,用于表示该表为最后一个目的标签表。
步骤103:在进行数据包转发时,通过所述第一关联和所述第二关联确定所述数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备。
在本实施例中,按照前述步骤完成标签值的设定后,在进行数据包转发时,需要结合目的业务表和目的标签表依次取出标签值,并将标签值形成标签栈,将标签栈压入到数据包中,随数据包一起转发至下游设备。
在实际应用场景下,步骤103的具体实现过程如下:
在进行数据包转发时,根据所述目的业务表的表索引确定相应的目的业务表;根据所述目的业务表的第一表项所对应的表索引,确定第一个目的标签表,取出所述第一个目的标签表的标签值;根据所述第一个目的标签表的第二表项所对应的表索引,确定第二个目的标签表,取出所述第二个目的标签表的标签值;根据所述第二个目的标签表的第二表项所对应的表索引,确定下一个目的标签表,取出所述下一个目的标签表的标签值,直至取出全部的标签值;将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备。
在本实施例中,多个所述业务表配套设置有第一资源管理器,多个所述标签表配套设置有第二资源管理器,根据实际使用的硬件资源,得到这业务表和标签表的最大数目MAX,分别为每个业务表和标签表设置唯一的表索引,然后通过第一资源管理器对业务表的表索引进行队列管理Queue或者FIFO(First In First Out,简写为FIFO)管理;通过第二资源管理器对标签表的表索引进行队列管理Queue或者FIFO管理。其中,队列管理指的是可以在尾部添加元素,在头部删除一个元素。
在初始状态下,业务表均处于空闲状态,业务表按照表索引的顺序排列,例如,业务表的表索引为1~N,第一资源管理器的头指针指向表索引为1的业务表,第一资源管理器的尾指针指向表索引为N的业务表。
在初始状态下,标签表均处于空闲状态,标签表按照表索引的顺序排列,例如,标签表的表索引为1~M,第二资源管理器的头指针指向表索引为1的标签表,第二资源管理器的尾指针指向表索引为M的标签表。
在本实施例中,按照表索引的顺序取表,完成依一次取表操作后,第一资源管理器的头指针往后移动,在取出多个所述目的标签表后,将所述第二资源管理器的头指针往后移动,指向没有被取出的标签表。
在实际使用中,按照表索引的顺序取表,完成依一次取表操作后,第一资源管理器的头指针往后移动,例如,当表索引为1的业务表被取出后,第一资源管理器的头指针指向表索引为2的业务表。
在实际使用中,按照表索引的顺序取表,完成依一次取表操作后,第二资源管理器的头指针往后移动,例如,当表索引为1~3的标签表被取出后,第二资源管理器的头指针指向表索引为4的标签表。
在本实施例中,所述目的业务表和所述目的标签表建立后,构成了某一类数据所需要的转发路径,该转发路径会被这一类的数据包一直使用,直到不再需要这条转发路径时,控制器把这条转发路径删除,此种情况下,需要相应的目的业务表和相应的目的标签表将设置初始化状态,以回收资源。具体实现过程为:在由所述目的业务表和所述目的标签表所构成的转发路径被删除后,将所述目的业务表和所述目的标签表重置为初始化状态,即重置为空闲可用的状态,将所述第一资源管理器的尾指针指向所述目的业务表,将所述第二资源管理器的尾指针指向所述最后一个目的标签表。
在实际使用中,回收表索引为1的业务表后,将业务表添加至表队列的尾部,第一资源管理器的尾指针往后移动,指向表索引为1的业务表。
回收表索引为1~3的标签表后,将标签表依次添加至表队列的尾部,第二资源管理器的尾指针往后移动,指向表索引为3的标签表。
在本实施例中,基于前述数据包转发方法,可以在网络处理器NP(NetworkProcessor,简写为NP)上实现SR-MPLS/SRv6资源的共用,提高了存贮资源的利用效率,在有限的硬件资源上,可以共用资源,通过相互关联的业务表和标签表设置标签构成转发路径,以转发不同类型的业务,扩展了所支持的业务种类,提高软件的复用性和稳定性。
实施例2:
下面结合图3~图5,举例说明基于业务表和标签表,设置标签值的过程、获取标签值的过程和回收被释放的表的过程。在此,以每个标签表可以存储32bit的标签值为例进行举例说明。
如图3,创建具有3层MPLS标签的SR-MPLS业务时,一层MPLS标签的标签值需要占用32bit,3层MPLS标签共需要占用3张标签表。
从第一资源管理器上取得可用的表索引id1,同时头指针移动到表索引id2的位置。从第二资源管理器上取出表索引id1、id2和id3的标签表,同时头指针移动到表索引id4的位置。
在业务表里写标签类型Type=0,标签层数Label_num=3,第一个标签表的表索引first_label_index=1。
在标签表1里填写第一层标签对应的标签值,下一个标签表的表索引next_label_index=2,在标签表2里填写第二层标签对应的标签值,下一个标签表的表索引next_label_index=3。
在标签表3里填写第三层标签对应的标签值,下一个标签表的表索引next_label_index=0。这样在网络处理器上创建了具有关联关系的转发表项,根据实际配置占用相应的存贮空间。
如图4,进行数据包转发时,首先,查找到表索引为1的业务表,网络处理器读取业务表的内容,发现Type是SR-MPLS,需要封装3层MPLS标签,并且第一个标签表的表索引是1,然后去读第一个标签表的内容,得到第一层标签值和下一个标签表的表索引为2,再去读标签表2,得到第二层标签值和下一个标签表的表索引为3,同理,继续读取标签表3,得到第三层标签值,标签表3不指向任何一个标签表,完成标签值的读取。最后对数据包做多层MPLS标签栈的封装,然后将封装后的数据包转发至下游设备。
如图5,在由业务表1和标签表1~3所构成的转发路径被删除后,删除业务表1和标签表1~3(图上为灰化处理),占用的业务表的表索引1,回收到第一资源管理器,第一资源管理器的尾指针移动到尾部id1的位置。
占用的标签表的表索引1~3回收到第二资源管理器上,第二资源管理器的尾指针移动到尾部id3的位置。
上述回收的资源可以供下次循环使用。
实施例3:
如图6,在创建4层标签的SRv6业务时,标签类型为SID标签,需要将四层SID标签形成一个标签栈,每个SID标签占用128bit,每个SID标签占用四个目的标签表,针对SRv6业务工需要十六个目的标签表。
从业务表的第一资源管理器head上取得可用的id2,同时头指针移动到id3的位置。
从标签表的第二资源管理器上取得id4~id19,同时头指针移动到id20的位置。
在业务表里写Type=1,Label_num=4,first_label_index=4。
在标签表4里填写第一层标签的最高32bit,next_label_index=5。在标签表5里填写第一层标签接下来的32bit,next_label_index=6。
在标签表6里填写第一层标签接下来的32bit,next_label_index=7。在标签表7里填写第一层标签最低32bit,next_label_index=8。
依次类推,用4个标签表来存贮一个SRv6 128bit的标签,标签表4到标签表19具有关联关系,每4个标签表的label值可以还原成一层SID标签。
如图7,进行数据包转发时,首先,查找到索引为2的业务表,网络处理器读取业务表的内容,发现Type是SRv6,需要封装4层SID标签,并且第一个标签表的位置是4,然后去读第4、5、6、7这4个标签表的内容,得到第一层SID的标签值和第二层SID的索引,再去读8、9、10、11这4标签表,得到第二层SID的标签值和第三层SID的索引,同理,获得第三SID的标签值和第四层SID的标签值,根据四层SID标签对数据包做SRH头的封装,然后将封装后的数据包转发至下游设备。
在由业务表2和标签表4~19所构成的转发路径被删除后,删除业务表2和标签表4~19,第一资源管理器和第二资源管理器回收相应的表,具体的回收过程与前述实施例类型,在此不再赘述。
实施例4:
请参阅图8,图8是本发明实施例提供的一种网络处理器的结构示意图。本实施例的网络处理器包括一个或多个处理器41以及存储器42。其中,图8中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器42作为一种基于数据包转发方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,上述实施例的方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,实现前述实施例的方法。
其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(RandomAccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据包转发方法,其特征在于,所述数据包转发方法应用于网络处理器,所述网络处理器在其存贮空间上建立多个业务表和多个标签表;
所述数据包转发方法包括:
获取目的业务表,在所述目的业务表中设置与数据包相匹配的标签类型和标签层数,将所述数据包与所述目的业务表建立第一关联;
根据所述标签类型和所述标签层数获取多个目的标签表,在多个所述目的标签表中设置相应的标签值,并将所述目的业务表与多个所述目的标签表建立第二关联;
在进行数据包转发时,通过所述第一关联和所述第二关联确定所述数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备;
其中,所述标签类型是通过获取数据包的以太帧类型,根据所述以太帧类型确定所述数据包的业务类型,以根据所述业务类型确定所述数据包对应的标签类型。
2.根据权利要求1所述的数据包转发方法,其特征在于,每个所述标签表均具有表索引,所述业务表设置有第一表项,所述第一表项用于设置所述业务表所指向的第一个标签表,所述标签表设置有第二表项,所述第二表项用于设置所述标签表所指向的下一个标签表;
所述根据所述标签类型和所述标签层数获取多个目的标签表,在多个所述目的标签表中设置相应的标签值,并将所述目的业务表与多个所述目的标签表的表索引建立第二关联包括:
根据所述标签类型和所述标签层数获取多个目的标签表;
将所述目的业务表的第一表项设置为第一个目的标签表的表索引,在所述第一个目的标签表中设置相应的标签值,将所述第一个目的标签表的第二表项设置为第二个目的标签表的表索引;
在所述第二个目的标签表中设置相应的标签值,将所述第二个目的标签表的第二表项设置为下一个目的标签表的表索引,直至完成全部标签值的设置,将最后一个目的标签表的第二表项设置为设定值。
3.根据权利要求2所述的数据包转发方法,其特征在于,每个所述业务表均具有表索引;
将所述数据包与所述目的业务表建立第一关联包括:
将所述数据包与所述目的业务表的表索引建立第一关联。
4.根据权利要求3所述的数据包转发方法,其特征在于,在进行数据包转发时,通过所述第一关联和所述第二关联确定所述数据包所对应的目的标签表,以得到相应的标签值,将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备包括:
在进行数据包转发时,根据所述目的业务表的表索引确定相应的目的业务表;
根据所述目的业务表的第一表项所对应的表索引,确定第一个目的标签表,取出所述第一个目的标签表的标签值;
根据所述第一个目的标签表的第二表项所对应的表索引,确定第二个目的标签表,取出所述第二个目的标签表的标签值;
根据所述第二个目的标签表的第二表项所对应的表索引,确定下一个目的标签表,取出所述下一个目的标签表的标签值,直至取出全部的标签值;
将全部的标签值封装至所述数据包中,将经过封装的数据包转发至下游设备。
5.根据权利要求1所述的数据包转发方法,其特征在于,多个所述业务表配套设置有第一资源管理器,多个所述标签表配套设置有第二资源管理器;
所述数据包转发方法还包括:
在取出所述目的业务表后,将所述第一资源管理器的头指针往后移动,指向没有被取出的业务表;
在取出多个所述目的标签表后,将所述第二资源管理器的头指针往后移动,指向没有被取出的标签表。
6.根据权利要求5所述的数据包转发方法,其特征在于,所述数据包转发方法还包括:
在由所述目的业务表和所述目的标签表所构成的转发路径被删除后,将所述目的业务表和所述目的标签表重置为初始化状态;
将所述第一资源管理器的尾指针指向所述目的业务表,将所述第二资源管理器的尾指针指向最后一个目的标签表。
7.根据权利要求1所述的数据包转发方法,其特征在于,所述数据包转发方法还包括:
获取数据包的以太帧类型,根据所述以太帧类型确定所述数据包的业务类型,以根据所述业务类型确定所述数据包对应的标签类型。
8.根据权利要求1所述的数据包转发方法,其特征在于,每个所述标签表可以存储32bit的标签值。
9.根据权利要求1所述的数据包转发方法,其特征在于,业务类型包括SR-MPLS业务和SRv6业务;
当业务类型为SR-MPLS业务时,标签类型为MPLS标签,每个MPLS标签占用32bit,针对SR-MPLS业务,若需要三层MPLS标签形成标签栈,则共需要三个目的标签表;
当业务类型为SRv6业务时,标签类型为SID标签,每个SID标签占用128bit,每个SID标签占用四个目的标签表,针对SRv6业务,若需要将四层SID标签形成一个标签栈,则共需要十六个目的标签表。
10.一种网络处理器,其特征在于,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~9任一项所述的数据包转发方法。
CN202010816625.0A 2020-08-14 2020-08-14 一种网络处理器和数据包转发方法 Active CN112087387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010816625.0A CN112087387B (zh) 2020-08-14 2020-08-14 一种网络处理器和数据包转发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010816625.0A CN112087387B (zh) 2020-08-14 2020-08-14 一种网络处理器和数据包转发方法

Publications (2)

Publication Number Publication Date
CN112087387A CN112087387A (zh) 2020-12-15
CN112087387B true CN112087387B (zh) 2022-04-19

Family

ID=73728213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010816625.0A Active CN112087387B (zh) 2020-08-14 2020-08-14 一种网络处理器和数据包转发方法

Country Status (1)

Country Link
CN (1) CN112087387B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076345B (zh) * 2021-03-31 2022-07-29 烽火通信科技股份有限公司 一种系统化的各层业务表项信息管理的方法和装置
CN114389996B (zh) * 2022-01-04 2023-06-09 烽火通信科技股份有限公司 一种基于资源的多拓扑环境下SRv6 SID分配的方法及装置
CN115051950B (zh) * 2022-06-23 2023-08-18 南京邮电大学 一种面向不同业务类型的自适应数据转发系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487537A (zh) * 2015-08-25 2017-03-08 中国电信股份有限公司 业务链实现方法以及策略控制平台
CN107637031A (zh) * 2015-07-06 2018-01-26 华为技术有限公司 用于网络业务的路径计算单元中央控制器(pcecc)
CN109257279A (zh) * 2018-10-26 2019-01-22 新华三技术有限公司 一种报文转发方法及装置
CN110995596A (zh) * 2019-12-20 2020-04-10 锐捷网络股份有限公司 基于SRv6网络的SID分配方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10027594B1 (en) * 2016-03-30 2018-07-17 Amazon Technologies, Inc. Congestion control for label switching traffic
US10320664B2 (en) * 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10506083B2 (en) * 2017-06-27 2019-12-10 Cisco Technology, Inc. Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107637031A (zh) * 2015-07-06 2018-01-26 华为技术有限公司 用于网络业务的路径计算单元中央控制器(pcecc)
CN106487537A (zh) * 2015-08-25 2017-03-08 中国电信股份有限公司 业务链实现方法以及策略控制平台
CN109257279A (zh) * 2018-10-26 2019-01-22 新华三技术有限公司 一种报文转发方法及装置
CN110995596A (zh) * 2019-12-20 2020-04-10 锐捷网络股份有限公司 基于SRv6网络的SID分配方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《Label encoding algorithm for MPLS Segment Routing》;Rabah Guedrez等;《IEEE》;20161212;113-117 *
《SRv6的分段标识符结构的改善》;唐永林,刘锋;《电信科学》;20200420;170-174 *
《基于SR的IPv6过渡技术设计与实现》;蒋元兵等;《通信技术》;20200510;1151-1156 *

Also Published As

Publication number Publication date
CN112087387A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
CN112087387B (zh) 一种网络处理器和数据包转发方法
CN106790104B (zh) 多协议融合系统、节点之间的ip通信及fc-ae-1553通信方法
US20200153728A1 (en) Multicast Forwarding Method and Related Device
CN105706043A (zh) 推进式链接的列表吞吐量
CN102136989B (zh) 报文传输的方法、系统和设备
CN104717116A (zh) 用于软件定义联网隧穿扩展的方法和系统
EP2624590A2 (en) Method, apparatus and system for interconnected ring protection
US20220255772A1 (en) Packet sending method, apparatus, and system
CN109474518B (zh) 转发报文的方法及装置
CN113132229A (zh) 段标识的确定方法和设备
CN111787349B (zh) 一种数据缓存方法、装置、设备及介质
CN109936492A (zh) 一种通过隧道传输报文的方法、装置和系统
US11882021B2 (en) Packet forwarding method, apparatus and system, network device and storage medium
CN113852550A (zh) 发送报文的方法、装置、网络设备、系统及存储介质
CN104639440A (zh) 一种在网络中实现三层转发并封装协议信息的方法和装置
JP7448597B2 (ja) メッセージ生成方法および装置ならびにメッセージ処理方法および装置
CN111669422B (zh) 报文的传输方法和设备
CN112822097A (zh) 报文转发的方法、第一网络设备以及第一设备组
WO2022007702A1 (zh) 一种报文处理方法及网络设备
CN112702254B (zh) 报文处理方法、装置及电子设备
CN105763411B (zh) 一种建立组播隧道的方法及装置
CN104869062A (zh) 一种数据包转发方法及设备
CN110932968B (zh) 一种流量转发方法及装置
EP3913865B1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
KR20230005369A (ko) Ioam 방법 및 전자 기기

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant