Subject: Missing INET6_PROTO_FINAL in l2tp_ip6_protocol?

From: Shmulik Ladkani <[email-masked]>
Date: Sat, 21 May 2016 15:50:03 +0300

Hi,

inet6_protocol's INET6_PROTO_FINAL flag denotes handler is expected not
to request resubmission for local delivery.

For an INET6_PROTO_FINAL handler, the following actions gets executed
prior delivery, in ip6_input_finish:

			nf_reset(skb);

			skb_postpull_rcsum(skb, skb_network_header(skb),
					   skb_network_header_len(skb));

For some reason, l2tp_ip6_protocol handler is NOT marked as
INET6_PROTO_FINAL. Probably an oversight.

Since 'l2tp_ip6_recv' never results in a resubmission, the above actions
are not applied to skbs passed to l2tp_ip6.

Any reason why l2tp_ip6_protocol should NOT be marked INET6_PROTO_FINAL?

What's the consequences not executing the above actions for l2tp_ip6
packets?

Thanks,
Shmulik