一. Advanced RSS的特性

Legacy的RSS是对普通五元组(src ip, dst ip, src port, dst port, protocol)进行哈希,而且默认情况下是对报文的五元组同时进行哈希。Intel E810对RSS做了增强,支持Advanced RSS,主要体现在以下方面:

(1) 支持通过RTE_FLOW API对RSS的input set,hash function等进行动态配置。如只对ipv4报文的src ip或者dst ip进行哈希;对ipv4报文设置hash function达到对称哈希,交换src ip和dst ip的值,报文到达同一个队列。对称哈希的意义:对上下行的业务,到达同一个core,使得效率更高。

(2) 随着DDP(Dynamic Device Personalization)的出现,可以对更多的协议进行解析并哈希,如对GTPU的teid,PPPoE的session id,L2TPv3的session id,ESP的spi,AH的spi等。

二. 硬件实现概念

RSS和flow director一样,都属于分类过滤器,从高层面的角度看,分类过滤器的框图如图1。

图1 分类过滤器的框图

图1中主要模块的描述如下

Profile ID:一个由包的类型,包的标识以及VSI生成的功能。

Field Vector:以filter的profile id为基础,从包头中被抽取出来的内容。

Input Set:从包头中抽取出来的一些域,一般等同于field vector或者是其中某几位的掩码。

Filter Lookup:通过精确匹配或者是RSS来分发,并把包和一些行为(action)关联起来。

Action:如指定到达某个queue、拒绝或接收某个类型的包等行为。

Priority Resolver:默认的优先级从高到低是ACL,switch,FDIR,RSS。

上面描述的是RSS,FDIR等过滤器的通用模块,针对RSS,它有自己的逻辑框图,如图2。

图2 RSS的逻辑框图

Incoming packets进入到parser模块,五元组src ip、dst ip、src port、dst port和protocol中的子集作为input set,结合一个任意的hash key以及hash function(默认hash function是Toeplitz function)计算得到hash value,用hash value求模redirection table size的结果去索引redirection table以得到被最终散列到的队列,并最终被对应的CPU worker收到。

三. AVF RSS的软件实现流程

Advanced RSS同时支持DPDK PF和AVF。以AVF RSS为例,其实现机制:在AVF中对到达的flow进行解析,将解析的结果通过virtual channel传递给PF,在PF中实现创建或者删除这条规则。这里的virtual channel是作为PF和VF之间协商的消息通道,即PF和VF共用的相关数据结构。对增加或者删除一条RSS规则来说,VF传递给PF的信息是这条规则的具体信息,包括报文类型,报文协议的层数,需要哈希的域,非隧道报文或隧道报文,哈希function(用来指定对称哈希或非对称哈希)等。其流程图如图3。

图3 在AVF中配置RSS Flow的流程图

四. 测试用例

(1) Example 1: 创建一个对ipv4报文的src进行哈希的规则

   flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end

一条RSS flow由pattern和action构成,pattern是eth_ipv4,action是RSS,type表示input set,即对包的哪些域进行哈希。在这个例子中,ipv4表示rss type,需和前面的pattern一致,l3-src-only是对rss type ipv4的修饰,表示对ipv4的src进行哈希。Key_len 0和queues end表示在rte_flow的命令中暂时不支持对RSS的key_len和queue的配置,但可在flow director中配置queue region。

测试结果如下:发一个ipv4类型的报文,改变src的值,可以观察到不同src ip的报文被散列到不同的队列中。

(2) Example 2: 创建一个对ipv4-udp报文对称哈希的规则

   flow create 0 ingress pattern eth / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end

pattern是eth_ipv4_udp,通过指定rss func为symmetric Toeplitz hash来配置对称哈希,rss type为ipv4-udp,和前面的pattern保持一致,表示对ipv4-udp的报文进行对称hash,即交换src ipv4和dst ipv4、src udp port和dst udp port,hash结果保持不变,到达同一个队列。

测试结果如下:

sendp(Ether()/IP(src="1.1.4.1",dst="2.2.2.3")/UDP(sport=20,dport=22),iface="enp175s0f3")
RSS hash=0xb4169d0
sendp(Ether()/IP(src="2.2.2.3",dst="1.1.4.1")/UDP(sport=22,dport=20),iface="enp175s0f3")
RSS hash=0xb4169d0

五. 总结

本文主要介绍Intel E810 Advanced RSS的概念、硬件实现和测试用例,以及AVF Advanced RSS软件实现流程。目前Advanced RSS在5G UPF等workload中有广泛的应用。

学习地址:http://ke.qq.com/course/5066203?flowToken=1043717

更多DPDK学习资料有需要的可以自行添加进入学习交流君 羊 793599096 免费获取,或自行报名学习,免费订阅,永久学习,关注我持续更新哦!!!

原文链接:https://blog.csdn.net/weixin_37097605/article/details/108891938

