From: ebiederm@xmission.com (Eric W. Biederman)
To: Ben Greear <greearb@candelatech.com>
Cc: Mark Smith
<nanog@85d5b20a518b8f6864949bd940457dc124746ddc.nosense.org>,
Patrick McHardy <kaber@trash.net>,
David Miller <davem@davemloft.net>,
netdev@vger.kernel.org, shemminger@linux-foundation.org
Subject: Re: MACVLANs really best solution? How about a bridge with multiple bridge virtual interfaces? (was Re: [PATCH] macvlan: Support creating macvlans from macvlans)
Date: Sat, 07 Mar 2009 10:13:16 -0800 [thread overview]
Message-ID: <m11vt9fbgj.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <49B2A139.8040507@candelatech.com> (Ben Greear's message of "Sat\, 07 Mar 2009 08\:30\:49 -0800")
Ben Greear <greearb@candelatech.com> writes:
> Mark Smith wrote:
>> Hi,
>>
>> Ben said,
>>
>>> I wouldn't deny sending with wrong source mac..ethernet interfaces can do
>>> this,
>>> and mac-vlan should look as much like ethernet is possible.
>>>
>>
>> I agree, however there's further things that mac-vlans aren't
>> currently doing as virtual ethernet interfaces that real ones do.
>> Unicast ethernet traffic sent out one mac-vlan interface with a
>> destination address of another mac-vlan interface on the same host
>> isn't delivered. mac-vlan interfaces, even though they're conceptually
>> located on the same ethernet segment, are currently isolated from each
>> other for unicast traffic.
>>
> At least for my use, having them all blindly TX is fine. For thousands
> of interfaces, if you did this right and also delivered all broadcast packets
> locally
> (ie, ARP), you will cause a lot of overhead, and unless you are running a
> patched
> kernel (or namespaces perhaps), you can't really communicate with yourself over
> the
> network anyway using IP.
>
> For the behaviour you want, try adding pairs of VETH interfaces and add one end
> of the veth's to the bridge. Add a physical port to the bridge for egress.
> Since this
> can be done, I don't really see any reason to change mac-vlan significantly...
>
> If the veth/bridge thing doesn't work, then let us know, as I think that would
> be
> a bug. I use a similar-to-veth virtual-device pair in this way and it works
> fine.
There is one scenario in which macvlans totally beat bridging veth
devices. macvlans support the full set of stateless hardware
offloads that the hardware supports. Whereas veth device support none
of them.
I don't think changing macvlans makes a lot of sense. Beyond the
pain of making it work, there are the semantic differences of local
broadcast working.
Doing something so that bridges have roughly the same performance
as macvlans would be very nice. I think it requires advertising
most if not all stateless hardware offloads, and then implementing
them in software on the endpoints that don't support them.
I did get as far as implementing a first draft at looping packets back
locally and behaviour difference for broadcasts and multicast
differences made macvlans a bad fit. For clean code something like
the bridge code where you don't use the original interface directly
for sending and receiving traffic seems required.
Eric
next prev parent reply other threads:[~2009-03-07 18:13 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-07 10:45 MACVLANs really best solution? How about a bridge with multiple bridge virtual interfaces? (was Re: [PATCH] macvlan: Support creating macvlans from macvlans) Mark Smith
2009-03-07 16:30 ` Ben Greear
2009-03-07 18:13 ` Eric W. Biederman [this message]
2009-03-07 22:32 ` Mark Smith
2009-03-08 16:54 ` Ben Greear
2009-03-09 1:14 ` Mark Smith
2009-03-09 13:31 ` Patrick McHardy
2009-03-09 14:56 ` Eric W. Biederman
2009-03-09 15:02 ` Patrick McHardy
2009-03-09 15:48 ` MACVLANs really best solution? How about a bridge with multiple bridge virtual interfaces? Eric W. Biederman
2009-03-09 15:53 ` Patrick McHardy
2009-03-09 16:34 ` Eric W. Biederman
2009-03-09 16:45 ` Patrick McHardy
2009-03-09 18:58 ` Ben Greear
2009-03-09 21:17 ` Eric W. Biederman
2009-03-09 21:23 ` Ben Greear
2009-03-09 18:33 ` Brian Haley
2009-03-09 18:54 ` Ben Greear
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=m11vt9fbgj.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=davem@davemloft.net \
--cc=greearb@candelatech.com \
--cc=kaber@trash.net \
--cc=nanog@85d5b20a518b8f6864949bd940457dc124746ddc.nosense.org \
--cc=netdev@vger.kernel.org \
--cc=shemminger@linux-foundation.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).