From: "Linus Lüssing" <linus.luessing@c0d3.blue>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: netdev@vger.kernel.org, bridge@lists.linux-foundation.org,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
Michael Braun <michael-dev@fami-braun.de>,
"David S . Miller" <davem@davemloft.net>,
Felix Fietkau <nbd@nbd.name>
Subject: Re: [Bridge] [PATCH net-next] bridge: multicast to unicast
Date: Tue, 10 Jan 2017 00:12:03 +0100 [thread overview]
Message-ID: <20170109231203.GC5513@otheros> (raw)
In-Reply-To: <1483965843.17582.37.camel@sipsolutions.net>
On Mon, Jan 09, 2017 at 10:42:46PM +0100, Johannes Berg wrote:
> On Mon, 2017-01-09 at 22:33 +0100, Linus Lüssing wrote:
> > On Mon, Jan 09, 2017 at 01:44:03PM +0100, Johannes Berg wrote:
> > >
> > > > > A host SHOULD silently discard a datagram that is
> > > > > received via
> > > > > a link-layer broadcast (see Section 2.4) but does not
> > > > > specify
> > > > > an IP multicast or broadcast destination address.
> > > >
> > > > This example is the other way round. It specifies how the IP
> > > > destination should look like in case of link-layer broadcast. Not
> > > > how the link-layer destination should look like in case of a
> > > > multicast/broadcast IP destination.
> > >
> > > You stopped reading too early - snipped the context part for you :)
> >
> > Sorry for writing to you directly, but I still have some
> > difficulties. In pseudo-code that line says:
> >
> > -----
> > if ll_dst(pkt) == bcast AND ip_dst(pkt) != mcast/bcast:
> > -> drop(pkt)
> > -----
> >
> > But after multicast-to-unicast conversion, we have:
> >
> > -----
> > ll_dst(pkt) == ucast AND ip_dst(pkt) == mcast
> > -----
> >
> > So none of the two requirements for dropping are matched?
> >
>
> Exactly. My point is that this is breaking the expectation that hosts
> are actually able to drop such packets.
[readding CCs I removed earlier]
Ah! Thanks. I was worried about creating packetloss :D.
Hm, for this other other way round, I think it does not apply for
the bridge multicast-to-unicast patch if I'm not misreading the bridge code:
For a packet with a link-layer multicast address but a unicast IP
destination, the bridge MDB lookup will fail.
(http://lxr.free-electrons.com/source/net/bridge/br_multicast.c?v=4.8#L178
returns NULL)
Case A): No multicast router on port:
-> bridge, br_multicast_flood(), will drop the packet already
(no matter if multicast-to-unicast is enabled or not)
Case B): Multicast router present on port:
-> The new patch does not apply multicast-to-unicast but just floods
packet unaltered
("else { port = rport; addr = NULL; }" branch)
Regards, Linus
WARNING: multiple messages have this Message-ID (diff)
From: "Linus Lüssing" <linus.luessing@c0d3.blue>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: netdev@vger.kernel.org, "David S . Miller" <davem@davemloft.net>,
Stephen Hemminger <stephen@networkplumber.org>,
bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
linux-wireless@vger.kernel.org, Felix Fietkau <nbd@nbd.name>,
Michael Braun <michael-dev@fami-braun.de>
Subject: Re: [PATCH net-next] bridge: multicast to unicast
Date: Tue, 10 Jan 2017 00:12:03 +0100 [thread overview]
Message-ID: <20170109231203.GC5513@otheros> (raw)
In-Reply-To: <1483965843.17582.37.camel@sipsolutions.net>
On Mon, Jan 09, 2017 at 10:42:46PM +0100, Johannes Berg wrote:
> On Mon, 2017-01-09 at 22:33 +0100, Linus Lüssing wrote:
> > On Mon, Jan 09, 2017 at 01:44:03PM +0100, Johannes Berg wrote:
> > >
> > > > > A host SHOULD silently discard a datagram that is
> > > > > received via
> > > > > a link-layer broadcast (see Section 2.4) but does not
> > > > > specify
> > > > > an IP multicast or broadcast destination address.
> > > >
> > > > This example is the other way round. It specifies how the IP
> > > > destination should look like in case of link-layer broadcast. Not
> > > > how the link-layer destination should look like in case of a
> > > > multicast/broadcast IP destination.
> > >
> > > You stopped reading too early - snipped the context part for you :)
> >
> > Sorry for writing to you directly, but I still have some
> > difficulties. In pseudo-code that line says:
> >
> > -----
> > if ll_dst(pkt) == bcast AND ip_dst(pkt) != mcast/bcast:
> > -> drop(pkt)
> > -----
> >
> > But after multicast-to-unicast conversion, we have:
> >
> > -----
> > ll_dst(pkt) == ucast AND ip_dst(pkt) == mcast
> > -----
> >
> > So none of the two requirements for dropping are matched?
> >
>
> Exactly. My point is that this is breaking the expectation that hosts
> are actually able to drop such packets.
[readding CCs I removed earlier]
Ah! Thanks. I was worried about creating packetloss :D.
Hm, for this other other way round, I think it does not apply for
the bridge multicast-to-unicast patch if I'm not misreading the bridge code:
For a packet with a link-layer multicast address but a unicast IP
destination, the bridge MDB lookup will fail.
(http://lxr.free-electrons.com/source/net/bridge/br_multicast.c?v=4.8#L178
returns NULL)
Case A): No multicast router on port:
-> bridge, br_multicast_flood(), will drop the packet already
(no matter if multicast-to-unicast is enabled or not)
Case B): Multicast router present on port:
-> The new patch does not apply multicast-to-unicast but just floods
packet unaltered
("else { port = rport; addr = NULL; }" branch)
Regards, Linus
WARNING: multiple messages have this Message-ID (diff)
From: "Linus Lüssing" <linus.luessing@c0d3.blue>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: netdev@vger.kernel.org, bridge@lists.linux-foundation.org,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
Michael Braun <michael-dev@fami-braun.de>,
"David S . Miller" <davem@davemloft.net>,
Felix Fietkau <nbd@nbd.name>
Subject: Re: [PATCH net-next] bridge: multicast to unicast
Date: Tue, 10 Jan 2017 00:12:03 +0100 [thread overview]
Message-ID: <20170109231203.GC5513@otheros> (raw)
In-Reply-To: <1483965843.17582.37.camel@sipsolutions.net>
On Mon, Jan 09, 2017 at 10:42:46PM +0100, Johannes Berg wrote:
> On Mon, 2017-01-09 at 22:33 +0100, Linus Lüssing wrote:
> > On Mon, Jan 09, 2017 at 01:44:03PM +0100, Johannes Berg wrote:
> > >
> > > > > A host SHOULD silently discard a datagram that is
> > > > > received via
> > > > > a link-layer broadcast (see Section 2.4) but does not
> > > > > specify
> > > > > an IP multicast or broadcast destination address.
> > > >
> > > > This example is the other way round. It specifies how the IP
> > > > destination should look like in case of link-layer broadcast. Not
> > > > how the link-layer destination should look like in case of a
> > > > multicast/broadcast IP destination.
> > >
> > > You stopped reading too early - snipped the context part for you :)
> >
> > Sorry for writing to you directly, but I still have some
> > difficulties. In pseudo-code that line says:
> >
> > -----
> > if ll_dst(pkt) == bcast AND ip_dst(pkt) != mcast/bcast:
> > -> drop(pkt)
> > -----
> >
> > But after multicast-to-unicast conversion, we have:
> >
> > -----
> > ll_dst(pkt) == ucast AND ip_dst(pkt) == mcast
> > -----
> >
> > So none of the two requirements for dropping are matched?
> >
>
> Exactly. My point is that this is breaking the expectation that hosts
> are actually able to drop such packets.
[readding CCs I removed earlier]
Ah! Thanks. I was worried about creating packetloss :D.
Hm, for this other other way round, I think it does not apply for
the bridge multicast-to-unicast patch if I'm not misreading the bridge code:
For a packet with a link-layer multicast address but a unicast IP
destination, the bridge MDB lookup will fail.
(http://lxr.free-electrons.com/source/net/bridge/br_multicast.c?v=4.8#L178
returns NULL)
Case A): No multicast router on port:
-> bridge, br_multicast_flood(), will drop the packet already
(no matter if multicast-to-unicast is enabled or not)
Case B): Multicast router present on port:
-> The new patch does not apply multicast-to-unicast but just floods
packet unaltered
("else { port = rport; addr = NULL; }" branch)
Regards, Linus
next prev parent reply other threads:[~2017-01-09 23:12 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-02 19:32 [Bridge] [PATCH net-next] bridge: multicast to unicast Linus Lüssing
2017-01-02 19:32 ` Linus Lüssing
2017-01-02 19:32 ` Linus Lüssing
2017-01-03 11:58 ` [Bridge] " Nikolay Aleksandrov
2017-01-03 11:58 ` Nikolay Aleksandrov via Bridge
2017-01-03 11:58 ` Nikolay Aleksandrov
2017-01-03 13:15 ` [Bridge] " Felix Fietkau
2017-01-03 13:15 ` Felix Fietkau
2017-01-06 12:47 ` [Bridge] " Johannes Berg
2017-01-06 12:47 ` Johannes Berg
2017-01-06 12:47 ` Johannes Berg
2017-01-06 13:52 ` [Bridge] " Felix Fietkau
2017-01-06 13:52 ` Felix Fietkau
2017-01-06 13:54 ` [Bridge] " Johannes Berg
2017-01-06 13:54 ` Johannes Berg
2017-01-06 13:54 ` Johannes Berg
2017-01-06 13:54 ` [Bridge] " Felix Fietkau
2017-01-06 13:54 ` Felix Fietkau
2017-01-07 10:32 ` [Bridge] " M. Braun
2017-01-07 10:32 ` M. Braun
2017-01-07 10:32 ` M. Braun
2017-01-07 14:55 ` [Bridge] " Linus Lüssing
2017-01-07 14:55 ` Linus Lüssing
2017-01-07 14:55 ` Linus Lüssing
2017-01-09 8:08 ` [Bridge] " Johannes Berg
2017-01-09 8:08 ` Johannes Berg
2017-01-09 8:08 ` Johannes Berg
2017-01-09 11:44 ` [Bridge] " M. Braun
2017-01-09 11:44 ` M. Braun
2017-01-09 11:44 ` M. Braun
2017-01-09 12:15 ` [Bridge] " Johannes Berg
2017-01-09 12:15 ` Johannes Berg
2017-01-09 12:15 ` Johannes Berg
2017-01-09 15:25 ` [Bridge] " michael-dev
2017-01-09 15:25 ` michael-dev
2017-01-09 15:47 ` [Bridge] " Johannes Berg
2017-01-09 15:47 ` Johannes Berg
2017-01-09 15:47 ` Johannes Berg
2017-01-09 21:23 ` [Bridge] " Linus Lüssing
2017-01-09 21:23 ` Linus Lüssing
2017-01-09 21:30 ` [Bridge] " Stephen Hemminger
2017-01-09 21:30 ` Stephen Hemminger
2017-01-09 21:30 ` Stephen Hemminger
2017-01-10 4:18 ` [Bridge] " Linus Lüssing
2017-01-10 4:18 ` Linus Lüssing
2017-01-10 4:18 ` Linus Lüssing
2017-01-10 10:56 ` [Bridge] " Johannes Berg
2017-01-10 10:56 ` Johannes Berg
2017-01-10 10:56 ` Johannes Berg
2017-01-10 17:17 ` [Bridge] " Dave Taht
2017-01-10 17:17 ` Dave Taht
2017-01-10 17:23 ` [Bridge] " Felix Fietkau
2017-01-10 17:23 ` Felix Fietkau
2017-01-10 17:23 ` Felix Fietkau
2017-01-10 18:24 ` [Bridge] " Dave Taht
2017-01-10 18:24 ` Dave Taht
2017-01-10 18:24 ` Dave Taht
2017-01-10 21:27 ` [Bridge] " Felix Fietkau
2017-01-10 21:27 ` Felix Fietkau
2017-01-10 21:27 ` Felix Fietkau
2017-01-11 11:26 ` [Bridge] " IgorMitsyanko
2017-01-11 11:26 ` IgorMitsyanko
2017-01-11 11:30 ` [Bridge] " Felix Fietkau
2017-01-11 11:30 ` Felix Fietkau
2017-01-11 12:15 ` [Bridge] " IgorMitsyanko
2017-01-11 12:15 ` IgorMitsyanko
2017-01-11 12:21 ` [Bridge] " Felix Fietkau
2017-01-11 12:21 ` Felix Fietkau
2017-01-07 15:15 ` [Bridge] " Linus Lüssing
2017-01-07 15:15 ` Linus Lüssing
2017-01-07 15:15 ` Linus Lüssing
2017-01-09 8:05 ` [Bridge] " Johannes Berg
2017-01-09 8:05 ` Johannes Berg
2017-01-09 8:05 ` Johannes Berg
2017-01-09 12:42 ` [Bridge] " Linus Lüssing
2017-01-09 12:42 ` Linus Lüssing
2017-01-09 12:42 ` Linus Lüssing
2017-01-09 12:44 ` [Bridge] " Johannes Berg
2017-01-09 12:44 ` Johannes Berg
2017-01-09 12:44 ` Johannes Berg
2017-01-09 23:12 ` Linus Lüssing [this message]
2017-01-09 23:12 ` Linus Lüssing
2017-01-09 23:12 ` Linus Lüssing
2017-01-11 9:17 ` [Bridge] " Johannes Berg
2017-01-11 9:17 ` Johannes Berg
2017-01-11 9:17 ` Johannes Berg
2017-01-07 3:13 ` [Bridge] " Stephen Hemminger
2017-01-07 3:13 ` Stephen Hemminger
2017-01-07 3:13 ` Stephen Hemminger
2017-01-07 3:13 ` Stephen Hemminger
2017-01-07 15:06 ` [Bridge] " Linus Lüssing
2017-01-07 15:06 ` Linus Lüssing
2017-01-07 15:06 ` Linus Lüssing
2017-01-09 8:36 ` [Bridge] " Jean-Pierre Tosoni
2017-01-09 8:36 ` Jean-Pierre Tosoni
2017-01-09 8:36 ` Jean-Pierre Tosoni
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=20170109231203.GC5513@otheros \
--to=linus.luessing@c0d3.blue \
--cc=bridge@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=michael-dev@fami-braun.de \
--cc=nbd@nbd.name \
--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.