一种网元间消息通信方法及装置

文档序号:1711821 发布日期:2019-12-13 浏览:14次 >En<

阅读说明:本技术 一种网元间消息通信方法及装置 (message communication method and device between network elements ) 是由 贾国栋 陈剑 于 2018-06-06 设计创作,主要内容包括:本发明提供了一种网元间消息通信方法及装置。所述方法包括:接收源SFU发送目标消息;其中,所述目标消息的消息头中包含中转字段,所述中转字段用于指示处理所述目标消息的目的SFU;判断所述源SFU和所述目的SFU是否处于同一网元内部;若否,则依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。本发明通过增加消息头中一个中转字段将源SFU的目标消息发送至不同网元的目的SFU进行处理,从而实现了网元间通信。(The invention provides a method and a device for message communication between network elements. The method comprises the following steps: receiving a target message sent by a source SFU; the target message comprises a transfer field in a message header, wherein the transfer field is used for indicating a target SFU for processing the target message; judging whether the source SFU and the destination SFU are in the same network element; if not, a preset transmission protocol is selected according to the transfer field to send the target message to a target network element. The invention sends the target message of the source SFU to the target SFU of different network elements for processing by adding a transfer field in the message header, thereby realizing the communication between the network elements.)

一种网元间消息通信方法及装置

技术领域

本发明涉及通信技术领域,特别是涉及一种网元间消息通信方法及装置。

背景技术

目前基站内使用的消息通信机制都是网元内部自定义通信机制,板卡内和板卡间通信的TCP(Transmission Control Protocol传输控制协议)、UDP(User Data Protocol,用户数据报协议)链路都是带自定义OSP(Operating system platform,操作系统平台)消息头的有头链路。

目前的基站通信机制主要分为以下三种:

1、进程内通信:在SMP(SymmetricalMulti-Processing,多处理机)Linux系统中,进程内通信使用的是posix(Portable Operating System Interface,可移植操作系统接口)提供的API(ApplicationProgrammingInterface,应用程序接口)函数,进程内的线程通过消息队列实现消息通信;

2、进程间通信:在SMP Linux系统中,进程间通信也是通过posix提供的API函数实现的,由于发送的都是消息内存的地址,所以需要通过进程间共享内存池进行进程间消息内容拷贝,然后发送消息地址进行通信;

3、板卡间通信:板卡间通信调用底层网卡驱动直接发送,通过以太交换到目的板卡来实现的消息通信。

在目前的基站通信系统中由于消息源和目的都是在同一个网元内部,我们在消息内容的前面增加一个自定义的OSP(Operating system platform,操作系统平台)消息头,用户通过填写OSP消息头中的源sfu(Software Function Unit)和目的sfu来确定这条消息的处理任务。

具体数据结构如下所示:

在用户填写OSP消息头后调用平台注册的消息发送函数Osp_Send_Msg()接口进行消息发送。Osp_Send_Msg()函数根据用户输入的发送源和目的来决定是通过posix接口发送消息或者通过网卡驱动发送消息。如果目的sfu任务是进程内或者进程间的消息,直接根据用户填写的目的任务ID,找到对应的消息队列ID,调用posix层的消息发送函数,直接挂入目的sfu的消息队列;如果目的sfu任务在另外一块板卡上,发送函数会根据目的板卡ID计算出目的板卡的IP和MAC地址,然后调用驱动的发送函数把用户数据通过内部网络发送至目的板卡。

用户侧通过Osp_Msg_Receive()接口接收消息,函数内部封装posix接口接收的消息。在进程内和进程间通信中无消息时任务处于阻塞态,当有消息挂入消息队列时,内核直接唤醒接收任务开始处理消息内容。通过网卡驱动接收的消息,由于网卡接收的数据中包含了用户填写的OSP消息头,网卡接收任务通过调用Osp_Send_Msg()在内部解析Osp消息头最终调用posix的发送函数发送消息至本板卡的接收任务。

