Pablo Neira Ayuso <pa...@netfilter.org> wrote: > > » iph = skb_header_pointer(skb, *offset, sizeof(_iph), &_iph); > > » if (!iph || skb->protocol != htons(ETH_P_IP)) > > » » return -EBADMSG; > > I mean, you make this check upfront from the _eval() path, ie. > > static void nft_exthdr_ipv4_eval(const struct nft_expr *expr, > ... > { > ... > > if (skb->protocol != htons(ETH_P_IP)) > goto err;
Wouldn't it be preferable to just use nft_pf() != NFPROTO_IPV4?