Eric Woudstra <ericwouds@xxxxxxxxx> wrote: > + __be16 outer_proto, proto = 0; > struct nft_pktinfo pkt; > + int ret, offset = 0; > > nft_set_pktinfo(&pkt, skb, state); > > switch (eth_hdr(skb)->h_proto) { > + case htons(ETH_P_PPP_SES): { > + struct ppp_hdr { > + struct pppoe_hdr hdr; > + __be16 proto; > + } *ph; Maybe add nft_set_bridge_pktinfo() and place this entire switch/case there? > + skb_set_network_header(skb, offset); I assume thats because the network header still points to the ethernet header at this stage?