[发明专利]一种基于OVS-DPDK的数据包处理方法、系统有效
| 申请号: | 202310639196.8 | 申请日: | 2023-06-01 |
| 公开(公告)号: | CN116366582B | 公开(公告)日: | 2023-08-04 |
| 发明(设计)人: | 吴绍华;李易;郑理;邹明;文旭;韩丁 | 申请(专利权)人: | 天翼云科技有限公司 |
| 主分类号: | H04L49/9015 | 分类号: | H04L49/9015;H04L49/00 |
| 代理公司: | 浙江千克知识产权代理有限公司 33246 | 代理人: | 邵捷 |
| 地址: | 100007 北京市东城区青*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 ovs dpdk 数据包 处理 方法 系统 | ||
1.一种基于OVS- DPDK的数据包处理方法,其特征在于,包括:
步骤S01,从DPDK数据路径上获取PMD数据包并将PMD数据包缓存入批处理batch中;
步骤S02,从批处理batch中获取PMD数据包进行流表处理流程;
在执行流表处理流程时,对批处理batch中的PMD数据包进行查表,当未在CT跟踪链接表查询到CT表项时,创建CT表项并根据全局锁获取情况执行不同操作:当获取全局锁成功时,将该CT表项插入CT跟踪链接表,当获取全局锁失败时,将该CT表项的指针填充入CT缓存节点中;
步骤S03,当批处理batch中的数据包取完后,执行CT缓存节点的CT表项插入流程;当CT缓存节点的CT表项插入流程执行完毕后,返回步骤S01对下一轮PMD数据包进行处理;
在执行CT缓存节点的CT表项插入流程时,当全局锁获取成功时,将CT缓存节点中指针所对应的CT表项插入CT跟踪链接表并删除该CT缓存节点。
2.根据权利要求1所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述流表处理流程包括:
判断批处理batch中的数据包是否取完,若取完,则结束,若未取完,执行后续流程;
查询CT跟踪链接表,当未能查到CT表项时,创建CT表项并基于该数据包填充所述CT表项;
获取全局锁,当全局锁获取成功时,将该CT表项插入CT跟踪链接表;当全局锁获取失败时,将该CT表项的指针填充入CT缓存节点中;
逐个从批处理batch中获取数据包执行上述流程,直到取完数据包为止。
3.根据权利要求2所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述流表处理流程还包括:当查到CT表项时,更新该CT表项的状态,之后从批处理batch中获取下一个数据包执行流表处理流程。
4.根据权利要求2所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述基于该数据包填充所述CT表项的过程包括:将数据包中的源IP、目的IP、源端口、目的端口、协议号和CT表项的状态存入所述CT表项。
5.根据权利要求1所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述步骤S02还包括:判断CT缓存节点是否为空,当CT缓存节点为空时,从批处理batch中获取PMD数据包进行流表处理流程;当CT缓存节点不为空时,遍历线程上的所有CT缓存节点,执行CT缓存节点的CT表项插入流程。
6.根据权利要求1或5所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述CT缓存节点的CT表项插入流程包括:
获取线程上的一个CT缓存节点;
获取全局锁,当全局锁获取成功时,将CT缓存节点中指针所对应的CT表项插入CT跟踪链接表;
删除该CT缓存节点;
依次遍历线程上的所有CT缓存节点,直到所有缓存节点中指针所对应的CT表项插入CT跟踪链接表,CT缓存节点被删除后为止。
7.根据权利要求6所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述CT缓存节点的CT表项插入流程还包括:当CT缓存节点的CT表项插入流程执行完后,继续进行流表处理流程。
8.根据权利要求1所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,还包括:在步骤S01获取PMD数据包后且在执行步骤S02步骤前,创建CT缓存节点。
9.根据权利要求8所述的一种基于OVS-DPDK的数据包处理方法,其特征在于,所述CT缓存节点的数量为步骤S01中从DPDK数据路径上获取PMD数据包的最大值。
10.一种基于OVS-DPDK的数据包处理系统,其特征在于,包括:
数据包获取模块,用于从DPDK数据路径上获取PMD数据包;
批处理batch模块,用于缓存所述数据包获取模块获取的PMD数据包;
流表处理模块,用于获取批处理batch模块中的PMD数据包进行流表处理流程,在执行流表处理流程时,对批处理batch中的PMD数据包进行查表,当未在CT跟踪链接表查询到CT表项时,创建CT表项并根据全局锁获取情况执行不同操作:当获取全局锁成功时,将该CT表项插入CT跟踪链接表,当获取全局锁失败时,将该CT表项的指针填充入CT缓存节点中;当批处理batch中的数据包取完后,触发所述缓存插入模块执行CT缓存节点的CT表项插入流程;当CT缓存节点的CT表项插入流程执行完毕后,触发所述数据包获取模块对下一轮PMD数据包进行处理;
缓存插入模块,用于在执行CT缓存节点的CT表项插入流程时,当全局锁获取成功时,将CT缓存节点中指针所对应的CT表项插入CT跟踪链接表并删除该CT缓存节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼云科技有限公司,未经天翼云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310639196.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种混凝土内部金属纤维识别方法、系统及装置
- 下一篇:超纯水用高纯度止回阀





