Skip to content

Commit

Permalink
[dnssd] implement otPlatDnssd APIs
Browse files Browse the repository at this point in the history
This commit adds `DnssPlatform` module which implements OpenThread
platform APIs `otPlatDnssd` for registering and unregistering host,
service, and key items, and APIs for starting/stopping service
browsers, service resolvers, and address resolvers.

This commit also adds a new config `OTBR_DNSSD_PLAT` which enables the
new module and ensure its related OT core module are enabled (such as
advertising-proxy).
  • Loading branch information
abtink committed Feb 26, 2024
1 parent ed1efff commit f78094e
Show file tree
Hide file tree
Showing 9 changed files with 845 additions and 2 deletions.
6 changes: 6 additions & 0 deletions etc/cmake/options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,12 @@ if (OTBR_DNSSD_DISCOVERY_PROXY)
target_compile_definitions(otbr-config INTERFACE OTBR_ENABLE_DNSSD_DISCOVERY_PROXY=1)
endif()

# When enabled the Advertising Proxy and Discovery proxy will be supported by OpenThread core
option(OTBR_DNSSD_PLAT "Enable DNS-SD plat APIs for Advertising proxy and Discovery proxy in core" OFF)
if (OTBR_DNSSD_PLAT)
target_compile_definitions(otbr-config INTERFACE OTBR_ENABLE_DNSSD_PLAT=1)
endif()

option(OTBR_UNSECURE_JOIN "Enable unsecure joining" OFF)
if(OTBR_UNSECURE_JOIN)
target_compile_definitions(otbr-config INTERFACE OTBR_ENABLE_UNSECURE_JOIN=1)
Expand Down
1 change: 1 addition & 0 deletions script/_otbr
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ otbr_install()
"-DOTBR_DBUS=ON"
"-DOTBR_DNSSD_DISCOVERY_PROXY=ON"
"-DOTBR_SRP_ADVERTISING_PROXY=ON"
"-DOTBR_DNSSD_PLAT=OFF"
"-DOTBR_INFRA_IF_NAME=${INFRA_IF_NAME}"
"-DOTBR_MDNS=${OTBR_MDNS:=mDNSResponder}"
# Force re-evaluation of version strings
Expand Down
12 changes: 12 additions & 0 deletions src/agent/application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ Application::Application(const std::string &aInterfaceName,
#if OTBR_ENABLE_BACKBONE_ROUTER
, mBackboneAgent(mNcp, aInterfaceName, mBackboneInterfaceName)
#endif
#if OTBR_ENABLE_DNSSD_PLAT
, mDnssdPlatform(mNcp, *mPublisher)
#endif
#if OTBR_ENABLE_SRP_ADVERTISING_PROXY
, mAdvertisingProxy(mNcp, *mPublisher)
#endif
Expand Down Expand Up @@ -109,6 +112,9 @@ void Application::Init(void)
#if OTBR_ENABLE_BACKBONE_ROUTER
mBackboneAgent.Init();
#endif
#if OTBR_ENABLE_DNSSD_PLAT
mDnssdPlatform.Start();
#endif
#if OTBR_ENABLE_SRP_ADVERTISING_PROXY
mAdvertisingProxy.SetEnabled(true);
#endif
Expand All @@ -131,6 +137,9 @@ void Application::Init(void)

void Application::Deinit(void)
{
#if OTBR_ENABLE_DNSSD_PLAT
mDnssdPlatform.Stop();
#endif
#if OTBR_ENABLE_SRP_ADVERTISING_PROXY
mAdvertisingProxy.SetEnabled(false);
#endif
Expand Down Expand Up @@ -226,6 +235,9 @@ void Application::HandleMdnsState(Mdns::Publisher::State aState)
{
OTBR_UNUSED_VARIABLE(aState);

#if OTBR_ENABLE_DNSSD_PLAT
mDnssdPlatform.HandleMdnsPublisherStateChange(aState);
#endif
#if OTBR_ENABLE_BORDER_AGENT
mBorderAgent.HandleMdnsState(aState);
#endif
Expand Down
3 changes: 3 additions & 0 deletions src/agent/application.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,9 @@ class Application : private NonCopyable
#if OTBR_ENABLE_BACKBONE_ROUTER
BackboneRouter::BackboneAgent mBackboneAgent;
#endif
#if OTBR_ENABLE_DNSSD_PLAT
DnssdPlatform mDnssdPlatform;
#endif
#if OTBR_ENABLE_SRP_ADVERTISING_PROXY
AdvertisingProxy mAdvertisingProxy;
#endif
Expand Down
1 change: 1 addition & 0 deletions src/border_agent/border_agent.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
#include "backbone_router/backbone_agent.hpp"
#include "common/code_utils.hpp"
#include "common/mainloop.hpp"
#include "mdns/dnssd_plat.hpp"
#include "mdns/mdns.hpp"
#include "ncp/ncp_openthread.hpp"
#include "sdp_proxy/advertising_proxy.hpp"
Expand Down
2 changes: 2 additions & 0 deletions src/mdns/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ if(OTBR_MDNS STREQUAL "avahi")
add_library(otbr-mdns
mdns.cpp
mdns_avahi.cpp
dnssd_plat.cpp
)
target_compile_definitions(otbr-mdns PUBLIC
OTBR_ENABLE_MDNS_AVAHI=1
Expand All @@ -48,6 +49,7 @@ if(OTBR_MDNS STREQUAL "mDNSResponder")
add_library(otbr-mdns
mdns.cpp
mdns_mdnssd.cpp
dnssd_plat.cpp
)
target_compile_definitions(otbr-mdns PUBLIC
OTBR_ENABLE_MDNS_MDNSSD=1
Expand Down
Loading

0 comments on commit f78094e

Please sign in to comment.