Intel E810 Advanced RSS介绍相关推荐

  1. DPDK Rx flexible descriptor 在Intel E810 网卡中的使用

    + 什么是Rx flexible descriptor Intel E810系列网卡支持Rx flexible descriptor,这是一种可以通过软件定义格式并配置到网卡硬件中的Rx descri ...

  2. DPDK Rx flexible descriptor在Intel E810网卡中的使用

    什么是Rx flexible descriptor Intel E810系列网卡支持Rx flexible descriptor,这是一种可以通过软件定义格式并配置到网卡硬件中的Rx descript ...

  3. intelx79服务器芯片组,流言终结者!Intel X79规格全面介绍

    流言终结者!Intel X79规格全面介绍 在今年六月份的台北电脑展上,各大主板厂商竞相展示了自己的X79芯片组主板,多达四通道DDR3内存设计以及硕大的LGA 2011插座相信是我们最大的印象,时隔 ...

  4. Intel x86_64 CPUID指令介绍

    Intel CPUID指令简介 一.CPUID简介 1.1 CPUID 功能简介 1.2 处理器是否支持 CPUID指令 1.3 指令返回基本信息 1.4 指令返回扩展信息 二.CPUID指令参数输入 ...

  5. intel cpu计算机硬件架构,intel的cpu分类介绍

    intel的cpu分类介绍 intel的cpu它们的分类是怎么样的呢?你又了解过吗?下面小编给你做出详细的intel的cpu分类介绍!希望对你有帮助! AMD: 采用直连架构的 AMD 皓龙(Opte ...

  6. 【服务器开发必备知识总结】:BMC开发、raid卡、HBA卡、HDD硬盘、SSD硬盘、ME、cpld、服务器路数、U数介绍、intel cpu 平台架构介绍

    文章目录 bmc 内存泄露的详细定位方法 服务器HBA卡介绍 服务器raid卡介绍 服务器HBA卡和RAID卡区别与联系是什么? 服务器HDD硬盘与SSD硬盘介绍 服务器硬盘模式AHCI啥意思? 服务 ...

  7. Intel VTune基本使用介绍

    前言 Intel VTune Amplifier是intel公司开发的一款强大的性能瓶颈分析软件,能帮助开发者找出性能影响因素,它支持Linux* OS,Windows* OS,Android* OS ...

  8. 从 dpdk-20.11 移植 intel E810 百 G 网卡 pmd 驱动到 dpdk-16.04 中

    文章目录 前言 移植前的调研工作 dpdk-20.11 ice pmd 驱动源码的组成 移植问题与解决方案记录 16.04 使用 make 编译,20.11 使用 meson 与 ninja 方式编译 ...

  9. RSS阅读——在繁杂的社会接受纯粹的信息 RSS介绍与RSS订阅源分享

    在互联网信息大爆炸的背景下,人们需要一种全新的知识获取与整理方法.当我们面对繁杂的信息时,一种全新的技术诞生了 RSS(简易信息聚合技术)的诞生与发展 RSS技术的诞生 RSS技术是由Netscape ...

最新文章

  1. 实现多条件模糊查询SQL语句
  2. BZOJ-1192-鬼谷子的钱袋
  3. wxWidgets:wxHTML 概述
  4. 数据库笔记2:SQL运算符
  5. 苹果台式机_苹果史上最强台式机来了:顶配售价45万
  6. zz从一道笔试题谈算法优化(上)
  7. ildasm.exe查看dll库支持的Net版本
  8. 在西安参加Java培训该怎么学习?
  9. Vue-组件自定义事件-绑定-解绑
  10. 系统策略禁止安装此设备。请与系统管理员联系-解决方案
  11. TeXStudio 中如何调用Gnuplot
  12. Photoshop CS 5 注册方法
  13. phpst安装memcache扩展_超简单的wordpress网站安装教程(基于phpstudy PHP环境)
  14. Windows 使用命令行修改密码
  15. 工业版树莓派 CM3
  16. PAC(期间平均成本)
  17. 怎么查询计算机二级证书快递号,计算机二级office查询成绩后的注意事项证书直邮申请17到到23号...
  18. 互联网公司技术网站 公众号
  19. 【SSM-报销单】6.报销单-个人报销单,待处理报销单
  20. hit@k 评价指标

热门文章

  1. 某程序员看S情直播打赏3千后报警,多个直播平台窝点被端。。。
  2. 决定炒外汇水平高低的四种能力
  3. 仿阿里百秀响应式布局
  4. (复习)android 调用系统相机 图库 裁剪-图片上传-客服端-服务器
  5. 读书百遍,真的能其义自见吗?
  6. 原来我还可以这样活:拆掉思维里的墙
  7. 【数据结构算法】递归:八皇后问题
  8. 真正开源的MongoDB的替代品,MangoDB
  9. CAD双击打开图纸显示空白解决方案
  10. (原创) 脚踏实地学Java之:基础篇