• Toke Høiland-Jørgensen's avatar
    veth: Update XDP feature set when bringing up device · 7a6102aa
    Toke Høiland-Jørgensen authored
    There's an early return in veth_set_features() if the device is in a down
    state, which leads to the XDP feature flags not being updated when enabling
    GRO while the device is down. Which in turn leads to XDP_REDIRECT not
    working, because the redirect code now checks the flags.
    
    Fix this by updating the feature flags after bringing the device up.
    
    Before this patch:
    
    NETDEV_XDP_ACT_BASIC:		yes
    NETDEV_XDP_ACT_REDIRECT:	yes
    NETDEV_XDP_ACT_NDO_XMIT:	no
    NETDEV_XDP_ACT_XSK_ZEROCOPY:	no
    NETDEV_XDP_ACT_HW_OFFLOAD:	no
    NETDEV_XDP_ACT_RX_SG:		yes
    NETDEV_XDP_ACT_NDO_XMIT_SG:	no
    
    After this patch:
    
    NETDEV_XDP_ACT_BASIC:		yes
    NETDEV_XDP_ACT_REDIRECT:	yes
    NETDEV_XDP_ACT_NDO_XMIT:	yes
    NETDEV_XDP_ACT_XSK_ZEROCOPY:	no
    NETDEV_XDP_ACT_HW_OFFLOAD:	no
    NETDEV_XDP_ACT_RX_SG:		yes
    NETDEV_XDP_ACT_NDO_XMIT_SG:	yes
    
    Fixes: fccca038 ("veth: take into account device reconfiguration for xdp_features flag")
    Fixes: 66c0e13a ("drivers: net: turn on XDP features")
    Signed-off-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
    Link: https://lore.kernel.org/r/20230911135826.722295-1-toke@redhat.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    7a6102aa
veth.c 47.6 KB