由以上内容可知,现有技术方案中,在通过驱动链路发送的消息中,驱动根据用户填写的目的来计算对端IP地址,各个网元单元之间的IP有可能冲突的,所以无法进行网元之间消息通信。

发明内容

本发明提供一种网元间消息通信方法及装置,以解决现有技术中无法实现网元之间消息通信的问题。

为了解决上述问题,本发明公开了一种网元间消息通信方法,包括:接收源SFU发送目标消息;其中,所述目标消息的消息头中包含中转字段,所述中转字段用于指示处理所述目标消息的目的SFU;判断所述源SFU和所述目的SFU是否处于同一网元内部;若否,则依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。

优选地,所述预置传输协议包括用户数据报协议,所述依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元的步骤,包括:获取源驱动模块到源网络处理器的链路标识,并将所述链路标识添加到所述消息头中;调用所述源驱动模块对应的注册函数将所述目标消息发送至所述源网络处理器;所述源网络处理器依据所述消息头获取所述目的SFU所处机框的目的地址,并依据所述目的地址发送所述目标消息至所述目标网元。

优选地,所述预置传输协议包括流控制传输协议,所述依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元的步骤,包括:依据所述中转字段计算代理SFU地址;依据所述代理SFU地址将所述目标消息转发至所述代理SFU,并由所述代理SFU调用对应的发送函数将所述目标消息发送至目标网元。

优选地,在所述依据所述中转字段选择对应的传输协议将所述目标消息发送至目标网元的步骤之后,还包括:目标网络处理器接收所述目标消息,并将所述目标消息发送至目标驱动模块;其中,所述目标消息中还包含有目的SFUID;所述目标驱动模块依据所述目的SFUID调用操作系统平台发送函数将所述目标消息发送至所述目的SFU所在进程的消息队列。

优选地,在所述判断所述源SFU和所述目的SFU是否处于同一网元内部的步骤之后,还包括:在确定所述源SFU和所述目的SFU处于同一网元内部时,则按照进程内通信方式或进程间通信方式或板卡间通信方式发送所述目标消息。

为了解决上述问题,本发明还公开了一种网元间消息通信装置,包括:接收模块,用于接收源SFU发送目标消息;其中,所述目标消息的消息头中包含中转字段,所述中转字段用于指示处理所述目标消息的目的SFU;判断模块,用于判断所述源SFU和所述目的SFU是否处于同一网元内部;发送模块,用于在所述源SFU和所述目的SFU不处于同一网元内部时,依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。

优选地,所述预置传输协议包括用户数据报协议,所述发送模块包括:链路标识获取子模块,用于获取源驱动模块到源网络处理器的链路标识,并将所述链路标识添加到所述消息头中;第一发送子模块,用于调用所述源驱动模块对应的注册函数将所述目标消息发送至所述源网络处理器;第二发送子模块,用于所述源网络处理器依据所述消息头获取所述目的SFU所处机框的目的地址,并依据所述目的地址发送所述目标消息至所述目标网元。

优选地,所述预置传输协议包括流控制传输协议,所述发送模块包括:计算子模块,用于依据所述中转字段计算代理SFU地址;第三发送子模块,用于依据所述代理SFU地址将所述目标消息转发至所述代理SFU,并由所述代理SFU调用对应的发送函数将所述目标消息发送至目标网元。

优选地,还包括:目标消息接收发送模块,用于目标网络处理器接收所述目标消息,并将所述目标消息发送至目标驱动模块;其中,所述目标消息中还包含有目的SFUID;目标发送模块,用于所述目标驱动模块依据所述目的SFUID调用操作系统平台发送函数将所述目标消息发送至所述目的SFU所在进程的消息队列。

优选地,还包括:各通信方式发送模块,用于在确定所述源SFU和所述目的SFU处于同一网元内部时,则按照进程内通信方式或进程间通信方式或板卡间通信方式发送所述目标消息。

