Explorar el Código

NimBLE: Update NimBLE to latest 1.3.0 release

Prasad Alatkar hace 5 años
padre
commit
8224aa69a2

+ 3 - 2
components/bt/CMakeLists.txt

@@ -420,6 +420,7 @@ if(CONFIG_BT_ENABLED)
                     host/nimble/nimble/nimble/host/include
                     host/nimble/nimble/nimble/host/services/ans/include
                     host/nimble/nimble/nimble/host/services/bas/include
+                    host/nimble/nimble/nimble/host/services/dis/include
                     host/nimble/nimble/nimble/host/services/gap/include
                     host/nimble/nimble/nimble/host/services/gatt/include
                     host/nimble/nimble/nimble/host/services/ias/include
@@ -462,6 +463,7 @@ if(CONFIG_BT_ENABLED)
                     "host/nimble/nimble/nimble/host/services/ans/src/ble_svc_ans.c"
                     "host/nimble/nimble/nimble/host/services/gap/src/ble_svc_gap.c"
                     "host/nimble/nimble/nimble/host/services/bas/src/ble_svc_bas.c"
+                    "host/nimble/nimble/nimble/host/services/dis/src/ble_svc_dis.c"
                     "host/nimble/nimble/nimble/host/services/lls/src/ble_svc_lls.c"
                     "host/nimble/nimble/nimble/host/src/ble_hs_conn.c"
                     "host/nimble/nimble/nimble/host/src/ble_store_util.c"
@@ -478,7 +480,6 @@ if(CONFIG_BT_ENABLED)
                     "host/nimble/nimble/nimble/host/src/ble_hs_stop.c"
                     "host/nimble/nimble/nimble/host/src/ble_hs.c"
                     "host/nimble/nimble/nimble/host/src/ble_hs_hci_evt.c"
-                    "host/nimble/nimble/nimble/host/src/ble_hs_dbg.c"
                     "host/nimble/nimble/nimble/host/src/ble_hs_mqueue.c"
                     "host/nimble/nimble/nimble/host/src/ble_hs_periodic_sync.c"
                     "host/nimble/nimble/nimble/host/src/ble_att.c"
@@ -511,7 +512,6 @@ if(CONFIG_BT_ENABLED)
                     "host/nimble/nimble/nimble/host/store/ram/src/ble_store_ram.c"
                     "host/nimble/nimble/nimble/host/store/config/src/ble_store_config.c"
                     "host/nimble/nimble/nimble/host/store/config/src/ble_store_nvs.c"
-                    "host/nimble/nimble/nimble/src/ble_util.c"
                     "host/nimble/nimble/porting/npl/freertos/src/nimble_port_freertos.c"
                     "host/nimble/nimble/porting/npl/freertos/src/npl_os_freertos.c"
                     "host/nimble/nimble/porting/nimble/src/endian.c"
@@ -547,6 +547,7 @@ if(CONFIG_BT_ENABLED)
                         "host/nimble/nimble/nimble/host/mesh/src/transport.c"
                         "host/nimble/nimble/nimble/host/mesh/src/prov.c"
                         "host/nimble/nimble/nimble/host/mesh/src/mesh.c"
+                        "host/nimble/nimble/nimble/host/mesh/src/nodes.c"
                         "host/nimble/nimble/nimble/host/mesh/src/access.c"
                         "host/nimble/nimble/nimble/host/mesh/src/cfg_srv.c"
                         "host/nimble/nimble/nimble/host/mesh/src/cfg_cli.c"

+ 2 - 0
components/bt/component.mk

@@ -172,6 +172,7 @@ COMPONENT_ADD_INCLUDEDIRS += host/nimble/nimble/nimble/include
                              host/nimble/nimble/porting/npl/freertos/include       \
                              host/nimble/nimble/nimble/host/services/ans/include   \
                              host/nimble/nimble/nimble/host/services/bas/include   \
+                             host/nimble/nimble/nimble/host/services/dis/include   \
                              host/nimble/nimble/nimble/host/services/gap/include   \
                              host/nimble/nimble/nimble/host/services/gatt/include  \
                              host/nimble/nimble/nimble/host/services/ias/include   \
