Bluetooth: Mesh: Drop explicit support for Bluetooth Mesh 1.0.1

Bluetooth Mesh Protocol 1.1 is backward compatible with Bluetooth Mesh
Profile 1.0.1, therefore the stack can still be qualified for 1.0.1 if
needed. But explicit support for both versions requires additional
maintenance efforts and doubles the CI time. To make the stack
qualifiable for 1.0.1, the one needs to remove Private Beacons reception
and compile out SHA256 algorithm support.

What is changed:
- Removed `CONFIG_BT_MESH_V1d1` option.
- Removed `transport_legacy.c` which was using 1.0.1 implementation. The
  new transport layer has new SaR logic that should still be possible to
  qualify for 1.0.1.
- Removed the legacy transport Kconfig options. They are superseded by
  the new transport Kconfig options.
- Tester app: `overlay-mesh-v1d1.conf` is merged into
  `overlay-mesh.conf`.
- Removed BabbleSim tests for 1.0.1.
- Updated documentation.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
This commit is contained in:
Pavel Vasilyev 2023-11-29 13:28:08 +01:00 committed by Carles Cufí
commit 981c79b7ce
173 changed files with 112 additions and 2635 deletions

View file

@ -18,14 +18,9 @@ zephyr_library_sources_ifdef(CONFIG_BT_MESH
cfg_srv.c
health_srv.c
va.c
transport.c
)
if (CONFIG_BT_MESH_V1d1)
zephyr_library_sources(transport.c)
else()
zephyr_library_sources(transport_legacy.c)
endif()
zephyr_library_sources_ifdef(CONFIG_BT_MESH_ADV_LEGACY adv_legacy.c)
zephyr_library_sources_ifdef(CONFIG_BT_MESH_ADV_EXT adv_ext.c)

View file

@ -512,56 +512,6 @@ config BT_MESH_TX_SEG_MAX
which leaves 56 bytes for application layer data using a
4-byte MIC and 52 bytes using an 8-byte MIC.
if !BT_MESH_V1d1
config BT_MESH_TX_SEG_RETRANS_COUNT
int "Transport message segment retransmit attempts"
default 4
range 1 8
help
Maximum number of transport message segment retransmit attempts
for outgoing segment message.
config BT_MESH_TX_SEG_RETRANS_TIMEOUT_UNICAST
int "Transport message segment retransmit interval for unicast messages"
default 400
range 200 500
help
Maximum time of retransmit segment message to unicast address.
config BT_MESH_TX_SEG_RETRANS_TIMEOUT_GROUP
int "Transport message segment retransmit interval for group messages"
default 50
range 20 200
help
Maximum time of retransmit segment message to group address.
config BT_MESH_SEG_ACK_BASE_TIMEOUT
int "SegAck transmission base timeout"
default 150
range 150 400
help
Defines a base timeout for the acknowledgment timer used to delay
transmission of the Segmented Acknowledgment message.
config BT_MESH_SEG_ACK_PER_HOP_TIMEOUT
int "SegAck transmission timeout per hop"
default 50
range 50 250
help
Defines an additional per-hop timeout for the acknowledgment timer
used to delay transmission of the Segmented Acknowledgment message.
config BT_MESH_SEG_ACK_PER_SEGMENT_TIMEOUT
int "SegAck transmission timeout per segment not yet received"
default 0
range 0 100
help
Defines an additional timeout for the acknowledgment timer for every
segment not yet received.
endif # !BT_MESH_V1d1
endmenu # Transport SAR configuration
config BT_MESH_DEFAULT_TTL
@ -1112,21 +1062,13 @@ config BT_MESH_FRIEND_ADV_LATENCY
endif # BT_MESH_FRIEND
menuconfig BT_MESH_V1d1
bool "Bluetooth Mesh v1.1 support"
help
This option enables Bluetooth Mesh v1.1 support. Bluetooth Mesh v1.1
is backward compatible with v1.0.1.
config BT_MESH_ECDH_P256_CMAC_AES128_AES_CCM
bool "Support CMAC AES128 for OOB authentication" if BT_MESH_V1d1
bool "Support CMAC AES128 for OOB authentication"
depends on BT_MESH_PROV
default y
help
Enable this option to support CMAC AES128 for OOB authentication.
if BT_MESH_V1d1
config BT_MESH_ECDH_P256_HMAC_SHA256_AES_CCM
bool "Support HMAC SHA256 for OOB authentication"
depends on BT_MESH_PROV
@ -1696,8 +1638,6 @@ config BT_MESH_SAR_RX_ACK_RETRANS_COUNT
endmenu
endif # BT_MESH_V1d1
menu "Capabilities"
config BT_MESH_SUBNET_COUNT

