On Fri, 31 May 2019 19:18:17 +0000, Saeed Mahameed wrote: > On Fri, 2019-05-31 at 11:42 +0200, Björn Töpel wrote: > > From: Björn Töpel <bjorn.topel@xxxxxxxxx> > > > > All XDP capable drivers need to implement the XDP_QUERY_PROG{,_HW} > > command of ndo_bpf. The query code is fairly generic. This commit > > refactors the query code up from the drivers to the netdev level. > > > > The struct net_device has gained two new members: xdp_prog_hw and > > xdp_flags. The former is the offloaded XDP program, if any, and the > > latter tracks the flags that the supplied when attaching the XDP > > program. The flags only apply to SKB_MODE or DRV_MODE, not HW_MODE. > > > > The xdp_prog member, previously only used for SKB_MODE, is shared > > with > > DRV_MODE. This is OK, due to the fact that SKB_MODE and DRV_MODE are > > mutually exclusive. To differentiate between the two modes, a new > > internal flag is introduced as well. > > Just thinking out loud, why can't we allow any combination of > HW/DRV/SKB modes? they are totally different attach points in a totally > different checkpoints in a frame life cycle. FWIW see Message-ID: <20190201080236.446d84d4@xxxxxxxxxx> > Down the road i think we will utilize this fact and start introducing > SKB helpers for SKB mode and driver helpers for DRV mode.. Any reason why we would want the extra complexity? There is cls_bpf if someone wants skb features after all..