I have managed to enable unicast promiscuous mode in my VF driver, and this solves my problem in that my VF can now receive all frames addressed to my VF MAC, tagged or untagged. In order to do this I had to modify the Intel PF driver to allow me to set unicast promiscuous mode.
There appear to be 2 issues:
1. the code in i40e_virtchnl_pf.c to handle I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE returns an error if the VSI is not an FCOE VSI. I don't understand this!
2. the above code also does not call i40e_aq_set_vsi_unicast_promiscuous() if the appropriate passed-in flags are set.
Would it be possible to get these issues fixed?