@@ -193,6 +194,7 @@ COMPONENT_SRCDIRS += host/nimble/nimble/nimble/host/src
                      host/nimble/nimble/porting/npl/freertos/src                   \
                      host/nimble/nimble/nimble/host/services/ans/src               \
                      host/nimble/nimble/nimble/host/services/bas/src               \
+                     host/nimble/nimble/nimble/host/services/dis/src               \
                      host/nimble/nimble/nimble/host/services/gap/src               \
                      host/nimble/nimble/nimble/host/services/gatt/src              \
                      host/nimble/nimble/nimble/host/services/ias/src               \

+ 53 - 0
components/bt/host/nimble/Kconfig.in

@@ -38,6 +38,38 @@ choice BT_NIMBLE_MEM_ALLOC_MODE
 
 endchoice #BT_NIMBLE_MEM_ALLOC_MODE
 
+choice BT_NIMBLE_LOG_LEVEL
+    prompt "NimBLE Host log verbosity"
+    depends on BT_NIMBLE_ENABLED
+    default BT_NIMBLE_LOG_LEVEL_INFO
+    help
+        Select NimBLE log level. Please make a note that the selected NimBLE log
+        verbosity can not exceed the level set in "Component config --> Log output
+        --> Default log verbosity".
+
+    config BT_NIMBLE_LOG_LEVEL_NONE
+        bool "No logs"
+    config BT_NIMBLE_LOG_LEVEL_CRIT
+        bool "Critical logs"
+    config BT_NIMBLE_LOG_LEVEL_ERROR
+        bool "Error logs"
+    config BT_NIMBLE_LOG_LEVEL_WARNING
+        bool "Warning logs"
+    config BT_NIMBLE_LOG_LEVEL_INFO
+        bool "Info logs"
+    config BT_NIMBLE_LOG_LEVEL_DEBUG
+        bool "Debug logs"
+endchoice #BT_NIMBLE_LOG_LEVEL
+
+config BT_NIMBLE_LOG_LEVEL
+    int
+    default 0 if BT_NIMBLE_LOG_LEVEL_DEBUG
+    default 1 if BT_NIMBLE_LOG_LEVEL_INFO
+    default 2 if BT_NIMBLE_LOG_LEVEL_WARNING
+    default 3 if BT_NIMBLE_LOG_LEVEL_ERROR
+    default 4 if BT_NIMBLE_LOG_LEVEL_CRIT
+    default 5 if BT_NIMBLE_LOG_LEVEL_NONE
+
 config BT_NIMBLE_MAX_CONNECTIONS
     int "Maximum number of concurrent connections"
     range 1 9
@@ -356,6 +388,20 @@ config BT_NIMBLE_MESH_DEVICE_NAME
     help
         This value defines Bluetooth Mesh device/node name
 
+config BT_NIMBLE_MESH_NODE_COUNT
+    int "Set mesh node count"
+    default 1
+    depends on BT_NIMBLE_MESH
+    help
+        Defines mesh node count.
+
+config BT_NIMBLE_MESH_PROVISIONER
+    bool "Enable BLE mesh provisioner"
+    default 0
+    depends on BT_NIMBLE_MESH
+    help
+        Enable mesh provisioner.
+
 config BT_NIMBLE_CRYPTO_STACK_MBEDTLS
     bool "Override TinyCrypt with mbedTLS for crypto computations"
     default y
@@ -365,3 +411,10 @@ config BT_NIMBLE_CRYPTO_STACK_MBEDTLS
     help
         Enable this option to choose mbedTLS instead of TinyCrypt for crypto
         computations.
+
+config BT_NIMBLE_HS_STOP_TIMEOUT_MS
+    int "BLE host stop timeout in msec"
+    default 2000
+    depends on BT_NIMBLE_ENABLED
+    help
+        BLE Host stop procedure timeout in milliseconds.

+ 2 - 0
components/bt/host/nimble/esp-hci/src/esp_nimble_hci.c

@@ -32,6 +32,8 @@
 #include "esp_compiler.h"
 
 #define NIMBLE_VHCI_TIMEOUT_MS  2000
