CN113225257B - 一种upf数据处理的方法、系统及存储介质 - Google Patents
一种upf数据处理的方法、系统及存储介质 Download PDFInfo
- Publication number
- CN113225257B CN113225257B CN202110460420.8A CN202110460420A CN113225257B CN 113225257 B CN113225257 B CN 113225257B CN 202110460420 A CN202110460420 A CN 202110460420A CN 113225257 B CN113225257 B CN 113225257B
- Authority
- CN
- China
- Prior art keywords
- data
- receiving queue
- receiving
- queue
- address
- 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
Images
Classifications
-
- 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
- H04L45/745—Address table lookup; Address filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种UPF数据处理的方法、系统及存储介质,网卡数据分发模块对接收到数据进行解释,网卡数据分发模块对IP/UDP/PFCP、IP/UDP/GTP‑U、IP其它数据进行分类处理,根据配置的规则动态分发到网卡的接收队列;数据处理及转发模块根据配置的CPU逻辑核与接收队列的绑定关系,CPU逻辑核从指定的接收队列接收数据,根据来自SMF网元的控制指令,完成数据的处理及转发;网卡数据分发模块运行于网卡中,数据处理及转发模块运行于CPU逻辑核中。本发明把同一个UE IP地址的所有媒体数据、控制信令都关联到同一个CPU逻辑核,无需跨CPU核转发数据或跨核处理数据,最大程度利用CPU亲和性。
Description
技术领域
本发明涉及5G移动通信技术领域,尤其涉及一种UPF数据处理的方法、系统及存储介质。
背景技术
在5G移动通信领域,UPF(User Plan Function)是5G核心网的网元之一,UPF根据SMF(Session Management Funtion)网元的控制指令,即N4接口的PFCP(PacketForwarding Control Protocol)信令,负责对用户面数据的接收、处理以及转发。
UPF设备网卡接收到外面发来的数据(包括N3/N4-PFCP/N4-U/N6/N9/N19接口),网卡可以根据IP数据的IP五元组(源IP地址,源端口,目的IP地址,目的端口和传输层协议)把数据分发到不同的网卡队列,网卡队列关联CPU逻辑核(Central Processing UnitLogical Core),实现CPU对特定数据的亲和性绑定;部分网卡能够识别GTP-U协议,把GTP-U封装的内层数据的IP五元组也作为数据分发的关键字,这样可以把手机(UE,UserEquipment)IP地址作为关键字,把该UE IP地址相关联的N3/N6/N9/N19接口数据与特定的CPU逻辑核绑定,从而进一步增强CPU对特定数据的亲和性绑定。
对于同一个UE IP地址相关联的数据和控制信令,包括N3//N4-U/N6/N9/N19接口的数据以及N4-PFCP接口的控制信令,已有技术只关联N3/N6/N9/N19接口数据,没有对同一个UE IP地址所关联的N4-U数据以及N4-PFCP控制信令进行关联分发,即对同一个UE IP地址的控制信令和数据处理,可能不会完全由同一个CPU逻辑核接收、处理以及转发,未能充分利用CPU亲和性,需要跨CPU核处理数据,或者上层应用再次把数据转发到另一个CPU核。
如图1所示,UPF网卡接收到N4-PFCP的IP封装数据,可以根据消息类型进行分发,比如节点相关消息分发到队列Q1、会话相关消息分发到队列Q2;对于N4-U的GTP-U封装数据,可以根据外层IP五元组分发到队列Q3;对于N3的GTP-U封装数据,可以根据GTP-U内层IP五元组的源IP地址(UE IP)分发到队列Q4;对于N9/N19的GTP-U封装数据,可以根据GTP-U内层IP五元组的目的IP地址(UE IP)分发到队列Q4;对于N6的IP封装数据,可以根据IP五元组的目的IP地址(UE IP)分发到队列Q4;这里假定队列Q1/Q2/Q3/Q4分别对应CPU逻辑核core1/core2/core3/core4,这样同一个UE IP地址的相关信令、媒体数据就由core2/core3/core4分别处理(core1处理节点相关数据,与UE的会话无关),没能充分利用多核CPU的资源。
发明内容
为了充分利用多核CPU资源,有效提高UPF设备的数据处理能力及吞吐量,本发明提供了一种UPF数据处理的方法。
本发明提供了一种UPF数据处理的方法,网卡接收到数据包,网卡数据分发模块对接收到数据进行解释,网卡数据分发模块对IP/UDP/PFCP、IP/UDP/GTP-U、IP其它数据进行分类处理,根据配置的规则动态分发到网卡的接收队列;数据处理及转发模块根据配置的CPU逻辑核与接收队列的绑定关系,CPU逻辑核从指定的接收队列接收数据,根据来自SMF网元的控制指令,数据处理及转发模块完成数据的处理及转发;网卡数据分发模块运行于网卡中,数据处理及转发模块运行于CPU逻辑核中。
作为本发明的进一步改进,所述网卡数据分发模块运行在一个或多个网卡中,所述数据处理及转发模块运行于一个或多个CPU逻辑核中。
作为本发明的进一步改进,所述网卡数据分发模块包括执行如下步骤:
步骤1:判断接收到的数据是否为IP/UDP/PFCP数据,如果是执行步骤2,如果否执行步骤一;
步骤2:判断PFCP消息类型,如果PFCP消息类型小于50,则执行第一子步骤,如果PFCP消息类型大于或等于50,执行步骤3;
第一子步骤:查找PFCP节点相关消息->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已根据配置数据绑定了该接收队列,从该接收队列接收数据;
步骤3:判断PFCP消息类型,如果PFCP消息类型是PFCP Session EstablishmentRequest,执行步骤4,否则执行第二子步骤;
步骤4:根据消息内容判断是否为SMF网元分配UE IP地址,如果否则执行第三子步骤,如果是SMF网元分配,则获取UE IP地址,查找IP地址/SEID/TEID范围->队列/core的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;UE为用户设备;
第二子步骤:获取消息头中的SEID,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第三子步骤:查找PFCP会话相关消息->队列/core集合的配置数据,随机选取其中一个接收队列/CPU逻辑核,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
步骤一:判断接收到的数据是否为IP/UDP/GTP-U数据,如果否则执行第四子步骤,如果是则执行步骤二;
步骤二:根据外层目的IP地址段,判断是否为N3接口,如果是则执行第五子步骤;如果否则获取GTP-U消息头的TEID,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第四子步骤:获取目的IP地址,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第五子步骤:获取GTP-U封装内层的源IP地址,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据。
作为本发明的进一步改进,当所述数据处理及转发模块接收到PFCP消息SessionEstablishment Request,根据PFCP消息内容判断UPF是否需要分配UE IP地址,如果否则结束,如果是,那么获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的UE IP地址范围内分配空闲IP。
作为本发明的进一步改进,当所述数据处理及转发模块接收到来自本模块的分配本端GTP-U TEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的TEID范围内分配空闲TEID。
作为本发明的进一步改进,当所述数据处理及转发模块接收到来自本模块的分配本端PFCP SEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的SEID范围内分配空闲SEID。
本发明还提供了一种UPF数据处理的系统,包括网卡数据分发模块和数据处理及转发模块,网卡接收到数据包,网卡数据分发模块对接收到数据进行解释,网卡数据分发模块对IP/UDP/PFCP、IP/UDP/GTP-U、IP其它数据进行分类处理,根据配置的规则动态分发到网卡的接收队列;数据处理及转发模块根据配置的CPU逻辑核与接收队列的绑定关系,CPU逻辑核从指定的接收队列接收数据,根据来自SMF网元的控制指令,数据处理及转发模块完成数据的处理及转发;网卡数据分发模块运行于网卡中,数据处理及转发模块运行于CPU逻辑核中。
作为本发明的进一步改进,所述网卡数据分发模块包括:
第一判断模块:用于判断接收到的数据是否为IP/UDP/PFCP数据,如果是运行第二判断模块,如果否运行第一判断单元;
第二判断模块:用于判断PFCP消息类型,如果PFCP消息类型小于50,则运行第一子模块,如果PFCP消息类型大于或等于50,运行第三判断模块;
第一子模块:用于查找PFCP节点相关消息->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已根据配置数据绑定了该接收队列,从该接收队列接收数据;
第三判断模块:用于判断PFCP消息类型,如果PFCP消息类型是PFCP SessionEstablishment Request,运行第四判断模块,否则执行第二子模块;
第四判断模块:用于根据消息内容判断是否为SMF网元分配UE IP地址,如果否则运行第三子模块,如果是SMF网元分配,则获取UE IP地址,查找IP地址/SEID/TEID范围->队列/core的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;UE为用户设备;
第二子模块:用于获取消息头中的SEID,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第三子模块:用于查找PFCP会话相关消息->队列/core集合的配置数据,随机选取其中一个接收队列/CPU逻辑核,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第一判断单元:用于判断接收到的数据是否为IP/UDP/GTP-U数据,如果否则运行第四子模块,如果是则执行第二判断单元;
第二判断单元:根据外层目的IP地址段,判断是否为N3接口,如果是则运行第五子模块;如果否则获取GTP-U消息头的TEID,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第四子模块:用于获取目的IP地址,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;第五子模块:用于获取GTP-U封装内层的源IP地址,查找IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据。
作为本发明的进一步改进,当所述数据处理及转发模块接收到PFCP消息SessionEstablishment Request,根据PFCP消息内容判断UPF是否需要分配UE IP地址,如果否则结束,如果是,那么获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的UE IP地址范围内分配空闲IP;
当所述数据处理及转发模块接收到来自本模块的分配本端GTP-U TEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的TEID范围内分配空闲TEID;
当所述数据处理及转发模块接收到来自本模块的分配本端PFCP SEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的SEID范围内分配空闲SEID。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。
本发明的有益效果是:本发明把同一个UE IP地址的所有媒体数据、控制信令都关联到同一个CPU逻辑核,即对手机的某一个特定业务,其在UPF的数据接收、处理及转发全程都在一个CPU逻辑核内完成,无需跨CPU核转发数据或跨核处理数据,最大程度利用CPU亲和性。
附图说明
图1是背景技术的原理框图;
图2是UPF的模块组成图;
图3是UPF的数据接收过程示意图;
图4是网卡数据分发模块的处理流程图;
图5是数据处理及转发模块一实施例的处理流程图;
图6是数据处理及转发模块另一实施例的处理流程图;
图7是数据处理及转发模块又一实施例的处理流程图。
具体实施方式
本发明把“UE IP地址段/PFCP SEID段/GTP-U TEID段”与“网卡接收队列/CPU逻辑核”进行关联绑定,实现一个UE IP地址所关联的所有媒体数据、控制信令都由一个CPU逻辑核处理,即数据接收、处理及转发都不会跨CPU逻辑核。如果SMF分配UE IP地址,则UPF分配PFCP SEID/GTP-U TEID时关联UE IP地址,让这三者都对应同一个网卡的接收队列;如果UPF分配UE IP地址,则UPF分配UE IP地址/PFCP SEID/GTP-U TEID时关联到同一个网卡接收队列。对于N3接口,使用GTP-U的内层源IP地址(即UE IP地址)作为分发关键字;对于N4-PFCP接口,使用PFCP消息头中的SEID或PFCP消息“Session Establishment Request”中的UE IP地址作为分发关键字,如果PFCP消息“Session Establishment Request”中不携带UEIP地址(即UPF分配UE IP地址),则UPF随机选择出网卡的接收队列,后续数据都关联到此队列;对于N4-U/N9/19接口,使用UPF本端分配的GTP-U TEID作为分发关键字;对于N6接口,使用目的IP地址(UE IP地址)作为分发关键字。
UPF的模块组成如图2所示,UPF软件分为两大模块:网卡数据分发模块、数据处理及转发模块,其中,网卡数据分发模块运行于网卡中,可以运行在一个或多个物理网卡中;数据处理及转发模块运行于CPU逻辑核中,可以运行在一个或多个CPU逻辑核中。
UPF的数据接收过程如图3所示,网卡接收到数据包,网卡数据分发模块对接收到数据进行解释,对IP/UDP/PFCP、IP/UDP/GTP-U、IP其它数据进行分类处理,根据配置的规则动态分发到接收队列Queue 1(Q1)、Queue2(Q2)、Queue 3(Q3)、Queue n(Qn);数据处理及转发模块根据配置的CPU逻辑核与接收队列的绑定关系,从特定的网卡接收队列接收数据,比如CPU core-1(CPU逻辑核1)从网卡接收队列Q1接收数据,CPU core-n(CPU逻辑核n)从网卡接收队列Qn接收数据,根据来自SMF的控制指令(即N4 PFCP信令),该模块完成数据的处理及转发。
网卡数据分发模块的处理流程如图4所示,处理过程描述如下:
步骤1:网卡数据分发模块运行在一个或多个物理网卡中,接收到来自网口的数据,判断是否为IP/UDP/PFCP数据,如果是执行步骤2,如果否执行步骤一。
步骤2:判断PFCP消息类型,如果PFCP消息类型小于50(根据3GPP TS29.244定义),则执行第一子步骤,如果PFCP消息类型大于或等于50,跳转步骤3。
第一子步骤:说明这是PFCP节点相关消息,查找(PFCP节点相关消息->队列/core)的配置数据,得到接收队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已根据配置数据绑定了该队列,从该队列接收数据;一种配置数据的例子如下:
PFCP-Node->Queue 1/CPU core 1。
步骤3:说明这是PFCP会话相关消息,判断PFCP消息类型,如果PFCP消息类型是PFCP Session Establishment Request,执行步骤4,否则执行第二子步骤。
步骤4:根据消息内容进一步判断是否SMF分配UE IP地址,如果否则跳转到第三子步骤,如果是SMF分配,则获取UE IP地址,查找(IP地址/SEID/TEID范围->队列/core)的配置数据,得到接收队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已绑定该队列,从该队列接收数据;一种配置数据的例子如下:
10.45.0.1-10.45.0.255/1–1000/1-1000->Queue 2/CPU core 2
10.45.1.0-10.45.1.255/10000–11000/30000-31000->Queue
10/CPU core 10
10.45.2.0-10.45.2.255/15000–16000/80000-81000->Queue20/CPU core 20。
第三子步骤:查找(PFCP会话相关消息->队列/core集合)的配置数据,随机选取其中一个队列/core,得到队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已绑定该队列,从该队列接收数据;一种配置数据的例子如下:
PFCP_Session->[Queue2/CPU core2,Queue3/CPU core3,Queue10/CPU core10,Queue20/CPU core20]。
第二子步骤:获取消息头中的SEID,查找(IP地址/SEID/TEID范围->队列/core)的配置数据,得到接收队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已绑定该队列,从该队列接收数据。
步骤一:判断是否IP/UDP/GTP-U数据,如果非则执行第四子步骤,如果是则执行步骤二。
步骤二:说明这是来自N3/N4-U/N9/N19其中一个接口的GTP-U封装数据,进一步根据外层目的IP地址段(N3接口的本地IP地址段从配置数据获取),判断是否N3接口,如果是则执行第五子步骤,如果非则获取GTP-U消息头的TEID,查找(IP地址/SEID/TEID范围->队列/core)的配置数据,得到接收队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已绑定该队列,从该队列接收数据。
第四子步骤:如果非IP/UDP/GTP-U数据,说明这是来自N6接口的IP数据,获取目的IP地址(即UE IP地址),查找(IP地址/SEID/TEID范围->队列/core)的配置数据,得到接收队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已绑定该队列,从该队列接收数据。
第五子步骤:获取GTP-U封装内层的源IP地址(即UE IP地址),查找(IP地址/SEID/TEID范围->队列/core)的配置数据,得到接收队列编号,分发该数据到对应网卡接收队列,对应CPU逻辑核已绑定该队列,从该队列接收数据。
数据处理及转发模块运行在一个或多个CPU逻辑核中,每个CPU逻辑核中的运行实例根据配置从特定网卡的接收队列接收数据。
如图5所示,数据处理及转发模块接收到PFCP消息Session EstablishmentRequest,根据消息内容判断UPF是否需要分配UE IP地址,如果否则结束,如果是,那么获取运行当前模块的CPU core编号,根据(IP地址/SEID/TEID范围->队列/core)的配置数据,在当前CPU逻辑核所绑定的UE IP地址范围内分配空闲IP,比如:
假设当前模块运行在CPU core 2,当前(IP地址/SEID/TEID范围->队列/core)的配置数据为“10.45.0.1-10.45.0.255/1–1000/1-1000->Queue 2/CPU core 2”,则UE的IP地址可能分配为“10.45.0.100”。
如图6所示,数据处理及转发模块接收到来自本模块的分配本端GTP-U TEID请求,获取运行当前模块的CPU core编号,根据(IP地址/SEID/TEID范围->队列/core)的配置数据,在当前CPU逻辑核所绑定的TEID范围内分配空闲TEID,比如:
假设当前模块运行在CPU core 2,当前(IP地址/SEID/TEID范围->队列/core)的配置数据为“10.45.0.1-10.45.0.255/1–1000/1-1000->Queue 2/CPU core 2”,则TEID可能分配为“850”。
如图7所示,数据处理及转发模块接收到来自本模块的分配本端PFCP SEID请求,获取运行当前模块的CPU core编号,根据(IP地址/SEID/TEID范围->队列/core)的配置数据,在当前CPU逻辑核所绑定的SEID范围内分配空闲SEID,比如:
假设当前模块运行在CPU core 2,当前(IP地址/SEID/TEID范围->队列/core)的配置数据为“10.45.0.1-10.45.0.255/1–1000/1-1000->Queue 2/CPU core 2”,则SEID可能分配为“555”。
作为一个实施例,假设当前“IP地址/SEID/TEID范围->队列/core”的配置数据为“10.45.0.1-10.45.0.255/1–1000/1-1000->Queue 2/CPU core 2”,UE IP地址获取到“10.45.0.100”,UPF PFCP SEID分配为10,UPF N4-U GTP-U TEID分配为10,UPF N9/N19GTP-U TEID分配为500,则该手机所有与“10.45.0.100”相关的媒体数据、控制信令都集中在CPU core 2处理。
本发明的有益效果如下:通过本发明,UPF对于手机用户一个IP地址的所有控制信令、媒体数据,都绑定到一个CPU逻辑核,增强UPF CPU的亲和性,提高了UPF CPU缓存的命中率,减少内存访问损耗,充分利用了多核CPU的资源,从而提高UPF的数据处理能力及吞吐量,减低每比特数据的处理成本,提高产品竞争力。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种UPF数据处理的方法,其特征在于,网卡接收到数据包,网卡数据分发模块对接收到数据进行解释,网卡数据分发模块对IP/UDP/PFCP、IP/UDP/GTP-U、IP其它数据进行分类处理,根据配置的规则动态分发到网卡的接收队列;数据处理及转发模块根据配置的CPU逻辑核与接收队列的绑定关系,CPU逻辑核从指定的接收队列接收数据,根据来自SMF网元的控制指令,数据处理及转发模块完成数据的处理及转发;网卡数据分发模块运行于网卡中,数据处理及转发模块运行于CPU逻辑核中;
所述网卡数据分发模块包括执行如下步骤:
步骤1:判断接收到的数据是否为IP/UDP/PFCP数据,如果是执行步骤2,如果否执行步骤一;
步骤2:判断PFCP消息类型,如果PFCP消息类型小于50,则执行第一子步骤,如果PFCP消息类型大于或等于50,执行步骤3;
第一子步骤:查找PFCP节点相关消息->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已根据配置数据绑定了该接收队列,从该接收队列接收数据;
步骤3:判断PFCP消息类型,如果PFCP消息类型是PFCP Session EstablishmentRequest,执行步骤4,否则执行第二子步骤;
步骤4:根据消息内容判断是否为SMF网元分配UE IP地址,如果否则执行第三子步骤,如果是SMF网元分配,则获取UE IP地址,查找IP地址/SEID/TEID 范围->队列/core的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;UE为用户设备;
第二子步骤:获取消息头中的SEID,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第三子步骤:查找PFCP会话相关消息->队列/core集合的配置数据,随机选取其中一个接收队列/CPU逻辑核,得到接收队列编号,分发该数据到对应网卡的接收队列, 对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
步骤一:判断接收到的数据是否为IP/UDP/GTP-U数据,如果否则执行第四子步骤,如果是则执行步骤二;
步骤二:根据外层目的IP地址段,判断是否为N3接口,如果是则执行第五子步骤;如果否则获取GTP-U消息头的TEID,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第四子步骤:获取目的IP地址,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第五子步骤:获取GTP-U封装内层的源IP地址,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据。
2.根据权利要求1所述的方法,其特征在于,所述网卡数据分发模块运行在一个或多个网卡中,所述数据处理及转发模块运行于一个或多个CPU逻辑核中。
3.根据权利要求1所述的方法,其特征在于,当所述数据处理及转发模块接收到PFCP消息Session Establishment Request,根据PFCP消息内容判断UPF是否需要分配UE IP地址,如果否则结束,如果是,那么获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的UEIP地址范围内分配空闲IP。
4.根据权利要求1所述的方法,其特征在于,当所述数据处理及转发模块接收到来自本模块的分配本端GTP-U TEID请求,获取运行当前数据处理及转发模块的CPU 逻辑核编号,根据IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的TEID范围内分配空闲TEID。
5.根据权利要求1所述的方法,其特征在于,当所述数据处理及转发模块接收到来自本模块的分配本端PFCP SEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的SEID范围内分配空闲SEID。
6.一种UPF数据处理的系统,其特征在于,包括网卡数据分发模块和数据处理及转发模块,网卡接收到数据包,网卡数据分发模块对接收到数据进行解释,网卡数据分发模块对IP/UDP/PFCP、IP/UDP/GTP-U、IP其它数据进行分类处理,根据配置的规则动态分发到网卡的接收队列;数据处理及转发模块根据配置的CPU逻辑核与接收队列的绑定关系,CPU逻辑核从指定的接收队列接收数据,根据来自SMF网元的控制指令,数据处理及转发模块完成数据的处理及转发;网卡数据分发模块运行于网卡中,数据处理及转发模块运行于CPU逻辑核中;
所述网卡数据分发模块包括:
第一判断模块:用于判断接收到的数据是否为IP/UDP/PFCP数据,如果是运行第二判断模块,如果否运行第一判断单元;
第二判断模块:用于判断PFCP消息类型,如果PFCP消息类型小于50,则运行第一子模块,如果PFCP消息类型大于或等于50,运行第三判断模块;
第一子模块:用于查找PFCP节点相关消息->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已根据配置数据绑定了该接收队列,从该接收队列接收数据;
第三判断模块:用于判断PFCP消息类型,如果PFCP消息类型是PFCP SessionEstablishment Request,运行第四判断模块,否则执行第二子模块;
第四判断模块:用于根据消息内容判断是否为SMF网元分配UE IP地址,如果否则运行第三子模块,如果是SMF网元分配,则获取UE IP地址,查找IP地址/SEID/TEID 范围->队列/core的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;UE为用户设备;
第二子模块:用于获取消息头中的SEID,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第三子模块:用于查找PFCP会话相关消息->队列/core集合的配置数据,随机选取其中一个接收队列/CPU逻辑核,得到接收队列编号,分发该数据到对应网卡的接收队列, 对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第一判断单元:用于判断接收到的数据是否为IP/UDP/GTP-U数据,如果否则运行第四子模块,如果是则执行第二判断单元;
第二判断单元:根据外层目的IP地址段,判断是否为N3接口,如果是则运行第五子模块;如果否则获取GTP-U消息头的TEID,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第四子模块:用于获取目的IP地址,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据;
第五子模块:用于获取GTP-U封装内层的源IP地址,查找IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,得到接收队列编号,分发该数据到对应网卡的接收队列,对应CPU逻辑核已绑定该接收队列,从该接收队列接收数据。
7.根据权利要求6所述的系统,其特征在于,当所述数据处理及转发模块接收到PFCP消息Session Establishment Request,根据PFCP消息内容判断UPF是否需要分配UE IP地址,如果否则结束,如果是,那么获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的UEIP地址范围内分配空闲IP;
当所述数据处理及转发模块接收到来自本模块的分配本端GTP-U TEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的TEID范围内分配空闲TEID;
当所述数据处理及转发模块接收到来自本模块的分配本端PFCP SEID请求,获取运行当前数据处理及转发模块的CPU逻辑核编号,根据IP地址/SEID/TEID 范围->接收队列/CPU逻辑核的配置数据,在当前CPU逻辑核所绑定的SEID范围内分配空闲SEID。
8.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现权利要求1-5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110460420.8A CN113225257B (zh) | 2021-04-27 | 2021-04-27 | 一种upf数据处理的方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110460420.8A CN113225257B (zh) | 2021-04-27 | 2021-04-27 | 一种upf数据处理的方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113225257A CN113225257A (zh) | 2021-08-06 |
CN113225257B true CN113225257B (zh) | 2022-04-12 |
Family
ID=77089295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110460420.8A Active CN113225257B (zh) | 2021-04-27 | 2021-04-27 | 一种upf数据处理的方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113225257B (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102325255B (zh) * | 2011-09-09 | 2017-09-15 | 深圳融创新技术有限公司 | 一种多核心cpu视频转码调度方法及系统 |
CN104142867B (zh) * | 2013-05-09 | 2018-01-09 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN103699428A (zh) * | 2013-12-20 | 2014-04-02 | 华为技术有限公司 | 一种虚拟网卡中断亲和性绑定的方法和计算机设备 |
CN107368178A (zh) * | 2017-08-21 | 2017-11-21 | 湖南大学 | 基于dpdk数据包处理平台的功耗优化方法 |
CN107911237B (zh) * | 2017-11-10 | 2021-05-04 | 南京邮电大学 | 一种基于dpdk的用户空间内数据包快速检测方法 |
US10740149B2 (en) * | 2018-04-20 | 2020-08-11 | Verizon Patent And Licensing, Inc. | Serverless computing architecture |
CN112312328B (zh) * | 2019-07-30 | 2022-10-28 | 华为技术有限公司 | 通信方法及相关装置 |
CN112533236B (zh) * | 2019-09-19 | 2023-06-02 | 华为技术有限公司 | 通信方法及装置 |
CN110704211B (zh) * | 2019-09-29 | 2022-03-11 | 烽火通信科技股份有限公司 | 一种在多核系统下跨cpu收包的方法及系统 |
CN110913508B (zh) * | 2019-11-25 | 2021-07-20 | 广州爱浦路网络技术有限公司 | 一种部署了upf的5g基站的数据报文处理方法 |
CN111813547B (zh) * | 2020-06-30 | 2023-10-31 | 武汉虹旭信息技术有限责任公司 | 基于dpdk的数据包处理方法及装置 |
-
2021
- 2021-04-27 CN CN202110460420.8A patent/CN113225257B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113225257A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11240155B2 (en) | Technologies for network device load balancers for accelerated functions as a service | |
WO2020052605A1 (zh) | 一种网络切片的选择方法及装置 | |
US8139513B2 (en) | Wireless base station apparatus capable of effectively using wireless resources according to sorts of data | |
US10979285B2 (en) | Service transmission method, device, and system | |
KR20200079525A (ko) | 규칙 처리 방법 및 장치 | |
JPH0530152A (ja) | プロトコル並列処理装置 | |
KR20180126401A (ko) | 멀티코어 기반 데이터 처리 방법 및 장치 | |
US20060251071A1 (en) | Apparatus and method for IP packet processing using network processor | |
WO2022105807A1 (zh) | 服务实例部署方法、跨域互访通道建立方法及相关装置 | |
JP2024514643A (ja) | パケット転送方法、装置、およびシステム、並びにコンピュータ可読記憶媒体 | |
KR100854262B1 (ko) | 인터프로세서 통신 프로토콜 | |
CN112968965B (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
CN113225257B (zh) | 一种upf数据处理的方法、系统及存储介质 | |
JP2000235536A (ja) | データ通信方式及び装置 | |
KR100812680B1 (ko) | 보장된 서비스 품질 및 선택적인 브로드캐스팅을 제공하는프로세서간 통신 프로토콜 | |
CN109257227B (zh) | 数据传输中的偶联管理方法、装置及系统 | |
KR102526770B1 (ko) | 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 | |
CN115915289A (zh) | 计算任务的策略确定或资源分配方法、装置、网元及介质 | |
KR101773528B1 (ko) | 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법 | |
JP4741410B2 (ja) | 移動体通信システム、交換機、基地局装置、及び下り通信データ送信方法 | |
CN112422457A (zh) | 报文处理方法、装置和计算机存储介质 | |
CN114125038B (zh) | 一种服务调度方法、装置及存储介质 | |
CN114268546B (zh) | 用于网络切片的控制方法及装置 | |
WO2022111173A1 (zh) | 网络切片接入方法、设备、系统及存储介质 | |
CN108200542B (zh) | 一种多个不兼容系统互联的方法及装置 |
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 |