[posix] add a flag to turn posix multicast routing feature on/off (#9412)

This commit adds a separate flag to be able to turn the posix part of
multicast routing implementation off/on.

The new
OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE flag
guards the feature of posix multicast routing using MFC(multicast
forwarding cache) in MRT(multicast routing table).

The existing
OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE continues
to guard the core multicast routing feature, for example handling the
MLR.req message and the multicast listeners table.

In a system where it has its own multicast routing support for packet
forwarding between Thread network and AIL, it should set
OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE to 0.
This commit is contained in:
Yang Sun
2023-09-14 16:32:00 -07:00
committed by GitHub
parent df010bcbe5
commit 8ed949e6fd
4 changed files with 25 additions and 8 deletions
+4 -4
View File
@@ -42,7 +42,7 @@
char gBackboneNetifName[IFNAMSIZ] = "";
unsigned int gBackboneNetifIndex = 0;
#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
static ot::Posix::MulticastRoutingManager sMulticastRoutingManager;
#endif
@@ -69,14 +69,14 @@ exit:
void platformBackboneSetUp(void)
{
#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
sMulticastRoutingManager.SetUp();
#endif
}
void platformBackboneTearDown(void)
{
#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
sMulticastRoutingManager.TearDown();
#endif
}
@@ -93,7 +93,7 @@ void platformBackboneStateChange(otInstance *aInstance, otChangedFlags aFlags)
OT_UNUSED_VARIABLE(aInstance);
OT_UNUSED_VARIABLE(aFlags);
#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
sMulticastRoutingManager.HandleStateChange(aInstance, aFlags);
#endif
}
+2 -2
View File
@@ -28,7 +28,7 @@
#include "posix/platform/multicast_routing.hpp"
#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#include <assert.h>
#include <net/if.h>
@@ -615,4 +615,4 @@ void MulticastRoutingManager::RemoveMulticastForwardingCache(
} // namespace Posix
} // namespace ot
#endif // OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#endif // OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
+2 -2
View File
@@ -31,7 +31,7 @@
#include "openthread-posix-config.h"
#if OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#include <stdio.h>
#include <stdlib.h>
@@ -140,6 +140,6 @@ private:
} // namespace Posix
} // namespace ot
#endif // OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#endif // OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#endif // OT_POSIX_PLATFORM_MULTICAST_ROUTING_HPP_
@@ -135,6 +135,23 @@
#define OPENTHREAD_POSIX_CONFIG_MAX_MULTICAST_FORWARDING_CACHE_TABLE (OPENTHREAD_CONFIG_MAX_MULTICAST_LISTENERS * 10)
#endif
/**
* @def OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
*
* Define as 1 to enable multicast routing support.
*
*/
#ifndef OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#define OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE \
OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#endif
#if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE && \
!OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
#error \
"OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE is required for OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE"
#endif
/**
* @def OPENTHREAD_POSIX_CONFIG_SECURE_SETTINGS_ENABLE
*