+#define BLE_HCI_EVENT_HDR_LEN               (2)
+#define BLE_HCI_CMD_HDR_LEN                 (3)
 
 static ble_hci_trans_rx_cmd_fn *ble_hci_rx_cmd_hs_cb;
 static void *ble_hci_rx_cmd_hs_arg;

+ 1 - 1
components/bt/host/nimble/nimble

@@ -1 +1 @@
-Subproject commit ba72e37ac40c13b66ad49c3178c0dbc9588add61
+Subproject commit 0563f7f094d817bf0db3728e802f99a196569b27

+ 252 - 0
components/bt/host/nimble/port/include/esp_nimble_cfg.h

@@ -25,6 +25,10 @@
 #define MYNEWT_VAL_MSYS_1_BLOCK_SIZE (292)
 #endif
 
+#ifndef MYNEWT_VAL_MSYS_1_SANITY_MIN_COUNT
+#define MYNEWT_VAL_MSYS_1_SANITY_MIN_COUNT (0)
+#endif
+
 #ifndef MYNEWT_VAL_MSYS_2_BLOCK_COUNT
 #define MYNEWT_VAL_MSYS_2_BLOCK_COUNT (0)
 #endif
@@ -267,10 +271,22 @@
 #define MYNEWT_VAL_BLE_ATT_PREFERRED_MTU CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU
 #endif
 
+#ifndef MYNEWT_VAL_BLE_HS_LOG_LVL
+#define MYNEWT_VAL_BLE_HS_LOG_LVL CONFIG_BT_NIMBLE_LOG_LEVEL
+#endif
+
 #ifndef MYNEWT_VAL_BLE_PERIODIC_ADV
 #define MYNEWT_VAL_BLE_PERIODIC_ADV (0)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_PERIODIC_ADV_SYNC_TRANSFER
+#define MYNEWT_VAL_BLE_PERIODIC_ADV_SYNC_TRANSFER (0)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_VERSION
+#define MYNEWT_VAL_BLE_VERSION (50)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_ATT_SVR_FIND_INFO
 #define MYNEWT_VAL_BLE_ATT_SVR_FIND_INFO (1)
 #endif
@@ -479,6 +495,18 @@
 #define MYNEWT_VAL_BLE_HS_REQUIRE_OS (1)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_HS_STOP_ON_SHUTDOWN
+#define MYNEWT_VAL_BLE_HS_STOP_ON_SHUTDOWN (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_HS_STOP_ON_SHUTDOWN_TIMEOUT
+#define MYNEWT_VAL_BLE_HS_STOP_ON_SHUTDOWN_TIMEOUT CONFIG_BT_NIMBLE_HS_STOP_TIMEOUT_MS
+#endif
+
+#ifndef MYNEWT_VAL_BLE_HS_SYSINIT_STAGE
+#define MYNEWT_VAL_BLE_HS_SYSINIT_STAGE (200)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_L2CAP_COC_MAX_NUM
 #define MYNEWT_VAL_BLE_L2CAP_COC_MAX_NUM CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM
 #endif
@@ -615,6 +643,27 @@
 #define MYNEWT_VAL_BLE_STORE_MAX_CCCDS CONFIG_BT_NIMBLE_MAX_CCCDS
 #endif
 
+/*** @apache-mynewt-nimble/nimble/host/mesh */
+#ifndef MYNEWT_VAL_BLE_MESH_ACCESS_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_ACCESS_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_ACCESS_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_ACCESS_LOG_MOD (10)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_ADV_BUF_COUNT
+#define MYNEWT_VAL_BLE_MESH_ADV_BUF_COUNT (20)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_ADV_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_ADV_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_ADV_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_ADV_LOG_MOD (11)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_STORE_CONFIG_PERSIST
 #ifdef CONFIG_BT_NIMBLE_NVS_PERSIST
 #define MYNEWT_VAL_BLE_STORE_CONFIG_PERSIST (1)
@@ -645,6 +694,9 @@
 #define MYNEWT_VAL_BLE_MESH_ADV_TASK_PRIO (9)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_APP_KEY_COUNT
+#define MYNEWT_VAL_BLE_MESH_APP_KEY_COUNT (4)
+#endif
 
 /*** @apache-mynewt-nimble/nimble/host/mesh */
 /* Overridden by apps/blemesh (defined by @apache-mynewt-nimble/nimble/host/mesh) */
