The ethtool manpage only gives a nebulous explanation:
   rxvlan on|off
          Specifies whether RX VLAN acceleration should be enabled
   txvlan on|off
          Specifies whether TX VLAN acceleration should be enabled
What exactly do the options accomplish, assuming you can enable them?
                        
Apparently,
rxvlanandtxvlanare aliases for the kernel featuresrx-vlan-hw-parseandtx-vlan-hw-insertrespectively (seeethtool.c).In the kernel they are translated to the netdev features
NETIF_F_HW_VLAN_CTAG_RX_BITandNETIF_F_HW_VLAN_CTAG_TX_BIT. (Seenet/core/ethtool.c)To the best of my knowledge, the TX_BIT allows the NIC to add the VLAN tag during transmission without explicitly placing it in the packet. See the relevant code in the VLAN driver.
Similarly, when the RX_BIT is enabled, the NIC can strip the VLAN tag from incoming packets and let the driver place the information from the VLAN tag in the relevant skb.