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

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

3天内不再提示

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

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

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

    文章

    5499

    浏览量

    173430
  • intel
    +关注

    关注

    19

    文章

    3487

    浏览量

    186977

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

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

收藏 人收藏

    相关推荐

    取样示波器的技术原理和应用场景

    取样示波器,也称为采样示波器,是一种重要的电子测量仪器,其技术原理和应用场景可以归纳如下:技术原理取样示波器的根本原理是利用等效取样技术,将周期性高频(或高速)信号变换为与原来信号波形相似的低频(或
    发表于 03-12 14:34

    数据记录仪的计数原理和应用场景

    数据记录仪是一种用于测量、记录和分析各种数据的设备,其计数原理和应用场景可以归纳如下: 一、计数原理数据记录仪的计数原理主要基于传感器技术、信号处理技术以及数据存储技术。具体来说: 传感器采集
    发表于 02-24 14:28

    meshtastic的应用场景介绍

    meshtastic的应用场景介绍
    的头像 发表于 02-21 12:02 210次阅读
    meshtastic的应<b class='flag-5'>用场景</b><b class='flag-5'>介绍</b>

    敏捷合成器的技术原理和应用场景

    敏捷合成器,作为一种高性能的信号发生器,其技术原理和应用场景值得深入探讨。技术原理敏捷合成器的技术原理主要基于先进的频率合成技术和数字信号处理技术。它通常具有宽频率范围、快速建立和可编程的相位、频率
    发表于 02-20 15:25

    脉冲信号分析仪‌的原理和应用场景

    脉冲信号分析仪是一种用于测量和分析脉冲信号的精密仪器。以下是对其原理和应用场景的详细介绍:一、原理脉冲信号分析仪的工作原理主要基于电子测量技术和信号处理技术。当脉冲信号被分析仪的接收器接收后,信号
    发表于 01-23 14:00

    混合信号分析仪的原理和应用场景

    混合信号分析仪是一种集成度高、功能强大的电子测量设备,其原理和应用场景如下:一、原理混合信号分析仪由模拟部分和数字部分组成,用于混合信号的分析。其工作原理主要包括以下几个方面: 信号采样:混合信号
    发表于 01-21 16:45

    多用示波器的原理和应用场景

    多用示波器是一种功能强大的电子测量仪器,其原理和应用场景如下:一、原理多用示波器主要是利用电子示波管的特性,将人眼无法直接观测的交变电信号转换成图像,显示在荧光屏上以便测量。具体来说,当被测信号输入
    发表于 01-09 15:42

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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