zoukankan      html  css  js  c++  java
  • dpdk rss

    testpmd 

                    if (nb_rxq > 1) {
                            port->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
                            port->dev_conf.rx_adv_conf.rss_conf.rss_hf =
                                    rss_hf & port->dev_info.flow_type_rss_offloads;
                    } else {
                            port->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
                            port->dev_conf.rx_adv_conf.rss_conf.rss_hf = 0;
                    }
    
                    if (port->dcb_flag == 0) {
                            if( port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0)
                                    port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
                            else
                                    port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE;
                    }
            if (!strcmp(res->value, "all"))
                    rss_conf.rss_hf = ETH_RSS_IP | ETH_RSS_TCP |
                                    ETH_RSS_UDP | ETH_RSS_SCTP |
                                            ETH_RSS_L2_PAYLOAD;
            else if (!strcmp(res->value, "ip"))
                    rss_conf.rss_hf = ETH_RSS_IP;
            else if (!strcmp(res->value, "udp"))
                    rss_conf.rss_hf = ETH_RSS_UDP;
            else if (!strcmp(res->value, "tcp"))
                    rss_conf.rss_hf = ETH_RSS_TCP;
            else if (!strcmp(res->value, "sctp"))
                    rss_conf.rss_hf = ETH_RSS_SCTP;
            else if (!strcmp(res->value, "ether"))
                    rss_conf.rss_hf = ETH_RSS_L2_PAYLOAD;
            else if (!strcmp(res->value, "port"))
                    rss_conf.rss_hf = ETH_RSS_PORT;
            else if (!strcmp(res->value, "vxlan"))
                    rss_conf.rss_hf = ETH_RSS_VXLAN;

    DPDK 之 RSS

    RSS(receive side scaling)是由微软提出的一种负载分流方法,通过计算网络数据报文中的网络层&传输层二/三/四元组HASH值,取HASH值的最低有效位(LSB)用于索引间接寻址表RETA(Redirection Table),间接寻址表RETA中的保存索引值用于分配数据报文到不同的CPU接收处理。现阶段RSS基本已有硬件实现,通过这项技术能够将网络流量分载到多个CPU上,降低操作系统单个CPU的占用率。

    Redirection Table(RETA)

    82599-RSS-Block-Diagram
    INTEL 82576/82599 RETA 为一个包含位宽 4 BITS 的 128 项的索引映射表,通过取固定取HASH值低7位(LSBs),将其映射到RETA表项。输出索引可在运行时动态调整更新来实现网络流量动态的负载均衡,但是更新不能保证与数据报文同步生效。

    :
    82576/82599 RETA 4位宽的RSS输出索引意味着RSS最大只支持16队列分流,超过16队列之后的队列RSS无法分流。
    INTEL XL710 PF RETA 大小 256, 位宽 6 BITS,支持最大 64 队列分流.
    INTEL XL710 VF RETA 大小 64, 位宽 4 BITS,支持最大 16 队列分流.

  • 相关阅读:
    ssm 在不同的数据库中进行切换(开启事物禁用)
    引入xfire-all.jar后导致sping配置异常
    单点登录cas的最简单使用
    win10下cmd命令不能用
    前端json 两个重要的方法
    maven 工程下第三方jar 包的引入和打包 war
    idea 中main 方法不能运行
    从sqlServer 分页查询谈${}和#{}
    can与could区别
    线程同步与异步区别
  • 原文地址:https://www.cnblogs.com/dream397/p/13903809.html
Copyright © 2011-2022 走看看