与现有技术相比,本发明包括以下优点:

本发明实施例提供了一种网元间消息通信方法及装置,通过接收源SFU发送目标消息,其中,在所述目标消息的消息头中包含有中转字段、目的SFU,判断所述源SFU和所述目的SFU是否处于同一网元内部,若否,则依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。本发明实施例基于现有的网元内通信机制通过增加消息头中一个中转字段将源SFU的目标消息发送至不同网元的目的SFU进行处理,从而实现了网元间通信。

附图说明

图1示出了本发明实施例提供的一种网元间消息通信方法的步骤流程图;

图2示出了本发明实施例提供的一种网元间消息通信方法的步骤流程图;

图3示出了本发明实施例提供的一种网元间消息通信装置的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

参照图1,示出了本发明实施例提供的一种网元间消息通信方法的步骤流程图,具体可以包括以下步骤:

步骤101:接收源SFU发送目标消息。

在CU(Contral Unit,集中式单元)服务器和DU(Distributed Unit,分布单元)基站之间是外部通信,在CU服务器和DU基站之间均是通过网卡来收发数据的。

本发明实施例是基于现有基站的通信机制,在OSP(Operating system platform,操作系统平台)消息头(即目标消息的消息头)数据结构中增加一个中转字段,该中转字段可以是由用户自定义的字段,用于指示下一跳数据处理的目的SFU。

例如,在目标消息的消息头中添加一个HOP字段以指示下一跳数据处理的目的SFU,具体地:

通过上述代码可知,较现有的通信机制,增加了HOP字段,以指示下一跳数据处理的目的SFU。

在源SFU需要发送目标消息时,则在OSP中申请一个内存,以缓存该目标消息,进而将用户自定义的中转字段添加到目标消息的消息头中,并调用发送函数Osp_Send_Msg将目标消息发送至OSP。

在OSP接收到源SFU发送的目标消息之后,则进入步骤102。

步骤102:判断所述源SFU和所述目的SFU是否处于同一网元内部。

在本发明实施例中,在OSP接收到源SFU发送的目标消息之后,则通过消息头中的中转字段判断所指示的下一跳的目的SFU和源SFU是否处于同一网元内部。

具体地,在本发明实施例中,可以通过判断源SFU和目的SFU是否处于同一板卡的同一机框内,来判断源SFU和目的SFU是否处于同一网元内部,若源SFU和目的SFU处于同一机框内,则表示源SFU和目的SFU处于同一网元内。

在本发明实施例的一种优选实施例中,在确定所述源SFU和所述目的SFU处于同一网元内部时,则按照现有通信机制中的进程内通信方式或进程间通信方式或板卡间通信方式发送所述目标消息,上述三种通信方式的执行过程如下所述:

1、进程内通信:在SMP Linux系统中,进程内通信使用的是posix提供的API函数,进程内的线程通过消息队列实现消息通信;

2、进程间通信:在SMP Linux系统中,进程间通信也是通过posix提供的API函数实现的,由于发送的都是消息内存的地址,需要通过进程间共享内存池进行进程间消息内容拷贝,然后发送消息地址进行通信;

3、板卡间通信:板卡间通信调用底层网卡驱动直接发送,通过以太交换到目的板卡来实现的消息通信。

当然,在实际应用中,在确定源SFU和目的SFU处于同一网元内部时,也可以按照其它通信方式进行消息通信,本发明实施例对此不加以限制。

在确定源SFU和目的SFU不处于同一网元内部时,则进入步骤103。

步骤103:依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。

在本发明实施例中,目标网元是指目的SFU所处的网元,预置传输协议可以包括UDP(User Datagram Protocol,用户数据报协议)协议和SCTP(Stream ControlTransmission Protocol,流控制传输协议)协议等。

OSP可以根据中转字段的不同来选择相应的传输协议对应的数据链路将目标消息发送至目标网元。

