On Thu, Jul 1, 2021 at 9:12 PM Jay Vosburgh <jay.vosburgh@xxxxxxxxxxxxx> wrote: > >+ if (static_branch_unlikely(&bpf_master_redirect_enabled_key)) { > >+ struct net_device *master = netdev_master_upper_dev_get_rcu(dev_rx); > >+ > >+ exclude_ifindex_master = (master && exclude_ingress) ? master->ifindex : 0; > >+ } > >+ > > Will the above logic do what is intended if the device stacking > isn't a simple bond -> ethX arrangement? I.e., bond -> VLAN.?? -> ethX > or perhaps even bondA -> VLAN.?? -> bondB -> ethX ? Good point. "bond -> VLAN -> eth" isn't an issue currently as vlan devices do not support XDP. "bondA -> bondB -> ethX" however would be supported, so I think it makes sense to change the code to collect all upper devices and exclude them. I'll try to follow up with an updated patch for this soon.