From: Shmulik Ladkani <shmulik.ladkani@gmail.com>
To: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: netdev@vger.kernel.org
Subject: Re: Missing INET6_PROTO_FINAL in l2tp_ip6_protocol?
Date: Sat, 21 May 2016 23:02:52 +0300 [thread overview]
Message-ID: <20160521230252.27931eee@halley> (raw)
In-Reply-To: <9bd1a821-17ea-778a-b0c7-4e9e35f9fcc1@stressinduktion.org>
On Sat, 21 May 2016 17:55:59 +0200 Hannes Frederic Sowa <hannes@stressinduktion.org> wrote:
> On 21.05.2016 14:50, Shmulik Ladkani wrote:
> > 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?
>
> I don't see any specific reason why it shouldn't be a INET6_PROTO_FINAL.
> Anyway, receive path of L2TPv3 without UDP encapsulation doesn't deal
> with checksums anyway, as far as I know.
>
> > What's the consequences not executing the above actions for l2tp_ip6
> > packets?
>
> Probably not a whole lot in this case.
OK, so the skb_postpull_rcsum is irrelevant for IPPROTO_L2TP over ipv6.
However, one more thing WRT to INET6_PROTO_FINAL not being set - we're
also missing the multicast filtering of 'ip6_input_finish':
if (ipv6_addr_is_multicast(&hdr->daddr) &&
!ipv6_chk_mcast_addr(skb->dev, &hdr->daddr,
&hdr->saddr) &&
!ipv6_is_mld(skb, nexthdr, skb_network_header_len(skb)))
goto discard;
I assume no reason to allow multicast daddr which aren't in the mc_list
(or saddr excluded) to pass up into 'l2tp_ip6_recv'?
next prev parent reply other threads:[~2016-05-21 20:02 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-21 12:50 Missing INET6_PROTO_FINAL in l2tp_ip6_protocol? Shmulik Ladkani
2016-05-21 15:55 ` Hannes Frederic Sowa
2016-05-21 20:02 ` Shmulik Ladkani [this message]
2016-05-23 11:05 ` Hannes Frederic Sowa
2016-05-23 11:25 ` Shmulik Ladkani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160521230252.27931eee@halley \
--to=shmulik.ladkani@gmail.com \
--cc=hannes@stressinduktion.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.