From: Dave Taht <dave.taht@gmail.com>
To: Cake List <cake@lists.bufferbloat.net>,
ECN-Sane <ecn-sane@lists.bufferbloat.net>,
Make-Wifi-fast <make-wifi-fast@lists.bufferbloat.net>
Subject: [Cake] Fwd: [PATCH net-next v5 0/5] amt: add initial driver for Automatic Multicast Tunneling (AMT)
Date: Sat, 30 Oct 2021 07:23:52 -0700 [thread overview]
Message-ID: <CAA93jw5kd5wZGg6f-CTNiJW10ZTPdOdE15KEEQDuNS3JhBto9A@mail.gmail.com> (raw)
In-Reply-To: <20211030123921.29672-1-ap420073@gmail.com>
This should be "fun".
---------- Forwarded message ---------
From: Taehee Yoo <ap420073@gmail.com>
Date: Sat, Oct 30, 2021 at 5:42 AM
Subject: [PATCH net-next v5 0/5] amt: add initial driver for Automatic
Multicast Tunneling (AMT)
To: <davem@davemloft.net>, <kuba@kernel.org>, <dsahern@kernel.org>,
<netdev@vger.kernel.org>
Cc: <dkirjanov@suse.de>, <ap420073@gmail.com>
This is an implementation of AMT(Automatic Multicast Tunneling), RFC 7450.
https://datatracker.ietf.org/doc/html/rfc7450
This implementation supports IGMPv2, IGMPv3, MLDv1, MLDv2, and IPv4
underlay.
Summary of RFC 7450
The purpose of this protocol is to provide multicast tunneling.
The main use-case of this protocol is to provide delivery multicast
traffic from a multicast-enabled network to sites that lack multicast
connectivity to the source network.
There are two roles in AMT protocol, Gateway, and Relay.
The main purpose of Gateway mode is to forward multicast listening
information(IGMP, MLD) to the source.
The main purpose of Relay mode is to forward multicast data to listeners.
These multicast traffics(IGMP, MLD, multicast data packets) are tunneled.
Listeners are located behind Gateway endpoint.
But gateway itself can be a listener too.
Senders are located behind Relay endpoint.
___________ _________ _______ ________
| | | | | | | |
| Listeners <-----> Gateway <-----> Relay <-----> Source |
|___________| |_________| |_______| |________|
IGMP/MLD---------(encap)----------->
<-------------(decap)--------(encap)------Multicast Data
Usage of AMT interface
1. Create gateway interface
ip link add amtg type amt mode gateway local 10.0.0.1 discovery 10.0.0.2 \
dev gw1_rt gateway_port 2268 relay_port 2268
2. Create Relay interface
ip link add amtr type amt mode relay local 10.0.0.2 dev relay_rt \
relay_port 2268 max_tunnels 4
v1 -> v2:
- Eliminate sparse warnings.
- Use bool type instead of __be16 for identifying v4/v6 protocol.
v2 -> v3:
- Fix compile warning due to unsed variable.
- Add missing spinlock comment.
- Update help message of amt in Kconfig.
v3 -> v4:
- Split patch.
- Use CHECKSUM_NONE instead of CHECKSUM_UNNECESSARY.
- Fix compile error.
v4 -> v5:
- Remove unnecessary rcu_read_lock().
- Remove unnecessary amt_change_mtu().
- Change netlink error message.
- Add validation for IFLA_AMT_LOCAL_IP and IFLA_AMT_DISCOVERY_IP.
- Add comments in amt.h.
- Add missing dev_put() in error path of amt_newlink().
- Fix typo.
- Add BUILD_BUG_ON() in amt_smb_cb().
- Use macro instead of magic values.
- Use kzalloc() instead of kmalloc().
- Add selftest script.
Taehee Yoo (5):
amt: add control plane of amt interface
amt: add data plane of amt interface
amt: add multicast(IGMP) report message handler
amt: add mld report message handler
selftests: add amt interface selftest script
MAINTAINERS | 8 +
drivers/net/Kconfig | 16 +
drivers/net/Makefile | 1 +
drivers/net/amt.c | 3290 ++++++++++++++++++++++++++
include/net/amt.h | 386 +++
include/uapi/linux/amt.h | 62 +
tools/testing/selftests/net/Makefile | 1 +
tools/testing/selftests/net/amt.sh | 284 +++
tools/testing/selftests/net/config | 1 +
9 files changed, 4049 insertions(+)
create mode 100644 drivers/net/amt.c
create mode 100644 include/net/amt.h
create mode 100644 include/uapi/linux/amt.h
create mode 100644 tools/testing/selftests/net/amt.sh
--
2.17.1
--
Fixing Starlink's Latencies: https://www.youtube.com/watch?v=c9gLo6Xrwgw
Dave Täht CEO, TekLibre, LLC
next parent reply other threads:[~2021-10-30 14:24 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20211030123921.29672-1-ap420073@gmail.com>
2021-10-30 14:23 ` Dave Taht [this message]
2021-10-30 17:17 ` [Cake] [Make-wifi-fast] " Bob McMahon
2021-10-30 17:45 ` Dave Taht
2021-10-30 18:55 ` Bob McMahon
2021-10-31 19:34 ` Holland, Jake
2021-10-31 20:16 ` Bob McMahon
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
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAA93jw5kd5wZGg6f-CTNiJW10ZTPdOdE15KEEQDuNS3JhBto9A@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=cake@lists.bufferbloat.net \
--cc=ecn-sane@lists.bufferbloat.net \
--cc=make-wifi-fast@lists.bufferbloat.net \
/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