From 899bdc59981a301aa6f5d02f0b1edef404e93569 Mon Sep 17 00:00:00 2001 From: Xavier Simonart Date: Sun, 4 Nov 2018 17:29:43 +0100 Subject: Add support for VLAN insert and stripping JIRA: SAMPLEVNF-149 VLAN can be enabled on a port by adding "vlan=yes" in the port section. When VLAN is enabled on a port, then DEV_RX_OFFLOAD_VLAN_STRIP and DEV_TX_OFFLOAD_VLAN_INSERT are enabled (if device supports it). This will cause VLAN to be stripped from any packets received with the proper tag, and VLAN to be added for any packets being transmitted. The VLAN ID themselves are configured through the physical function using something like (where ens801f1 isthe PF): ip link set ens801f1 vf 0 vlan 1111 Change-Id: I945c87b0c18565da479ecaa08e5ffce91232a7ce Signed-off-by: Xavier Simonart --- VNFs/DPPD-PROX/prox_args.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'VNFs/DPPD-PROX/prox_args.c') 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)) { -- cgit 1.2.3-korg