netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Newall <davidn@davidnewall.com>
To: Bart De Schuymer <bdschuym@pandora.be>, Florian Westphal <fw@strlen.de>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Netdev <netdev@vger.kernel.org>,
	netfilter-devel@vger.kernel.org,
	bridge@lists.linux-foundation.org
Subject: Re: Revert 462fb2af9788a82a534f8184abfde31574e1cfa0 (bridge : Sanitize skb before it enters the IP stack)
Date: Wed, 21 May 2014 17:19:00 +0930	[thread overview]
Message-ID: <537C5A6C.3030809@davidnewall.com> (raw)
In-Reply-To: <537A6E5C.6090602@pandora.be>

Hi Bart,

Thanks for thinking about this.

On 20/05/14 06:19, Bart De Schuymer wrote:
> Perhaps it's possible to call ip_options_compile with a skb == NULL, 
> like ip_options.c::ip_options_get_finish does. That way we don't need 
> to duplicate code.

I think not.  My reading of the discussion behind the commit is that skb 
cb area could contain something that was confused for IP options.  To 
solve that, and to allow for proper response when the packet's DF flag 
was set, the cb area was cleared and ip_options_compile() was called.  
Calling that function does only part of the job, leaving slots for 
addresses (and possibly timestamps) to be filled in by a later function; 
possibly ip_forward_options().  I did try calling that; it failed; 
skb_rtable() returned NULL.

I have also read enough comments deriding the "incestuous" relationship 
between bridge and IP to convince me that the relationship should be 
severed.  A bridge is such a simple concept which, when it starts 
looking into the payload, ceases to be a bridge.

I have experience in this code measured in hours; not a lot.  I welcome 
correction if I misunderstand things.

> An alternative would be to make sure that the data pointed to by IPCB 
> and BR_INPUT_SKB_CB don't overlap. If this were the case, we could 
> indeed just revert the commit that was referred to.

They are identical spaces, but you imply a good point: the cb area is 
possibly being used, simultaneously, for two, incompatible purposes.  
Yet another argument for divorcing bridge of ip logic.

Regards,

David

  reply	other threads:[~2014-05-21  7:49 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <537621AC.1060409@davidnewall.com>
     [not found] ` <5379FFFD.1050705@davidnewall.com>
     [not found]   ` <20140519140119.GA24523@breakpoint.cc>
     [not found]     ` <537A12EA.4060604@davidnewall.com>
2014-05-19 17:09       ` Revert 462fb2af9788a82a534f8184abfde31574e1cfa0 (bridge : Sanitize skb before it enters the IP stack) Florian Westphal
2014-05-19 20:49         ` Bart De Schuymer
2014-05-21  7:49           ` David Newall [this message]
2014-05-21 18:51             ` Bart De Schuymer
2014-05-21 20:18               ` David Miller
2014-05-22 18:57                 ` Bart De Schuymer
2014-05-24 18:00                   ` David Miller
2014-05-24  5:56                 ` David Newall
2014-05-24 17:43                   ` David Miller
2014-05-25  2:32                     ` David Newall
2014-05-25  3:02                       ` David Miller
2014-05-25  6:37                         ` David Newall
2014-05-27  8:55                       ` David Laight
2014-05-29 22:34                       ` David Miller
2014-05-30  9:17                         ` David Newall
2014-05-31  0:46                           ` David Miller
2014-05-31  6:13                             ` David Newall
2014-05-31  6:37                               ` David Miller
2014-05-22  3:50               ` David Newall
2014-05-22 18:57                 ` Bart De Schuymer
2014-05-20  3:57         ` David Newall

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=537C5A6C.3030809@davidnewall.com \
    --to=davidn@davidnewall.com \
    --cc=bdschuym@pandora.be \
    --cc=bridge@lists.linux-foundation.org \
    --cc=fw@strlen.de \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=stephen@networkplumber.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).