[otns] add default (weak) OTNS platform API implementation in core (#12308)

A default OTNS platform API function otPlatOtnsStatus() is now
provided that writes the status push to the log always (regardless of
configured log level). This is useful as a default handling for apps
built with -DOT_OTNS=ON, avoiding linker errors while not mandating
each platform to implement the API by itself.

Specifically it enables the Posix CLI app ot-cli to be built with OTNS
support, which is required to run Posix nodes in OTNS and receive the
status-push events via stdout logging.

The logging is emitted from the module named "Otns" so that a
simulator or other tool can easily detect the OTNS format status push
events in the log output.
This commit is contained in:
Esko Dijk
2026-01-22 19:49:37 +01:00
committed by GitHub
parent cda1a0cf05
commit 3061fa19de
6 changed files with 9 additions and 65 deletions
-4
View File
@@ -122,7 +122,3 @@ void otPlatAssertFail(const char *aFilename, int aLineNumber)
assert(false);
exit(1);
}
#if OPENTHREAD_CONFIG_OTNS_ENABLE && !OPENTHREAD_SIMULATION_VIRTUAL_TIME
void otPlatOtnsStatus(const char *aStatus) { OT_UNUSED_VARIABLE(aStatus); }
#endif
-1
View File
@@ -31,7 +31,6 @@ add_library(openthread-platform-utils OBJECT
link_metrics.cpp
logging_rtt.c
mac_frame.cpp
otns_utils.cpp
settings_ram.c
soft_source_match_table.c
uart_rtt.c
-52
View File
@@ -1,52 +0,0 @@
/*
* Copyright (c) 2020, 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.
*/
#include <openthread-core-config.h>
#include <openthread/config.h>
#include <openthread/platform/otns.h>
#include <openthread/platform/toolchain.h>
#include "common/log.hpp"
using namespace ot;
/*
* Implementation note:
* These are all "weak" so that a platform may if it chooses to override the instance.
*/
#if OPENTHREAD_CONFIG_OTNS_ENABLE
OT_TOOL_WEAK
void otPlatOtnsStatus(const char *aStatus)
{
OT_UNUSED_VARIABLE(aStatus);
LogAlways("[OTNS] %s", aStatus);
}
#endif // OPENTHREAD_CONFIG_OTNS_ENABLE