Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> 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?