From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 304EB3CB38; Sat, 30 Oct 2021 10:24:05 -0400 (EDT) Received: by mail-io1-xd32.google.com with SMTP id e144so16084971iof.3; Sat, 30 Oct 2021 07:24:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=i9aUt7kEURQTGYp3KDQaWTJbaT68DMPLuHitHBmDYD8=; b=k/2grE9/SG7mFqvC+KhN+JaFpGXx7VE2MCD3RAAC2P/3LVHnJ7xrvSodtuFDThbg/S 2+aBs884FJcPFSNpRg4MK+8u85sMOlZDzfI3CbvFhOVDxw2il5+NiXoScuAghtgXwTvq T6GpXyrFTwDb35h+mSMUfGE3hYiY/zdsDrnQb9dz4m0M7u1EDeHCsommVxwrnEcULrne mjcQkfq4RBPOeJsZfp9kGC0Lnlq6lZuET6IqK1TYcPOjrdvbAOP+A7FLyyV6uDKIGyPR kmm9qiG8UuWYmBKBOl/eLW+/EbkJ8yRo0ZeHcgp86OPm2PNjynUW55YwsdCx1zxnWv7N tuxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=i9aUt7kEURQTGYp3KDQaWTJbaT68DMPLuHitHBmDYD8=; b=3v0Rl/nnes8V5L71JIEEW8E2BT6MGDA6Br1ayZN3BXN8a7+Ogsc0jVrWfKx3CWH56s jP1Yjo4C0xT1A+3hUWP7h7BanL6eXQ2XuNZGFdSPJFqYYWKtdbshl8bZtrxF9cRYVjFc iE7PmFMBmz71NfZSUB7PocY/a1SKxuWqxxEXvnicB9EjDoOtSMfE4dGYv78XgvK1zCR4 FZT6+UZIXa2GMfMq5g/gi47bNO5T7x1dy4ekeQX/7foE/jKkVXw1bzHvV8GB339TUe1l 2qF/v3wUj3viUQN3QsWfl4NWVUn3LoNDk04gOHnF2O5wIykrEFCFTTVgEL5qEaV8/V/5 DH3Q== X-Gm-Message-State: AOAM533fObV6WdIdK6Yqaf+s9kPCrsTCG4GS6tAe4UrYZbHCnCwy6OSl qavUPJSLBB5buPgungGRb1+bvBVzdV4jnre+yjaa5OcB X-Google-Smtp-Source: ABdhPJyga9/Mn+et2VpdVtqRdRKkf7OTI5h2wWl9VclCCz55qqvX/VBcV00hj8yY5ofOvac5rwXozG/vS5RUOh9hfGY= X-Received: by 2002:a05:6602:1504:: with SMTP id g4mr12419600iow.133.1635603844341; Sat, 30 Oct 2021 07:24:04 -0700 (PDT) MIME-Version: 1.0 References: <20211030123921.29672-1-ap420073@gmail.com> In-Reply-To: <20211030123921.29672-1-ap420073@gmail.com> From: Dave Taht Date: Sat, 30 Oct 2021 07:23:52 -0700 Message-ID: To: Cake List , ECN-Sane , Make-Wifi-fast Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [Ecn-sane] Fwd: [PATCH net-next v5 0/5] amt: add initial driver for Automatic Multicast Tunneling (AMT) X-BeenThere: ecn-sane@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion of explicit congestion notification's impact on the Internet List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Oct 2021 14:24:05 -0000 This should be "fun". ---------- Forwarded message --------- From: Taehee Yoo 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: , , , Cc: , 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 --=20 Fixing Starlink's Latencies: https://www.youtube.com/watch?v=3Dc9gLo6Xrwgw Dave T=C3=A4ht CEO, TekLibre, LLC