Hello Jiatong:
If you are using a VLAN network to create the SR-IOV ports on it, Nova will assign the corresponding VLAN ID to the VF. The traffic inside the VM won't have the VLAN header but it will be tagged when egressing the VF. This is the same as a tagged OVS TAP port.
If you are talking about VLAN trunking, ML2/SR-IOV mechanism driver does not support it. Each vendor and model would require a different implementation. There was some years ago an attempt to implement it in Neutron [1]. If you are willing to continue this implementation (maybe with another driver), I'll help you with this. I don't know if this is what you are looking for.
Regards.