diff options
-rw-r--r-- | VNFs/DPPD-PROX/prox_args.c | 17 | ||||
-rw-r--r-- | VNFs/DPPD-PROX/prox_port_cfg.c | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/VNFs/DPPD-PROX/prox_args.c b/VNFs/DPPD-PROX/prox_args.c index c09c563d..59c514fc 100644 --- a/VNFs/DPPD-PROX/prox_args.c +++ b/VNFs/DPPD-PROX/prox_args.c @@ -559,6 +559,23 @@ static int get_port_cfg(unsigned sindex, char *str, void *data) else cfg->requested_rx_offload &= ~DEV_RX_OFFLOAD_CRC_STRIP; } + else if (STR_EQ(str, "vlan")) { +#if RTE_VERSION >= RTE_VERSION_NUM(18,8,0,1) + uint32_t val; + if (parse_bool(&val, pkey)) { + return -1; + } + if (val) { + cfg->requested_rx_offload |= DEV_RX_OFFLOAD_VLAN_STRIP; + cfg->requested_tx_offload |= DEV_TX_OFFLOAD_VLAN_INSERT; + } else { + cfg->requested_rx_offload &= ~DEV_RX_OFFLOAD_VLAN_STRIP; + cfg->requested_tx_offload &= ~DEV_TX_OFFLOAD_VLAN_INSERT; + } +#else + plog_warn("vlan option not supported : update DPDK at least to 18.08 to support this option\n"); +#endif + } else if (STR_EQ(str, "mtu size")) { uint32_t val; if (parse_int(&val, pkey)) { diff --git a/VNFs/DPPD-PROX/prox_port_cfg.c b/VNFs/DPPD-PROX/prox_port_cfg.c index a71d0cce..661b6716 100644 --- a/VNFs/DPPD-PROX/prox_port_cfg.c +++ b/VNFs/DPPD-PROX/prox_port_cfg.c @@ -460,6 +460,7 @@ static void init_port(struct prox_port_cfg *port_cfg) #if RTE_VERSION >= RTE_VERSION_NUM(18,8,0,1) CONFIGURE_RX_OFFLOAD(DEV_RX_OFFLOAD_CRC_STRIP); CONFIGURE_RX_OFFLOAD(DEV_RX_OFFLOAD_JUMBO_FRAME); + CONFIGURE_RX_OFFLOAD(DEV_RX_OFFLOAD_VLAN_STRIP); #else if (port_cfg->requested_rx_offload & DEV_RX_OFFLOAD_CRC_STRIP) { port_cfg->port_conf.rxmode.hw_strip_crc = 1; @@ -473,6 +474,7 @@ static void init_port(struct prox_port_cfg *port_cfg) #if RTE_VERSION >= RTE_VERSION_NUM(18,8,0,1) CONFIGURE_TX_OFFLOAD(DEV_TX_OFFLOAD_IPV4_CKSUM); CONFIGURE_TX_OFFLOAD(DEV_TX_OFFLOAD_UDP_CKSUM); + CONFIGURE_TX_OFFLOAD(DEV_TX_OFFLOAD_VLAN_INSERT); #else if ((port_cfg->dev_info.tx_offload_capa & (DEV_TX_OFFLOAD_IPV4_CKSUM | DEV_TX_OFFLOAD_UDP_CKSUM)) == 0) { port_cfg->tx_conf.txq_flags |= ETH_TXQ_FLAGS_NOOFFLOADS; |