一种在VPP框架下提升UDP报文收发速率的方法与流程

专利2026-09-13  3


本申请属于4g/5g通信,尤其是一种在vpp框架下提升udp报文收发速率的方法。


背景技术:

1、在现有技术中,vpp框架提供了session layer用于收发udp报文,但存在传输速率低和内存带宽占用大的问题。主要体现在报文在session layer经过两次内存拷贝和产生事件消息,导致收发报文速率低。

2、使用session layer收发udp报文,一个主要缺点是传输速率低,占用内存带。主要表现以下几个方面:

3、在报文接收过程时,报文会先拷贝到rx fifo中,在application的回调函数接收报文时,从rx fifo拷贝报文到新的buffer中。一个udp报文在session layer经过两次的内存拷贝之后才到达application;

4、报文发送过程也有一样的内存拷贝过程:在application先将数据拷贝到tx fifo中,然后session input节点从tx fifo取数据时,需要从tx fifo将数据拷贝到vpp buffer中,再发送数据;

5、另外在报文接收时,会向ctrl fifo插入session_io_evt_rx事件,数据发送时,会向ctrl fifl插入session_io_evt_tx事件。在接收和发送同时进行的情况下,会同时竞争ctrl fifo,这样在代码实现在就得对ctrl fifo加锁保护,从而增加了系统开销。

6、总之,使用session layer收发udp报文,每个报文都需要两次的内存拷贝和产生一个事件消息,这导致收发报文速率非常低。


技术实现思路

1、本发明针对问题,提出一种在vpp框架下提升udp报文收发速率的方法。

2、第一方面,本申请提供了一种在vpp框架下提升udp报文收发速率的方法,包括以下步骤:

3、a)通过配置vppctl工具,动态指定需要捕获的特定udp端口;

4、b)在vpp框架中创建一个internal类型的节点,用于直接从udp4_local或udp6_local节点捕获指定udp端口的报文;

5、c)在接收报文时,将报文直接转发至用户态应用程序,绕过传统的session layer处理,减少内存拷贝次数;

6、d)在发送报文时,先在用户态应用程序中封装udp头部和ip头部信息,然后将封装后的报文传递给vpp框架的ip4_next或ip6_next节点;

7、e)允许用户通过vppctl工具配置udp报文的目的端口号和源端口号;

8、f)vpp框架根据用户指定的目的ip地址,自动从网卡列表中选择合适的源ip地址进行报文发送。

9、2.根据权利要求1所述的方法,其特征在于,在接收报文的过程中,报文在vpp框架内部不经过额外的内存拷贝,直接在internal类型节点中处理。

10、3.根据权利要求1所述的方法,其特征在于,在发送报文的过程中,用户态应用程序一次性将数据拷贝至vpp buffer,减少了从用户态到内核态的内存拷贝次数。

11、第二方面,本申请还提供了一种用于实现第一方面所述方法的vpp框架插件,包括udp_fwd插件,包括以下组件:

12、a)一个命令回调函数,用于处理插件的使能和禁用命令;

13、b)一个动态链接库加载器,用于加载用户态应用程序编译成的动态链接库;

14、c)一个节点创建器,用于在vpp框架中创建internal类型节点和input类型节点,以实现报文的高效接收和发送。

15、优选地,所述动态链接库加载器通过调用操作系统的dlopen()和dlsym()函数来加载和获取用户态应用程序中定义的函数指针。

16、第三发面,本申请提供了一种实现第一方面所述的方法在5g基站后传网口的应用,能够有效提升报文的接收和发送速率,满足5g多小区和4g多小区的高速传输要求。

17、第四方面,本申请还提供了一种包括第一方面所述方法的网络通信系统,包括:

18、a)一个用于处理网络报文的vpp框架;

19、b)一个udp_fwd插件用于实现第一方面所述的报文接收和发送方法;

20、c)一个用户态应用程序,用于与udp_fwd插件交互,实现udp报文的接收和发送。

21、本申请实施例与现有技术相比存在的有益效果是:

22、1)通过减少内存拷贝次数和简化事件通知步骤,显著提升了报文处理效率,降低了内存带宽占用,为网络通信性能的提升开辟了新的途径。



技术特征:

1.一种在vpp框架下提升udp报文收发速率的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,在接收报文的过程中,报文在vpp框架内部不经过额外的内存拷贝,直接在internal类型节点中处理。

3.根据权利要求1所述的方法,其特征在于,在发送报文的过程中,用户态应用程序一次性将数据拷贝至vpp buffer,减少了从用户态到内核态的内存拷贝次数。

4.一种用于实现权利要求1所述方法的vpp框架插件,包括udp_fwd插件,其特征在于,包括以下组件:

5.根据权利要求4所述的udp_fwd插件,其特征在于,所述动态链接库加载器通过调用操作系统的dlopen()和dlsym()函数来加载和获取用户态应用程序中定义的函数指针。

6.一种包权利要求1所述的方法在5g基站后传网口的应用。

7.一种包括权利要求1所述方法的网络通信系统,其特征在于,包括:一个用于处理网络报文的vpp框架;


技术总结
本发明提供了一种在VPP框架下提升UDP报文收发速率的方法。在接收UDP报文时,直接从udp4_local或udp6_local节点高效捕获特定UDP端口的报文,这些特定端口是业务关注的重点,用户可通过vppctl工具进行动态配置,从而实现了报文接收的精准与灵活。而在发送UDP报文时,该技术先在payload前封装好UDP头部和IP头部信息,再将其转发给ip4_next或ip6_next节点,确保了报文发送的完整与准确。在封装UDP头部时,目的端口号同样由业务决定,同样用户可通过vppctl工具进行配置;UDP源端口号可由用户指定,也可由系统动态生成;IP头部信息中的目的IP地址则由用户明确指定,VPP框架会根据这目的IP地址自动从网卡列表中选择合适的源IP地址,实现了报文发送的智能与高效。

技术研发人员:赖天历,沈小彬,曾加生,黄微
受保护的技术使用者:深圳市佳贤通信科技股份有限公司
技术研发日:
技术公布日:2024/7/25
转载请注明原文地址: https://bbs.8miu.com/read-445003.html

最新回复(0)