CN115499889B - 基于vpp的upf转发面实现方法、装置、系统及相关设备 - Google Patents
基于vpp的upf转发面实现方法、装置、系统及相关设备 Download PDFInfo
- Publication number
- CN115499889B CN115499889B CN202211145158.9A CN202211145158A CN115499889B CN 115499889 B CN115499889 B CN 115499889B CN 202211145158 A CN202211145158 A CN 202211145158A CN 115499889 B CN115499889 B CN 115499889B
- Authority
- CN
- China
- Prior art keywords
- message
- forwarding
- upf
- vpp
- network element
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012545 processing Methods 0.000 claims abstract description 162
- 238000001514 detection method Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims abstract description 14
- 238000010586 diagram Methods 0.000 claims description 48
- 230000006870 function Effects 0.000 claims description 20
- 238000009826 distribution Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 64
- 208000037550 Primary familial polycythemia Diseases 0.000 description 4
- 208000017693 primary familial polycythemia due to EPO receptor mutation Diseases 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种基于VPP的UPF转发面实现方法、装置、网元、系统、电子设备及存储介质,涉及通信技术领域。该方法包括:基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。本公开能够实现高性能且扩展性强的UPF转发面,对UPF网元上不同接口之间传输的报文进行转发。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种基于VPP的UPF转发面实现方法、装置、网元、系统、电子设备及存储介质。
背景技术
随着5G定制网的推广,越来越多企业园区需要部署边缘用户面网元UPF,为客户专网提供定制化通信服务,支持数据不出园区,同时满足大带宽、低时延、低抖动等需求。目前缺少高性能且扩展性强的UPF转发面实现方法。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种基于VPP的UPF转发面实现方法、装置、网元、系统、电子设备及存储介质,至少在一定程度上克服相关技术中缺少高性能且扩展性强的UPF转发面实现方法的技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供了一种基于VPP的UPF转发面实现方法,该方法包括:基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
在一些实施例中,所述报文转发图中还包含:流量分发节点,所述流量分发节点用于将来自同一用户的数据流分发到同一个线程;或按照预设功能需求信息将指定的数据流分发到指定的线程,所述数据流包括:多个报文。
在一些实施例中,所述方法还包括:为每个线程创建快速转发表,其中,所述快速转发表中包含:多个报文特征与多个报文转发处理规则之间的对应关系;当每个线程接收到包含多个报文的数据流后,对所述数据流中的首个报文进行报文特征检测;根据所述数据流中首个报文的报文特征检测结果,从所述快速转发表中查询对应的报文转发处理规则,对所述数据流中的所有报文执行相应的转发处理操作。
在一些实施例中,根据所述数据流中首个报文的报文特征检测结果,从所述快速转发表中查询对应的报文转发处理规则,对所述数据流中的所有报文执行相应的转发处理操作,包括:根据所述数据流中首个报文的报文特征检测结果,从所述快速转发表中查询对应的报文转发处理规则;将查询到的报文转发处理规则存入Redis缓存中;根据所述Redis缓存中存储的报文转发处理规则,对所述数据流中的各个报文执行相应的转发处理操作。
在一些实施例中,所述方法还包括:为每个线程分配一个内存空间,其中,所述内存空间用于存储每个线程维护的快速转发表,所述快速转发表中包含:多个快速转发表项,每个快速转发表项包含一个报文特征与报文转发处理规则之间的对应关系。
在一些实施例中,所述方法还包括:使用位图标识快速转发表中每个快速转发表项的状态,其中,每个快速表项的状态包括:占用状态和空闲状态,其中,占用状态用于表征快速转发表中快速转发表项被占用,所述空闲状态用于表征快速转发表中快速转发表项未占用。
在一些实施例中,所述方法还包括:当创建一个协议数据单元PDU会话时,从该线程维护的快速转发表中取出空闲状态的快速转发表项供该PDU会话占用;当删除一个PDU会话时,释放该PDU会话占用的快速转发表项,并更新快速转发表中相应快速转发表项的状态为空闲状态。
在一些实施例中,所述方法还包括:使用最近最少使用LRU链表存储每个PDU会话占用的快速转发表项。
在一些实施例中,基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,包括:基于矢量化报文处理VPP平台,构建UPF网元上N3接口向N6接口传输报文的第一报文转发图、N6接口向N3接口传输报文的第二报文转发图、N3接口向N9接口传输报文的第三报文转发图、N9接口向N3接口传输报文的第四报文转发图。
在一些实施例中,所述方法还包括:为每一对生产者线程和消费者线程创建唯一的无锁队列,其中,所述生产者线程为提供数据的线程,所述消费者线程为处理数据的线程。
在一些实施例中,所述方法还包括:使用Pipeline模型,将UPF网元上不同接口之间的报文转发处理流程划分为第一阶段和第二阶段,其中,所述第一阶段为输入/输出密集型的报文接收和预处理流程;所述第二阶段为计算密集型的报文处理流程;按需配置所述第一阶段和所述第二阶段使用的CPU数量。
根据本公开的另一个方面,还提供了一种基于VPP的UPF转发面实现装置,包括:报文转发图构建单元,用于基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;报文转发处理单元,用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
根据本公开的另一个方面,还提供了一种通信系统,包括:网管装置和UPF网元;其中,所述网管装置用于基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;所述UPF网元用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
根据本公开的另一个方面,还提供了一种UPF网元,包括:报文转发图获取模块,用于获取基于矢量化报文处理VPP平台构建的用于UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;报文转发处理模块,用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
根据本公开的另一个方面,还提供了一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的基于VPP的UPF转发面实现方法。
根据本公开的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的基于VPP的UPF转发面实现方法。
根据本公开的另一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一项的基于VPP的UPF转发面实现方法。
本公开的实施例中提供的基于VPP的UPF转发面实现方法、装置、系统及相关设备,基于矢量化报文处理VPP平台构建UPF网元上不同接口之间传输报文的报文转发图,以便UPF网元通过报文转发图中的报文检测节点对报文进行报文特征检测,通过报文转发图中的报文转发节点根据报文的报文特征检测结果获取对应的报文转发处理规则,并对报文执行相应的转发处理操作。通过本公开实施例,能够实现高性能且扩展性强的UPF转发面,对UPF网元上不同接口之间传输的报文进行转发。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种通信系统架构示意图;
图2示出本公开实施例中一种轻量级UPF网元架构示意图;
图3示出本公开实施例中一种基于VPP的UPF转发面实现方法流程图;
图4示出本公开实施例中一种UPF网元上N3接口向N6接口传输报文的第一报文转发图;
图5示出本公开实施例中一种UPF网元上N6接口向N3接口传输报文的第二报文转发图;
图6示出本公开实施例中一种UPF网元上N3接口向N9接口传输报文的第三报文转发图;
图7示出本公开实施例中一种基于VPP的UPF报文转发流程图;
图8示出相关技术中一种基于网卡DDP功能的数据报文分发方案示意图;
图9示出本公开实施例中一种高效数据报文分发方案示意图;
图10示出3GPP协议中规定的UPF报文处理流程图;
图11示出本公开实施例中一种UPF报文处理流程图;
图12示出本公开实施例中一种会话与快速转发表的关系示意图;
图13示出本公开实施例中一种会话的LRU链表示意图;
图14示出本公开实施例中一种基于VPP的UPF转发面实现装置示意图;
图15示出本公开实施例中一种UPF网元的内部组成模块示意图;
图16示出本公开实施例中一种电子设备的结构框图;
图17示出本公开实施例中一种计算机可读存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为便于理解,在介绍本公开实施例之前,首先对本公开实施例中涉及到的几个名词进行解释如下:
VPP:Vector Packet Processing,矢量化报文处理;
PFCP:Packet Forwarding Control Protocol,报文转发控制协议;
PDR:Packet Detection Rule,报文检测规则;
MAR:Multi-Access Rules,多接入规则;
FAR:Fowwarding Action Rule,转发行为规则;
QER:QoS Enforcement Rule,QoS执行规则;
URR:Usage Reporting Rule,使用量上报规则;
BAR:Buffering Action Rule,缓存行为规则;
DPDK:Date Plane Development Kit,数据平面开发套件,是一个用来进行包数据处理加速的软件库;
LRU:Least Recently Used,最近最少使用;
UPF:User Plane Function,用户平面功能;
UPC:UPF Control plane,UPF控制面;
UPU:UPF Userdata-plane,UPF数据转发;
NIC:Network Interface Controller,网络接口控制器。
下面结合附图,对本公开实施例的具体实施方式进行详细说明。
图1示出了可以应用本公开实施例中基于VPP的UPF转发面实现方法的示例性通信系统架构示意图。如图1所示,该系统架构包括:网管装置10和UPF网元20。
其中,网管装置10用于基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,报文转发图中至少包含:报文检测节点和报文转发节点,报文检测节点用于对报文进行报文特征检测,报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;UPF网元20用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
本公开实施例中的UPF网元20可与终端设备30通信,二者之间提供通信链路的介质,可以是有线网络,也可以是无线网络。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
上述与UPF网元通信的终端设备30可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、增强现实设备、虚拟现实设备等。
可选地,不同的终端设备30中安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端等。
在一些实施例中,本公开实施例中的UPF网元可以采用图2所示的轻量级UPF网元架构,如图2所示,具体包括如下功能模块:
①UPC模块(UPF控制面模块):通过N4接口与SMF网元进行PFCP信令消息的交互,实现节点管理、会话管理等功能,并将会话信息发布到Redis缓存。
②Redis缓存:提供会话信息、流量统计信息的发布和订阅通道。
③Sess-mgr模块(消息管理模块):订阅会话信息并建立表项,提供会话首个数据报文的PDR匹配,上报统计信息等功能。
④VPP-UPU模块(UPF数据转发模块):实现高性能、低时延、低抖动的快速转发流程;接收N3、N6、N9等接口的用户流量,并按照PFCP信令消息中包含的PDR、FAR、QER、URR、BAR等规则进行数据处理。
⑤Web/etcd/api-mgr/Monitor模块:实现配置管理(API-MGR)、服务注册、系统状态监控,以及信令和统计信息的界面显示功能。etcd是一个高可用的键值存储系统,用于分享配置和服务发现。
⑥DPDK模块:基于Linux系统(例如,Ubuntu系统)运行,用于快速数据包处理的函数库与驱动集合,可极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
本领域技术人员可以知晓,图1中的网关装置、UPF网元和终端设备的数量仅仅是示意性的,根据实际需要,可以具有任意数目的网关装置、UPF网元和终端设备。本公开实施例对此不作限定。
在上述系统架构下,本公开实施例中提供了一种基于VPP的UPF转发面实现方法,该方法可以由任意具备计算处理能力的电子设备执行。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法可以由上述系统架构的网关装置执行;在另一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法可以由上述系统架构中的网关装置和UPF网元通过交互的方式来实现。
图3示出本公开实施例中一种基于VPP的UPF转发面实现方法流程图,如图3所示,本公开实施例中提供的基于VPP的UPF转发面实现方法包括如下步骤:
S302,基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,报文转发图中至少包含:报文检测节点和报文转发节点,报文检测节点用于对报文进行报文特征检测,报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作。
需要说明的是,VPP平台是一个模块化的可扩展框架,由转发节点的有向图组成,该转发图每次调用处理多个数据包。除了硬件输入和硬件输出节点之外,整个转发图都是可移植的代码。
由于VPP高度模块化,允许在不更改底层代码库的情况下插入新的图节点。开发人员可以通过不同的转发图构建任意数量的数据包处理解决方案。
需要说明的是,从基站传入的数据首先通过N3接口发往UPF网元,一般UPF不只有一台,多台UPF网元通过N9接口互联实现了可靠性的提高还有更加灵活的部署方式,最后UPF网元通过N6接口将数据发往数据网络。在这个过程中出现的N3/N6/N9接口可以直接理解为数据通信网络中的各种接口,这些接口可以发送和接收各种协议报文,例如IPv4和IPv6报文,这些报文承载着上层的应用数据往来于UE和数据网络之间。
因而,在一些实施例中,基于矢量化报文处理VPP平台,可构建UPF网元上N3接口向N6接口传输报文的第一报文转发图、N6接口向N3接口传输报文的第二报文转发图、N3接口向N9接口传输报文的第三报文转发图、N9接口向N3接口传输报文的第四报文转发图。通过在VPP收发包流程之间增加相应图节点的方式,可实现但不限于UPF网元上N3接口向N6接口、N6接口向N3接口、N3接口向N9接口、N9接口向N3接口之间传输报文的转发功能。如图4所示为基于VPP平台实现的N3接口向N6接口传输报文的第一报文转发图,如图5所示为基于VPP平台实现的N6接口向N3接口传输报文的第二报文转发图,如图6所示为基于VPP平台实现的N3接口向N9接口传输报文的第三报文转发图。涉及的核心图节点的功能如下:
①upu-gtpu-input:处理从N3接口或N9接口收到的GTPU报文,根据msg-type分类指定下一个图节点,并记录内层的偏移量、上下行等重要元数据;
②upu-ip-n6-input:区分发往本机的流量和用户N6流量,将报文指向不同图节点;
③upu-wokers-handoff:支持多次分发,可以将同一个用户的流量分发到同一个工作线程;也可以按照功能需求将特定流量分发到指定线程;
④upu-flow-process:对数据流首个报文进行PDR匹配,申请flow_entry表项缓存匹配结果。根据报文特征hash查找flow_entry,并将命中的表项移动到会话LRU链表的头部。该节点维护per_cpu百万级别的快速转发表,是轻量级UPF高性能转发的关键点;
⑤upu-rules-process:根据flow_entry指向的规则(PDR、FAR、QER、URR、BAR等)执行相应动作;
⑥upu-inner-classify:根据内层报文目的ip进行分类,实现自定义黑白名单等功能;
⑦upu-gtpu-encap:根据FAR中的outer header creation为报文封装GTPU头部,将报文传递到VPP路由查询节点。
S304,根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
在根据报文转发图中的报文检测节点报文检测节点对报文进行报文特征检测后,可根据报文转发图中的报文转发节点于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作。在一些实施例中,本公开实施例中的报文转发处理规则包括但不限于:FAR、QER、URR和BAR。
在一些实施例中,本公开实施例中的报文转发图中还包含:流量分发节点,流量分发节点用于将来自同一用户的数据流分发到同一个线程;或按照预设功能需求信息将指定的数据流分发到指定的线程,数据流包括:多个报文。
在一些实施例中,如图7所示,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:
S702,为每个线程创建快速转发表,其中,快速转发表中包含:多个报文特征与多个报文转发处理规则之间的对应关系;
S704,当每个线程接收到包含多个报文的数据流后,对数据流中的首个报文进行报文特征检测;
S706,根据数据流中首个报文的报文特征检测结果,从快速转发表中查询对应的报文转发处理规则,对数据流中的所有报文执行相应的转发处理操作。
进一步地,在一些实施例中,上述S706可具体通过如下步骤来实现:根据数据流中首个报文的报文特征检测结果,从快速转发表中查询对应的报文转发处理规则;将查询到的报文转发处理规则存入Redis缓存中;根据Redis缓存中存储的报文转发处理规则,对数据流中的各个报文执行相应的转发处理操作。该实施例中,通过Redis缓存存储报文转发处理规则,能够使得数据流中的后续报文直接根据Redis缓存中存储的报文转发处理规则,执行相应的转发处理操作,而无需对数据流中的每个报文都进行报文特征检测,能够大大降低时间复杂度。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:为每个线程分配一个内存空间,其中,内存空间用于存储每个线程维护的快速转发表,快速转发表中包含:多个快速转发表项(flow_entry),每个快速转发表项包含一个报文特征与报文转发处理规则之间的对应关系。该实施例中,每个线程维护一张报文特征与转发处理规则的快速转发表,对数据流中的第一个报文进行PDR匹配,并将结果缓存下来,同一条数据流后续的每个报文都不需要再进行PDR匹配。
进一步地,在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:使用位图标识快速转发表中每个快速转发表项的状态,其中,每个快速表项的状态包括:占用状态和空闲状态,其中,占用状态用于表征快速转发表中快速转发表项被占用,空闲状态用于表征快速转发表中快速转发表项未占用。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:当创建一个协议数据单元PDU会话时,从该线程维护的快速转发表中取出空闲状态的快速转发表项供该PDU会话占用;当删除一个PDU会话时,释放该PDU会话占用的快速转发表项,并更新快速转发表中相应快速转发表项的状态为空闲状态。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:使用最近最少使用LRU链表存储每个PDU会话占用的快速转发表项。本公开实施例中,使用LRU链表代替传统的定时器,优化快速表项淘汰机制,在限制会话最大表项数的同时,保证最常用的表项不被淘汰。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:为每一对生产者线程和消费者线程创建唯一的无锁队列,其中,生产者线程为提供数据的线程,消费者线程为处理数据的线程。本公开实施例中,通过横向扩展分发机制的无锁队列,让每一个无锁队列只有一个生产者和一个消费者,能够避免多线程CAS原子操作竞争队尾的冲突,支持按需多次分发而不降低转发性能。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现方法还可包括如下步骤:使用Pipeline模型,将UPF网元上不同接口之间的报文转发处理流程划分为第一阶段和第二阶段,其中,第一阶段为输入/输出密集型的报文接收和预处理流程;第二阶段为计算密集型的报文处理流程;按需配置第一阶段和第二阶段使用的CPU数量。该实施例中,按需配置第一阶段和第二阶段使用的CPU数量,能够达到更好的转发性能。
如图8所示为相关技术中提供的一种基于网卡DDP功能的数据报文分发方案,该方案基于某些厂商特定系列网卡的动态设备个性化(Dynamic Device Personalization,DDP)功能,将同一会话的数据流分发到同一个网卡队列,从而由同一个CPU逻辑核处理,存在如下几个方面的缺陷:
①网络数据分发模块运行在网卡上,依赖于硬件功能,某些硬件不支持,虚拟网卡也不支持;
②网卡DDP功能作为新特性,仅支持配置数千条规则,每个会话至少两条规则,这一点直接限制UPF的总用户数;
③对5G GTPU报文中的extension header的解析不完善;
④仅支持收包时的单次分发,扩展性差。
如图9所示为本公开实施例中提供的一种高效数据报文分发方案,支持按需多次分发而不降低转发性能。
CAS(Compare and Swap,比较交换)是一个原子操作,无锁队列等lock-less的操作基于该原子操作实现。VPP默认的无锁队列是多生产者多消费者模型,会面临多生产者竞争写,多消费者竞争读的问题。
VPP提供的无锁队列形式为handoff_queue[consumer_thread_index],消费者是处理数据的线程,该方案解决了多消费者竞争读,但没有解决多生产者竞争写的问题。需要强调,无锁队列不是真正意义上的“无锁”,一旦有多个线程竞争,同样会出现浪费CPU空转的情况,从而降低转发性能。
本公开实施例中,为每一对生产者线程和消费者线程创建一个无锁队列handoff_queue[producer_thread_index][consumer_thread_index]。其中,producer_thread_index表示生产者线程的标识(例如,图9中示出的p1、p2…pXX…pN),consumer_thread_index表示消费者线程的标识(例如,图9中示出的c4…cXX…cN)。
在upu_workers_handoff节点进行分发时,只需根据当前线程ID和目的线程的ID获取唯一的无锁队列,并将报文的buffer_index写入。不存在读或者写竞争问题,也就不会浪费CPU时钟周期。在upu_ip_flow_process节点从handoff_queue[1~N][current_thread_index]多个队列中取出报文的buffer_index时,遇到空队列只需跳过,没有增加额外操作,不影响转发性能。current_thread_index表示当前线程的标识。
如图10所示,3GPP TS 29244协议规定:每个进入UPF的用户面报文需经过如下处理流程:
①查找PDU会话。
②匹配到该会话优先级最高的PDR。
③根据PDR及其关联的一系列规则(FAR、QER、URR、BAR等)执行相应动作。
对于同一条数据流,在会话未被修改/删除时,会匹配到同一个PDR,查找PDU会话可以用hash实现,时间复杂度为O(1),假设一个PFCP会话有M个PDR,PDR匹配需要遍历,时间复杂度为O(M)。不作优化的情况下,转发N个报文,后面N-1个报文与第一个报文处理的流程一样。时间复杂度为O(NM)。
如图11所示,本公开实施例中对UPF网元中的报文处理流程如下:
①根据报文特征查找flow_entry,若能找到,直接跳到步骤④;若未找到,则进入步骤②。
②查找PDU会话。
③匹配到该会话优先级最高的PDR,缓存对应的规则到flow_entry指向的PFCP_Rules数据结构。
④根据flow_entry指向的规则(PDR、FAR、QER、URR、BAR等)执行相应动作。
可见,本公开实施例中,一次PDR匹配的时间复杂度为O(M),查找PDU会话的时间复杂度为单次Hash的O(1)。同样转发N个报文,优化后的时间复杂度为O(M)+O(N),小于优化前的时间复杂度O(NM)。本公开实施中,利用空间换时间,对于报文处理这种计算密集型的任务,可节省CPU时钟周期,能有效提升性能并降低时延。
下面,结合一个具体的例子,来对本公开实施例快速转发UPF报文的流程进行说明。
首先,为每一个线程申请一块连续的内存,存储per_cpu的220≈104w条flow_entry,避免频繁向内核申请或释放内存。使用位图bitmap标识flow_entry数组中的可用表项,位图的第flow_index个表项对应的bit为1代表该表项已经被占用,反之为空闲状态的表项,如图12所示。会话新建PDR匹配结果缓存时,从快速转发表里取出一个空闲状态的表项。会话删除时,会释放所有其占用的快速转发表项。
如果不对单个会话的表项数加以限制,会出现表项耗尽,导致某些会话无法申请新的快速转发表,出现大量丢弃报文的情况。因此,本发明实现方案进行了如下优化。
限制每个会话的快速转发表项数不超过flows_per_session,进程初始化时可配,默认值为255。每个线程维护的快速转发表至少可以支持4000多的会话。
为了优化表项淘汰机制,本公开实施例中使用LRU链表代替传统的定时器。由于表项数目巨大,定时器难以维护,且存在批量到期的可能性,某个时刻并发删除很多表项,阻塞报文转发。LRU链表如图13所示,本公开实施例利用时间局部性原理,每次都将本次命中的flow_entry移动到链表头部,这样一来,最久没有被访问的表项被动挪到链表尾部。当会话表项数超限时,可以将链表尾部的表项淘汰,插入一条新表项到链表头部。举例来说,视频流的表项将一直处于链表前列,DNS流的表项则更容易被淘汰。该方案有效降低PDR匹配的次数,整个转发流程十分平滑,低时延,低抖动。
通过本公开实施例中提供的基于VPP的UPF转发面实现方法,能够实现但不限于如下技术效果:
①基于VPP平台构建UPF网元上不同接口之间传输报文的报文转发图(即VPP-UPU节点图),易于扩展,后续可基于此实现定制化增强功能。
②使用pipeline模型,第一阶段为偏I/O密集型的收包和预处理流程,第二阶段为计算密集型的数据报文处理。连接两个阶段的报文分发队列由软件实现,与特殊硬件解耦,可按需实现多次分发,不受硬件表项数的限制。同时可按需配置第一阶段和第二阶段使用CPU的个数,进而达到更好的转发性能。
③建立报文特征与转发处理规则的快速转发表项,减少协议规定流程的PDR匹配次数,使整个转发流程十分平滑,低时延,低抖动。
基于同一发明构思,本公开实施例中还提供了一种基于VPP的UPF转发面实现装置,如下面的实施例所述。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图14示出本公开实施例中一种基于VPP的UPF转发面实现装置示意图,如图14所示,该装置包括:报文转发图构建单元1401和报文转发处理单元1402。
其中,报文转发图构建单元1401,用于基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,报文转发图中至少包含:报文检测节点和报文转发节点,报文检测节点用于对报文进行报文特征检测,报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;报文转发处理单元1402,用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
此处需要说明的是,上述报文转发图构建单元1401和报文转发处理单元1402对应于方法实施例中的S302~S304,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一些实施例中,报文转发图中还包含:流量分发节点,流量分发节点用于将来自同一用户的数据流分发到同一个线程;或按照预设功能需求信息将指定的数据流分发到指定的线程,数据流包括:多个报文。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:快速转发表创建单元1403,用于为每个线程创建快速转发表,其中,快速转发表中包含:多个报文特征与多个报文转发处理规则之间的对应关系;报文特征检测单元1404,用于当每个线程接收到包含多个报文的数据流后,对数据流中的首个报文进行报文特征检测;上述报文转发处理单元1402还用于根据数据流中首个报文的报文特征检测结果,从快速转发表中查询对应的报文转发处理规则,对数据流中的所有报文执行相应的转发处理操作。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:Redis缓存单元1405,用于根据数据流中首个报文的报文特征检测结果,从快速转发表中查询对应的报文转发处理规则;将查询到的报文转发处理规则存入Redis缓存中;上述报文转发处理单元1402还用于根据Redis缓存中存储的报文转发处理规则,对数据流中的各个报文执行相应的转发处理操作。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:内存空间分配单元1406,用于为每个线程分配一个内存空间,其中,内存空间用于存储每个线程维护的快速转发表,快速转发表中包含:多个快速转发表项,每个快速转发表项包含一个报文特征与报文转发处理规则之间的对应关系。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:快速转发表状态标识单元1407,用于使用位图标识快速转发表中每个快速转发表项的状态,其中,每个快速表项的状态包括:占用状态和空闲状态,其中,占用状态用于表征快速转发表中快速转发表项被占用,空闲状态用于表征快速转发表中快速转发表项未占用。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:快速转发表项更新单元1408,用于当创建一个协议数据单元PDU会话时,从该线程维护的快速转发表中取出空闲状态的快速转发表项供该PDU会话占用;当删除一个PDU会话时,释放该PDU会话占用的快速转发表项,并更新快速转发表中相应快速转发表项的状态为空闲状态。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:LRU链表存储单元1409,用于使用最近最少使用LRU链表存储每个PDU会话占用的快速转发表项。
在一些实施例中,上述报文转发图构建单元1401还用于:基于矢量化报文处理VPP平台,构建UPF网元上N3接口向N6接口传输报文的第一报文转发图、N6接口向N3接口传输报文的第二报文转发图、N3接口向N9接口传输报文的第三报文转发图。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:无锁队列创建单元1410,用于为每一对生产者线程和消费者线程创建唯一的无锁队列,其中,生产者线程为提供数据的线程,消费者线程为处理数据的线程。
在一些实施例中,本公开实施例中提供的基于VPP的UPF转发面实现装置还包括:Pipeline模型处理单元1411,用于使用Pipeline模型,将UPF网元上不同接口之间的报文转发处理流程划分为第一阶段和第二阶段,其中,第一阶段为输入/输出密集型的报文接收和预处理流程;第二阶段为计算密集型的报文处理流程;按需配置第一阶段和第二阶段使用的CPU数量。
基于同一发明构思,本公开实施例中还提供了一种UPF网元,如下面的实施例所述。由于该UPF网元实施例解决问题的原理与上述方法实施例相似,因此该UPF网元实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图15示出本公开实施例中一种UPF网元的内部组成模块示意图,如图15所示,该UPF网元包括:报文转发图获取模块1501和报文转发处理模块1502。
其中,报文转发图获取模块1501,用于获取基于矢量化报文处理VPP平台构建的用于UPF网元上不同接口之间传输报文的报文转发图,其中,报文转发图中至少包含:报文检测节点和报文转发节点,报文检测节点用于对报文进行报文特征检测,报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;报文转发处理模块1502,用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
在一些实施例中,报文转发图中还包含:流量分发节点,流量分发节点用于将来自同一用户的数据流分发到同一个线程;或按照预设功能需求信息将指定的数据流分发到指定的线程,数据流包括:多个报文。
在一些实施例中,上述报文转发处理模块1502还用于为每个线程创建快速转发表;当每个线程接收到包含多个报文的数据流后,对数据流中的首个报文进行报文特征检测;根据数据流中首个报文的报文特征检测结果,从快速转发表中查询对应的报文转发处理规则,对数据流中的所有报文执行相应的转发处理操作,其中,快速转发表中包含:多个报文特征与多个报文转发处理规则之间的对应关系。
在一些实施例中,上述报文转发处理模块1502还用于根据数据流中首个报文的报文特征检测结果,从快速转发表中查询对应的报文转发处理规则;将查询到的报文转发处理规则存入Redis缓存中;根据Redis缓存中存储的报文转发处理规则,对数据流中的各个报文执行相应的转发处理操作。
在一些实施例中,上述报文转发处理模块1502还用于为每个线程分配一个内存空间,其中,内存空间用于存储每个线程维护的快速转发表,快速转发表中包含:多个快速转发表项,每个快速转发表项包含一个报文特征与报文转发处理规则之间的对应关系。
在一些实施例中,上述报文转发处理模块1502还用于使用位图标识快速转发表中每个快速转发表项的状态,其中,每个快速表项的状态包括:占用状态和空闲状态,其中,占用状态用于表征快速转发表中快速转发表项被占用,空闲状态用于表征快速转发表中快速转发表项未占用。
在一些实施例中,上述报文转发处理模块1502还用于当创建一个协议数据单元PDU会话时,从该线程维护的快速转发表中取出空闲状态的快速转发表项供该PDU会话占用;当删除一个PDU会话时,释放该PDU会话占用的快速转发表项,并更新快速转发表中相应快速转发表项的状态为空闲状态。
在一些实施例中,上述报文转发处理模块1502还用于使用最近最少使用LRU链表存储每个PDU会话占用的快速转发表项。
在一些实施例中,上述报文转发图包括:UPF网元上N3接口向N6接口传输报文的第一报文转发图、N6接口向N3接口传输报文的第二报文转发图、N3接口向N9接口传输报文的第三报文转发图。
在一些实施例中,上述报文转发处理模块1502还用于为每一对生产者线程和消费者线程创建唯一的无锁队列,其中,生产者线程为提供数据的线程,消费者线程为处理数据的线程。
在一些实施例中,上述报文转发处理模块1502还用于使用Pipeline模型,将UPF网元上不同接口之间的报文转发处理流程划分为第一阶段和第二阶段,其中,第一阶段为输入/输出密集型的报文接收和预处理流程;第二阶段为计算密集型的报文处理流程;按需配置第一阶段和第二阶段使用的CPU数量。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图16来描述根据本公开的这种实施方式的电子设备1600。图16显示的电子设备1600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图16所示,电子设备1600以通用计算设备的形式表现。电子设备1600的组件可以包括但不限于:上述至少一个处理单元1610、上述至少一个存储单元1620、连接不同系统组件(包括存储单元1620和处理单元1610)的总线1630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1610执行,使得所述处理单元1610执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1610可以执行上述方法实施例的如下步骤:基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
存储单元1620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)16201和/或高速缓存存储单元16202,还可以进一步包括只读存储单元(ROM)16203。
存储单元1620还可以包括具有一组(至少一个)程序模块16205的程序/实用工具16204,这样的程序模块16205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1600也可以与一个或多个外部设备1640(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1600交互的设备通信,和/或与使得该电子设备1600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1650进行。并且,电子设备1600还可以通过网络适配器1660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1660通过总线1630与电子设备1600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一项的非激活态安全配置信息下发方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。图17示出本公开实施例中一种计算机可读存储介质示意图,如图17所示,该计算机可读存储介质1700上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (16)
1.一种基于VPP的UPF转发面实现方法,其特征在于,包括:
基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;
根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
2.根据权利要求1所述的基于VPP的UPF转发面实现方法,其特征在于,所述报文转发图中还包含:流量分发节点,所述流量分发节点用于将来自同一用户的数据流分发到同一个线程;或按照预设功能需求信息将指定的数据流分发到指定的线程,所述数据流包括:多个报文。
3.根据权利要求2所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
为每个线程创建快速转发表,其中,所述快速转发表中包含:多个报文特征与多个报文转发处理规则之间的对应关系;
当每个线程接收到包含多个报文的数据流后,对所述数据流中的首个报文进行报文特征检测;
根据所述数据流中首个报文的报文特征检测结果,从所述快速转发表中查询对应的报文转发处理规则,对所述数据流中的所有报文执行相应的转发处理操作。
4.根据权利要求3所述的基于VPP的UPF转发面实现方法,其特征在于,根据所述数据流中首个报文的报文特征检测结果,从所述快速转发表中查询对应的报文转发处理规则,对所述数据流中的所有报文执行相应的转发处理操作,包括:
根据所述数据流中首个报文的报文特征检测结果,从所述快速转发表中查询对应的报文转发处理规则;
将查询到的报文转发处理规则存入Redis缓存中;
根据所述Redis缓存中存储的报文转发处理规则,对所述数据流中的各个报文执行相应的转发处理操作。
5.根据权利要求3所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
为每个线程分配一个内存空间,其中,所述内存空间用于存储每个线程维护的快速转发表,所述快速转发表中包含:多个快速转发表项,每个快速转发表项包含一个报文特征与报文转发处理规则之间的对应关系。
6.根据权利要求5所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
使用位图标识快速转发表中每个快速转发表项的状态,其中,每个快速表项的状态包括:占用状态和空闲状态,其中,占用状态用于表征快速转发表中快速转发表项被占用,所述空闲状态用于表征快速转发表中快速转发表项未占用。
7.根据权利要求6所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
当创建一个协议数据单元PDU会话时,从该线程维护的快速转发表中取出空闲状态的快速转发表项供该PDU会话占用;
当删除一个PDU会话时,释放该PDU会话占用的快速转发表项,并更新快速转发表中相应快速转发表项的状态为空闲状态。
8.根据权利要求5所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
使用最近最少使用LRU链表存储每个PDU会话占用的快速转发表项。
9.根据权利要求1所述的基于VPP的UPF转发面实现方法,其特征在于,基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,包括:
基于矢量化报文处理VPP平台,构建UPF网元上N3接口向N6接口传输报文的第一报文转发图、N6接口向N3接口传输报文的第二报文转发图、N3接口向N9接口传输报文的第三报文转发图、N9接口向N3接口传输报文的第四报文转发图。
10.根据权利要求1所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
为每一对生产者线程和消费者线程创建唯一的无锁队列,其中,所述生产者线程为提供数据的线程,所述消费者线程为处理数据的线程。
11.根据权利要求1~9中任意一项所述的基于VPP的UPF转发面实现方法,其特征在于,所述方法还包括:
使用Pipeline模型,将UPF网元上不同接口之间的报文转发处理流程划分为第一阶段和第二阶段,其中,所述第一阶段为输入/输出密集型的报文接收和预处理流程;所述第二阶段为计算密集型的报文处理流程;
按需配置所述第一阶段和所述第二阶段使用的CPU数量。
12.一种基于VPP的UPF转发面实现装置,其特征在于,包括:
报文转发图构建单元,用于基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;
报文转发处理单元,用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
13.一种通信系统,其特征在于,包括:网管装置和UPF网元;
其中,所述网管装置用于基于矢量化报文处理VPP平台,构建UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;
所述UPF网元用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
14.一种UPF网元,其特征在于,包括:
报文转发图获取模块,用于获取基于矢量化报文处理VPP平台构建的用于UPF网元上不同接口之间传输报文的报文转发图,其中,所述报文转发图中至少包含:报文检测节点和报文转发节点,所述报文检测节点用于对报文进行报文特征检测,所述报文转发节点用于根据报文的报文特征检测结果,获取对应的报文转发处理规则,对报文执行相应的转发处理操作;
报文转发处理模块,用于根据构建的报文转发图,对UPF网元上不同接口之间传输的报文执行相应的转发处理操作。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~11中任意一项所述的基于VPP的UPF转发面实现方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~11中任意一项所述的基于VPP的UPF转发面实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145158.9A CN115499889B (zh) | 2022-09-20 | 2022-09-20 | 基于vpp的upf转发面实现方法、装置、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145158.9A CN115499889B (zh) | 2022-09-20 | 2022-09-20 | 基于vpp的upf转发面实现方法、装置、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115499889A CN115499889A (zh) | 2022-12-20 |
CN115499889B true CN115499889B (zh) | 2024-08-06 |
Family
ID=84470024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145158.9A Active CN115499889B (zh) | 2022-09-20 | 2022-09-20 | 基于vpp的upf转发面实现方法、装置、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499889B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117729544B (zh) * | 2024-02-04 | 2024-04-30 | 中国电子科技集团公司第三十研究所 | 移动通信n4接口安全防护装置和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822724A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种报文转发方法及装置 |
CN113852990A (zh) * | 2021-07-20 | 2021-12-28 | 浪潮软件科技有限公司 | 一种网元控制系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3583743A1 (en) * | 2017-02-16 | 2019-12-25 | Telefonaktiebolaget LM Ericsson (PUBL) | Method and apparatus for virtual function self-organisation |
US10567245B1 (en) * | 2019-02-28 | 2020-02-18 | Cisco Technology, Inc. | Proactive and intelligent packet capturing for a mobile packet core |
-
2022
- 2022-09-20 CN CN202211145158.9A patent/CN115499889B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822724A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种报文转发方法及装置 |
CN113852990A (zh) * | 2021-07-20 | 2021-12-28 | 浪潮软件科技有限公司 | 一种网元控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115499889A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kaufmann et al. | High performance packet processing with flexnic | |
US20200228433A1 (en) | Computer-readable recording medium including monitoring program, programmable device, and monitoring method | |
Bhowmik et al. | High performance publish/subscribe middleware in software-defined networks | |
US9059941B1 (en) | Providing router information according to a programmatic interface | |
CN114285781B (zh) | Srv6业务流量统计方法、装置、电子设备及介质 | |
CN115499889B (zh) | 基于vpp的upf转发面实现方法、装置、系统及相关设备 | |
CN118227343B (zh) | 一种数据处理方法、系统、装置、设备、介质及产品 | |
CN116074131B (zh) | 一种数据处理方法、智能网卡和电子设备 | |
KR20120062174A (ko) | 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법 | |
Watanabe et al. | Accelerating NFV application using CPU-FPGA tightly coupled architecture | |
WO2023179457A1 (zh) | 业务连接的标识方法、装置、系统及存储介质 | |
Marts et al. | MPI tag matching performance on ConnectX and ARM | |
US20220283878A1 (en) | Dependency-based data routing for distributed computing | |
JP2020088517A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
CN114201311A (zh) | 数据处理方法及装置 | |
US20230066835A1 (en) | Methods, systems and computer readable media for improving remote direct memory access performance | |
US6985493B1 (en) | Message aggregator for channelized interface programming | |
CN115277504A (zh) | 一种网络流量监控方法、装置和系统 | |
US20120203887A1 (en) | Systems and methods for distributed offload of execution path monitoring | |
Laki et al. | The price for asynchronous execution of extern functions in programmable software data planes | |
US20050281202A1 (en) | Monitoring instructions queueing messages | |
Ran et al. | Agile: A high-scalable and low-jitter flow tables lifecycle management framework for multi-core programmable data plane | |
CN115277558B (zh) | 报文发送方法、装置、计算机存储介质及电子设备 | |
CN108519912B (zh) | 数据清洗方法、装置、计算机可读存储介质及电子设备 | |
Wen et al. | {HiP4-UPF}: Towards {High-Performance} Comprehensive 5G User Plane Function on P4 Programmable Switches |
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 |