net: l2: openthread: Make use of Zephyr OTBR NAT64 translator flag

This commit aims to declare and call NAT64 functions used by Border
Router application only if corresponding flag is also set.

Signed-off-by: Cristian Bulacu <cristian.bulacu@nxp.com>
This commit is contained in:
Cristian Bulacu
2025-12-11 17:12:51 +02:00
committed by Fabio Baltieri
parent d07e655638
commit f262a33a94
3 changed files with 20 additions and 24 deletions

View File

@@ -498,7 +498,7 @@ void openthread_set_receive_cb(openthread_receive_cb cb, void *context)
}
}
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
void openthread_set_nat64_receive_cb(openthread_receive_cb cb, void *context)
{
__ASSERT(cb != NULL, "NAT64 receive callback is not set");
@@ -512,7 +512,7 @@ void openthread_set_nat64_receive_cb(openthread_receive_cb cb, void *context)
openthread_mutex_unlock();
}
}
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR && CONFIG_NET_IPV4 */
void openthread_mutex_lock(void)
{

View File

@@ -223,7 +223,7 @@ out:
otMessageFree(message);
}
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
static void ot_receive_nat64_handler(otMessage *message, void *context)
{
struct otbr_msg_ctx *req = NULL;
@@ -247,7 +247,7 @@ out:
otMessageFree(message);
}
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */
static bool is_ipv6_frag(struct net_pkt *pkt)
{
@@ -346,10 +346,11 @@ static int openthread_l2_init(struct net_if *iface)
net_if_dormant_on(iface);
openthread_set_receive_cb(ot_receive_handler, (void *)ot_l2_context);
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER)
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
openthread_set_nat64_receive_cb(ot_receive_nat64_handler, (void *)ot_l2_context);
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR*/
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR*/
openthread_border_router_init(ot_l2_context);
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER */

View File

@@ -28,9 +28,9 @@
#include <zephyr/net/openthread.h>
#include <zephyr/sys/util.h>
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
#include <openthread/nat64.h>
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */
#include <inttypes.h>
#include <stdarg.h>
@@ -62,10 +62,10 @@ K_MEM_SLAB_DEFINE_STATIC(border_router_messages_slab, sizeof(struct otbr_msg_ctx
static const char *create_base_name(otInstance *ot_instance, char *base_name);
static void openthread_border_router_add_or_rm_route_to_multicast_groups(bool add);
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
static void openthread_border_router_start_nat64_service(void);
static void openthread_border_router_stop_nat64_service(void);
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */
#if defined(CONFIG_NET_IPV4)
static void openthread_border_router_check_for_dhcpv4_addr(struct net_if *iface,
@@ -148,11 +148,9 @@ int openthread_start_border_router_services(struct net_if *ot_iface, struct net_
otBorderRoutingDhcp6PdSetEnabled(instance, true);
otBackboneRouterSetEnabled(instance, true);
otSrpServerSetAutoEnableMode(instance, true);
#if (defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR) || \
defined(CONFIG_OPENTHREAD_NAT64_BORDER_ROUTING)) && \
defined(CONFIG_NET_IPV4)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
openthread_border_router_set_nat64_translator_enabled(true);
#endif
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */
#if defined(CONFIG_OPENTHREAD_DNS_UPSTREAM_QUERY)
otDnssdUpstreamQuerySetEnabled(instance, true);
@@ -195,9 +193,9 @@ static int openthread_stop_border_router_services(struct net_if *ot_iface,
infra_if_stop_icmp6_listener();
otBorderAgentSetEnabled(instance, false);
udp_plat_deinit();
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
openthread_border_router_stop_nat64_service();
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */
openthread_border_router_add_or_rm_route_to_multicast_groups(false);
}
@@ -298,9 +296,9 @@ static void ail_ipv4_address_event_handler(struct net_mgmt_event_callback *cb, u
}
mdns_plat_monitor_interface(iface);
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
openthread_border_router_start_nat64_service();
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */
}
#endif /* CONFIG_NET_IPV4 */
@@ -664,9 +662,7 @@ static void openthread_border_router_add_or_rm_route_to_multicast_groups(bool ad
}
#if (defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR) || \
defined(CONFIG_OPENTHREAD_NAT64_BORDER_ROUTING)) && \
defined(CONFIG_NET_IPV4)
#if defined(CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR)
void openthread_border_router_set_nat64_translator_enabled(bool enable)
{
otInstance *instance = openthread_get_default_instance();
@@ -676,7 +672,7 @@ void openthread_border_router_set_nat64_translator_enabled(bool enable)
otNat64SetEnabled(instance, enable);
}
}
#if defined(CONFIG_OPENTHREAD_NAT64_TRANSLATOR)
static void openthread_border_router_start_nat64_service(void)
{
otInstance *instance = openthread_get_default_instance();
@@ -708,5 +704,4 @@ static void openthread_border_router_stop_nat64_service(void)
otNat64ClearIp4Cidr(instance);
openthread_border_router_set_nat64_translator_enabled(nat64_translator_enabled);
}
#endif /* CONFIG_OPENTHREAD_NAT64_TRANSLATOR */
#endif
#endif /* CONFIG_OPENTHREAD_ZEPHYR_BORDER_ROUTER_NAT64_TRANSLATOR */