View file

@ -2380,7 +2380,6 @@ size_t bt_mesh_comp_page_size(uint8_t page)
int bt_mesh_comp_store(void)
{
#if IS_ENABLED(CONFIG_BT_MESH_V1d1)
NET_BUF_SIMPLE_DEFINE(buf, CONFIG_BT_MESH_COMP_PST_BUF_SIZE);
int err;
@ -2410,7 +2409,7 @@ int bt_mesh_comp_store(void)
LOG_DBG("Stored CDP%d", comp_data_pages[i].page);
}
#endif
return 0;
}

View file

@ -528,7 +528,6 @@ static bool secure_beacon_authenticate(struct bt_mesh_subnet *sub, void *cb_data
return false;
}
#if defined(CONFIG_BT_MESH_V1d1)
static bool priv_beacon_decrypt(struct bt_mesh_subnet *sub, void *cb_data)
{
struct beacon_params *params = cb_data;
@ -567,7 +566,6 @@ static bool priv_beacon_decrypt(struct bt_mesh_subnet *sub, void *cb_data)
return false;
}
#endif
static void net_beacon_register(struct bt_mesh_beacon *beacon, bool priv)
{
@ -658,7 +656,6 @@ static void secure_beacon_recv(struct net_buf_simple *buf)
net_beacon_resolve(&params, secure_beacon_authenticate);
}
#if defined(CONFIG_BT_MESH_V1d1)
static void private_beacon_recv(struct net_buf_simple *buf)
{
struct beacon_params params;
@ -675,7 +672,6 @@ static void private_beacon_recv(struct net_buf_simple *buf)
net_beacon_resolve(&params, priv_beacon_decrypt);
}
#endif
void bt_mesh_beacon_recv(struct net_buf_simple *buf)
{
@ -699,9 +695,7 @@ void bt_mesh_beacon_recv(struct net_buf_simple *buf)
secure_beacon_recv(buf);
break;
case BEACON_TYPE_PRIVATE:
#if defined(CONFIG_BT_MESH_V1d1)
private_beacon_recv(buf);
#endif
break;
default:
LOG_WRN("Unknown beacon type 0x%02x", type);

View file

@ -35,10 +35,7 @@
#include "prov.h"
#include "cfg.h"
#include "statistic.h"
#ifdef CONFIG_BT_MESH_V1d1
#include "sar_cfg_internal.h"
#endif
#define LOG_LEVEL CONFIG_BT_MESH_NET_LOG_LEVEL
#include <zephyr/logging/log.h>
@ -84,10 +81,8 @@ static uint16_t msg_cache_next;
/* Singleton network context (the implementation only supports one) */
struct bt_mesh_net bt_mesh = {
.local_queue = SYS_SLIST_STATIC_INIT(&bt_mesh.local_queue),
#ifdef CONFIG_BT_MESH_V1d1
.sar_tx = BT_MESH_SAR_TX_INIT,
.sar_rx = BT_MESH_SAR_RX_INIT,
#endif
#if defined(CONFIG_BT_MESH_PRIV_BEACONS)
.priv_beacon_int = 0x3c,

View file

@ -76,9 +76,7 @@ struct bt_mesh_subnet {
struct bt_mesh_key identity; /* IdentityKey */
#endif
struct bt_mesh_key beacon; /* BeaconKey */
#if defined(CONFIG_BT_MESH_V1d1)
struct bt_mesh_key priv_beacon; /* PrivateBeaconKey */
#endif
} keys[2];
#if defined(CONFIG_BT_MESH_PROXY_SOLICITATION)
bool sol_tx;

File diff suppressed because it is too large Load diff