| 857 | } |
| 858 | |
| 859 | static int |
| 860 | ngbe_vlan_offload_config(struct rte_eth_dev *dev, int mask) |
| 861 | { |
| 862 | struct rte_eth_rxmode *rxmode; |
| 863 | rxmode = &dev->data->dev_conf.rxmode; |
| 864 | |
| 865 | if (mask & RTE_ETH_VLAN_STRIP_MASK) |
| 866 | ngbe_vlan_hw_strip_config(dev); |
| 867 | |
| 868 | if (mask & RTE_ETH_VLAN_FILTER_MASK) { |
| 869 | if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_VLAN_FILTER) |
| 870 | ngbe_vlan_hw_filter_enable(dev); |
| 871 | else |
| 872 | ngbe_vlan_hw_filter_disable(dev); |
| 873 | } |
| 874 | |
| 875 | if (mask & RTE_ETH_VLAN_EXTEND_MASK) { |
| 876 | if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_VLAN_EXTEND) |
| 877 | ngbe_vlan_hw_extend_enable(dev); |
| 878 | else |
| 879 | ngbe_vlan_hw_extend_disable(dev); |
| 880 | } |
| 881 | |
| 882 | if (mask & RTE_ETH_QINQ_STRIP_MASK) { |
| 883 | if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_QINQ_STRIP) |
| 884 | ngbe_qinq_hw_strip_enable(dev); |
| 885 | else |
| 886 | ngbe_qinq_hw_strip_disable(dev); |
| 887 | } |
| 888 | |
| 889 | return 0; |
| 890 | } |
| 891 | |
| 892 | static int |
| 893 | ngbe_vlan_offload_set(struct rte_eth_dev *dev, int mask) |
no test coverage detected