@@ -758,6 +810,14 @@
 #endif
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_FRIEND_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_FRIEND_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_FRIEND_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_FRIEND_LOG_MOD (14)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_FRIEND_LPN_COUNT
 #define MYNEWT_VAL_BLE_MESH_FRIEND_LPN_COUNT (2)
 #endif
@@ -802,6 +862,14 @@
 #define MYNEWT_VAL_BLE_MESH_LABEL_COUNT (1)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_LOG_MOD (9)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_LOW_POWER
 #ifdef CONFIG_BT_NIMBLE_MESH_LOW_POWER
 #define MYNEWT_VAL_BLE_MESH_LOW_POWER (1)
@@ -810,6 +878,14 @@
 #endif
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_LOW_POWER_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_LOW_POWER_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_LOW_POWER_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_LOW_POWER_LOG_MOD (15)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_LPN_AUTO
 #define MYNEWT_VAL_BLE_MESH_LPN_AUTO (1)
 #endif
@@ -858,6 +934,10 @@
 #define MYNEWT_VAL_BLE_MESH_LPN_SCAN_LATENCY (10)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_MODEL_EXTENSIONS
+#define MYNEWT_VAL_BLE_MESH_MODEL_EXTENSIONS (0)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_MODEL_GROUP_COUNT
 #define MYNEWT_VAL_BLE_MESH_MODEL_GROUP_COUNT (1)
 #endif
@@ -866,10 +946,30 @@
 #define MYNEWT_VAL_BLE_MESH_MODEL_KEY_COUNT (1)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_MODEL_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_MODEL_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_MODEL_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_MODEL_LOG_MOD (16)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_MSG_CACHE_SIZE
 #define MYNEWT_VAL_BLE_MESH_MSG_CACHE_SIZE (10)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_NET_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_NET_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_NET_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_NET_LOG_MOD (17)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_NODE_COUNT
+#define MYNEWT_VAL_BLE_MESH_NODE_COUNT CONFIG_BT_NIMBLE_MESH_NODE_COUNT
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_NODE_ID_TIMEOUT
 #define MYNEWT_VAL_BLE_MESH_NODE_ID_TIMEOUT (60)
 #endif
@@ -915,6 +1015,22 @@
 #endif
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_PROVISIONER
+#ifdef CONFIG_BT_NIMBLE_MESH_PROVISIONER
+#define MYNEWT_VAL_BLE_MESH_PROVISIONER (1)
+#else
+#define MYNEWT_VAL_BLE_MESH_PROVISIONER (0)
+#endif
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_PROV_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_PROV_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_PROV_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_PROV_LOG_MOD (18)
+#endif
+
 /* Overridden by @apache-mynewt-nimble/nimble/host/mesh (defined by @apache-mynewt-nimble/nimble/host/mesh) */
 #ifndef MYNEWT_VAL_BLE_MESH_PROXY
 #ifdef CONFIG_BT_NIMBLE_MESH_PROXY
@@ -928,6 +1044,13 @@
 #define MYNEWT_VAL_BLE_MESH_PROXY_FILTER_SIZE (1)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_PROXY_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_PROXY_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_PROXY_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_PROXY_LOG_MOD (19)
+#endif
 
 #ifndef MYNEWT_VAL_BLE_MESH_RELAY
 #ifdef CONFIG_BT_NIMBLE_MESH_RELAY
@@ -949,6 +1072,10 @@
 #define MYNEWT_VAL_BLE_MESH_RX_SEG_MSG_COUNT (2)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_SEG_RETRANSMIT_ATTEMPTS
+#define MYNEWT_VAL_BLE_MESH_SEG_RETRANSMIT_ATTEMPTS (4)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_SEQ_STORE_RATE
 #define MYNEWT_VAL_BLE_MESH_SEQ_STORE_RATE (128)
 #endif
@@ -958,6 +1085,14 @@
 #define MYNEWT_VAL_BLE_MESH_SETTINGS (0)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_SETTINGS_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_SETTINGS_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_SETTINGS_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_SETTINGS_LOG_MOD (20)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_SHELL
 #define MYNEWT_VAL_BLE_MESH_SHELL (0)
 #endif
