From 9adad09fc9c4bc705099db05eba6e9305242ec7f Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Thu, 31 Aug 2023 11:38:07 -0700 Subject: [PATCH] dnssd plat api --- src/mdns/CMakeLists.txt | 2 + src/mdns/dnssd_plat.cpp | 176 ++++++++++++++++++++++++++ src/mdns/dnssd_plat.hpp | 49 +++++++ third_party/openthread/CMakeLists.txt | 1 + 4 files changed, 228 insertions(+) create mode 100644 src/mdns/dnssd_plat.cpp create mode 100644 src/mdns/dnssd_plat.hpp diff --git a/src/mdns/CMakeLists.txt b/src/mdns/CMakeLists.txt index 1b28dc3cf49..6027aee1012 100644 --- a/src/mdns/CMakeLists.txt +++ b/src/mdns/CMakeLists.txt @@ -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 @@ -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 diff --git a/src/mdns/dnssd_plat.cpp b/src/mdns/dnssd_plat.cpp new file mode 100644 index 00000000000..2a2833e2b34 --- /dev/null +++ b/src/mdns/dnssd_plat.cpp @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2023, The OpenThread Authors. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @file + * This file includes definitions for implementing OpenThread DNS-SD platform APIs. + */ + +#define OTBR_LOG_TAG "DnssdPlat" + +#include "mdns/dnssd_plat.hpp" + +#include "common/code_utils.hpp" +#include "utils/dns_utils.hpp" + +namespace otbr { + + +#if OPENTHREAD_CONFIG_PLATFORM_DNSSD_ENABLE + +extern "C" otPlatDnssdState otPlatDnssdGetState(otInstance *aInstance) +{ + OT_UNUSED_VARIABLE(aInstance); + + return OT_PLAT_DNSSD_STOPPED; +} + +extern "C" void otPlatDnssdRegisterService(otInstance *aInstance, + const otPlatDnssdService *aService, + otPlatDnssdRequestId aRequestId, + otPlatDnssdRegisterCallback aCallback) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aService); + OT_UNUSED_VARIABLE(aRequestId); + OT_UNUSED_VARIABLE(aCallback); +} + +extern "C" void otPlatDnssdUnregisterService(otInstance *aInstance, + const otPlatDnssdService *aService, + otPlatDnssdRequestId aRequestId, + otPlatDnssdRegisterCallback aCallback) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aService); + OT_UNUSED_VARIABLE(aRequestId); + OT_UNUSED_VARIABLE(aCallback); +} + +extern "C" void otPlatDnssdRegisterHost(otInstance *aInstance, + const otPlatDnssdHost *aHost, + otPlatDnssdRequestId aRequestId, + otPlatDnssdRegisterCallback aCallback) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aHost); + OT_UNUSED_VARIABLE(aRequestId); + OT_UNUSED_VARIABLE(aCallback); +} + +extern "C" void otPlatDnssdUnregisterHost(otInstance *aInstance, + const otPlatDnssdHost *aHost, + otPlatDnssdRequestId aRequestId, + otPlatDnssdRegisterCallback aCallback) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aHost); + OT_UNUSED_VARIABLE(aRequestId); + OT_UNUSED_VARIABLE(aCallback); +} + +extern "C" void otPlatDnssdRegisterKey(otInstance *aInstance, + const otPlatDnssdKey *aKey, + otPlatDnssdRequestId aRequestId, + otPlatDnssdRegisterCallback aCallback) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aKey); + OT_UNUSED_VARIABLE(aRequestId); + OT_UNUSED_VARIABLE(aCallback); +} + +extern "C" void otPlatDnssdUnregisterKey(otInstance *aInstance, + const otPlatDnssdKey *aKey, + otPlatDnssdRequestId aRequestId, + otPlatDnssdRegisterCallback aCallback) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aKey); + OT_UNUSED_VARIABLE(aRequestId); + OT_UNUSED_VARIABLE(aCallback); +} + +extern "C" void otPlatDnssdStartServiceBrowser(otInstance *aInstance, const char *aServiceType, uint32_t aInfraIfIndex) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aServiceType); + OT_UNUSED_VARIABLE(aInfraIfIndex); +} + +extern "C" void otPlatDnssdStopServiceBrowser(otInstance *aInstance, const char *aServiceType, uint32_t aInfraIfIndex) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aServiceType); + OT_UNUSED_VARIABLE(aInfraIfIndex); +} + +extern "C" void otPlatDnssdStartServiceResolver(otInstance *aInstance, const otPlatDnssdServiceInstance *aServiceInstance) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aServiceInstance); +} + +extern "C" void otPlatDnssdStopServiceResolver(otInstance *aInstance, const otPlatDnssdServiceInstance *aServiceInstance) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aServiceInstance); +} + +extern "C" void otPlatDnssdStartIp6AddressResolver(otInstance *aInstance, const char *aHostName, uint32_t aInfraIfIndex) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aHostName); + OT_UNUSED_VARIABLE(aInfraIfIndex); +} + +extern "C" void otPlatDnssdStopIp6AddressResolver(otInstance *aInstance, const char *aHostName, uint32_t aInfraIfIndex) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aHostName); + OT_UNUSED_VARIABLE(aInfraIfIndex); +} + +extern "C" void otPlatDnssdStartIp4AddressResolver(otInstance *aInstance, const char *aHostName, uint32_t aInfraIfIndex) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aHostName); + OT_UNUSED_VARIABLE(aInfraIfIndex); +} + +extern "C" void otPlatDnssdStopIp4AddressResolver(otInstance *aInstance, const char *aHostName, uint32_t aInfraIfIndex) +{ + OT_UNUSED_VARIABLE(aInstance); + OT_UNUSED_VARIABLE(aHostName); + OT_UNUSED_VARIABLE(aInfraIfIndex); +} + +#endif // OPENTHREAD_CONFIG_PLATFORM_DNSSD_ENABLE + + +} // namespace otbr diff --git a/src/mdns/dnssd_plat.hpp b/src/mdns/dnssd_plat.hpp new file mode 100644 index 00000000000..1984b1b60a5 --- /dev/null +++ b/src/mdns/dnssd_plat.hpp @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2023, The OpenThread Authors. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holder nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @file + * This file includes definitions for implementing OpenThread DNS-SD platform APIs. + */ + +#ifndef OTBR_AGENT_DNSSD_PLAT_HPP_ +#define OTBR_AGENT_DNSSD_PLAT_HPP_ + +#include "openthread-br/config.h" + +#include +#include + +#include "common/types.hpp" + +namespace otbr { + + +} // namespace otbr + +#endif // OTBR_AGENT_DNSSD_PLAT_HPP_ diff --git a/third_party/openthread/CMakeLists.txt b/third_party/openthread/CMakeLists.txt index 03ad863352d..51ef5a2daf1 100644 --- a/third_party/openthread/CMakeLists.txt +++ b/third_party/openthread/CMakeLists.txt @@ -72,6 +72,7 @@ set(OT_UPTIME ON CACHE STRING "enable uptime" FORCE) if (OTBR_SRP_ADVERTISING_PROXY) set(OT_SRP_SERVER ON CACHE STRING "enable SRP server" FORCE) set(OT_EXTERNAL_HEAP ON CACHE STRING "enable external heap" FORCE) + set(OT_SRP_ADV_PROXY ON CACHE STRING "enable SRP adv proxy" FORCE) endif() if (NOT OT_THREAD_VERSION STREQUAL "1.1")