My application running on a VM needs to deal with multiple VLANS on packets received over I350 using Virtual Function. But I always see the received packets without vlan tag. This is my setup: - host: 3.13.6-031306-generic - QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.7) - guest: 2.6.32-358.el6.x86_64 - dpdk: 1.6
And this is how I set up in the VM: ------- memset(&port_conf, 0, sizeof(port_conf)); if (vlanCnt > 0) port_conf.rxmode.hw_vlan_filter = 1; port_conf.rxmode.jumbo_frame = 1; port_conf.rxmode.max_rx_pkt_len = 9018; ret = rte_eth_dev_configure(port, 1, 1, &port_conf); if (ret < 0) { rte_log(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, "Error on config port%u, ret=%d\n", (unsigned)port, ret); return -1; } for(i = 0; i < vlanCnt; i++) { ret = rte_eth_dev_vlan_filter(port, vlan[i], 1); if (ret < 0) { rte_log(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, "Error on config port%u, vlan%d ret=%d\n", (unsigned)port, vlan[i], ret); return -1; } } ----- If I also try to explicitly disable the stripping with next, but get an error return -ENOSUP. ret = rte_eth_dev_set_vlan_strip_on_queue(port, 0, 0); I appreciate anyone can help. on how to set it up. Thanks, Shian Wong