Support packets in flight
[samplevnf.git] / VNFs / DPPD-PROX / prox_args.c
index 0ef1f8b..dc21249 100644 (file)
@@ -610,18 +610,18 @@ static int get_port_cfg(unsigned sindex, char *str, void *data)
                if (parse_bool(&val, pkey)) {
                        return -1;
                }
-#if defined(DEV_RX_OFFLOAD_CRC_STRIP)
+#if defined(RTE_ETH_RX_OFFLOAD_CRC_STRIP)
                if (val)
-                       cfg->requested_rx_offload |= DEV_RX_OFFLOAD_CRC_STRIP;
+                       cfg->requested_rx_offload |= RTE_ETH_RX_OFFLOAD_CRC_STRIP;
                else
-                       cfg->requested_rx_offload &= ~DEV_RX_OFFLOAD_CRC_STRIP;
+                       cfg->requested_rx_offload &= ~RTE_ETH_RX_OFFLOAD_CRC_STRIP;
 #else
-#if defined (DEV_RX_OFFLOAD_KEEP_CRC)
+#if defined (RTE_ETH_RX_OFFLOAD_KEEP_CRC)
                if (val)
-                       cfg->requested_rx_offload &= ~DEV_RX_OFFLOAD_KEEP_CRC;
+                       cfg->requested_rx_offload &= ~RTE_ETH_RX_OFFLOAD_KEEP_CRC;
                else
+                       cfg->requested_rx_offload |= RTE_ETH_RX_OFFLOAD_KEEP_CRC;
 #endif
-                       cfg->requested_rx_offload |= DEV_RX_OFFLOAD_KEEP_CRC;
 #endif
 
        }
@@ -635,11 +635,11 @@ static int get_port_cfg(unsigned sindex, char *str, void *data)
                        return -1;
                }
                if (val) {
-                       cfg->requested_rx_offload |= DEV_RX_OFFLOAD_VLAN_STRIP;
-                       cfg->requested_tx_offload |= DEV_TX_OFFLOAD_VLAN_INSERT;
+                       cfg->requested_rx_offload |= RTE_ETH_RX_OFFLOAD_VLAN_STRIP;
+                       cfg->requested_tx_offload |= RTE_ETH_TX_OFFLOAD_VLAN_INSERT;
                } else {
-                       cfg->requested_rx_offload &= ~DEV_RX_OFFLOAD_VLAN_STRIP;
-                       cfg->requested_tx_offload &= ~DEV_TX_OFFLOAD_VLAN_INSERT;
+                       cfg->requested_rx_offload &= ~RTE_ETH_RX_OFFLOAD_VLAN_STRIP;
+                       cfg->requested_tx_offload &= ~RTE_ETH_TX_OFFLOAD_VLAN_INSERT;
                }
 #else
                plog_warn("vlan option not supported : update DPDK at least to 18.08 to support this option\n");
@@ -655,10 +655,14 @@ static int get_port_cfg(unsigned sindex, char *str, void *data)
                        // A frame of 1526 bytes (1500 bytes mtu, 14 bytes hdr, 4 bytes crc and 8 bytes vlan)
                        // should not be considered as a jumbo frame. However rte_ethdev.c considers that
                        // the max_rx_pkt_len for a non jumbo frame is 1518
+#if RTE_VERSION < RTE_VERSION_NUM(21,11,0,0)
                        cfg->port_conf.rxmode.max_rx_pkt_len = cfg->mtu + PROX_RTE_ETHER_HDR_LEN + PROX_RTE_ETHER_CRC_LEN;
-                       if (cfg->port_conf.rxmode.max_rx_pkt_len > PROX_RTE_ETHER_MAX_LEN) {
-                               cfg->requested_rx_offload |= DEV_RX_OFFLOAD_JUMBO_FRAME;
-                       }
+                       if (cfg->port_conf.rxmode.max_rx_pkt_len > PROX_RTE_ETHER_MAX_LEN)
+#else
+                       cfg->port_conf.rxmode.mtu = cfg->mtu;
+                       if (cfg->port_conf.rxmode.mtu > PROX_MTU)
+#endif
+                               cfg->requested_rx_offload |= RTE_ETH_RX_OFFLOAD_JUMBO_FRAME;
                }
        }
 
@@ -668,8 +672,8 @@ static int get_port_cfg(unsigned sindex, char *str, void *data)
                        return -1;
                }
                if (val) {
-                       cfg->port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
-                       cfg->port_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IPV4;
+                       cfg->port_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_RSS;
+                       cfg->port_conf.rx_adv_conf.rss_conf.rss_hf = RTE_ETH_RSS_IPV4;
                }
        }
        else if (STR_EQ(str, "rx_ring")) {
@@ -2296,10 +2300,14 @@ int prox_setup_rte(const char *prog_name)
        sprintf(rte_arg[++argc], "-c%s", tmp);
        rte_argv[argc] = rte_arg[argc];
 #if RTE_VERSION >= RTE_VERSION_NUM(1,8,0,0)
+       uint32_t master_core = prox_cfg.master;
        if (prox_cfg.flags & DSF_USE_DUMMY_CPU_TOPO)
-               sprintf(rte_arg[++argc], "--master-lcore=%u", 0);
-       else
-               sprintf(rte_arg[++argc], "--master-lcore=%u", prox_cfg.master);
+               master_core = 0;
+#if RTE_VERSION < RTE_VERSION_NUM(21,11,0,0)
+       sprintf(rte_arg[++argc], "--master-lcore=%u", master_core);
+#else
+       sprintf(rte_arg[++argc], "--main-lcore=%u", master_core);
+#endif
        rte_argv[argc] = rte_arg[argc];
 #else
        /* For old DPDK versions, the master core had to be the first