@@ -974,10 +1109,26 @@
 #define MYNEWT_VAL_BLE_MESH_SUBNET_COUNT (1)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_SYSINIT_STAGE
+#define MYNEWT_VAL_BLE_MESH_SYSINIT_STAGE (500)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_SYSINIT_STAGE_SHELL
+#define MYNEWT_VAL_BLE_MESH_SYSINIT_STAGE_SHELL (1000)
+#endif
+
 #ifndef MYNEWT_VAL_BLE_MESH_TESTING
 #define MYNEWT_VAL_BLE_MESH_TESTING (0)
 #endif
 
+#ifndef MYNEWT_VAL_BLE_MESH_TRANS_LOG_LVL
+#define MYNEWT_VAL_BLE_MESH_TRANS_LOG_LVL (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_MESH_TRANS_LOG_MOD
+#define MYNEWT_VAL_BLE_MESH_TRANS_LOG_MOD (21)
+#endif
+
 /* Overridden by apps/blemesh (defined by @apache-mynewt-nimble/nimble/host/mesh) */
 #ifndef MYNEWT_VAL_BLE_MESH_TX_SEG_MAX
 #define MYNEWT_VAL_BLE_MESH_TX_SEG_MAX (6)
@@ -987,6 +1138,103 @@
 #define MYNEWT_VAL_BLE_MESH_TX_SEG_MSG_COUNT (4)
 #endif
 
