0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FDIR原理介绍及应用场景举例

FPGA之家 来源:DPDK与SPDK开源社区 作者:DPDK与SPDK开源社区 2021-04-02 17:37 次阅读

FDIR简介

CPU单核时代,数据包经由网卡接收后均被送往唯一的CPU进行处理。随着多核时代到来,出现了负载均衡问题(某些core过载,而另一些core空载的情况)。为解决该问题,RSS(Receive Side Scaling)技术先通过hash操作将数据包发送到不同的core上进行中断处理,然后再经由core间转发将数据包发送到运行目的应用所在的core上。虽然负载看似在多core上均衡了,但由于hash的抗碰撞特性,大量数据包会被送到了不匹配的core上,因而数据包的core间转发成为性能瓶颈。

Intel 以太网Flow Director技术(Intel Ethernet Flow Director,简称FDIR)将数据包定向发送到对应应用所在core上,从而弥补了RSS的不足,可用来加速数据包到目的应用处理的过程。在新一代Intel 以太网800系列网络适配器中,FDIR有了更多的规则空间硬件资源和更灵活的配置机制。

7df03fc8-92eb-11eb-8b86-12bb97331649.png

如同Linux提供了纯软件实现的RSS版本一样,Linux也提供了纯软件实现的ATR(Application Targeting Routing)模式的Flow Director,称为RFS(Receive Flow Steering)。尽管功能上等效,但是RFS无法达到FDIR对网络性能的提升效果,因为它必须通过某个core来执行调度数据包,而且该core大概率不是目的应用所在的core。因此,ATR模式的FDIR可被看作RFS的智能卸载硬件加速方案。

7e1715f8-92eb-11eb-8b86-12bb97331649.png

FDIR工作原理

在网络适配器硬件接收到数据包时,硬件Parser会通过Parse Graph状态机对数据包进行解析提取出一些重要信息(如数据包类型)并填充在该数据包的descriptor中;

7e5d5144-92eb-11eb-8b86-12bb97331649.png

硬件Profile Chooser根据数据包的PTYPE、Flag位、所属VSI等信息生成Profile ID;硬件Field Extractor根据该Profile ID提取出对应的Field Vector;根据mask寄存器中的信息,对Field Vector中有效字段(word)进行mask操作;根据Input Set寄存器中Field Vector到Input Set的映射关系,生成FDIR的Input Set。

7ec7989c-92eb-11eb-8b86-12bb97331649.png

基于数据包提取出的Input Set,FDIR会查表进行精确匹配和优先级判断,从而确定出对应的action。常见的action包括:1)Drop:根据FDIR表中对应规则的DROP Flag位决定是否drop该数据包。2)To Queue:将数据包发送至目的Queue,或在进行hash操作后发送至Queue Group(也叫Queue Region)中的某个Queue。3)Counter:对匹配的数据包进行统计计数,计数的方式有:基于个数、基于byte数据量、基于个数和byte数据量。

其中,FDIR匹配准则依据包括:1)Input Set向量域;2)数据包所属的VSI;3)数据包所匹配的Profile。

7f17ba20-92eb-11eb-8b86-12bb97331649.png

FDIR使能机制

Intel 以太网800系列网络适配器最多可支持16k条FDIR规则,这些规则空间资源在硬件中是以 “独占( guaranteed )” + “共享( best effort )” 的形式进行分配的。其中,每个PF享有固定大小的独占资源,该独占资源又可被各PF下的VF分配使用;除去所有PF享有的独占资源,其余的FDIR空间资源都作为共享资源,被所有PF及其VF所共享使用。例如,在4端口25G E810中,每个PF独占资源有512,共享资源有14k(16k-512*4=14k)。独占和共享资源的配置,是通过写寄存器实现的。

7f618128-92eb-11eb-8b86-12bb97331649.png

对FDIR Queue的初始化同样是通过写寄存器完成的,包括:分配FDIR VSI硬件资源;映射TC LAN Queue到VSI;初始化FDIR哈希表;初始化FDIR统计计数器;分配并初始化TX/RX LAN Queue;绑定中断到VSI Queue;分配并初始化Ring Buffer;分配FDIR Profile资源等。

在DPDK中,FDIR规则可以通过rte_flow的组织形式runtime进行配置。每条规则中包含了必要的 Pattern和Action信息。

7fb7aa44-92eb-11eb-8b86-12bb97331649.png

紧接着基于rte_flow规则中解析出的Input Set,分配Profile ID;注册HW Profile;创建PTYPE Group的映射关系;在TCAM中添加对应的Field Vector。再之后driver根据解析出的Input Set的值分配Queue的Descriptor并对LAN+FDIR Descriptor进行填充,然后构建相应的FDIR Dummy Packet。

8024afe0-92eb-11eb-8b86-12bb97331649.png

通过FDIR TX Queue将规则实体以特定的格式发送给网卡的firmware,并返回处理的状态结果。

80863b2a-92eb-11eb-8b86-12bb97331649.png

其中,每个FDIR规则实体的内容是由64 bytes数据构成,由以下参数组成:1)从数据包中提取的参数:48 bytes的Input Set;数据包所匹配的Profile等。2)从软件Descriptor中接收到的参数:目的Queue;FDIR ID;数据包所属的VSI;统计计数器;控制相关的Flag位等。3)自维护的存储管理参数:PF/VF/VSI标志位;有效Flag位等。

FDIR应用场景举例

OVS Partial Offload:在HW中设置带有mark ID的FDIR规则,匹配的数据包会在对应的descriptor中记录对应的mark ID,上层的OVS可以基于此mark ID直接对该数据包的SKB进行相应的处理,从而省去了大量的解析查询等操作并大大提升了性能。

结语

