CN110121865A - 控制和用户平面架构 - Google Patents
控制和用户平面架构 Download PDFInfo
- Publication number
- CN110121865A CN110121865A CN201680091837.9A CN201680091837A CN110121865A CN 110121865 A CN110121865 A CN 110121865A CN 201680091837 A CN201680091837 A CN 201680091837A CN 110121865 A CN110121865 A CN 110121865A
- Authority
- CN
- China
- Prior art keywords
- thread
- message
- plane
- user
- user plane
- 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.)
- Granted
Links
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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/821—Prioritising resource allocation or reservation requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
提供了一种方法,其包括:由控制接口部分的控制器获取控制平面消息,该控制平面消息请求用户平面处理线程的处理线程特定哈希表的更新;由控制器将该消息提供给用户平面处理线程的队列;由用户平面处理线程从队列中获得控制平面消息;由用户平面处理线程基于所获得的控制平面消息来更新处理线程特定哈希表;由用户平面处理线程响应于更新而向控制器指示所请求的更新被处理;由用户平面处理线程从队列中获得至少一个用户平面消息;以及由用户平面处理线程至少部分地基于处理线程特定哈希表来处理至少一个用户平面消息。
Description
技术领域
本发明涉及通信。更具体地,本发明涉及控制和用户平面架构。
背景技术
在无线网络中,可以利用控制平面和用户平面的划分来逻辑地分离控制分组和数据分组。然而,利用多线程的这种架构可能需要使用多个锁(例如,互斥锁),这可能对网络的性能造成负面影响。因此,提供减少增强网络性能所需要的锁的数目的解决方案可能是有益的。
发明内容
根据一个方面,提供了独立权利要求的主题。一些实施例在从属权利要求中限定。
在附图和以下描述中更详细地阐述了一个或多个实施例。根据说明书和附图以及权利要求,其他特征将是显而易见的。
附图说明
在下文中,将参考附图描述一些实施例,在附图中:
图1示出了可以应用本发明的实施例的示例无线通信系统;
图2示出了控制平面和用户平面的划分的示例;
图3示出了根据实施例的流程图;
图4A至4C示出了一些实施例;
图5A至5B示出了一些实施例;
图6示出了一个实施例;
图7A至7B示出了一些实施例;以及
图8示出了根据实施例的装置的框图。
具体实施方式
以下实施例是示例性的。尽管说明书可以在文本的若干位置中涉及“一个(an)”、“一个(one)”或“一些(some)”实施例,但这并不一定意味着每个参考是针对相同的实施例,或者特定特征仅适用于单个实施例。还可以组合不同实施例的单个特征以提供其他实施例。
所描述的实施例可以在无线电系统中实现,诸如在以下中的至少一个中:全球微波接入互操作性(WiMAX)、全球移动通信系统(GSM、2G)、GSM EDGE无线电接入网络(GERAN)、通用分组无线电服务(GRPS)、基于基本宽带码分多址(W-CDMA)的通用移动电信系统(UMTS、3G)、高速分组接入(HSPA)、长期演进(LTE)、高级LTE、和/或5G。
然而,实施例不限于作为示例给出的系统,但是本领域技术人员可以将该解决方案应用于具有必要属性的其他通信系统。合适的通信系统的一个示例是5G概念。5G可能使用多输入多输出(MIMO)技术(包括MIMO天线),比LTE更多的基站或节点(所谓的小小区概念),包括与较小站系统操作的宏站点并且可能还采用各种无线电技术以获得更好的覆盖和增强的数据速率。5G可能包含多于一种无线电接入技术(RAT),每种技术都针对某些用例和/或频谱进行了优化。5G移动通信将具有更广泛的用例和相关应用,包括视频流、增强现实、不同的数据共享方式和各种形式的机器类应用,包括车辆安全、不同的传感器和实时控制。预期5G具有多个无线电接口,即低于6GHz、cmWave和mmWave,并且它还可以与现有的传统无线电接入技术(诸如LTE)集成。至少在早期阶段,可以实现与LTE的集成,作为由LET提供宏覆盖的系统,并且5G无线电接口接入通过到LTE的聚合而来自小小区。换言之,5G计划支持RAT间可操作性(诸如LTE-5G)和RI间可操作性(无线电接口间可操作性,诸如低于6GHz-cmWave,低于6GHz-cmWave-mmWave)两者。被认为在5G网络中使用的概念中的一个概念是网络切片,其中可以在同一基础设施内创建多个独立且专用的虚拟子网络(网络实例)以运行对延迟、可靠性、吞吐量和移动性具有不同要求的服务。应当理解,未来的网络将最有可能利用网络功能虚拟化(NFV),NFV是一种网络架构概念,其提出将网络节点功能虚拟化为可以在操作上连接或链接在一起以提供服务的“构建块”或实体。虚拟化网络功能(VNF)可以包括使用标准或通用类型服务器而不是定制硬件来运行计算机程序代码的一个或多个虚拟机。还可以使用云计算或云数据存储。在无线电通信中,这可以意味着至少部分地要在可操作地耦合到远程无线电头端的服务器、主机或节点中执行的节点操作。节点操作也可以在多个服务器、节点或主机之间分配。还应当理解,核心网络操作与基站操作之间的劳动力分配可能与LTE的不同。在5G系统中甚至可能不存在LTE的一些功能。可能要使用的其他一些技术进步是软件定义网络(SDN)、大数据和全IP网络,这可能会改变网络的构建和管理方式。
图1示出了可以应用本发明的实施例的无线电系统(也称为蜂窝通信系统或蜂窝系统)的示例。无线电通信网络或无线通信网络(诸如无线局域网(WLAN或WiFi)、长期演进(LTE)、第三代合作伙伴计划(3GPP)的高级LTE(LTE-A)、或未来的5G解决方案)通常由提供小区104的至少一个网络元件(诸如网络元件102)组成。在图1的示例中,可以示出小区104、114、124。例如,小区114可以由网络元件112提供,并且小区124可以由网络元件122提供。小区104可以由网络元件102提供。然而,无线电系统的网络元件可以提供多于一个小区。因此,例如,网络元件102可以提供小区104、小区114和/或小区124。通常,系统可以包括一个或多个网络元件(类似于参考图1描述的那些),其中每个网络元件提供为小区中的一个或多个终端设备提供服务的一个或多个小区。
无线电通信网络的每个小区可以是例如宏小区、微小区、毫微微小区或微微小区,例如,意味着可以存在所描述的小区中的每个小区中的一个或多个。无线电通信网络的每个网络元件(诸如网络元件102、112、122)可以是如LTE和LTE-A中的演进Node B(eNB)、如UMTS中的无线电网络控制器(RNC)、如GSM/GERAN中的基站控制器(BSC)、接入点(AP)、或能够控制无线电通信和管理小区内的无线电资源的任何其他装置。也就是说,可以存在所描述的每个装置或实体中的一个或多个。举例来说,网络元件102可以是eNB。网络元件112也可以是eNB。例如,网络元件102可以提供宏小区,并且网络元件112可以提供微小区。
对于5G解决方案,实现可以类似于LTE-A,如上所述。例如,网络元件102、112、122可以是基站或小型基站。在通信网络中的多个eNB的情况下,eNB可以利用如LTE中指定的X2接口190彼此连接。其示例可以在图1中示出,其中网络元件112可以被示出为经由X2接口190连接到网络元件102。网络元件之间的其他通信方法也是可能的。例如,WLAN系统的AP可以彼此通信。网络元件102、112、122中的至少一些可以进一步经由S1接口连接到演进分组核心,更具体地连接到移动性管理实体(MME)和系统架构演进/服务网关(SGW)。因此,通常,图1的网络元件可以使用一个或多个电路彼此通信地连接(无线和/或有线)。X2接口190是如何实现这种通信的一个示例。
例如,小区114、124也可以称为子小区或局域小区。例如,网络元件112、122可以称为子网络元件或局域接入节点。例如,小区104也可以称为宏小区。例如,网络元件102可以称为宏网络元件。在一个实施例中,局域接入节点是类似于网络元件102的网络元件。因此,例如,局域接入节点112可以是eNB或宏eNB。
小区104、114、124可以为至少一个终端设备110、120、130、140提供服务,其中至少一个终端设备110、120、130、140可以位于小区104、114、124中的至少一个内或者被包括在小区104、114、124中的至少一个中。至少一个终端设备110、120、130、140可以使用通信链路与网络元件102、112、122通信,通信链路可以被理解为用于端到端通信的通信链路,其中源设备向目的地设备传输数据。需要理解的是,小区104、114、124可以为某个区域提供服务,并且因此至少一个终端设备110、120、130、140可能需要在所述区域内以便能够使用所述服务(水平和/或垂直)。例如,第三终端设备130可以能够使用由小区104、114、124提供的服务。另一方面,例如,第四终端设备140可以能够仅使用小区104的服务。
小区104、114、124可以至少部分地彼此重叠。因此,至少一个终端设备110、120、130、140可以使得能够一次使用多于一个小区的服务。例如,子小区114、124可以是与宏小区104相关联的小小区。这可以意味着网络元件102(例如,宏网络元件102)可以至少部分地控制网络元件112、122(例如,局域接入节点)。例如,宏网络元件102可以使得局域接入节点112、122向至少一个终端设备110、120、130、140传输数据。也可以由网络元件102经由网络元件112、122从至少一个终端设备110、120、130、140接收数据。为了进一步解释该场景,小区114、124可以至少部分地在小区104内。
至少一个终端设备110、120、130、140可以包括移动电话、智能电话、平板电脑、笔记本电脑和用于与无线电通信网络进行用户通信的其他设备。与MTC模式相比,这些设备可以提供另外的功能,诸如用于语音、视频和/或数据传输的通信链路。然而,需要理解的是,至少一个终端设备110、120、130、140还可以包括具有机器类型通信(MTC)能力的设备,诸如传感器设备,例如提供位置、加速度和/或温度信息,仅举几个示例。
摩尔定律将在2000年至2020年之间将计算机的中央处理器(CPU)晶体管计数增加十倍,并且因此性能提高了1024倍或大约1000倍。这可能听起来不错,但需要考虑计算机网络性能如何同时增加。在2000年,互联网连接的数据速率数量级约为100kbit/s,其由通用分组无线业务(GPRS)和固定电话调制解调器提供。在未来,第五代(5G)预计将提供10Gbit/s移动连接,或比2000年快大约10万倍。同时,当计算机网络性能增加10万倍时,分组大小保持不变相对恒定。这意味着未来满足性能要求的难度大约是现在的100倍。此外,计算机CPU中的每核性能几乎已经饱和。可能会有轻微的增益,但预计仅在CPU核心计数方面会出现重大增益。因此,今天可能需要多线程架构来获得所需要的性能。
然而,多线程可能具有固有成本。例如,互斥锁很昂贵。一种可能性是使用采用原子操作的无锁算法,但是如果没有可以以可中断方式获得的分组,则无锁算法无法休眠。因此,如果在空闲系统中使用无锁算法,则能够以很高的速率消耗能量。因此,即使互斥锁成本很高并且调节变量睡眠成本更高,也希望使用互斥锁来锁定和调节睡眠的变量。
在蜂窝通信系统中利用控制平面和用户平面的划分是常见的。例如,可以使用用户平面和控制平面。用户平面(有时称为转发平面、载波平面或承载平面)可以用于携带用户网络业务,例如,传输来自和去往终端设备的数据分组。这种数据分组的示例可以是语音分组、蜂窝数据分组和文本消息数据分组。另一方面,控制平面携带信令业务。例如,控制分组可以用于配置目的。用户和控制平面可以利用相同的物理连接,但是可以理解为单独的逻辑连接,如本领域技术人员已知的。在图2中可以看到控制平面和用户平面的这种划分的示例。
参考图2,系统可以包括控制接口部分210和用户平面220。控制接口部分210可以包括套接字212和控制器214。套接字212可以用于接收和传输消息。例如,控制接口部分210可以经由套接字212连接到MME,并且因此控制器214可以从MME获取控制消息。也就是说,控制接口部分210可以被理解为用于访问控制平面的控制接口。在某种程度上,控制接口部分可以被理解为提供用户平面实体与控制平面之间的通信能力的部分。因此,在一些实施例中,控制接口部分210可以被理解为用户平面220的一部分,使得用户平面220实体能够从控制平面接收控制消息。另一方面,所述接口可以使得能够由用户平面实体向控制平面发送消息。在一些情况下,控制平面部分210的控制器可以被称为包括一个或多个线程的控制器。
用户平面220可以包括多个处理线程224-230(可以简称为线程)。所述线程可以各自具有专用处理功能。例如,RX线程224可以被配置为经由输入接口222接收数据分组并且将数据分组传送到工作者线程226、228。工作者线程226、228可以被配置为至少部分地基于哈希表来处理数据分组。TX线程230可以负责经由输出接口232输出数据分组。输入和输出接口222、232可以是网络适配器的一部分,使得能够与无线网络的其他实体进行通信。如上所述,套接字212和接口222、232可以利用相同的物理连接,但是可以控制逻辑上分离的连接。因此,例如,套接字212、接口222和接口232中的每个可以与特定逻辑连接相关联。
如上面简要讨论的,在这种系统中出现的问题是锁(例如,互斥锁)的数目降低了系统的处理能力。例如当控制接口部分210对用户平面220的哈希表执行更新时(即,基于来自控制平面的更新请求),当哈希表被控制接口部分210锁定时,可以停止工作者线程226、228的处理。锁定可能意味着锁定的实体(例如,队列或哈希表)不能被系统的其他实体使用。这可能意味着系统每秒处理很多分组的能力会降低。因此,通常,提供了一种利用控制平面和用户平面的划分来减少无线网络系统中所需要的锁的数目的解决方案。该解决方案的一个方面涉及控制接口部分210与用户平面220之间的通信。一些其他方面可以具体涉及用户平面220。
图3示出了根据实施例的方法。该方法可以包括以下步骤:由控制接口部分的控制器获取控制平面消息,该控制平面消息请求用户平面处理线程的处理线程特定哈希表的更新(框310);由控制器将控制平面消息提供给用户平面处理线程的队列(框320);由用户平面处理线程从队列中获得控制平面消息(框330);由用户平面处理线程基于所获得的控制平面消息来更新用户平面处理线程的处理线程特定哈希表(框340);由用户平面处理线程响应于更新而向控制接口部分的控制器指示所请求的更新被处理(框350);由用户平面处理线程从用户平面处理线程的队列中获得至少一个用户平面消息(框360);以及由用户平面处理线程至少部分地基于处理线程特定哈希表来处理至少一个用户平面消息(框370)。
例如,图3的所述方法可以适用于图2的系统。所述控制器可以是控制器214或者被包括在控制器214中。所述用户平面处理线程可以是工作者线程226中的一个。然而,所述用户平面处理线程可以包括TX线程230和/或RX线程224。例如,如果RX线程224被配置为还基于哈希表来处理所接收的消息,则可能发生这种情况。因此,所述用户平面处理线程可以具有多于一个功能(例如,RX、TX和/或工作者功能)。
所描述的解决方案的益处在于,通过使用线程特定哈希表,哈希表更新(即,控制消息)不会停止用户平面220的其他线程的处理。因此,从控制接口部分210到用户平面220的线程的控制消息可以被输入到线程的队列(例如,工作队列)中。然后,线程可以从其队列中获得更新请求,并且相应地处理更新。因此,系统的其他线程不会受到不利影响,并且因此系统的分组处理速率可能会增加。
所描述的解决方案对于蜂窝通信系统可能特别有益。然而,所描述的解决方案可以适用于利用控制平面和用户平面的划分(即,至少控制平面和用户平面)的任何系统。因此,例如,该解决方案可以用在无线系统中,诸如在WLAN系统中。而且,该解决方案可以适用于非无线解决方案,诸如路由器(例如,因特网路由器)。还应当注意,线程可以被包括在处理核中,其中处理核支持或实现一个或多个线程。因此,可以通过使用一个或多个处理核来完成多线程。
让我们再看一些示例和实施例。图4A至4C示出了一些实施例。首先参考图4A,可以示出控制器214与处理线程之间的通信。在该示例中,处理线程是工作者处理线程226。例如,工作者线程226实际上可以执行所需要的所有消息处理,包括校验和计算和隧道查找。在地址解析协议(ARP)消息的情况下,工作者线程226可以使用每线程隧道和ARP数据结构来执行查找。还应当注意,控制消息和用户平面消息可以分别表示控制平面分组和用户平面分组。通常,消息可以包括表示分组的一个或多个数据单元(例如,携带用户平面数据或控制平面数据的数据分组)。
因此,控制器214可以接收控制消息(框402)。例如,这可以经由套接字212发生。控制消息可以请求线程特定哈希表的更新。控制器214可以将控制消息传输到与更新请求相关联的工作者线程226(框404)。在某些情况下,控制消息被传输到多于一个工作者线程。如果更新与多于一个工作者线程相关,则可能发生这种情况。控制消息可以经由工作者线程226的队列传输到工作者线程226。即控制器214将控制消息输入到队列,并且然后工作者线程226从队列中获取控制消息。在输入之前,控制器214可以锁定队列。在控制消息已经被输入之后,可以释放队列,使得工作者线程226可以依次锁定队列并且从队列中获得控制消息。然后可以再次释放队列,以使得控制器214能够输入另外的控制消息,并且使得能够将用户平面消息输入到所述队列。该队列可以特定于工作者线程226。也就是说,该队列可以仅由工作者线程226使用而不是由其他工作者线程使用。然后,工作者线程226可以基于控制消息来更新其哈希表(框406)。此外,工作者线程226可以向控制器传输指示更新已经被发起或执行的响应(框408)。例如,响应可以以与控制消息类似的方式经由控制器的队列来传输。即在响应消息的输入之前,一旦响应消息已经被输入,就可以锁定和释放控制器的队列。然后,控制器可以锁定队列,获得响应消息并且释放队列。以类似的方式,来自工作者线程226的其他消息可以被传输到控制器214。
让我们考虑更新请求,该更新请求涉及向工作者线程226的哈希表添加路径。控制器214可以包括输入线程和输出线程:
·控制器输入线程从控制平面获取“添加路径请求”。控制器可以经由套接字212或类似的通信使能接口从控制平面接收所述请求。
·控制器输入线程可以验证请求。
·控制器输入线程可以基于报头值(例如,隧道端点标识符(TEID)和因特网协议(IP))来更新全局锁定的哈希表。例如,全局哈希表可以由用户平面的实体访问。当访问全局哈希表时,实体(例如,线程)可能需要首先锁定全局哈希表,因为它可以由多个实体使用。一旦获得所需要的信息,全局哈希表就可以被解锁,并且从而可以以类似方式再次由其他实体使用。
·控制器输入线程可以将“添加路径请求”入队(例如,添加TEID或添加IP)到工作者线程的队列。
·控制器输入线程可能会等待工作者线程处理该消息。
·工作者线程获取“添加路径请求”消息并且更新其本地哈希表。
·工作者线程通知控制器输入线程。
·控制接口输入线程接收通知并且释放消息。
·控制器输入线程构造回复并且入队到控制器输出线程中。
·控制器输出线程获取回复并且将其发送到控制平面(例如,经由套接字212)。
“删除路径请求”和“修改路径请求”可以以类似的方式实现。也就是说,可以输入、删除或修改本地哈希表中的条目(即,可以更新本地哈希表)。本地哈希表可以表示线程特定哈希表。
还应当注意,该请求可以涉及IP地址和TEID的更新两者。也就是说,在这种情况下,控制消息被入队到处理关于更新IP的下行链路的工作者线程的队列。此外,控制消息被入队到处理关于更新TEID的下行链路的工作者线程的队列。在一些实施例中,工作者线程226可以负责上行链路消息和下行链路消息。因此,它可以更新TEID和IP两者。然而,在一些情况下,工作者线程226可以被配置为处理上行链路或下行链路消息。因此,可能仅请求更新IP地址或TEID。
参考图4B,工作者线程226可以锁定其队列(框414);在所述队列被锁定期间获得至少一个用户平面消息(框416);以及响应于至少一个用户平面消息的获得而释放所述队列(框418)。在框424中,工作者线程226可以处理所获得的至少一个消息。如在工作者线程226执行用户平面220的一些其他功能的情况下所述,所描述的步骤通常可以由用户平面处理线程来执行。
在一个实施例中,至少一个用户平面消息表示多个用户平面消息。这可能意味着用于指示至少一个用户平面消息的表达实际上意味着存在多于一个用户平面消息。因此,在一些实施例中,至少一个用户平面消息可以包括多个用户平面消息。因此,工作者线程226可以利用相同操作获得多于一个用户平面消息。这可以减少所需要的锁定操作的数目。例如,来自队列的所有消息可以通过以下方式来获得:一次锁定它并且然后一旦获得来自所述队列的所有消息就释放队列。
仍然参考图4B,RX线程224可以被配置为经由输入接口222获得至少一个消息。每个消息可以包括报头字段。RX线程可以基于消息的报头字段(即,用户平面消息)来确定消息将被传送到哪个工作者线程。报头字段可以指示例如TEID、IP地址或终端设备标识符。因此,在图4B的示例中,RX线程224可以将至少一个消息传送给工作者线程226(框412)。这可以意味着RX线程224将至少一个消息输入到工作者线程226的队列。因此,所述队列可以包括一个或多个用户平面消息。一旦队列被工作者线程226锁定,RX线程224就不会向队列输入其他消息。然而,一旦队列被再次释放,RX线程224就可以输入另外的消息(框422)。将消息输入到队列可能需要由RX线程224锁定队列。还应当注意,由于控制器214可以向相同的队列输入控制消息,因此可能存在队列包括一个或多个用户平面消息和一个或多个控制平面消息的情况。然而,队列在某些情况下可以是空的或者仅包括控制消息(即,控制平面消息)或用户平面消息。
另外但并不总是,工作者线程226可以将至少一个消息传输到与工作者线程226相关联的TX线程230。这可以再次经由队列、即TX线程230的队列发生。TX线程230可以从其队列中获得至少一个消息,并且使得它们经由输出接口232被传输。
所提出的解决方案的一个方面可以是进一步减少所述系统中所需要的锁(例如,互斥锁)的数目。因此,考虑图2的系统中的普通用户平面消息的流程。一旦RX线程224接收到消息(即,用户平面消息),系统就可以为所述消息分配存储器。可以从线程本地堆中为消息分配存储器,并且可能在一个操作中接收多个消息。如果线程本地堆变为空,则可以将其填充到全局堆的大约一半的水平,仅锁定全局堆互斥一次。因此,通过在一个操作中而不是多个操作获得多个消息(即,每个消息一个操作),可以在很多分组上分摊锁定成本。堆可以意味着数据存储实体(例如,临时数据存储位置)。例如,它可以用于存储预先分配的块。
在接收到一个或多个消息之后,可以在一个操作中将它们入队到工作者线程的阻塞队列(例如,226或228),仅锁定阻塞队列互斥一次。因此,锁定的成本可以在很多消息上分摊。工作者线程可以通过从消息的流标识报头字段中获取哈希值来(通过RX线程224)选择。注意,一个RX线程可以将多个获得的消息中的一个或多个发送到一个工作者线程,并且将多个获得的消息中的一个或多个发送到另一线程。例如,如果RX线程224的堆具有100个消息,则可以将55个发送到工作者线程226并且可以将45个发送到工作者线程228。当然可能存在多于两个工作者线程,并且因此接收的消息可以不同地分发。如上所述,分发可以基于消息的报头字段来执行。
继续前进,工作者线程(例如,226)可以将一个或多个消息(可能多于一个)从阻塞队列中出队。因此,锁定的成本可以在很多消息上分摊。然后,工作者线程可以针对每个消息从线程本地流数据结构(也称为哈希表)中查找流信息。线程本地的线程本地数据结构可能不需要锁,因为它可能仅由相应的工作者线程更新。工作者线程可以基于线程本地数据结构来获得与经处理的消息相关联的MAC地址。例如,可以通过在线程本地ARP表中查找IP地址来获得以太网MAC地址。该表(其也是线程本地的)也可能不需要锁。
此外,工作者线程然后可以将多个消息入队到TX线程230。每个工作者线程可以使相同的TX线程,因此传输线程的数目可以等于或小于工作者线程的数目。通过将多个消息输入到TX线程阻塞队列,可以在多个消息上分摊锁定成本。
然后,传输线程230可以将多个消息从其阻塞队列中出队,从而分摊锁定成本。然后,传输线程可以仅使用一个系统调用来传输消息,并且然后将消息数据释放到线程本地堆(即,与特定TX线程相关联),这可能不需要锁。如果线程本地堆已满,则可以通过将其一半元素移动到全局堆(对于多个TX线程相同)来将其减半,以在操作中仅锁定互斥一次。因此,减半操作可以在很多消息上分摊锁定互斥的成本。
然后,参考图4C,图4C示出了其中用户平面消息454-458与用户平面处理线程的队列中的控制平面消息452相比具有较低优先级的实施例。具体地,这种解决方案可以适用于工作者线程226、228的队列。这可以意味着如果队列具有至少一个控制消息452,则工作者线程226可以在继续处理用户平面消息454-458之前处理至少一个控制消息452。换言之,控制平面消息可以具有比用户平面消息较高的优先级。
在一个实施例中,用户平面处理线程是仅处理上行链路用户平面消息的上行链路处理线程。在一个实施例中,用户平面处理线程是仅处理下行链路用户平面消息的下行链路处理线程。例如,参考图2,工作者线程226可以是上行链路线程,并且工作者线程228可以是下行链路线程228。
在一个实施例中,用户平面220包括多个处理线程,每个处理线程与处理线程特定哈希表相关联。这可以意味着至少每个工作者线程226、228与线程特定哈希表相关联。
在一个实施例中,用户平面220包括一个或多个下行链路处理线程和一个或多个上行链路处理线程。因此,可以存在被配置为处理下行链路数据分组或消息的多个下行链路工作者线程和被配置为处理上行链路数据分组或消息的多个上行链路工作者线程。
然后让我们看图5A和5B的实施例。图5A可以示出不是ARP消息的用户平面消息的流程的示例。图5B可以示出作为ARP消息的用户平面消息的流程的示例。首先参考图5A,消息的流程可以如上所述。也就是说,RX线程224可以经由输入接口222获得消息。RX线程224可以确定它需要向哪个工作者线程传送消息。在图5A的示例中,消息被传输到工作者线程226。工作者线程226可以处理该消息。可能工作者线程226可以进一步将经处理的消息(例如,基于哈希表确定)传送到TX线程230,TX线程230可以经由输出接口232传输消息。
然而,在ARP消息的情况下(即,通过RX线程获得的消息是ARP消息),RX线程224可以将ARP消息传送到每个工作者线程226、228。换言之,它可以将ARP消息复制到每个工作者线程226、228的队列,其中可以存在多个工作者线程。因此,每个工作者线程226、228可以更新其线程特定ARP表。
因此,在一个实施例中,RX线程224确定所获得的用户平面消息是ARP消息还是某个其他消息。在ARP消息的情况下,RX线程224可以将ARP消息提供或输入到多个工作者处理线程中的每个工作者线程的队列(例如,到工作者线程226的队列和工作者线程228的队列),否则RX线程224可以仅将所述消息提供或输入到目标工作者处理线程(例如,图5A的示例中的线程226)的队列。换言之,在ARP消息的情况下,RX线程224可以多次克隆ARP消息,该次数对应于工作者线程226、228的数目。因此,如果有四个工作者线程,则可以生成ARP消息的四个副本。因此,然后将ARP消息提供给每个工作者线程的队列,使得所有工作者线程可以从它们各自的队列中获取ARP消息并且更新它们的ARP表。ARP表可以是线程特定的,即每个工作者线程可以具有其自己的ARP表。在ARP消息的情况下,工作者线程226、228可能不一定向前传送ARP消息,因为ARP消息涉及工作者线程ARP表的更新。需要注意的是,工作者处理线程的哈希表可以包括ARP表、IP地址表和/或TEID表。
根据一个实施例,用户平面220包括多个工作者处理线程226、228。RX线程224可以获得一个或多个用户平面消息,并且将所述一个或多个用户平面消息提供给多个工作者处理线程中的至少一个目标工作者处理线程的队列。例如,在ARP消息的情况下,目标工作者处理线程包括所有工作者线程。例如,在非ARP消息的情况下,目标工作者处理线程可以是仅一个工作者处理线程。还需要注意,在一些实施例中,用户平面或系统包括多个RX线程(例如,类似于RX线程224),每个RX线程能够传送所接收的消息。类似地,在一个实施例中,用户平面或系统包括多个TX线程(例如,类似于TX线程230)。因此,在一些实施例中,该系统包括多个RX线程、多个TX线程和多个工作者线程。
图6示出了一些实施例。参考图6,可以示出处理线程特定数据结构600。根据工作者线程,工作者线程特定数据结构600可以包括基于IP地址的哈希表602、基于TEID的哈希表604和/或ARP表606。也就是说,如果工作者线程被配置为处理下行链路消息(即,下行链路数据分组),则可以利用基于IP的哈希表602。如果工作者线程被配置为处理上行链路消息(即,上行链路数据分组),则可以利用基于TEID的哈希表604。如已经指出的,如果工作者线程被配置为处理下行链路和上行链路消息两者,则一个工作者线程可以具有所描述的(如果专用的下行链路或上行链路线程)一个或两者。ARP表606可以用于将基于TEID和/或IP地址的哈希表映射到MAC地址。因此,如上所述的哈希表可以包括基于IP地址的哈希和/或基于TEID的哈希。
需要注意的是,基于IP地址的哈希表602可以包括IP地址和TEID两者。类似地,基于TEID的哈希表604可以包括IP地址和TEID两者。ARP表可以包括IP地址到MAC地址映射。
图6还示出了全局数据结构610。例如,全局数据结构610可以由控制器214利用。也就是说,当控制器获取请求TEID或IP的更新的控制消息时,控制消息可以被传送到与所述请求相关联的工作者线程。此外,在一个实施例中,控制器214可以基于控制消息来更新全局数据。全局数据可以在逻辑上位于控制接口部分210处。因此,全局数据结构可以包括基于IP地址的哈希表612、基于TEID的哈希表614、ARP表616以及锁(例如,互斥锁)616,锁可以用于在由控制器214更新全局数据结构610时锁定全局数据结构610。
图7A至7B示出了一些实施例。在一个实施例中,用户平面处理线程(即,工作者线程226或228)将响应消息提供给控制器214的队列,该响应消息指示由控制平面消息请求的更新被处理。控制器214可以从所述队列中获取响应消息。因此,控制器214可以意识到更新响应(即,哈希表的更新)已经由工作者线程处理或至少由工作者线程发起。在图7A的示例中,响应消息被输入到控制器(CTRL)的输入线程216的队列中。因此,输入线程216可以从队列中获取响应。队列可以是阻塞队列。此外,输入线程可以指示对控制器的输出线程218的响应。输出线程218还可以经由套接字212指示对外部实体(例如,MME)的响应。在一个实施例中,输入和输出线程216之间的通信是从输入线程216到输出线程218的单向通信(即,单方向)。套接字212与输入线程216之间的通信也可以是单向的,如箭头所示。而且,输出线程218与套接字212之间的通信可以是单向的,如箭头所示。
因此,在一个实施例中,控制器214包括输入处理线程216和输出处理线程218。其示例在图7A中示出,但是控制器214处的两个或更多个线程也可以在不同情况下利用。
在一个实施例中,参考图7B,控制器214从套接字212获取控制平面消息,其中用户平面处理线程(例如,工作者226、228)向控制器214提供响应消息,响应消息指示由控制平面消息请求的更新被处理,其中响应消息经由控制平面的管道219被提供,并且其中管道219和套接字212支持多路复用。备选地,管道219可以由类似于套接字212的套接字代替。在图7B的示例中,仅示出了一个线程217。然而,在一些实施例中,控制接口部分210可以具有多于一个线程。然而,使用管道或套接字作为从工作者线程226、228接收消息的部件可能不一定需要特定的输出线程218,因为来自套接字212和来自管道219(或套接字)的消息可以被多路复用。线程217可以被配置为执行输入和输出操作(即,向用户平面输入消息以及经由套接字212向外部实体输出消息)。
还需要注意的是,除了响应消息之外的其他消息可以从用户平面(即,工作者线程226、228)经由管道219(或套接字)或经由队列发送到控制器214(参考图7A所述)。例如,为了允许用户平面220触发控制平面操作(诸如计费事件),可以将控制接口线程(例如,控制器214)分成两个:输入线程216和输出线程218,其间具有阻塞队列。用户平面线程(例如,工作者线程226、228)可以将数据或消息入队到队列。这种系统可以在图7A中示出。另一种可能性是在控制接口线程中使用非阻塞输入/输出(I/O)多路复用器(例如,图7B中的线程217),使得用户平面线程(例如,工作者线程226、228)可以通过向UNIX管道(例如,管道219或套接字)发送消息来触发控制平面操作,这是非阻塞I/O多路复用的一部分。管道219和套接字212可以被理解为内核级队列。即例如,它们可以是UNIX系统的核心功能。在一些实施例中,套接字表示接口。
进一步考虑管道219。也就是说,代替使用阻塞队列来使能从用户平面到控制平面的通信,从用户平面到控制平面的通信可以使用管道。管道可以是文件描述符(例如,类似于套接字212),并且因此,select()/poll()/kqueue()/epoll()系统调用或/dev/poll可以支持来自管道和套接字的多路复用业务。控制平面线程217可以使用select()/poll()/kqueue()/epoll()或/dev/poll来实现非阻塞I/O多路复用器。每当用户平面线程(例如,226、228)需要触发控制平面操作时,它可以经由其管道将消息入队到控制平面输出线程(例如,线程217,或者在某些情况下,如果在控制器214处使用多于一个线程,则是输出线程218)。但是,在另一方向(从控制平面到用户平面)的通信仍然可以利用阻塞队列。基于管道的架构的优点可能很多:
·它具有清楚的结构设计。可以从控制平面线程(即,控制接口部分210的线程)处理与控制平面相关的文件描述符。
·它允许用户平面触发控制平面操作(例如,计费事件),而不仅仅是控制平面操作的目标。然而,在一些其他实施例中,可以通过使用阻塞队列来代替管道。
·管道中固有的缓冲意味着例如传输控制协议(TCP)连接性能的轻微减速可能不会立即减慢用户平面分组处理。
·用户平面性能可能非常出色,因为用户平面使用在线程同步原语之上实现的阻塞队列,并且因此不需要系统调用。可能不需要系统调用,因为用户平面线程可以通过使用不在内部使用系统调用的线程同步原语来彼此通信。使用管道(例如,管道219)可能需要系统调用。
然后进一步考虑控制器214与工作者线程226、228之间的阻塞队列,其中阻塞队列可以用于将消息从控制平面传送到用户平面。如前所述,控制接口部分与工作者线程之间的阻塞队列可以具有两个优先级。可以存在至少一个单独的控制接口线程216从控制接口连接(例如,套接字212)接收数据。控制接口线程216可以向具有流数据结构的工作者线程(例如,226或228)的阻塞队列发送高优先级更新请求。更新可以包含(1)互斥,(2)条件变量,(3)最初设置为零的标志和(4)更新信息。工作者线程226、228可以通过使用条件变量和已经处理更新的标志来向控制接口线程216发信号。控制接口线程216可以等待条件变量和标志。当控制接口线程216从工作者线程226、228接收到已经处理了更新的通知时,它可以释放数据结构并且回复现在已经处理了更新的控制接口连接(例如,套接字212)。
注意,可以将相同流的上行链路和下行链路哈希到不同的工作者线程。例如,在上行链路中,用户平面网关(UGW)知道隧道端点标识符(TEID),并且在下行链路中,UGW知道IP地址。来自TEID的哈希可能导致与来自IP地址的哈希不同的值。一旦接收到上行链路分组(例如,从eNodeB),它就可以包含隧道端点标识符作为主要信息。IP地址可能隐藏在分组的深处。一旦接收到下行链路分组(例如,从因特网),它可以包含IP地址,并且可能需要通过使用哈希表来查找隧道端点标识符。该查找工作可以由工作者线程执行。因此,当决定哪个工作者线程获取分组时,RX线程可以使用IP地址作为下行链路分组的标准(因为TEID可能尚未知),并且使用TEID作为上行链路分组的标准(RX线程尚未检查分组以知道IP地址)。因此,可以由一个或多个RX线程使用针对不同方向(即,上行链路和下行链路)的不同标准,并且因此,不同的工作者线程可以获得该分组。
还应当注意,工作者线程226、228可以绑定到中央处理器(CPU)核。类似地,RX和TX线程224、230可以绑定到CPU核。控制接口线程(例如,线程216-218)可以在CPU核上自由(即,未绑定)运行。
图8提供了装置800,装置800包括控制电路(CTRL)810(诸如至少一个处理器)、以及包括计算机程序代码(软件)832的至少一个存储器830,其中至少一个存储器和计算机程序代码(软件)832被配置为与至少一个处理器一起使得相应装置800执行或引起其中实施例或操作中的任何一个。也就是说,装置800可以例如使得图3中所示的方法被执行。
参考图8,存储器830可以使用任何合适的数据存储技术来实现,诸如基于半导体的存储器设备、闪存、磁存储器设备和系统、光存储器设备和系统、固定存储器和可移动存储器。存储器830可以包括用于存储数据的数据库834。
装置800还可以包括无线电接口(TRX)820,TRX 820包括用于根据一个或多个通信协议来实现通信连接的硬件和/或软件。例如,TRX可以为装置提供访问无线电接入网络或某个其他无线网络的通信能力。TRX可以包括标准的公知组件,诸如放大器、滤波器、频率转换器、(解调)调制器和编码器/解码器电路以及一个或多个天线。
装置800可以包括用户接口840,包括例如至少一个小键盘、麦克风、触摸显示器、显示器、扬声器等。用户接口840可以用于由装置840的用户控制相应的装置。
在一个实施例中,例如,装置800可以是或被包括在网络设备中,诸如网络节点或接入点。例如,装置800可以是网络元件102。在一个实施例中,装置800被包括在网络元件102中或某个其他网络元件中。此外,装置800可以包括图2、7A和7B中指示的一个或多个元件。也就是说,装置800可以包括控制接口部分210元件和/或用户平面220元件。因此,装置800可以包括或实现线程224-230、接口222、232、套接字212、控制器214、线程216、218、线程217和/或管道219。需要注意的是,装置800可以包括在虚拟资源上实现控制接口部分210和用户平面220元件的物理资源(例如,处理器、核、存储器、网络接口)。还应当注意,装置800可以在多个物理上分离的实体之间共享,这些实体为上述系统提供了多个示例。也就是说,不同的操作实体(例如,图2、7A、7B)可以由多个物理实体组成和/或提供。通常,虚拟化意味着实际计算的位置变得与系统的性能不太相关。因此,所描述的系统的实际功能可以由物理实体实现。然而,逻辑上,虚拟实体可以与物理实体类似地操作。
仍然参考图8,根据一个实施例,控制电路810包括:获取电路811,其被配置为使得由控制接口部分的控制器获取控制平面消息,该控制平面消息请求用户平面处理线程的处理线程特定哈希表的更新;提供电路812,其被配置为使得由控制器将控制平面消息提供给用户平面处理线程的队列;获得电路813,其被配置为使得由用户平面处理线程从队列中获得控制平面消息;更新电路814,其被配置为使得由用户平面处理线程基于所获得的控制平面消息来更新用户平面处理线程的处理线程特定哈希表;指示电路815,其被配置为使得由用户平面处理线程响应于更新而向控制接口部分的控制器指示所请求的更新被处理;获得电路816,其被配置为使得由用户平面处理线程从用户平面处理线程的队列中获得至少一个用户平面消息;以及处理电路817,其被配置为使得由用户平面处理线程至少部分地基于处理线程特定哈希表处理至少一个用户平面消息。使得可以意味着相应的装置使得系统(例如,图2、7A、7B的系统)的不同元件执行所描述的动作。例如,使得可以意味着该装置在已经分配给装置800的物理资源上生成所述系统(例如,虚拟系统)。
在图8的实施例中,装置800(例如,网络元件102)的至少一些功能可以在两个物理上分离的设备之间共享,从而形成一个操作实体。因此,可以认为该装置描绘了包括一个或多个物理上分离的设备的操作实体,用于执行至少一些上述过程。因此,利用这种共享架构的图8的装置可以包括远程控制单元(RCU)(诸如主计算机或服务器计算机),可操作地耦合(例如,经由无线或有线网络)到位于基站站点处的远程无线电头端(RRH)。在一个实施例中,至少一些所描述的过程可以由RCU执行。在一个实施例中,至少一些所描述的过程的执行可以在RRH和RCU之间共享。无线电接口820可以向RCU提供到RRH的连接。然后,RRH可以包括例如射频信号处理电路和天线。
在一个实施例中,RCU可以生成虚拟网络,RCU通过该虚拟网络与RRH通信。通常,虚拟网络可以涉及将硬件和软件网络资源以及网络功能组合成单个基于软件的管理实体(虚拟网络)的过程。网络虚拟化可能涉及平台虚拟化,通常与资源虚拟化结合。网络虚拟化可以被分类为外部虚拟网络,其将很多网络或网络的部分组合到服务器计算机或主计算机(即,到RCU)中。外部网络虚拟化旨在优化网络共享。另一类别是内部虚拟网络,其为单个系统上的软件容器提供类似网络的功能。虚拟网络也可以用于测试终端设备。在一个实施例中,虚拟网络可以在RRH与RCU之间提供灵活的操作分配。实际上,可以在RRH或RCU中执行任何数字信号处理任务,并且可以根据实现来选择在RRH与RCU之间转移责任的边界。
本解决方案可能特别适用于利用NFV的系统。也就是说,NFV需要基于软件的实现,并且因此可能使得例如基于专用集成电路(ASIC)的实现不太可取或甚至不可能。因此,所描述的解决方案(尤其适用于软件实现)在利用NFV的通信系统中可能非常有用。
在本申请中使用的术语“电路”指的是以下所有内容:(a)仅硬件电路实现,诸如仅在模拟和/或数字电路中的实现,以及(b)电路和软件(和/或固件)的组合,诸如(如适用):(i)处理器的组合或(ii)处理器/软件的部分,包括数字信号处理器、软件和存储器,它们一起工作以使得装置执行各种功能,以及(c)需要软件或固件进行操作的电路,诸如微处理器或微处理器的一部分,即使软件或固件实际上并不存在。“电路”的定义适用于该术语在本申请中的所有用法。作为另一示例,如在本申请中所使用的,术语“电路”还将覆盖仅处理器(或多个处理器)或处理器的一部分及其(或它们)伴随的软件和/或固件的实现。术语“电路”还将覆盖(例如并且如果适用于特定元件)用于移动电话的基带集成电路或应用处理器集成电路或者服务器、蜂窝网络设备或其他网络设备中的类似集成电路。
在一个实施例中,结合图2至7B描述的至少一些过程可以由包括用于执行至少一些所述过程的对应部件的装置来执行。用于执行过程的一些示例性部件可以包括以下中的至少一个:检测器、处理器(包括单核、双核和多核处理器)、数字信号处理器、控制器、接收器、发射器、编码器、解码器、存储器、RAM、ROM、软件、固件、显示器、用户接口、显示电路、用户接口电路、用户接口软件、显示软件、电路、天线、天线电路和电路。在一个实施例中,至少一个处理器、存储器和计算机程序代码形成处理部件,或者包括一个或多个计算机程序代码部分,用于执行根据图2至7B的任何一个实施例的一个或多个操作或其操作。
根据又一实施例,执行实施例的装置包括电路,该电路包括至少一个处理器和至少一个存储器,该至少一个存储器包括计算机程序代码。在被激活时,电路使得装置执行根据图2至7B的任何一个实施例的功能中的至少一些功能或其操作。
本文中描述的技术和方法可以通过各种手段来实现。例如,这些技术可以以硬件(一个或多个设备)、固件(一个或多个设备)、软件(一个或多个模块)或其组合来实现。对于硬件实现,实施例的装置可以在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计用于执行本文中描述的功能的其他电子单元、或其组合内实现。对于固件或软件,实现可以通过执行本文中描述的功能的至少一个芯片组(例如,过程、功能等)的模块来执行。软件代码可以存储在存储器单元中并且由处理器执行。存储器单元可以在处理器内实现或在处理器外部实现。在后一种情况下,存储器单元可以经由各种手段通信地耦合到处理器,如本领域中已知的。另外,本文中描述的系统的组件可以由附加组件重新布置和/或补充以便促进关于其描述的各个方面的实现等,并且它们不限于在给定附图中阐述的精确配置,如本领域技术人员将理解的。
所描述的实施例还可以以由计算机程序或其部分定义的计算机过程的形式来执行。结合图2至7B描述的方法的实施例可以通过执行包括对应指令的计算机程序的至少一部分来执行。计算机程序可以是源代码形式、目标代码形式或某种中间形式,并且可以存储在某种载体中,该载体可以是能够携带程序的任何实体或设备。例如,计算机程序可以存储在由计算机或处理器可读的计算机程序分发介质上。计算机程序介质可以是例如但不限于记录介质、计算机存储器、只读存储器、电载波信号、电信信号和软件分发包。例如,计算机程序介质可以是非暂态介质。用于执行如所示和所述的实施例的软件的编码完全在本领域普通技术人员的范围内。在一个实施例中,计算机可读介质包括所述计算机程序。
尽管以上参考根据附图的示例描述了本发明,但是显然本发明不限于此,而是可以在所附权利要求的范围内以若干方式进行修改。因此,所有词语和表达应当被广义地解释,并且它们旨在说明而不是限制该实施例。对于本领域技术人员显而易见的是,随着技术的进步,本发明构思可以以各种方式实现。此外,本领域技术人员清楚的是,所描述的实施例可以但不要求以各种方式与其他实施例组合。
Claims (27)
1.一种方法,包括:
由控制接口部分的控制器获取控制平面消息,所述控制平面消息请求用户平面处理线程的处理线程特定哈希表的更新;
由所述控制器将所述控制平面消息提供给所述用户平面处理线程的队列;
由所述用户平面处理线程从所述队列中获得所述控制平面消息;
由所述用户平面处理线程基于所获得的所述控制平面消息来更新所述用户平面处理线程的所述处理线程特定哈希表;
由所述用户平面处理线程响应于所述更新而向所述控制器指示所请求的所述更新被处理;
由所述用户平面处理线程从所述用户平面处理线程的所述队列中获得至少一个用户平面消息;以及
由所述用户平面处理线程至少部分地基于所述处理线程特定哈希表来处理所述至少一个用户平面消息。
2.根据权利要求1所述的方法,还包括:
由所述用户平面处理线程锁定所述队列;
由所述用户平面处理线程在所述队列被锁定期间获得所述至少一个用户平面消息;以及
由所述用户平面处理线程响应于所述至少一个用户平面消息的所述获得而释放所述队列。
3.根据任一前述权利要求所述的方法,其中所述至少一个用户平面消息表示多个用户平面消息。
4.根据任一前述权利要求所述的方法,其中用户平面消息与所述用户平面处理线程的所述队列中的控制平面消息相比具有较低的优先级。
5.根据任一前述权利要求所述的方法,其中所述用户平面处理线程是仅处理上行链路用户平面消息的上行链路处理线程。
6.根据任一前述权利要求1至4所述的方法,其中所述用户平面处理线程是仅处理下行链路用户平面消息的下行链路处理线程。
7.根据任一前述权利要求所述的方法,其中所述用户平面包括多个处理线程,每个处理线程与处理线程特定哈希表相关联。
8.根据任一前述权利要求所述的方法,其中所述控制器从所述控制接口部分的套接字中获取所述控制平面消息,所述方法还包括:
由所述用户平面处理线程向所述控制器提供所述响应消息,所述响应消息指示由所述控制平面消息请求的所述更新被处理,所述响应消息经由管道或所述控制接口部分的第二套接字被提供,其中所述管道和所述套接字支持多路复用。
9.根据任一前述权利要求1至7所述的方法,还包括:
由所述用户平面处理线程向所述控制器的队列提供所述响应消息,所述响应消息指示由所述控制平面消息请求的所述更新被处理;以及
由所述控制器从所述队列中获取所述响应消息。
10.根据任一前述权利要求所述的方法,其中所述控制器包括输入处理线程和输出处理线程。
11.根据任一前述权利要求所述的方法,其中所述用户平面处理线程是所述用户平面的多个工作者处理线程中的一个工作者处理线程,所述方法还包括:
由所述用户平面的接收者处理线程获得用户平面消息;以及
由所述接收者处理线程将所述用户平面消息提供给所述多个工作者处理线程中的至少一个目标工作者处理线程的队列。
12.根据权利要求11所述的方法,还包括:
由所述接收者处理线程确定所述用户平面消息是地址解析协议ARP消息还是某一其他消息;
在所述ARP消息的情况下,由所述接收者处理线程将所述ARP消息提供给所述多个工作者处理线程中的每个工作者处理线程的队列,
否则,由所述接收者处理线程将所述消息仅提供给目标工作者处理线程的队列。
13.一种装置,包括:
至少一个处理器,以及
至少一个存储器,包括计算机程序代码,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置执行操作,所述操作包括:
使得由控制接口部分的控制器获取控制平面消息,所述控制平面消息请求用户平面处理线程的处理线程特定哈希表的更新;
使得由所述控制器将所述控制平面消息提供给所述用户平面处理线程的队列;
使得由所述用户平面处理线程从所述队列中获得所述控制平面消息;
使得由所述用户平面处理线程基于所获得的所述控制平面消息来更新所述用户平面处理线程的所述处理线程特定哈希表;
使得由所述用户平面处理线程响应于所述更新而向所述控制器指示所请求的所述更新被处理;
使得由所述用户平面处理线程从所述用户平面处理线程的所述队列中获得至少一个用户平面消息;以及
使得由所述用户平面处理线程至少部分地基于所述处理线程特定哈希表来处理所述至少一个用户平面消息。
14.根据权利要求13所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置进一步执行操作,所述操作包括:
使得由所述用户平面处理线程锁定所述队列;
使得由所述用户平面处理线程在所述队列被锁定期间获得所述至少一个用户平面消息;以及
使得由所述用户平面处理线程响应于所述至少一个用户平面消息的所述获得而释放所述队列。
15.根据任一前述权利要求13至14所述的装置,其中所述至少一个用户平面消息表示多个用户平面消息。
16.根据任一前述权利要求13至15所述的装置,其中用户平面消息与所述用户平面处理线程的所述队列中的控制平面消息相比具有较低的优先级。
17.根据任一前述权利要求13至16所述的装置,其中所述用户平面处理线程是仅处理上行链路用户平面消息的上行链路处理线程。
18.根据任一前述权利要求13至16所述的装置,其中所述用户平面处理线程是仅处理下行链路用户平面消息的下行链路处理线程。
19.根据任一前述权利要求13至18所述的装置,其中所述用户平面包括多个处理线程,每个处理线程与处理线程特定哈希表相关联。
20.根据任一前述权利要求13至19所述的装置,其中所述控制器从所述控制接口部分的套接字中获取所述控制平面消息,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置进一步执行操作,所述操作包括:
使得由所述用户平面处理线程向所述控制器提供所述响应消息,所述响应消息指示由所述控制平面消息请求的所述更新被处理,所述响应消息经由管道或所述控制接口部分的第二套接字被提供,其中所述管道和所述套接字支持多路复用。
21.根据任一前述权利要求13至20所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置进一步执行操作,所述操作包括:
使得由所述用户平面处理线程向所述控制器的队列提供所述响应消息,所述响应消息指示由所述控制平面消息请求的所述更新被处理;以及
由所述控制器从所述队列中获取所述响应消息。
22.根据任一前述权利要求13至21所述的装置,其中所述控制器包括输入处理线程和输出处理线程。
23.根据任一前述权利要求13至22所述的装置,其中所述用户平面处理线程是所述用户平面的多个工作者处理线程中的一个工作者处理线程,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器使得所述装置进一步执行操作,所述操作包括:
使得由所述用户平面的接收者处理线程获得用户平面消息;以及
使得由所述接收者处理线程将所述用户平面消息提供给所述多个工作者处理线程中的至少一个目标工作者处理线程的队列。
24.根据权利要求23所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置进一步执行操作,所述操作包括:
使得由所述接收者处理线程确定所述用户平面消息是地址解析协议ARP消息还是某一其他消息;
在所述ARP消息的情况下,使得由所述接收者处理线程将所述ARP消息提供给所述多个工作者处理线程中的每个工作者处理线程的队列,
否则,使得由所述接收者处理线程将所述消息仅提供给目标工作者处理线程的队列。
25.一种包括用于执行根据任一前述权利要求1至12所述的方法的所有步骤的部件的装置。
26.一种计算机程序产品,由计算机可读并且包括程序指令,所述程序指令在被加载到装置中时执行根据权利要求1至12中任一项所述的方法。
27.一种计算机程序产品,被实施在计算机可读介质上并且包括由计算机可读的计算机程序代码,其中所述计算机程序代码在由所述计算机读取时配置所述计算机以执行根据任一前述权利要求1至12所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/082380 WO2018113973A1 (en) | 2016-12-22 | 2016-12-22 | Control and user plane architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110121865A true CN110121865A (zh) | 2019-08-13 |
CN110121865B CN110121865B (zh) | 2022-01-11 |
Family
ID=57838329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680091837.9A Active CN110121865B (zh) | 2016-12-22 | 2016-12-22 | 用于控制和用户平面的方法、装置以及计算机可读介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10917347B2 (zh) |
EP (1) | EP3560151B1 (zh) |
CN (1) | CN110121865B (zh) |
WO (1) | WO2018113973A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098775A (zh) * | 2021-03-28 | 2021-07-09 | 杭州迪普信息技术有限公司 | 流量分流方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11258585B2 (en) * | 2019-03-25 | 2022-02-22 | Woven Planet North America, Inc. | Systems and methods for implementing robotics frameworks |
US11470017B2 (en) * | 2019-07-30 | 2022-10-11 | At&T Intellectual Property I, L.P. | Immersive reality component management via a reduced competition core network component |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1416232A (zh) * | 2001-10-31 | 2003-05-07 | 华为技术有限公司 | 通用分组无线业务中隧道数据包业务优先级控制方法 |
CN103262036A (zh) * | 2010-12-17 | 2013-08-21 | 英特尔公司 | 非阻塞无等待数据并行调度器 |
EP2802109A1 (en) * | 2013-05-10 | 2014-11-12 | Arista Networks, Inc. | System and method of a shared memory hash table with notifications |
CN104620630A (zh) * | 2012-07-16 | 2015-05-13 | 瑞典爱立信有限公司 | 用于处置错误指示的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102484844B (zh) * | 2009-09-30 | 2015-07-15 | 诺基亚公司 | 用于提供对局域网的接入的装置和方法 |
-
2016
- 2016-12-22 WO PCT/EP2016/082380 patent/WO2018113973A1/en unknown
- 2016-12-22 EP EP16828735.7A patent/EP3560151B1/en active Active
- 2016-12-22 CN CN201680091837.9A patent/CN110121865B/zh active Active
- 2016-12-22 US US16/466,666 patent/US10917347B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1416232A (zh) * | 2001-10-31 | 2003-05-07 | 华为技术有限公司 | 通用分组无线业务中隧道数据包业务优先级控制方法 |
CN103262036A (zh) * | 2010-12-17 | 2013-08-21 | 英特尔公司 | 非阻塞无等待数据并行调度器 |
CN104620630A (zh) * | 2012-07-16 | 2015-05-13 | 瑞典爱立信有限公司 | 用于处置错误指示的方法和系统 |
EP2802109A1 (en) * | 2013-05-10 | 2014-11-12 | Arista Networks, Inc. | System and method of a shared memory hash table with notifications |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098775A (zh) * | 2021-03-28 | 2021-07-09 | 杭州迪普信息技术有限公司 | 流量分流方法及装置 |
CN113098775B (zh) * | 2021-03-28 | 2022-04-22 | 杭州迪普信息技术有限公司 | 流量分流方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110121865B (zh) | 2022-01-11 |
WO2018113973A1 (en) | 2018-06-28 |
EP3560151A1 (en) | 2019-10-30 |
US20200067836A1 (en) | 2020-02-27 |
EP3560151B1 (en) | 2021-07-07 |
US10917347B2 (en) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ateya et al. | Intelligent core network for Tactile Internet system | |
US11197209B2 (en) | Efficient computing of application data in mobile communication network | |
US20220052955A1 (en) | Communications method, apparatus, and system | |
CN110121865A (zh) | 控制和用户平面架构 | |
Ericson et al. | 6g architectural trends and enablers | |
US20220053362A1 (en) | Priority handling at quality of service flow relocation | |
CN109587086A (zh) | 分组序列批处理 | |
US20220217620A1 (en) | Controlling network access | |
US20230217511A1 (en) | Control of multi-user multiple input multiple output connections | |
US20230217385A1 (en) | Communication Method, Communication Apparatus, Terminal Device, and User Plane Network Element | |
US11115271B1 (en) | Network slice configuration | |
US20230070917A1 (en) | Processing rules for resource elements | |
Li et al. | Carrying MTC service in 5G-A network management perspective | |
US20230224221A1 (en) | Processing chaining in virtualized networks | |
US20240143400A1 (en) | Atomic deterministic next action with machine learning engine | |
US20230379222A1 (en) | Method to update 5g vn group topology update to af for efficient network management | |
US20230261792A1 (en) | Apparatus, methods, and computer programs | |
EP4358486A1 (en) | Link aggregation for fronthaul | |
US20230262806A1 (en) | Apparatus, methods, and computer programs | |
Room | 5G Service-Based Architecture | |
WO2022262969A1 (en) | Enhancing split bearer data transfer | |
CN116846445A (zh) | 小区信息的配置方法、装置、可读存储介质及芯片系统 | |
KR20230009656A (ko) | 단말에 대한 네트워크 기능 개방 서비스 지원 방법 및 장치 | |
WO2024033833A1 (en) | Apparatus, method, and computer program | |
Ferguson et al. | CoreKube: An Efficient, Autoscaling and Resilient Mobile Core System |
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 |