CU服务器和DU基站之间新增的链路接口包括如下几种:

1、F1-U DRB数据传输接口:CU-U(Contral Unit-User,集中式单元中的用户单元)---->CU-C(Contral Unit-Contral,集中式单元中的逻辑单元)(NP)----->DU(UDP协议数据链路);

2、F1-U SRB数据传输接口:CU-U---->CU-C(DD代理,NP)---->DU(传输SRB数据的SCTP协议数据链路);

3、F1-C控制数据传输接口:CU-U---->CU-C(NP)---->DU(传输控制数据的SCTP协议数据链路);

4、F1-OM操作维护数据传输接口:CU-C---->CU-C(NP)---->DU(传输操作维护数据的SCTP协议数据链路)。

在本发明实施例中,OSP可以根据消息头中的中转字段来选择传输协议,例如,当中转字段为A=0x00000000时,则选择直接发送给CU-C的NP(Netprocessor,网络处理器)模块通过UDP数据包进行发送。而在中转字段为B=0x00000001时,则选择通过CU-U的代理进行协议转换,通过SCTP数据包进行发送。

在选择的传输协议不同时,消息传输过程是不相同的,具体地,以下述优选实施例进行详细阐述:

在本发明的一种优选实施例中,所述预置传输协议包括用户数据报协议,上述步骤103可以包括:

子步骤S1:获取源驱动模块到源网络处理器的链路标识,并将所述链路标识添加到所述消息头中;

子步骤S2:调用所述源驱动模块对应的注册函数将所述目标消息发送至所述源网络处理器;

子步骤S3:所述源网络处理器依据所述消息头获取所述目的SFU所处机框的目的地址,并依据所述目的地址发送所述目标消息至所述目标网元。

在本发明实施例中,在所选择的预置传输协议为UDP协议时,则OSP获取源驱动模块到源NP的链路标识,并将该链路标识添加到目标消息的消息头中,并调用源驱动模块对应的注册函数将目标消息发送至源NP,并由源NP依据消息头获取目的SFU所处机框的目的地址,依据目的地址将目标消息发送至目标网元。

可以理解地,上述消息传输方法为现有通信机制中常用的一种消息传输方法,本发明实施例在此不再加以赘述。

在本发明的另一种优选实施例中,所述预置传输协议包括流控制传输协议,上述步骤103可以包括:

子步骤N1:依据所述中转字段计算代理SFU地址;

子步骤N2:依据所述代理SFU地址将所述目标消息转发至所述代理SFU,并由所述代理SFU调用对应的发送函数将所述目标消息发送至目标网元。

在本发明实施例中,在所选择的预置传输协议为SCTP协议时,则OSP依据中转字段计算出代理SFU的地址(也即代理SFU所处机框的地址),并依据代理SFU的地址将目标消息转发到代理SFU,由代理SFU调用对应的发送函数将目标消息发送至目标网元。

可以理解地,上述消息传输方法为现有通信机制中常用的一种消息传输方法,本发明实施例在此不再加以赘述。

本发明实施例提供的网元间消息通信方法,通过接收源SFU发送目标消息,其中,在所述目标消息的消息头中包含有中转字段、目的SFU,判断所述源SFU和所述目的SFU是否处于同一网元内部,若否,则依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。本发明实施例基于现有的网元内通信机制通过增加消息头中一个中转字段将源SFU的目标消息发送至不同网元的目的SFU进行处理,从而实现了网元间通信。

实施例二

参照图2,示出了本发明实施例提供的一种网元间消息通信方法的步骤流程图,具体可以包括以下步骤:

步骤201:接收源SFU发送目标消息;其中,所述目标消息的消息头中包含中转字段、目的SFU;

步骤202:判断所述源SFU和所述目的SFU是否处于同一网元内部;若否,则进入步骤203;

步骤203:依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。