当前VMware或Microsoft并不支持FDIR功能。FDIR更适合在纯“裸机(bare metal)” 上的Linux应用程序中提升网络性能,特别是那些网络通信量极大、处理小数据包极多的应用程序。在那些看重网络性能的应用程序(例如Memcached)中,FIDR为以太网领域在高带宽、低延迟等方向提供了显着的性能增强。伴随的好处也包括降低CPU占有率、节省功耗等,因而更适合配合intel的高性能CPU使用。

原文标题:基于Intel®以太网800系列网络适配器的FDIR功能及原理介绍

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5419

    浏览量

    171597
  • intel
    +关注

    关注

    19

    文章

    3482

    浏览量

    185919

原文标题:基于Intel®以太网800系列网络适配器的FDIR功能及原理介绍

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    低电平灵敏专用仪器的技术原理和应用场景

    低电平灵敏专用仪器是一种高精度、高灵敏度的测量工具,广泛应用于各种需要精确测量微弱信号的场合。以下是对其技术原理和应用场景的详细介绍:一、技术原理低电平灵敏专用仪器的工作原理基于精密的电路设计和先进
    发表于 12-06 14:45

    倍频器的技术原理和应用场景

    倍频器是一种用于将输入信号的频率倍增的电子设备,以下是关于倍频器的技术原理和应用场景的详细解释:技术原理倍频器的技术原理主要基于非线性元件(如二极管、晶体管等)的特性和频率变换技术。 非线性元件
    发表于 11-29 14:49

    系统放大器的技术原理和应用场景

    系统放大器是一种重要的电子设备,其技术原理和应用场景都具有一定的专业性和广泛性。以下是对系统放大器的技术原理和应用场景的详细介绍:一、技术原理系统放大器的工作原理基于电子器件的非线性特性,通过控制
    发表于 11-18 14:46

    汽车雷达回波发生器的技术原理和应用场景

    汽车雷达回波发生器是一种新型的雷达测试设备,以下是对其技术原理和应用场景的详细介绍:技术原理汽车雷达设备在发送电磁波信号时,若遇到目标物体,该物体会反射出回波信号,随后被雷达接收机捕获。这些回波信号
    发表于 11-15 14:06

    OTA测试暗箱的技术原理和应用场景

    OTA测试暗箱在无线通信设备的研发与测试中扮演着至关重要的角色。以下是对OTA测试暗箱技术原理和应用场景的详细阐述:一、OTA测试暗箱的技术原理OTA测试暗箱的技术原理主要基于电磁波在封闭空间
    发表于 11-14 14:36

    实时示波器的技术原理和应用场景

    实时示波器是一种高性能的电子测量仪器,其技术原理和应用场景对于电子工程和通信技术领域具有重要意义。以下是对实时示波器的技术原理和应用场景的详细解释:一、技术原理实时示波器的工作原理基于电子束在荧光屏
    发表于 10-23 14:22

    源测量单元设备的技术原理和应用场景

    源测量单元(SMU)设备是一种集成了精密电源(PPS)和高性能数字万用表(DMM)功能的测试设备。以下是对其技术原理和应用场景的详细解析:一、技术原理 集成功能: SMU在单个仪器中集成了电源
    发表于 10-22 11:10

    太阳膜测试仪的技术原理和应用场景

    太阳膜测试仪的技术原理和应用场景可以详细阐述如下:技术原理太阳膜测试仪的技术原理主要基于光学测量和物理定律。具体来说,它通过模拟太阳光中的各种波长(主要是紫外线、可见光和红外线)的辐射,来检测太阳膜
    发表于 09-29 14:18

    超声波测厚仪的技术原理和应用场景

    超声波测厚仪的技术原理和应用场景详细如下:技术原理超声波测厚仪利用超声波脉冲反射原理来测量材料的厚度。具体工作原理如下: 发射超声波脉冲:测厚仪的探头(也称为换能器)向被测物体发射一束高频超声波脉冲
    发表于 09-27 15:06

    NFC协议分析仪的技术原理和应用场景

    NFC协议分析仪的技术原理和应用场景可以详细阐述如下:技术原理NFC(Near Field Communication,近场通信)协议分析仪是一种用于分析NFC通信协议和性能的专业设备。其技术
    发表于 09-25 14:45

    请问risc-v芯片的主要应用场景是哪里?

    如题,我想请教一下risc-v芯片与其他的芯片在应用场景上有哪些不一样?
    发表于 07-30 21:23

    FPGA与MCU的应用场景

    FPGA的应用场景有这些: 快速原型设计 FPGA可以快速配置成多种定制数字电路,允许在不需要昂贵且耗时的制造过程的情况下进行快速部署和修改。 硬件加速 在需要高性能和低延迟的应用中,FPGA的并行
    发表于 07-29 15:45

    STM32待机模式适合用于那些应用场景

    对于查看STM32低功耗模式,共有三种,其中最省电的为待机模式,但是待机模式唤醒后相当于软件复位了,ram及寄存器中的值都复位了,仅仅是备份域的寄存器除外,因此有个疑问,待机模式适合用于那些应用场景
    发表于 05-07 07:46

    NanoEdge AI的技术原理、应用场景及优势

    能耗并提高数据安全性。本文将对 NanoEdge AI 的技术原理、应用场景以及优势进行综述。 1、技术原理 NanoEdge AI 的核心技术包括边缘计算、神经网络压缩和低功耗硬件设计。边缘计算
    发表于 03-12 08:09

    AG32VF-MIPI应用场景

    MIPI接口技术在图像和视频传输中的应用越来越广泛,应用场景也在不断拓展,而不仅限于移动设备。MIPI接口在物联网、智能家居、智能监控、智能电视、智能汽车等领域也得到广泛应用。 MIPI还可
    发表于 01-22 08:56