DPDK - Symmetric Receive-side Scaling
DPDK - Symmetric Receive-side Scaling
上篇介绍到RSS HASH默认RK是一个非对称KEY,也就是同一条数据流收、发这两个方向的数据包的RSS HASH值是不同的。在IDS/DPI等流量分析应用场景中,同一条流数据由非对称HASH计算将分流到不同的CPU,这样极大的增加了应用负担,降低了处理能力。为了解决这个问题,有人提出了修改(RSSRK),将其改为重复的16个bits,来获取对称的结果。具体详情可查阅Scalable TCP Session Monitoring with Symmetric Receive-side Scaling此篇论文,这里不再详述。
对称RK为以下320 bits数据,将其写入网卡RSSRK寄存器(82599)即可:
0x6d5a 0x6d5a 0x6d5a 0x6d5a
0x6d5a 0x6d5a 0x6d5a 0x6d5a
0x6d5a 0x6d5a 0x6d5a 0x6d5a
0x6d5a 0x6d5a 0x6d5a 0x6d5a
0x6d5a 0x6d5a 0x6d5a 0x6d5a
DPDK 可通过 API rte_eth_dev_rss_hash_update
动态修改当前网卡 RSS HASH KEY, 具体可参考testpmd
中 port_rss_hash_key_update
与 cmd_config_rss_parsed
详细实现:
void
port_rss_hash_key_update(portid_t port_id, char rss_type[], uint8_t *hash_key,uint hash_key_len)
{struct rte_eth_rss_conf rss_conf;int diag;unsigned int i;rss_conf.rss_key = NULL;rss_conf.rss_key_len = hash_key_len;rss_conf.rss_hf = 0;for (i = 0; i < RTE_DIM(rss_type_table); i++) {if (!strcmp(rss_type_table[i].str, rss_type))rss_conf.rss_hf = rss_type_table[i].rss_type;}diag = rte_eth_dev_rss_hash_conf_get(port_id, &rss_conf);if (diag == 0) {rss_conf.rss_key = hash_key;diag = rte_eth_dev_rss_hash_update(port_id, &rss_conf);}if (diag == 0)return;switch (diag) {case -ENODEV:printf("port index %d invalid\n", port_id);break;case -ENOTSUP:printf("operation not supported by device\n");break;default:printf("operation failed - diag=%d\n", diag);break;}
}
Reference
Scalable TCP Session Monitoring with Symmetric Receive-side Scaling
Symmetric RSS (Receive-Side scaling)
ntop - Hardware-based Symmetric Flow Balancing in DNA
DPDK - Symmetric Receive-side Scaling相关推荐
- DPDK笔记 RSS(receive side scaling)网卡分流机制
DPDK笔记 RSS(receive side scaling)网卡分流机制 RToax 2020年9月 DPDK 网卡RSS(receive side scaling)简介 DPDK-RSS负载均衡 ...
- 《深入浅出DPDK》读书笔记(九):流分类与多队列、流过滤、虚拟化流分类方式、流分类技术的使用
Table of Contents 94.Linux内核对多队列的支持 95.DPDK与多队列 98.流分类 99.RSS 100.Flow Director 101.服务质量 102.虚拟化流分类方 ...
- DPDK在DPVS中的应用及原理分析
上一篇文章中我们已经介绍了DPVS的特点和部署方式,本文主要是用于介绍DPVS是如何实现前面所说的特点,或者说是如何提高性能的. 下图是爱奇艺的DPVS开发团队给出的DPVS在提高性能方面的操作,我们 ...
- linux 网卡rss hash,使用RSS提升DPDK应用的性能
本文描述了RSS以及在DPDK中如何配置RSS达到性能提升和统一分发. DPDK 1.8.0 什么是RSS RSS(Receive Side Scaling)是一种能够在多处理器系统下使接收报文在多个 ...
- 《深入浅出DPDK》读书笔记(十五):DPDK应用篇(Open vSwitch(OVS)中的DPDK性能加速)
Table of Contents Open vSwitch(OVS)中的DPDK性能加速 174.虚拟交换机简介 175.OVS简介 176.DPDK加速的OVS 177.OVS的数据通路 178. ...
- 《深入浅出DPDK》读书笔记(十四):DPDK应用篇(DPDK与网络功能虚拟化:NFV、VNF、IVSHMEM、Virtual BRAS“商业案例”)
Table of Contents DPDK应用篇 DPDK与网络功能虚拟化 157.网络功能虚拟化 13.1.1起源 158.发展 159.OPNFV与DPDK NFV的部署 160.NFV的部署 ...
- 《深入浅出DPDK》读书笔记(十三):DPDK虚拟化技术篇(加速包处理的vhost优化方案)
Table of Contents 加速包处理的vhost优化方案 142.vhost的演进和原理 143.Qemu与virtio-net 144.Linux内核态vhost-net 145.用户态v ...
- 《深入浅出DPDK》读书笔记(十二):DPDK虚拟化技术篇(半虚拟化Virtio)
Table of Contents 半虚拟化Virtio 132.Virtio使用场景 133.Virtio规范和原理 11.2.1 设备的配置 1. 设备的初始化 2. 设备的发现 3. 传统模式v ...
- 《深入浅出DPDK》读书笔记(十一):DPDK虚拟化技术篇(I/O虚拟化、CPU虚拟化、内存虚拟化、VT-d、I/O透传)
Table of Contents DPDK虚拟化技术篇 X86平台上的I/O虚拟化 120.X86平台上的I/O虚拟化 121.X86平台虚拟化概述 122.CPU虚拟化 123.内存虚拟化 124 ...
- 《深入浅出DPDK》读书笔记(十):硬件加速与功能卸载(VLAN、IEEE1588、IP TCP/UDP/SCTP checksum、Tunnel)
Table of Contents 109.硬件卸载简介 110.网卡硬件卸载功能 111.DPDK软件接口 接收侧: 发送侧: 112.硬件与软件功能实现 113.VLAN硬件卸载 1. 收包时VL ...
最新文章
- AWS — AWS 上的 NFV
- boost::hana::repeat用法的测试程序
- 对于SAP的月结相关流程介绍
- python制作计算机程序_用 Python 开发实用程序 – 计算器
- Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度
- H - Maximal submatrix HDU - 6957
- 高级Java必看的10本书
- 怎么升级计算机硬盘,研究僧 篇一:记一次老电脑的升级之路
- redis 简单应用
- SpringCloud Hoxton版微服务- OpenFeign实现服务调用
- 韩顺平php视频笔记70 面向对象编程的三大特征1 抽象 封装
- python搭建邮件服务器地址_python 配置邮件发送服务器发送邮件
- 30天敏捷结果(1):总体认识Getting Result敏捷方法
- php的curl封装类
- 电脑联想小新连上蓝牙耳机依然外放,终于解决了
- Spring容器父子关系
- 计算机汉字怎么制作的,如何制作自己的字体?教你快速制作自己手写字体
- 2013年互联网江湖格局观
- [UER #1] DZY Loves Graph
- Python.win32gui.获取窗体
热门文章
- android开机自启动程序设置
- Vant中List组件immediate-check=false无效
- 管理c语言源代码,c语言源代码---------------个人图书管理系统
- linux代码折叠,Sublime代码折叠
- python的类方法、静态方法、实例方法_Python 类方法、实例方法、静态方法
- python函数参数顺序_对Python中函数参数类型及排序问题,三个方面的总结
- html2canvas提升像素,jspdf + html2canvas 实现html转pdf (提高分辨率版本)
- s2jh mysql_mysql 一对多 查询 出一行数据
- mysql创建一张日期表_MySQL创建一张日期表
- CSDN浏览器助手插件[少了很多糟心的广告]