From 7e4ada6f169a85ba118e54f90c4a18d1151b6ba9 Mon Sep 17 00:00:00 2001 From: jinran-google Date: Tue, 29 Mar 2022 15:10:27 +0800 Subject: [PATCH] [settings] reserve settings keys for vendor use (#7532) --- include/openthread/instance.h | 2 +- include/openthread/platform/settings.h | 4 ++++ src/core/common/settings.hpp | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/openthread/instance.h b/include/openthread/instance.h index 0de3ec889..cc2fdeb92 100644 --- a/include/openthread/instance.h +++ b/include/openthread/instance.h @@ -53,7 +53,7 @@ extern "C" { * @note This number versions both OpenThread platform and user APIs. * */ -#define OPENTHREAD_API_VERSION (199) +#define OPENTHREAD_API_VERSION (200) /** * @addtogroup api-instance diff --git a/include/openthread/platform/settings.h b/include/openthread/platform/settings.h index 826344e70..a5d609965 100644 --- a/include/openthread/platform/settings.h +++ b/include/openthread/platform/settings.h @@ -75,6 +75,10 @@ enum OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d, ///< The SRP server info (UDP port). OT_SETTINGS_KEY_LEGACY_NAT64_PREFIX = 0x000e, ///< Reserved. Legacy NAT64 prefix. OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f, ///< BR ULA prefix. + + // Keys in range 0x8000-0xffff are reserved for vendor-specific use. + OT_SETTINGS_KEY_VENDOR_RESERVED_MIN = 0x8000, + OT_SETTINGS_KEY_VENDOR_RESERVED_MAX = 0xffff, }; /** diff --git a/src/core/common/settings.hpp b/src/core/common/settings.hpp index be53fa3eb..da227f5e8 100644 --- a/src/core/common/settings.hpp +++ b/src/core/common/settings.hpp @@ -128,6 +128,8 @@ public: }; static constexpr Key kLastKey = kKeyBrUlaPrefix; ///< The last (numerically) enumerator value in `Key`. + static_assert(static_cast(kLastKey) < static_cast(OT_SETTINGS_KEY_VENDOR_RESERVED_MIN), + "Core settings keys overlap with vendor reserved keys"); /** * This structure represents the device's own network information for settings storage.