在本发明实施例中,上述步骤201~步骤203的实施方式与上述实施例一中步骤101~步骤103的实施方式相似,本发明实施例在此不再加以赘述。

在将目标消息发送至目标网元时,则进入步骤204。

步骤204:目标网络处理器接收所述目标消息,并将所述目标消息发送至目标驱动模块。

在本发明实施例中,目标网元中的NP(即目标NP)接收到目标消息之后,则将目标消息发送至目标驱动模块。

在将目标消息发送至目标驱动模块之后,则进入步骤205。

步骤205:所述目标驱动模块依据所述目的SFUID调用操作系统平台发送函数将所述目标消息发送至所述目的SFU所在进程的消息队列。

在本发明实施例中,目标消息中还可以包含有目的SFUID,也即目的SFU的标识信息;目标驱动模块依据目的SFUID可以计算出目的SFU所处机框的地址,并调用OSP的发送函数Osp_Send_Msg()将目标消息发送至目的SFU所在进程的消息队列,以使目的SFU对该目标消息进行后续处理。

本发明实施例提供的网元间消息通信方法,通过接收源SFU发送目标消息,其中,在所述目标消息的消息头中包含有中转字段、目的SFU,判断所述源SFU和所述目的SFU是否处于同一网元内部,若否,则依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。本发明实施例基于现有的网元内通信机制通过增加消息头中一个中转字段将源SFU的目标消息发送至不同网元的目的SFU进行处理,从而实现了网元间通信。

实施例三

参照图3,示出了本发明实施例提供的一种网元间消息通信装置的结构示意图,具体可以包括:接收模块310,用于接收源SFU发送目标消息;其中,所述目标消息的消息头中包含中转字段,所述中转字段用于指示处理所述目标消息的目的SFU;判断模块320,用于判断所述源SFU和所述目的SFU是否处于同一网元内部;发送模块330,用于在所述源SFU和所述目的SFU不处于同一网元内部时,依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。

优选地,所述预置传输协议包括用户数据报协议,所述发送模块330包括:链路标识获取子模块,用于获取源驱动模块到源网络处理器的链路标识,并将所述链路标识添加到所述消息头中;第一发送子模块,用于调用所述源驱动模块对应的注册函数将所述目标消息发送至所述源网络处理器;第二发送子模块,用于所述源网络处理器依据所述消息头获取所述目的SFU所处机框的目的地址,并依据所述目的地址发送所述目标消息至所述目标网元。

优选地,所述预置传输协议包括流控制传输协议,所述发送模块330包括:计算子模块,用于依据所述中转字段计算代理SFU地址;第三发送子模块,用于依据所述代理SFU地址将所述目标消息转发至所述代理SFU,并由所述代理SFU调用对应的发送函数将所述目标消息发送至目标网元。

优选地,还包括:目标消息接收发送模块,用于目标网络处理器接收所述目标消息,并将所述目标消息发送至目标驱动模块;其中,所述目标消息中还包含有目的SFUID;目标发送模块,用于所述目标驱动模块依据所述目的SFUID调用操作系统平台发送函数将所述目标消息发送至所述目的SFU所在进程的消息队列。

优选地,还包括:各通信方式发送模块,用于在确定所述源SFU和所述目的SFU处于同一网元内部时,则按照进程内通信方式或进程间通信方式或板卡间通信方式发送所述目标消息。

本发明实施例提供的网元间消息通信装置,通过接收源SFU发送目标消息,其中,在所述目标消息的消息头中包含有中转字段、目的SFU,判断所述源SFU和所述目的SFU是否处于同一网元内部,若否,则依据所述中转字段选择预置传输协议将所述目标消息发送至目标网元。本发明实施例基于现有的网元内通信机制通过增加消息头中一个中转字段将源SFU的目标消息发送至不同网元的目的SFU进行处理,从而实现了网元间通信。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种网元间消息通信方法和一种网元间消息通信装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种桌面静置报警方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类