From 8a8a4d8e315ea32526f47bba80bb5c6062d227d3 Mon Sep 17 00:00:00 2001 From: Konrad Derda Date: Fri, 14 Jun 2024 19:08:44 +0200 Subject: [PATCH] [netif] remove multicast promiscuous mode configuration (#10338) 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 5c69dfe8a..6c88dfab2 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 2636702b4..4d1f3ce60 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 e93c91bfd..4dac6266c 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 e50326011..89bb9c8e5 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 5ca4f50d9..29fee9da3 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 fe9c2c7b1..5c0aee0ad 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 3e103312b..27d6f2365 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 a736df8e4..4428a4776 100644 --- a/src/core/net/netif.hpp +++ b/src/core/net/netif.hpp @@ -612,23 +612,6 @@ public: */ 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 @@ private: 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 0c9babd6d..5ab10f986 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 e60acf8ee..46a73734d 100644 --- a/tools/otci/otci/otci.py +++ b/tools/otci/otci/otci.py @@ -1946,18 +1946,6 @@ class OTCI(object): """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 011c8a379..d065867aa 100644 --- a/tools/otci/tests/test_otci.py +++ b/tools/otci/tests/test_otci.py @@ -257,12 +257,6 @@ class TestOTCI(unittest.TestCase): 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())