> Aside from inet_gso_segment and ipv6_gso_segment, this only leaves the > new nsh_gso_segment. Unlke mpls, it has its own gso_type, so > > if (!skb_shinfo(skb)->gso_type & SKB_GSO_NSH) > goto out;
This last point was incorrect. There is no such type for this protocol, so we have to do the same as for MPLS. Either assume that it is robust or be conservative and add if (skb_shinfo(skb)->gso_type & SKB_GSO_DODGY) goto out; It looks correct on the surface and may already be relied upon, so I suggest the first approach.