It's reproduced in XEN environment.
And found that vlan support is disabled in ixgbe driver.
So then my question again is what does vlan_enabled flag do?
If vlan_enabled == 0 then the bridge driver shouldn't do any vlan thing?
On Tue, Oct 23, 2018 at 11:22 AM Soohoon Lee <soohoon at gmail.com>
wrote:>
> Hi, I'm a bridge newbie.
>
> I found that vlan_enabled is 0 by default but the bridge still
> programs PVID and it rejects adding interface if programming PVID
> fails.
>
> I got this symptom since CentOS/RHEL 7.4 and this change is making the
> difference.
>
> br_vlan.c:
> > - if (p && p->br->vlan_enabled)) {
> > + if (p) {
> err = vlan_vid_add(dev, br->vlan_proto, vid);
>
> more details about the environment is
>
> AWS m4.xlarge with ixgbevf.
> ixgbevf failed in this function when it tries to program PVID.
>
> drivers/net/ethernet/intel/ixgbevf/vf.c:
> static s32 ixgbevf_set_vfta_vf(struct ixgbe_hw *hw, u32 vlan, u32 vind,
> ...
> err = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf,
> sizeof(msgbuf) / sizeof(u32));
> ...
> if (msgbuf[0] != (IXGBE_VF_SET_VLAN | IXGBE_VT_MSGTYPE_ACK))
>
> the msbuf has NACK in it.
>
> What would be a good fix for this?
>
> Thanks
> Soohoon