+/*** @apache-mynewt-nimble/nimble/host/services/ans */
+#ifndef MYNEWT_VAL_BLE_SVC_ANS_NEW_ALERT_CAT
+#define MYNEWT_VAL_BLE_SVC_ANS_NEW_ALERT_CAT (0)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_ANS_SYSINIT_STAGE
+#define MYNEWT_VAL_BLE_SVC_ANS_SYSINIT_STAGE (303)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_ANS_UNR_ALERT_CAT
+#define MYNEWT_VAL_BLE_SVC_ANS_UNR_ALERT_CAT (0)
+#endif
+
+/*** @apache-mynewt-nimble/nimble/host/services/bas */
+#ifndef MYNEWT_VAL_BLE_SVC_BAS_BATTERY_LEVEL_NOTIFY_ENABLE
+#define MYNEWT_VAL_BLE_SVC_BAS_BATTERY_LEVEL_NOTIFY_ENABLE (1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_BAS_BATTERY_LEVEL_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_BAS_BATTERY_LEVEL_READ_PERM (0)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_BAS_SYSINIT_STAGE
+#define MYNEWT_VAL_BLE_SVC_BAS_SYSINIT_STAGE (303)
+#endif
+
+/*** @apache-mynewt-nimble/nimble/host/services/dis */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_DEFAULT_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_DEFAULT_READ_PERM (-1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_FIRMWARE_REVISION_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_FIRMWARE_REVISION_DEFAULT (NULL)
+#endif
+
+/* Value copied from BLE_SVC_DIS_DEFAULT_READ_PERM */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_FIRMWARE_REVISION_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_FIRMWARE_REVISION_READ_PERM (-1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_HARDWARE_REVISION_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_HARDWARE_REVISION_DEFAULT (NULL)
+#endif
+
+/* Value copied from BLE_SVC_DIS_DEFAULT_READ_PERM */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_HARDWARE_REVISION_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_HARDWARE_REVISION_READ_PERM (-1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_MANUFACTURER_NAME_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_MANUFACTURER_NAME_DEFAULT (NULL)
+#endif
+
+/* Value copied from BLE_SVC_DIS_DEFAULT_READ_PERM */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_MANUFACTURER_NAME_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_MANUFACTURER_NAME_READ_PERM (-1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_MODEL_NUMBER_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_MODEL_NUMBER_DEFAULT ("NimBLE")
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_MODEL_NUMBER_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_MODEL_NUMBER_READ_PERM (0)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SERIAL_NUMBER_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_SERIAL_NUMBER_DEFAULT (NULL)
+#endif
+
+/* Value copied from BLE_SVC_DIS_DEFAULT_READ_PERM */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SERIAL_NUMBER_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_SERIAL_NUMBER_READ_PERM (-1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SOFTWARE_REVISION_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_SOFTWARE_REVISION_DEFAULT (NULL)
+#endif
+
+/* Value copied from BLE_SVC_DIS_DEFAULT_READ_PERM */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SOFTWARE_REVISION_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_SOFTWARE_REVISION_READ_PERM (-1)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SYSINIT_STAGE
+#define MYNEWT_VAL_BLE_SVC_DIS_SYSINIT_STAGE (303)
+#endif
+
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SYSTEM_ID_DEFAULT
+#define MYNEWT_VAL_BLE_SVC_DIS_SYSTEM_ID_DEFAULT (NULL)
+#endif
+
+/* Value copied from BLE_SVC_DIS_DEFAULT_READ_PERM */
+#ifndef MYNEWT_VAL_BLE_SVC_DIS_SYSTEM_ID_READ_PERM
+#define MYNEWT_VAL_BLE_SVC_DIS_SYSTEM_ID_READ_PERM (-1)
+#endif
+
 /*** @apache-mynewt-nimble/nimble/host/services/gap */
 #ifndef MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE
 #define MYNEWT_VAL_BLE_SVC_GAP_APPEARANCE CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
@@ -1102,4 +1350,8 @@
 #define MYNEWT_VAL_BLE_HCI_UART_STOP_BITS (1)
 #endif
 
+#ifndef MYNEWT_VAL_NEWT_FEATURE_LOGCFG
+#define MYNEWT_VAL_NEWT_FEATURE_LOGCFG (1)
+#endif
+
 #endif

+ 32 - 4
examples/bluetooth/nimble/blemesh/main/app_mesh.c

@@ -331,14 +331,42 @@ static struct bt_mesh_model root_models[] = {
     BT_MESH_MODEL_CFG_SRV(&cfg_srv),
     BT_MESH_MODEL_HEALTH_SRV(&health_srv, &health_pub),
     BT_MESH_MODEL(BT_MESH_MODEL_ID_GEN_ONOFF_SRV, gen_onoff_op,
-    &gen_onoff_pub, NULL),
+              &gen_onoff_pub, NULL),
     BT_MESH_MODEL(BT_MESH_MODEL_ID_GEN_LEVEL_SRV, gen_level_op,
-    &gen_level_pub, NULL),
+              &gen_level_pub, NULL),
+};
+
+static struct bt_mesh_model_pub vnd_model_pub;
+
+static void vnd_model_recv(struct bt_mesh_model *model,
+                           struct bt_mesh_msg_ctx *ctx,
+                           struct os_mbuf *buf)
+{
+    struct os_mbuf *msg = NET_BUF_SIMPLE(3);
+
+    console_printf("#vendor-model-recv\n");
+
+    console_printf("data:%s len:%d\n", bt_hex(buf->om_data, buf->om_len),
+                   buf->om_len);
+
+    bt_mesh_model_msg_init(msg, BT_MESH_MODEL_OP_3(0x01, CID_VENDOR));
+    os_mbuf_append(msg, buf->om_data, buf->om_len);
+
+    if (bt_mesh_model_send(model, ctx, msg, NULL, NULL)) {
+        console_printf("#vendor-model-recv: send rsp failed\n");
+    }
+
+    os_mbuf_free_chain(msg);
+}
+
+static const struct bt_mesh_model_op vnd_model_op[] = {
+        { BT_MESH_MODEL_OP_3(0x01, CID_VENDOR), 0, vnd_model_recv },
+        BT_MESH_MODEL_OP_END,
 };
 
 static struct bt_mesh_model vnd_models[] = {
-    BT_MESH_MODEL_VND(CID_VENDOR, BT_MESH_MODEL_ID_GEN_ONOFF_SRV, gen_onoff_op,
-    &gen_onoff_pub, NULL),
+    BT_MESH_MODEL_VND(CID_VENDOR, BT_MESH_MODEL_ID_GEN_ONOFF_SRV, vnd_model_op,
+              &vnd_model_pub, NULL),
 };
 
 static struct bt_mesh_elem elements[] = {