All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: Grzegorz Bajorski <grzegorz.bajorski@tieto.com>,
	linux-wireless@vger.kernel.org
Cc: johannes@sipsolutions.net
Subject: Re: [RFC] mac80211: add extap functionality
Date: Wed, 17 Feb 2016 17:55:09 +0100	[thread overview]
Message-ID: <56C4A5ED.4060802@openwrt.org> (raw)
In-Reply-To: <1455710131-9967-1-git-send-email-grzegorz.bajorski@tieto.com>

On 2016-02-17 12:55, Grzegorz Bajorski wrote:
> Client interface briding was only possible when 4addr frames were used with
> a 4addr/WDS aware AP. It was not possible to do it otherwise due to 3addr
> frame limitation.
> 
> The extap logic introduces a smart MAC address masking/translation
> (including modyfing packets beyond SA/DA, e.g. DHCP broadcast flag is set).
> 
> There are still some unsolved problems and bugs:
>  - due to bridge port routing and sk_buff payload sharing skb_copy() is
>    performed; this ideally should be reworked
>  - ipv6 support is still not finished
>  - extap is enabled by default currently; it should be configurable via
>    nl80211 the same way 4addr is
> 
> There's also an idea to move this as a generic link driver (just like
> macvlan, et al) which would allow unmodified cfg80211 drivers to enjoy the
> extap functionality. Thoughts?
> 
> Note: This changes cfg80211 file in this single patch only for reviewing
> convienence.
> 
> This is an early draft to solicit comments on the design.
> 
> Signed-off-by: Grzegorz Bajorski <grzegorz.bajorski@tieto.com>
You can get a lot of the same effect (sharing the same subnet between
hosts behind multiple interfaces and having forwarding between them)
without any changes to mac80211.

OpenWrt uses a daemon called 'relayd' which I wrote some years ago. It
does ARP translation, DHCP packet mangling and sets up policy routing to
forward packets between multiple interfaces.

You can find it here:
http://git.openwrt.org/?p=project/relayd.git;a=summary
git://git.openwrt.org/project/relayd.git

Since you can cover the same use cases with user space code, I don't
think it's a good idea to put bridge emulation hacks in the kernel's
wireless stack.

- Felix

  reply	other threads:[~2016-02-17 16:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-17 11:55 [RFC] mac80211: add extap functionality Grzegorz Bajorski
2016-02-17 16:55 ` Felix Fietkau [this message]
2016-02-18 13:36   ` Grzegorz Bajorski
2016-02-18 14:08     ` Felix Fietkau
2016-02-19 12:05       ` Grzegorz Bajorski
2016-02-19 16:24         ` Felix Fietkau
2016-02-22 13:50           ` Grzegorz Bajorski
2016-04-18 11:23   ` Michal Kazior
2016-04-19  9:11     ` Johannes Berg
2016-04-19 10:22       ` Michal Kazior
2016-04-19 11:02         ` Johannes Berg
2016-04-19 11:30           ` Michal Kazior

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=56C4A5ED.4060802@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=grzegorz.bajorski@tieto.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@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.