From: Felix Fietkau <nbd@openwrt.org>
To: Grzegorz Bajorski <grzegorz.bajorski@tieto.com>
Cc: linux-wireless@vger.kernel.org,
Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [RFC] mac80211: add extap functionality
Date: Thu, 18 Feb 2016 15:08:38 +0100 [thread overview]
Message-ID: <56C5D066.8010405@openwrt.org> (raw)
In-Reply-To: <CAPGg_YC4Scq_s4bR5qMjJgRErFODhVm1MUy0SyvFAwzxA0U2Nw@mail.gmail.com>
On 2016-02-18 14:36, Grzegorz Bajorski wrote:
> 2016-02-17 17:55 GMT+01:00 Felix Fietkau <nbd@openwrt.org>:
>> 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.
>
> What about performance? Quick test show that is slow ~ 100-120 mbps
> (UDP tests) and procesor is overloaded. Am I missing something? I
> would expect it to be greater. (4 x 4 antena setup VHT80)
What platform are you testing it on, and what kind of UDP test are you
running?
- Felix
next prev parent reply other threads:[~2016-02-18 14:08 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
2016-02-18 13:36 ` Grzegorz Bajorski
2016-02-18 14:08 ` Felix Fietkau [this message]
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=56C5D066.8010405@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.