From 49d2fd28b9b765b12379b25cdabc1d82998f99d4 Mon Sep 17 00:00:00 2001 From: Konrad Derda Date: Tue, 4 Jun 2024 14:30:01 +0200 Subject: [PATCH] [netif] remove multicast promiscuous mode configuration Since 74c833b6236ac1dab3673fb8ebd705eca662d2b4 was introduced all IPv6 multicast packets are passed to the host. Previously used promiscuous mode configuration is now unused. This commit removes the dead code and corresponding elements as there is no use case for them at the moment (and they can confuse a user). Signed-off-by: Konrad Derda --- include/openthread/instance.h | 2 +- include/openthread/ip6.h | 21 -------------------- src/cli/README.md | 28 --------------------------- src/cli/cli.cpp | 29 ---------------------------- src/core/api/ip6_api.cpp | 10 ---------- src/core/net/ip6.cpp | 4 ---- src/core/net/netif.cpp | 1 - src/core/net/netif.hpp | 18 ----------------- tests/scripts/expect/cli-ipmaddr.exp | 10 ---------- tools/otci/otci/otci.py | 12 ------------ tools/otci/tests/test_otci.py | 6 ------ 11 files changed, 1 insertion(+), 140 deletions(-) diff --git a/include/openthread/instance.h b/include/openthread/instance.h index 5c69dfe8aa3..6c88dfab27d 100644 --- a/include/openthread/instance.h +++ b/include/openthread/instance.h @@ -53,7 +53,7 @@ extern "C" { * @note This number versions both OpenThread platform and user APIs. * */ -#define OPENTHREAD_API_VERSION (420) +#define OPENTHREAD_API_VERSION (421) /** * @addtogroup api-instance diff --git a/include/openthread/ip6.h b/include/openthread/ip6.h index 2636702b4df..4d1f3ce6021 100644 --- a/include/openthread/ip6.h +++ b/include/openthread/ip6.h @@ -381,27 +381,6 @@ otError otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Addre */ const otNetifMulticastAddress *otIp6GetMulticastAddresses(otInstance *aInstance); -/** - * Checks if multicast promiscuous mode is enabled on the Thread interface. - * - * @param[in] aInstance A pointer to an OpenThread instance. - * - * @sa otIp6SetMulticastPromiscuousEnabled - * - */ -bool otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance); - -/** - * Enables or disables multicast promiscuous mode on the Thread interface. - * - * @param[in] aInstance A pointer to an OpenThread instance. - * @param[in] aEnabled TRUE to enable Multicast Promiscuous mode, FALSE otherwise. - * - * @sa otIp6IsMulticastPromiscuousEnabled - * - */ -void otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled); - /** * Allocate a new message buffer for sending an IPv6 message. * diff --git a/src/cli/README.md b/src/cli/README.md index 272d4063fdc..b99f4250cbb 100644 --- a/src/cli/README.md +++ b/src/cli/README.md @@ -1767,34 +1767,6 @@ ff32:40:fdde:ad00:beef:0:0:1 Done ``` -### ipmaddr promiscuous - -Get multicast promiscuous mode. - -```bash -> ipmaddr promiscuous -Disabled -Done -``` - -### ipmaddr promiscuous enable - -Enable multicast promiscuous mode. - -```bash -> ipmaddr promiscuous enable -Done -``` - -### ipmaddr promiscuous disable - -Disable multicast promiscuous mode. - -```bash -> ipmaddr promiscuous disable -Done -``` - ### ipmaddr rlatn Get the Realm-Local All Thread Nodes multicast address. diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index d70978872bf..ea02362bfbd 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -3365,35 +3365,6 @@ template <> otError Interpreter::Process(Arg aArgs[]) SuccessOrExit(error = aArgs[1].ParseAsIp6Address(address)); error = otIp6UnsubscribeMulticastAddress(GetInstancePtr(), &address); } - /** - * @cli ipmaddr promiscuous - * @code - * ipmaddr promiscuous - * Disabled - * Done - * @endcode - * @par api_copy - * #otIp6IsMulticastPromiscuousEnabled - */ - else if (aArgs[0] == "promiscuous") - { - /** - * @cli ipmaddr promiscuous (enable,disable) - * @code - * ipmaddr promiscuous enable - * Done - * @endcode - * @code - * ipmaddr promiscuous disable - * Done - * @endcode - * @cparam ipmaddr promiscuous @ca{enable|disable} - * @par api_copy - * #otIp6SetMulticastPromiscuousEnabled - */ - error = - ProcessEnableDisable(aArgs + 1, otIp6IsMulticastPromiscuousEnabled, otIp6SetMulticastPromiscuousEnabled); - } /** * @cli ipmaddr llatn * @code diff --git a/src/core/api/ip6_api.cpp b/src/core/api/ip6_api.cpp index 5ca4f50d9f9..29fee9da325 100644 --- a/src/core/api/ip6_api.cpp +++ b/src/core/api/ip6_api.cpp @@ -105,16 +105,6 @@ otError otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Addre return AsCoreType(aInstance).Get().UnsubscribeExternalMulticast(AsCoreType(aAddress)); } -bool otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance) -{ - return AsCoreType(aInstance).Get().IsMulticastPromiscuousEnabled(); -} - -void otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled) -{ - AsCoreType(aInstance).Get().SetMulticastPromiscuous(aEnabled); -} - void otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext) { AsCoreType(aInstance).Get().SetReceiveDatagramCallback(aCallback, aCallbackContext); diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index 0740e11a355..9e8b410c2bf 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -1122,10 +1122,6 @@ Error Ip6::HandleDatagram(OwnedPtr aMessagePtr, bool aIsReassembled) { receive = true; } - else if (Get().IsMulticastPromiscuousEnabled()) - { - forwardHost = true; - } } else { diff --git a/src/core/net/netif.cpp b/src/core/net/netif.cpp index 3e103312bf6..27d6f23654b 100644 --- a/src/core/net/netif.cpp +++ b/src/core/net/netif.cpp @@ -85,7 +85,6 @@ const otNetifMulticastAddress Netif::kLinkLocalAllRoutersMulticastAddress = { Netif::Netif(Instance &aInstance) : InstanceLocator(aInstance) - , mMulticastPromiscuous(false) { } diff --git a/src/core/net/netif.hpp b/src/core/net/netif.hpp index a736df8e4e5..4428a477630 100644 --- a/src/core/net/netif.hpp +++ b/src/core/net/netif.hpp @@ -612,23 +612,6 @@ class Netif : public InstanceLocator, private NonCopyable */ void UnsubscribeAllExternalMulticastAddresses(void); - /** - * Checks if multicast promiscuous mode is enabled on the network interface. - * - * @retval TRUE If the multicast promiscuous mode is enabled. - * @retval FALSE If the multicast promiscuous mode is disabled. - * - */ - bool IsMulticastPromiscuousEnabled(void) const { return mMulticastPromiscuous; } - - /** - * Enables multicast promiscuous mode on the network interface. - * - * @param[in] aEnabled TRUE if Multicast Promiscuous mode is enabled, FALSE otherwise. - * - */ - void SetMulticastPromiscuous(bool aEnabled) { mMulticastPromiscuous = aEnabled; } - /** * Enables range-based `for` loop iteration over external multicast addresses on the Netif that matches * a given IPv6 address type filter. @@ -702,7 +685,6 @@ class Netif : public InstanceLocator, private NonCopyable LinkedList mUnicastAddresses; LinkedList mMulticastAddresses; - bool mMulticastPromiscuous; Callback mAddressCallback; diff --git a/tests/scripts/expect/cli-ipmaddr.exp b/tests/scripts/expect/cli-ipmaddr.exp index 0c9babd6df2..5ab10f986d2 100755 --- a/tests/scripts/expect/cli-ipmaddr.exp +++ b/tests/scripts/expect/cli-ipmaddr.exp @@ -59,16 +59,6 @@ send "ipmaddr del ff0e::1\n" expect_line "Done" send "ipmaddr del ff0e::1\n" expect "Error 23: NotFound" -send "ipmaddr promiscuous enable\n" -expect_line "Done" -send "ipmaddr promiscuous\n" -expect "Enabled" -expect_line "Done" -send "ipmaddr promiscuous disable\n" -expect_line "Done" -send "ipmaddr promiscuous\n" -expect "Disabled" -expect_line "Done" send "ipmaddr something_invalid\n" expect "Error 35: InvalidCommand" diff --git a/tools/otci/otci/otci.py b/tools/otci/otci/otci.py index e60acf8eedd..46a73734db2 100644 --- a/tools/otci/otci/otci.py +++ b/tools/otci/otci/otci.py @@ -1946,18 +1946,6 @@ def has_ipmaddr(self, ip: Union[str, ipaddress.IPv6Address]): """Check if a IPv6 multicast address was subscribed by the Thread interface.""" return ip in self.get_ipmaddrs() - def get_ipmaddr_promiscuous(self) -> bool: - """Get multicast promiscuous mode.""" - return self.__parse_Enabled_or_Disabled(self.execute_command("ipmaddr promiscuous")) - - def enable_ipmaddr_promiscuous(self): - """Enable multicast promiscuous mode.""" - self.execute_command('ipmaddr promiscuous enable') - - def disable_ipmaddr_promiscuous(self): - """Disable multicast promiscuous mode.""" - self.execute_command('ipmaddr promiscuous disable') - def get_ipmaddr_llatn(self) -> Ip6Addr: """Get Link Local All Thread Nodes Multicast Address""" return self.__parse_ip6addr(self.execute_command('ipmaddr llatn')) diff --git a/tools/otci/tests/test_otci.py b/tools/otci/tests/test_otci.py index 011c8a3796d..d065867aabc 100644 --- a/tools/otci/tests/test_otci.py +++ b/tools/otci/tests/test_otci.py @@ -257,12 +257,6 @@ def _test_otci_single_node(self, leader): logging.info("EID-to-RLOC cache: %r", leader.get_eidcache()) - logging.info("ipmaddr promiscuous: %r", leader.get_ipmaddr_promiscuous()) - leader.enable_ipmaddr_promiscuous() - self.assertTrue(leader.get_ipmaddr_promiscuous()) - leader.disable_ipmaddr_promiscuous() - self.assertFalse(leader.get_ipmaddr_promiscuous()) - logging.info("leader data: %r", leader.get_leader_data()) logging.info("leader neighbor list: %r", leader.get_neighbor_list()) logging.info("leader neighbor table: %r", leader.get_neighbor_table())