summaryrefslogtreecommitdiff
path: root/src/libs/mynewt-nimble/apps/bttester
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2021-02-02 22:09:00 +0100
committerJean-François Milants <jf@codingfield.com>2021-02-02 22:09:00 +0100
commitd90b7274fa8bbfa09f79660b45b550d91f7b0125 (patch)
tree434e4aa362b0083eb9df7bea4f1358787174e5b4 /src/libs/mynewt-nimble/apps/bttester
parent9c35b6fe5dc889b589b979dd7c650c70f302854b (diff)
Update to nimble 1.3 master branch commit 82153e744833821e20e9a8b0d61c38b2b0dbcfe1
WARNING : heartbeat task is disabled!
Diffstat (limited to 'src/libs/mynewt-nimble/apps/bttester')
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/pkg.yml2
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/bttester.c44
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/bttester.h743
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/bttester_pipe.h6
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/gap.c162
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/gatt.c144
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/glue.c4
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/glue.h18
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/l2cap.c375
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/mesh.c182
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/rtt_pipe.c8
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/src/uart_pipe.c8
-rw-r--r--src/libs/mynewt-nimble/apps/bttester/syscfg.yml18
13 files changed, 971 insertions, 743 deletions
diff --git a/src/libs/mynewt-nimble/apps/bttester/pkg.yml b/src/libs/mynewt-nimble/apps/bttester/pkg.yml
index 00e7a760..ba2b7fb1 100644
--- a/src/libs/mynewt-nimble/apps/bttester/pkg.yml
+++ b/src/libs/mynewt-nimble/apps/bttester/pkg.yml
@@ -37,7 +37,7 @@ pkg.deps:
- "@apache-mynewt-nimble/nimble/host/services/gap"
- "@apache-mynewt-nimble/nimble/host/services/gatt"
- "@apache-mynewt-nimble/nimble/host/services/dis"
- - "@apache-mynewt-nimble/nimble/host/store/ram"
+ - "@apache-mynewt-nimble/nimble/host/store/config"
- "@apache-mynewt-nimble/nimble/transport/ram"
- "@apache-mynewt-core/hw/drivers/uart"
- "@apache-mynewt-core/hw/drivers/rtt"
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/bttester.c b/src/libs/mynewt-nimble/apps/bttester/src/bttester.c
index 54b14daa..5ddc2954 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/bttester.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/bttester.c
@@ -44,16 +44,16 @@ static struct os_event bttester_ev[CMD_QUEUED];
struct btp_buf {
struct os_event *ev;
union {
- u8_t data[BTP_MTU];
+ uint8_t data[BTP_MTU];
struct btp_hdr hdr;
};
};
static struct btp_buf cmd_buf[CMD_QUEUED];
-static void supported_commands(u8_t *data, u16_t len)
+static void supported_commands(uint8_t *data, uint16_t len)
{
- u8_t buf[1];
+ uint8_t buf[1];
struct core_read_supported_commands_rp *rp = (void *) buf;
memset(buf, 0, sizeof(buf));
@@ -64,12 +64,12 @@ static void supported_commands(u8_t *data, u16_t len)
tester_set_bit(buf, CORE_UNREGISTER_SERVICE);
tester_send(BTP_SERVICE_ID_CORE, CORE_READ_SUPPORTED_COMMANDS,
- BTP_INDEX_NONE, (u8_t *) rp, sizeof(buf));
+ BTP_INDEX_NONE, (uint8_t *) rp, sizeof(buf));
}
-static void supported_services(u8_t *data, u16_t len)
+static void supported_services(uint8_t *data, uint16_t len)
{
- u8_t buf[1];
+ uint8_t buf[1];
struct core_read_supported_services_rp *rp = (void *) buf;
memset(buf, 0, sizeof(buf));
@@ -85,13 +85,13 @@ static void supported_services(u8_t *data, u16_t len)
#endif /* MYNEWT_VAL(BLE_MESH) */
tester_send(BTP_SERVICE_ID_CORE, CORE_READ_SUPPORTED_SERVICES,
- BTP_INDEX_NONE, (u8_t *) rp, sizeof(buf));
+ BTP_INDEX_NONE, (uint8_t *) rp, sizeof(buf));
}
-static void register_service(u8_t *data, u16_t len)
+static void register_service(uint8_t *data, uint16_t len)
{
struct core_register_service_cmd *cmd = (void *) data;
- u8_t status;
+ uint8_t status;
switch (cmd->id) {
case BTP_SERVICE_ID_GAP:
@@ -124,10 +124,10 @@ rsp:
status);
}
-static void unregister_service(u8_t *data, u16_t len)
+static void unregister_service(uint8_t *data, uint16_t len)
{
struct core_unregister_service_cmd *cmd = (void *) data;
- u8_t status;
+ uint8_t status;
switch (cmd->id) {
case BTP_SERVICE_ID_GAP:
@@ -155,8 +155,8 @@ static void unregister_service(u8_t *data, u16_t len)
status);
}
-static void handle_core(u8_t opcode, u8_t index, u8_t *data,
- u16_t len)
+static void handle_core(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len)
{
if (index != BTP_INDEX_NONE) {
tester_rsp(BTP_SERVICE_ID_CORE, opcode, index,
@@ -186,7 +186,7 @@ static void handle_core(u8_t opcode, u8_t index, u8_t *data,
static void cmd_handler(struct os_event *ev)
{
- u16_t len;
+ uint16_t len;
struct btp_buf *cmd;
if (!ev || !ev->ev_arg) {
@@ -241,12 +241,12 @@ static void cmd_handler(struct os_event *ev)
os_eventq_put(&avail_queue, ev);
}
-static u8_t *recv_cb(u8_t *buf, size_t *off)
+static uint8_t *recv_cb(uint8_t *buf, size_t *off)
{
struct btp_hdr *cmd = (void *) buf;
struct os_event *new_ev;
struct btp_buf *new_buf, *old_buf;
- u16_t len;
+ uint16_t len;
if (*off < sizeof(*cmd)) {
return buf;
@@ -319,7 +319,7 @@ void tester_init(void)
NULL, 0);
}
-void tester_send(u8_t service, u8_t opcode, u8_t index, u8_t *data,
+void tester_send(uint8_t service, uint8_t opcode, uint8_t index, uint8_t *data,
size_t len)
{
struct btp_hdr msg;
@@ -329,7 +329,7 @@ void tester_send(u8_t service, u8_t opcode, u8_t index, u8_t *data,
msg.index = index;
msg.len = len;
- bttester_pipe_send((u8_t *)&msg, sizeof(msg));
+ bttester_pipe_send((uint8_t *)&msg, sizeof(msg));
if (data && len) {
bttester_pipe_send(data, len);
}
@@ -344,7 +344,7 @@ void tester_send(u8_t service, u8_t opcode, u8_t index, u8_t *data,
}
}
-void tester_send_buf(u8_t service, u8_t opcode, u8_t index,
+void tester_send_buf(uint8_t service, uint8_t opcode, uint8_t index,
struct os_mbuf *data)
{
struct btp_hdr msg;
@@ -354,13 +354,13 @@ void tester_send_buf(u8_t service, u8_t opcode, u8_t index,
msg.index = index;
msg.len = os_mbuf_len(data);
- bttester_pipe_send((u8_t *)&msg, sizeof(msg));
+ bttester_pipe_send((uint8_t *)&msg, sizeof(msg));
if (data && msg.len) {
bttester_pipe_send_buf(data);
}
}
-void tester_rsp(u8_t service, u8_t opcode, u8_t index, u8_t status)
+void tester_rsp(uint8_t service, uint8_t opcode, uint8_t index, uint8_t status)
{
struct btp_status s;
@@ -370,5 +370,5 @@ void tester_rsp(u8_t service, u8_t opcode, u8_t index, u8_t status)
}
s.code = status;
- tester_send(service, BTP_STATUS, index, (u8_t *) &s, sizeof(s));
+ tester_send(service, BTP_STATUS, index, (uint8_t *) &s, sizeof(s));
}
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/bttester.h b/src/libs/mynewt-nimble/apps/bttester/src/bttester.h
index f4e66a6f..6761681e 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/bttester.h
+++ b/src/libs/mynewt-nimble/apps/bttester/src/bttester.h
@@ -71,37 +71,37 @@
#define sys_cpu_to_le16 htole16
struct btp_hdr {
- u8_t service;
- u8_t opcode;
- u8_t index;
- u16_t len;
- u8_t data[0];
+ uint8_t service;
+ uint8_t opcode;
+ uint8_t index;
+ uint16_t len;
+ uint8_t data[0];
} __packed;
#define BTP_STATUS 0x00
struct btp_status {
- u8_t code;
+ uint8_t code;
} __packed;
/* Core Service */
#define CORE_READ_SUPPORTED_COMMANDS 0x01
struct core_read_supported_commands_rp {
- u8_t data[0];
+ uint8_t data[0];
} __packed;
#define CORE_READ_SUPPORTED_SERVICES 0x02
struct core_read_supported_services_rp {
- u8_t data[0];
+ uint8_t data[0];
} __packed;
#define CORE_REGISTER_SERVICE 0x03
struct core_register_service_cmd {
- u8_t id;
+ uint8_t id;
} __packed;
#define CORE_UNREGISTER_SERVICE 0x04
struct core_unregister_service_cmd {
- u8_t id;
+ uint8_t id;
} __packed;
/* events */
@@ -111,13 +111,13 @@ struct core_unregister_service_cmd {
/* commands */
#define GAP_READ_SUPPORTED_COMMANDS 0x01
struct gap_read_supported_commands_rp {
- u8_t data[0];
+ uint8_t data[0];
} __packed;
#define GAP_READ_CONTROLLER_INDEX_LIST 0x02
struct gap_read_controller_index_list_rp {
- u8_t num;
- u8_t index[0];
+ uint8_t num;
+ uint8_t index[0];
} __packed;
#define GAP_SETTINGS_POWERED 0
@@ -139,41 +139,41 @@ struct gap_read_controller_index_list_rp {
#define GAP_READ_CONTROLLER_INFO 0x03
struct gap_read_controller_info_rp {
- u8_t address[6];
- u32_t supported_settings;
- u32_t current_settings;
- u8_t cod[3];
- u8_t name[249];
- u8_t short_name[11];
+ uint8_t address[6];
+ uint32_t supported_settings;
+ uint32_t current_settings;
+ uint8_t cod[3];
+ uint8_t name[249];
+ uint8_t short_name[11];
} __packed;
#define GAP_RESET 0x04
struct gap_reset_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_SET_POWERED 0x05
struct gap_set_powered_cmd {
- u8_t powered;
+ uint8_t powered;
} __packed;
struct gap_set_powered_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_SET_CONNECTABLE 0x06
struct gap_set_connectable_cmd {
- u8_t connectable;
+ uint8_t connectable;
} __packed;
struct gap_set_connectable_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_SET_FAST_CONNECTABLE 0x07
struct gap_set_fast_connectable_cmd {
- u8_t fast_connectable;
+ uint8_t fast_connectable;
} __packed;
struct gap_set_fast_connectable_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_NON_DISCOVERABLE 0x00
@@ -182,34 +182,34 @@ struct gap_set_fast_connectable_rp {
#define GAP_SET_DISCOVERABLE 0x08
struct gap_set_discoverable_cmd {
- u8_t discoverable;
+ uint8_t discoverable;
} __packed;
struct gap_set_discoverable_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_SET_BONDABLE 0x09
struct gap_set_bondable_cmd {
- u8_t bondable;
+ uint8_t bondable;
} __packed;
struct gap_set_bondable_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_START_ADVERTISING 0x0a
struct gap_start_advertising_cmd {
- u8_t adv_data_len;
- u8_t scan_rsp_len;
- u8_t adv_data[0];
- u8_t scan_rsp[0];
+ uint8_t adv_data_len;
+ uint8_t scan_rsp_len;
+ uint8_t adv_data[0];
+ uint8_t scan_rsp[0];
} __packed;
struct gap_start_advertising_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_STOP_ADVERTISING 0x0b
struct gap_stop_advertising_rp {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_DISCOVERY_FLAG_LE 0x01
@@ -220,21 +220,21 @@ struct gap_stop_advertising_rp {
#define GAP_START_DISCOVERY 0x0c
struct gap_start_discovery_cmd {
- u8_t flags;
+ uint8_t flags;
} __packed;
#define GAP_STOP_DISCOVERY 0x0d
#define GAP_CONNECT 0x0e
struct gap_connect_cmd {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define GAP_DISCONNECT 0x0f
struct gap_disconnect_cmd {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define GAP_IO_CAP_DISPLAY_ONLY 0
@@ -245,85 +245,85 @@ struct gap_disconnect_cmd {
#define GAP_SET_IO_CAP 0x10
struct gap_set_io_cap_cmd {
- u8_t io_cap;
+ uint8_t io_cap;
} __packed;
#define GAP_PAIR 0x11
struct gap_pair_cmd {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define GAP_UNPAIR 0x12
struct gap_unpair_cmd {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define GAP_PASSKEY_ENTRY 0x13
struct gap_passkey_entry_cmd {
- u8_t address_type;
- u8_t address[6];
- u32_t passkey;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint32_t passkey;
} __packed;
#define GAP_PASSKEY_CONFIRM 0x14
struct gap_passkey_confirm_cmd {
- u8_t address_type;
- u8_t address[6];
- u8_t match;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t match;
} __packed;
#define GAP_START_DIRECT_ADV 0x15
struct gap_start_direct_adv_cmd {
- u8_t address_type;
- u8_t address[6];
- u8_t high_duty;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t high_duty;
} __packed;
#define GAP_CONN_PARAM_UPDATE 0x16
struct gap_conn_param_update_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t conn_itvl_min;
- u16_t conn_itvl_max;
- u16_t conn_latency;
- u16_t supervision_timeout;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t conn_itvl_min;
+ uint16_t conn_itvl_max;
+ uint16_t conn_latency;
+ uint16_t supervision_timeout;
} __packed;
#define GAP_PAIRING_CONSENT_RSP 0x17
struct gap_pairing_consent_rsp_cmd {
- u8_t address_type;
- u8_t address[6];
- u8_t consent;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t consent;
} __packed;
#define GAP_OOB_LEGACY_SET_DATA 0x18
struct gap_oob_legacy_set_data_cmd {
- u8_t oob_data[16];
+ uint8_t oob_data[16];
} __packed;
#define GAP_OOB_SC_GET_LOCAL_DATA 0x19
struct gap_oob_sc_get_local_data_rp {
- u8_t r[16];
- u8_t c[16];
+ uint8_t r[16];
+ uint8_t c[16];
} __packed;
#define GAP_OOB_SC_SET_REMOTE_DATA 0x1a
struct gap_oob_sc_set_remote_data_cmd {
- u8_t r[16];
- u8_t c[16];
+ uint8_t r[16];
+ uint8_t c[16];
} __packed;
#define GAP_SET_MITM 0x1b
struct gap_set_mitm_cmd {
- u8_t mitm;
+ uint8_t mitm;
} __packed;
/* events */
#define GAP_EV_NEW_SETTINGS 0x80
struct gap_new_settings_ev {
- u32_t current_settings;
+ uint32_t current_settings;
} __packed;
#define GAP_DEVICE_FOUND_FLAG_RSSI 0x01
@@ -332,84 +332,84 @@ struct gap_new_settings_ev {
#define GAP_EV_DEVICE_FOUND 0x81
struct gap_device_found_ev {
- u8_t address_type;
- u8_t address[6];
- s8_t rssi;
- u8_t flags;
- u16_t eir_data_len;
- u8_t eir_data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ int8_t rssi;
+ uint8_t flags;
+ uint16_t eir_data_len;
+ uint8_t eir_data[0];
} __packed;
#define GAP_EV_DEVICE_CONNECTED 0x82
struct gap_device_connected_ev {
- u8_t address_type;
- u8_t address[6];
- u16_t conn_itvl;
- u16_t conn_latency;
- u16_t supervision_timeout;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t conn_itvl;
+ uint16_t conn_latency;
+ uint16_t supervision_timeout;
} __packed;
#define GAP_EV_DEVICE_DISCONNECTED 0x83
struct gap_device_disconnected_ev {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define GAP_EV_PASSKEY_DISPLAY 0x84
struct gap_passkey_display_ev {
- u8_t address_type;
- u8_t address[6];
- u32_t passkey;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint32_t passkey;
} __packed;
#define GAP_EV_PASSKEY_ENTRY_REQ 0x85
struct gap_passkey_entry_req_ev {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define GAP_EV_PASSKEY_CONFIRM_REQ 0x86
struct gap_passkey_confirm_req_ev {
- u8_t address_type;
- u8_t address[6];
- u32_t passkey;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint32_t passkey;
} __packed;
#define GAP_EV_IDENTITY_RESOLVED 0x87
struct gap_identity_resolved_ev {
- u8_t address_type;
- u8_t address[6];
- u8_t identity_address_type;
- u8_t identity_address[6];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t identity_address_type;
+ uint8_t identity_address[6];
} __packed;
#define GAP_EV_CONN_PARAM_UPDATE 0x88
struct gap_conn_param_update_ev {
- u8_t address_type;
- u8_t address[6];
- u16_t conn_itvl;
- u16_t conn_latency;
- u16_t supervision_timeout;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t conn_itvl;
+ uint16_t conn_latency;
+ uint16_t supervision_timeout;
} __packed;
#define GAP_EV_SEC_LEVEL_CHANGED 0x89
struct gap_sec_level_changed_ev {
- u8_t address_type;
- u8_t address[6];
- u8_t level;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t level;
} __packed;
#define GAP_EV_PAIRING_CONSENT_REQ 0x8a
struct gap_pairing_consent_req_ev {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
/* GATT Service */
/* commands */
#define GATT_READ_SUPPORTED_COMMANDS 0x01
struct gatt_read_supported_commands_rp {
- u8_t data[0];
+ uint8_t data[0];
} __packed;
#define GATT_SERVICE_PRIMARY 0x00
@@ -417,320 +417,320 @@ struct gatt_read_supported_commands_rp {
#define GATT_ADD_SERVICE 0x02
struct gatt_add_service_cmd {
- u8_t type;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint8_t type;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
struct gatt_add_service_rp {
- u16_t svc_id;
+ uint16_t svc_id;
} __packed;
#define GATT_ADD_CHARACTERISTIC 0x03
struct gatt_add_characteristic_cmd {
- u16_t svc_id;
- u8_t properties;
- u8_t permissions;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint16_t svc_id;
+ uint8_t properties;
+ uint8_t permissions;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
struct gatt_add_characteristic_rp {
- u16_t char_id;
+ uint16_t char_id;
} __packed;
#define GATT_ADD_DESCRIPTOR 0x04
struct gatt_add_descriptor_cmd {
- u16_t char_id;
- u8_t permissions;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint16_t char_id;
+ uint8_t permissions;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
struct gatt_add_descriptor_rp {
- u16_t desc_id;
+ uint16_t desc_id;
} __packed;
#define GATT_ADD_INCLUDED_SERVICE 0x05
struct gatt_add_included_service_cmd {
- u16_t svc_id;
+ uint16_t svc_id;
} __packed;
struct gatt_add_included_service_rp {
- u16_t included_service_id;
+ uint16_t included_service_id;
} __packed;
#define GATT_SET_VALUE 0x06
struct gatt_set_value_cmd {
- u16_t attr_id;
- u16_t len;
- u8_t value[0];
+ uint16_t attr_id;
+ uint16_t len;
+ uint8_t value[0];
} __packed;
#define GATT_START_SERVER 0x07
struct gatt_start_server_rp {
- u16_t db_attr_off;
- u8_t db_attr_cnt;
+ uint16_t db_attr_off;
+ uint8_t db_attr_cnt;
} __packed;
#define GATT_SET_ENC_KEY_SIZE 0x09
struct gatt_set_enc_key_size_cmd {
- u16_t attr_id;
- u8_t key_size;
+ uint16_t attr_id;
+ uint8_t key_size;
} __packed;
/* Gatt Client */
struct gatt_service {
- u16_t start_handle;
- u16_t end_handle;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint16_t start_handle;
+ uint16_t end_handle;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
struct gatt_included {
- u16_t included_handle;
+ uint16_t included_handle;
struct gatt_service service;
} __packed;
struct gatt_characteristic {
- u16_t characteristic_handle;
- u16_t value_handle;
- u8_t properties;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint16_t characteristic_handle;
+ uint16_t value_handle;
+ uint8_t properties;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
struct gatt_descriptor {
- u16_t descriptor_handle;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint16_t descriptor_handle;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
#define GATT_EXCHANGE_MTU 0x0a
#define GATT_DISC_ALL_PRIM_SVCS 0x0b
struct gatt_disc_all_prim_svcs_cmd {
- u8_t address_type;
- u8_t address[6];
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
struct gatt_disc_all_prim_svcs_rp {
- u8_t services_count;
+ uint8_t services_count;
struct gatt_service services[0];
} __packed;
#define GATT_DISC_PRIM_UUID 0x0c
struct gatt_disc_prim_uuid_cmd {
- u8_t address_type;
- u8_t address[6];
- u8_t uuid_length;
- u8_t uuid[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
struct gatt_disc_prim_uuid_rp {
- u8_t services_count;
+ uint8_t services_count;
struct gatt_service services[0];
} __packed;
#define GATT_FIND_INCLUDED 0x0d
struct gatt_find_included_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t start_handle;
- u16_t end_handle;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t start_handle;
+ uint16_t end_handle;
} __packed;
struct gatt_find_included_rp {
- u8_t services_count;
+ uint8_t services_count;
struct gatt_included included[0];
} __packed;
#define GATT_DISC_ALL_CHRC 0x0e
struct gatt_disc_all_chrc_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t start_handle;
- u16_t end_handle;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t start_handle;
+ uint16_t end_handle;
} __packed;
struct gatt_disc_chrc_rp {
- u8_t characteristics_count;
+ uint8_t characteristics_count;
struct gatt_characteristic characteristics[0];
} __packed;
#define GATT_DISC_CHRC_UUID 0x0f
struct gatt_disc_chrc_uuid_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t start_handle;
- u16_t end_handle;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t start_handle;
+ uint16_t end_handle;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
#define GATT_DISC_ALL_DESC 0x10
struct gatt_disc_all_desc_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t start_handle;
- u16_t end_handle;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t start_handle;
+ uint16_t end_handle;
} __packed;
struct gatt_disc_all_desc_rp {
- u8_t descriptors_count;
+ uint8_t descriptors_count;
struct gatt_descriptor descriptors[0];
} __packed;
#define GATT_READ 0x11
struct gatt_read_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
} __packed;
struct gatt_read_rp {
- u8_t att_response;
- u16_t data_length;
- u8_t data[0];
+ uint8_t att_response;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_READ_UUID 0x12
struct gatt_read_uuid_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t start_handle;
- u16_t end_handle;
- u8_t uuid_length;
- u8_t uuid[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t start_handle;
+ uint16_t end_handle;
+ uint8_t uuid_length;
+ uint8_t uuid[0];
} __packed;
#define GATT_READ_LONG 0x13
struct gatt_read_long_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
- u16_t offset;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
+ uint16_t offset;
} __packed;
#define GATT_READ_MULTIPLE 0x14
struct gatt_read_multiple_cmd {
- u8_t address_type;
- u8_t address[6];
- u8_t handles_count;
- u16_t handles[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t handles_count;
+ uint16_t handles[0];
} __packed;
#define GATT_WRITE_WITHOUT_RSP 0x15
struct gatt_write_without_rsp_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
- u16_t data_length;
- u8_t data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_SIGNED_WRITE_WITHOUT_RSP 0x16
struct gatt_signed_write_without_rsp_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
- u16_t data_length;
- u8_t data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_WRITE 0x17
struct gatt_write_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
- u16_t data_length;
- u8_t data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_WRITE_LONG 0x18
struct gatt_write_long_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
- u16_t offset;
- u16_t data_length;
- u8_t data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
+ uint16_t offset;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_RELIABLE_WRITE 0x19
struct gatt_reliable_write_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
- u16_t offset;
- u16_t data_length;
- u8_t data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
+ uint16_t offset;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_CFG_NOTIFY 0x1a
#define GATT_CFG_INDICATE 0x1b
struct gatt_cfg_notify_cmd {
- u8_t address_type;
- u8_t address[6];
- u8_t enable;
- u16_t ccc_handle;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t enable;
+ uint16_t ccc_handle;
} __packed;
#define GATT_GET_ATTRIBUTES 0x1c
struct gatt_get_attributes_cmd {
- u16_t start_handle;
- u16_t end_handle;
- u8_t type_length;
- u8_t type[0];
+ uint16_t start_handle;
+ uint16_t end_handle;
+ uint8_t type_length;
+ uint8_t type[0];
} __packed;
struct gatt_get_attributes_rp {
- u8_t attrs_count;
- u8_t attrs[0];
+ uint8_t attrs_count;
+ uint8_t attrs[0];
} __packed;
struct gatt_attr {
- u16_t handle;
- u8_t permission;
- u8_t type_length;
- u8_t type[0];
+ uint16_t handle;
+ uint8_t permission;
+ uint8_t type_length;
+ uint8_t type[0];
} __packed;
#define GATT_GET_ATTRIBUTE_VALUE 0x1d
struct gatt_get_attribute_value_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t handle;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t handle;
} __packed;
struct gatt_get_attribute_value_rp {
- u8_t att_response;
- u16_t value_length;
- u8_t value[0];
+ uint8_t att_response;
+ uint16_t value_length;
+ uint8_t value[0];
} __packed;
#define GATT_CHANGE_DATABASE 0x1e
struct gatt_change_database {
- u16_t start_handle;
- u16_t end_handle;
- u8_t visibility;
+ uint16_t start_handle;
+ uint16_t end_handle;
+ uint8_t visibility;
} __packed;
/* GATT events */
#define GATT_EV_NOTIFICATION 0x80
struct gatt_notification_ev {
- u8_t address_type;
- u8_t address[6];
- u8_t type;
- u16_t handle;
- u16_t data_length;
- u8_t data[0];
+ uint8_t address_type;
+ uint8_t address[6];
+ uint8_t type;
+ uint16_t handle;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
#define GATT_EV_ATTR_VALUE_CHANGED 0x81
struct gatt_attr_value_changed_ev {
- u16_t handle;
- u16_t data_length;
- u8_t data[0];
+ uint16_t handle;
+ uint16_t data_length;
+ uint8_t data[0];
} __packed;
-static inline void tester_set_bit(u8_t *addr, unsigned int bit)
+static inline void tester_set_bit(uint8_t *addr, unsigned int bit)
{
- u8_t *p = addr + (bit / 8);
+ uint8_t *p = addr + (bit / 8);
*p |= BIT(bit % 8);
}
-static inline u8_t tester_test_bit(const u8_t *addr, unsigned int bit)
+static inline uint8_t tester_test_bit(const uint8_t *addr, unsigned int bit)
{
- const u8_t *p = addr + (bit / 8);
+ const uint8_t *p = addr + (bit / 8);
return *p & BIT(bit % 8);
}
@@ -739,30 +739,33 @@ static inline u8_t tester_test_bit(const u8_t *addr, unsigned int bit)
/* commands */
#define L2CAP_READ_SUPPORTED_COMMANDS 0x01
struct l2cap_read_supported_commands_rp {
- u8_t data[0];
+ uint8_t data[0];
} __packed;
#define L2CAP_CONNECT 0x02
struct l2cap_connect_cmd {
- u8_t address_type;
- u8_t address[6];
- u16_t psm;
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t psm;
+ uint16_t mtu;
+ uint8_t num;
} __packed;
struct l2cap_connect_rp {
- u8_t chan_id;
+ uint8_t num;
+ uint8_t chan_ids[0];
} __packed;
#define L2CAP_DISCONNECT 0x03
struct l2cap_disconnect_cmd {
- u8_t chan_id;
+ uint8_t chan_id;
} __packed;
#define L2CAP_SEND_DATA 0x04
struct l2cap_send_data_cmd {
- u8_t chan_id;
- u16_t data_len;
- u8_t data[];
+ uint8_t chan_id;
+ uint16_t data_len;
+ uint8_t data[];
} __packed;
#define L2CAP_TRANSPORT_BREDR 0x00
@@ -770,54 +773,78 @@ struct l2cap_send_data_cmd {
#define L2CAP_LISTEN 0x05
struct l2cap_listen_cmd {
- u16_t psm;
- u8_t transport;
+ uint16_t psm;
+ uint8_t transport;
+ uint16_t mtu;
+ uint16_t response;
} __packed;
#define L2CAP_ACCEPT_CONNECTION 0x06
struct l2cap_accept_connection_cmd {
- u8_t chan_id;
- u16_t result;
+ uint8_t chan_id;
+ uint16_t result;
+} __packed;
+
+#define L2CAP_RECONFIGURE 0x07
+struct l2cap_reconfigure_cmd {
+ uint8_t address_type;
+ uint8_t address[6];
+ uint16_t mtu;
+ uint8_t num;
+ uint8_t idxs[];
} __packed;
/* events */
#define L2CAP_EV_CONNECTION_REQ 0x80
struct l2cap_connection_req_ev {
- u8_t chan_id;
- u16_t psm;
- u8_t address_type;
- u8_t address[6];
+ uint8_t chan_id;
+ uint16_t psm;
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define L2CAP_EV_CONNECTED 0x81
struct l2cap_connected_ev {
- u8_t chan_id;
- u16_t psm;
- u8_t address_type;
- u8_t address[6];
+ uint8_t chan_id;
+ uint16_t psm;
+ uint16_t peer_mtu;
+ uint16_t peer_mps;
+ uint16_t our_mtu;
+ uint16_t our_mps;
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define L2CAP_EV_DISCONNECTED 0x82
struct l2cap_disconnected_ev {
- u16_t result;
- u8_t chan_id;
- u16_t psm;
- u8_t address_type;
- u8_t address[6];
+ uint16_t result;
+ uint8_t chan_id;
+ uint16_t psm;
+ uint8_t address_type;
+ uint8_t address[6];
} __packed;
#define L2CAP_EV_DATA_RECEIVED 0x83
struct l2cap_data_received_ev {
- u8_t chan_id;
- u16_t data_length;
- u8_t data[0];
+ uint8_t chan_id;
+ uint16_t data_length;
+ uint8_t data[0];
+} __packed;
+
+#define L2CAP_EV_RECONFIGURED 0x84
+struct l2cap_reconfigured_ev {
+ uint8_t chan_id;
+ uint16_t peer_mtu;
+ uint16_t peer_mps;
+ uint16_t our_mtu;
+ uint16_t our_mps;
} __packed;
/* MESH Service */
/* commands */
#define MESH_READ_SUPPORTED_COMMANDS 0x01
struct mesh_read_supported_commands_rp {
- u8_t data[0];
+ uint8_t data[0];
} __packed;
#define MESH_OUT_BLINK BIT(0)
@@ -833,88 +860,88 @@ struct mesh_read_supported_commands_rp {
#define MESH_CONFIG_PROVISIONING 0x02
struct mesh_config_provisioning_cmd {
- u8_t uuid[16];
- u8_t static_auth[16];
- u8_t out_size;
- u16_t out_actions;
- u8_t in_size;
- u16_t in_actions;
+ uint8_t uuid[16];
+ uint8_t static_auth[16];
+ uint8_t out_size;
+ uint16_t out_actions;
+ uint8_t in_size;
+ uint16_t in_actions;
} __packed;
#define MESH_PROVISION_NODE 0x03
struct mesh_provision_node_cmd {
- u8_t net_key[16];
- u16_t net_key_idx;
- u8_t flags;
- u32_t iv_index;
- u32_t seq_num;
- u16_t addr;
- u8_t dev_key[16];
+ uint8_t net_key[16];
+ uint16_t net_key_idx;
+ uint8_t flags;
+ uint32_t iv_index;
+ uint32_t seq_num;
+ uint16_t addr;
+ uint8_t dev_key[16];
} __packed;
#define MESH_INIT 0x04
#define MESH_RESET 0x05
#define MESH_INPUT_NUMBER 0x06
struct mesh_input_number_cmd {
- u32_t number;
+ uint32_t number;
} __packed;
#define MESH_INPUT_STRING 0x07
struct mesh_input_string_cmd {
- u8_t string_len;
- u8_t string[0];
+ uint8_t string_len;
+ uint8_t string[0];
} __packed;
#define MESH_IVU_TEST_MODE 0x08
struct mesh_ivu_test_mode_cmd {
- u8_t enable;
+ uint8_t enable;
} __packed;
#define MESH_IVU_TOGGLE_STATE 0x09
#define MESH_NET_SEND 0x0a
struct mesh_net_send_cmd {
- u8_t ttl;
- u16_t src;
- u16_t dst;
- u8_t payload_len;
- u8_t payload[0];
+ uint8_t ttl;
+ uint16_t src;
+ uint16_t dst;
+ uint8_t payload_len;
+ uint8_t payload[0];
} __packed;
#define MESH_HEALTH_GENERATE_FAULTS 0x0b
struct mesh_health_generate_faults_rp {
- u8_t test_id;
- u8_t cur_faults_count;
- u8_t reg_faults_count;
- u8_t current_faults[0];
- u8_t registered_faults[0];
+ uint8_t test_id;
+ uint8_t cur_faults_count;
+ uint8_t reg_faults_count;
+ uint8_t current_faults[0];
+ uint8_t registered_faults[0];
} __packed;
#define MESH_HEALTH_CLEAR_FAULTS 0x0c
#define MESH_LPN 0x0d
struct mesh_lpn_set_cmd {
- u8_t enable;
+ uint8_t enable;
} __packed;
#define MESH_LPN_POLL 0x0e
#define MESH_MODEL_SEND 0x0f
struct mesh_model_send_cmd {
- u16_t src;
- u16_t dst;
- u8_t payload_len;
- u8_t payload[0];
+ uint16_t src;
+ uint16_t dst;
+ uint8_t payload_len;
+ uint8_t payload[0];
} __packed;
#define MESH_LPN_SUBSCRIBE 0x10
struct mesh_lpn_subscribe_cmd {
- u16_t address;
+ uint16_t address;
} __packed;
#define MESH_LPN_UNSUBSCRIBE 0x11
struct mesh_lpn_unsubscribe_cmd {
- u16_t address;
+ uint16_t address;
} __packed;
#define MESH_RPL_CLEAR 0x12
@@ -923,20 +950,20 @@ struct mesh_lpn_unsubscribe_cmd {
/* events */
#define MESH_EV_OUT_NUMBER_ACTION 0x80
struct mesh_out_number_action_ev {
- u16_t action;
- u32_t number;
+ uint16_t action;
+ uint32_t number;
} __packed;
#define MESH_EV_OUT_STRING_ACTION 0x81
struct mesh_out_string_action_ev {
- u8_t string_len;
- u8_t string[0];
+ uint8_t string_len;
+ uint8_t string[0];
} __packed;
#define MESH_EV_IN_ACTION 0x82
struct mesh_in_action_ev {
- u16_t action;
- u8_t size;
+ uint16_t action;
+ uint8_t size;
} __packed;
#define MESH_EV_PROVISIONED 0x83
@@ -945,63 +972,63 @@ struct mesh_in_action_ev {
#define MESH_PROV_BEARER_PB_GATT 0x01
#define MESH_EV_PROV_LINK_OPEN 0x84
struct mesh_prov_link_open_ev {
- u8_t bearer;
+ uint8_t bearer;
} __packed;
#define MESH_EV_PROV_LINK_CLOSED 0x85
struct mesh_prov_link_closed_ev {
- u8_t bearer;
+ uint8_t bearer;
} __packed;
#define MESH_EV_NET_RECV 0x86
struct mesh_net_recv_ev {
- u8_t ttl;
- u8_t ctl;
- u16_t src;
- u16_t dst;
- u8_t payload_len;
- u8_t payload[0];
+ uint8_t ttl;
+ uint8_t ctl;
+ uint16_t src;
+ uint16_t dst;
+ uint8_t payload_len;
+ uint8_t payload[0];
} __packed;
#define MESH_EV_INVALID_BEARER 0x87
struct mesh_invalid_bearer_ev {
- u8_t opcode;
+ uint8_t opcode;
} __packed;
#define MESH_EV_INCOMP_TIMER_EXP 0x88
void tester_init(void);
-void tester_rsp(u8_t service, u8_t opcode, u8_t index, u8_t status);
-void tester_send(u8_t service, u8_t opcode, u8_t index, u8_t *data,
+void tester_rsp(uint8_t service, uint8_t opcode, uint8_t index, uint8_t status);
+void tester_send(uint8_t service, uint8_t opcode, uint8_t index, uint8_t *data,
size_t len);
-void tester_send_buf(u8_t service, u8_t opcode, u8_t index,
+void tester_send_buf(uint8_t service, uint8_t opcode, uint8_t index,
struct os_mbuf *buf);
-u8_t tester_init_gap(void);
-u8_t tester_unregister_gap(void);
-void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
- u16_t len);
-u8_t tester_init_gatt(void);
-u8_t tester_unregister_gatt(void);
-void tester_handle_gatt(u8_t opcode, u8_t index, u8_t *data,
- u16_t len);
-int tester_gatt_notify_rx_ev(u16_t conn_handle, u16_t attr_handle,
- u8_t indication, struct os_mbuf *om);
-int tester_gatt_subscribe_ev(u16_t conn_handle, u16_t attr_handle, u8_t reason,
- u8_t prev_notify, u8_t cur_notify,
- u8_t prev_indicate, u8_t cur_indicate);
+uint8_t tester_init_gap(void);
+uint8_t tester_unregister_gap(void);
+void tester_handle_gap(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len);
+uint8_t tester_init_gatt(void);
+uint8_t tester_unregister_gatt(void);
+void tester_handle_gatt(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len);
+int tester_gatt_notify_rx_ev(uint16_t conn_handle, uint16_t attr_handle,
+ uint8_t indication, struct os_mbuf *om);
+int tester_gatt_subscribe_ev(uint16_t conn_handle, uint16_t attr_handle, uint8_t reason,
+ uint8_t prev_notify, uint8_t cur_notify,
+ uint8_t prev_indicate, uint8_t cur_indicate);
#if MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM)
-u8_t tester_init_l2cap(void);
-u8_t tester_unregister_l2cap(void);
-void tester_handle_l2cap(u8_t opcode, u8_t index, u8_t *data,
- u16_t len);
+uint8_t tester_init_l2cap(void);
+uint8_t tester_unregister_l2cap(void);
+void tester_handle_l2cap(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len);
#endif
#if MYNEWT_VAL(BLE_MESH)
-u8_t tester_init_mesh(void);
-u8_t tester_unregister_mesh(void);
-void tester_handle_mesh(u8_t opcode, u8_t index, u8_t *data, u16_t len);
+uint8_t tester_init_mesh(void);
+uint8_t tester_unregister_mesh(void);
+void tester_handle_mesh(uint8_t opcode, uint8_t index, uint8_t *data, uint16_t len);
#endif /* MYNEWT_VAL(BLE_MESH) */
void gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg);
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/bttester_pipe.h b/src/libs/mynewt-nimble/apps/bttester/src/bttester_pipe.h
index c54d42de..64b63cd6 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/bttester_pipe.h
+++ b/src/libs/mynewt-nimble/apps/bttester/src/bttester_pipe.h
@@ -27,9 +27,9 @@
extern "C" {
#endif
-typedef u8_t *(*bttester_pipe_recv_cb)(u8_t *buf, size_t *off);
-void bttester_pipe_register(u8_t *buf, size_t len, bttester_pipe_recv_cb cb);
-int bttester_pipe_send(const u8_t *data, int len);
+typedef uint8_t *(*bttester_pipe_recv_cb)(uint8_t *buf, size_t *off);
+void bttester_pipe_register(uint8_t *buf, size_t len, bttester_pipe_recv_cb cb);
+int bttester_pipe_send(const uint8_t *data, int len);
int bttester_pipe_send_buf(struct os_mbuf *buf);
int bttester_pipe_init(void);
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/gap.c b/src/libs/mynewt-nimble/apps/bttester/src/gap.c
index 9d6de043..acac9989 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/gap.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/gap.c
@@ -51,7 +51,7 @@ static struct ble_sm_sc_oob_data oob_data_local;
static struct ble_sm_sc_oob_data oob_data_remote;
static uint16_t current_settings;
-u8_t own_addr_type;
+uint8_t own_addr_type;
static ble_addr_t peer_id_addr;
static ble_addr_t peer_ota_addr;
static bool encrypted = false;
@@ -109,9 +109,9 @@ static int gap_conn_find_by_addr(const ble_addr_t *dev_addr,
static int gap_event_cb(struct ble_gap_event *event, void *arg);
-static void supported_commands(u8_t *data, u16_t len)
+static void supported_commands(uint8_t *data, uint16_t len)
{
- u8_t cmds[3];
+ uint8_t cmds[3];
struct gap_read_supported_commands_rp *rp = (void *) &cmds;
SYS_LOG_DBG("");
@@ -143,13 +143,13 @@ static void supported_commands(u8_t *data, u16_t len)
tester_set_bit(cmds, GAP_SET_MITM);
tester_send(BTP_SERVICE_ID_GAP, GAP_READ_SUPPORTED_COMMANDS,
- CONTROLLER_INDEX, (u8_t *) rp, sizeof(cmds));
+ CONTROLLER_INDEX, (uint8_t *) rp, sizeof(cmds));
}
-static void controller_index_list(u8_t *data, u16_t len)
+static void controller_index_list(uint8_t *data, uint16_t len)
{
struct gap_read_controller_index_list_rp *rp;
- u8_t buf[sizeof(*rp) + 1];
+ uint8_t buf[sizeof(*rp) + 1];
SYS_LOG_DBG("");
@@ -159,7 +159,7 @@ static void controller_index_list(u8_t *data, u16_t len)
rp->index[0] = CONTROLLER_INDEX;
tester_send(BTP_SERVICE_ID_GAP, GAP_READ_CONTROLLER_INDEX_LIST,
- BTP_INDEX_NONE, (u8_t *) rp, sizeof(buf));
+ BTP_INDEX_NONE, (uint8_t *) rp, sizeof(buf));
}
static int check_pub_addr_unassigned(void)
@@ -174,10 +174,10 @@ static int check_pub_addr_unassigned(void)
#endif
}
-static void controller_info(u8_t *data, u16_t len)
+static void controller_info(uint8_t *data, uint16_t len)
{
struct gap_read_controller_info_rp rp;
- u32_t supported_settings = 0;
+ uint32_t supported_settings = 0;
ble_addr_t addr;
int rc;
@@ -240,7 +240,7 @@ static void controller_info(u8_t *data, u16_t len)
memcpy(rp.name, CONTROLLER_NAME, sizeof(CONTROLLER_NAME));
tester_send(BTP_SERVICE_ID_GAP, GAP_READ_CONTROLLER_INFO,
- CONTROLLER_INDEX, (u8_t *) &rp, sizeof(rp));
+ CONTROLLER_INDEX, (uint8_t *) &rp, sizeof(rp));
}
static struct ble_gap_adv_params adv_params = {
@@ -248,7 +248,7 @@ static struct ble_gap_adv_params adv_params = {
.disc_mode = BLE_GAP_DISC_MODE_NON,
};
-static void set_connectable(u8_t *data, u16_t len)
+static void set_connectable(uint8_t *data, uint16_t len)
{
const struct gap_set_connectable_cmd *cmd = (void *) data;
struct gap_set_connectable_rp rp;
@@ -266,12 +266,12 @@ static void set_connectable(u8_t *data, u16_t len)
rp.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_SET_CONNECTABLE, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
}
-static u8_t ad_flags = BLE_HS_ADV_F_BREDR_UNSUP;
+static uint8_t ad_flags = BLE_HS_ADV_F_BREDR_UNSUP;
-static void set_discoverable(u8_t *data, u16_t len)
+static void set_discoverable(uint8_t *data, uint16_t len)
{
const struct gap_set_discoverable_cmd *cmd = (void *) data;
struct gap_set_discoverable_rp rp;
@@ -305,10 +305,10 @@ static void set_discoverable(u8_t *data, u16_t len)
rp.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_SET_DISCOVERABLE, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
}
-static void set_bondable(const u8_t *data, u16_t len)
+static void set_bondable(const uint8_t *data, uint16_t len)
{
const struct gap_set_bondable_cmd *cmd = (void *) data;
struct gap_set_bondable_rp rp;
@@ -325,7 +325,7 @@ static void set_bondable(const u8_t *data, u16_t len)
rp.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_SET_BONDABLE, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
}
static struct bt_data ad[10] = {
@@ -334,7 +334,7 @@ static struct bt_data ad[10] = {
static struct bt_data sd[10];
static int set_ad(const struct bt_data *ad, size_t ad_len,
- u8_t *buf, u8_t *buf_len)
+ uint8_t *buf, uint8_t *buf_len)
{
int i;
@@ -350,14 +350,14 @@ static int set_ad(const struct bt_data *ad, size_t ad_len,
return 0;
}
-static void start_advertising(const u8_t *data, u16_t len)
+static void start_advertising(const uint8_t *data, uint16_t len)
{
const struct gap_start_advertising_cmd *cmd = (void *) data;
struct gap_start_advertising_rp rp;
int32_t duration_ms = BLE_HS_FOREVER;
uint8_t buf[BLE_HS_ADV_MAX_SZ];
uint8_t buf_len = 0;
- u8_t adv_len, sd_len;
+ uint8_t adv_len, sd_len;
int err;
int i;
@@ -429,14 +429,14 @@ static void start_advertising(const u8_t *data, u16_t len)
rp.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_START_ADVERTISING, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
return;
fail:
tester_rsp(BTP_SERVICE_ID_GAP, GAP_START_ADVERTISING, CONTROLLER_INDEX,
BTP_STATUS_FAILED);
}
-static void stop_advertising(const u8_t *data, u16_t len)
+static void stop_advertising(const uint8_t *data, uint16_t len)
{
struct gap_stop_advertising_rp rp;
@@ -452,12 +452,12 @@ static void stop_advertising(const u8_t *data, u16_t len)
rp.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_STOP_ADVERTISING, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
}
-static u8_t get_ad_flags(const u8_t *data, u8_t data_len)
+static uint8_t get_ad_flags(const uint8_t *data, uint8_t data_len)
{
- u8_t len, i;
+ uint8_t len, i;
/* Parse advertisement to get flags */
for (i = 0; i < data_len; i += len - 1) {
@@ -482,11 +482,11 @@ static u8_t get_ad_flags(const u8_t *data, u8_t data_len)
return 0;
}
-static u8_t discovery_flags;
+static uint8_t discovery_flags;
static struct os_mbuf *adv_buf;
-static void store_adv(const ble_addr_t *addr, s8_t rssi,
- const u8_t *data, u8_t len)
+static void store_adv(const ble_addr_t *addr, int8_t rssi,
+ const uint8_t *data, uint8_t len)
{
struct gap_device_found_ev *ev;
@@ -503,8 +503,8 @@ static void store_adv(const ble_addr_t *addr, s8_t rssi,
memcpy(net_buf_simple_add(adv_buf, len), data, len);
}
-static void device_found(ble_addr_t *addr, s8_t rssi, u8_t evtype,
- const u8_t *data, u8_t len)
+static void device_found(ble_addr_t *addr, int8_t rssi, uint8_t evtype,
+ const uint8_t *data, uint8_t len)
{
struct gap_device_found_ev *ev;
ble_addr_t a;
@@ -512,7 +512,7 @@ static void device_found(ble_addr_t *addr, s8_t rssi, u8_t evtype,
/* if General/Limited Discovery - parse Advertising data to get flags */
if (!(discovery_flags & GAP_DISCOVERY_FLAG_LE_OBSERVE) &&
(evtype != BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP)) {
- u8_t flags = get_ad_flags(data, len);
+ uint8_t flags = get_ad_flags(data, len);
/* ignore non-discoverable devices */
if (!(flags & BLE_AD_DISCOV_MASK)) {
@@ -593,11 +593,11 @@ static int discovery_cb(struct ble_gap_event *event, void *arg)
return 0;
}
-static void start_discovery(const u8_t *data, u16_t len)
+static void start_discovery(const uint8_t *data, uint16_t len)
{
const struct gap_start_discovery_cmd *cmd = (void *) data;
struct ble_gap_disc_params params = {0};
- u8_t status;
+ uint8_t status;
SYS_LOG_DBG("");
@@ -626,9 +626,9 @@ reply:
status);
}
-static void stop_discovery(const u8_t *data, u16_t len)
+static void stop_discovery(const uint8_t *data, uint16_t len)
{
- u8_t status = BTP_STATUS_SUCCESS;
+ uint8_t status = BTP_STATUS_SUCCESS;
SYS_LOG_DBG("");
@@ -680,13 +680,13 @@ static void device_connected_ev_send(struct os_event *ev)
}
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_DEVICE_CONNECTED,
- CONTROLLER_INDEX, (u8_t *) &connected_ev,
+ CONTROLLER_INDEX, (uint8_t *) &connected_ev,
sizeof(connected_ev));
periph_privacy(desc);
}
-static void le_connected(u16_t conn_handle, int status)
+static void le_connected(uint16_t conn_handle, int status)
{
struct ble_gap_conn_desc desc;
ble_addr_t *addr;
@@ -720,7 +720,7 @@ static void le_connected(u16_t conn_handle, int status)
CONNECTED_EV_DELAY_MS(desc.conn_itvl)));
#else
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_DEVICE_CONNECTED,
- CONTROLLER_INDEX, (u8_t *) &connected_ev,
+ CONTROLLER_INDEX, (uint8_t *) &connected_ev,
sizeof(connected_ev));
#endif
}
@@ -763,10 +763,10 @@ static void le_disconnected(struct ble_gap_conn_desc *conn, int reason)
ev.address_type = addr->type;
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_DEVICE_DISCONNECTED,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
-static void auth_passkey_oob(u16_t conn_handle)
+static void auth_passkey_oob(uint16_t conn_handle)
{
struct ble_gap_conn_desc desc;
struct ble_sm_io pk;
@@ -786,7 +786,7 @@ static void auth_passkey_oob(u16_t conn_handle)
assert(rc == 0);
}
-static void auth_passkey_display(u16_t conn_handle, unsigned int passkey)
+static void auth_passkey_display(uint16_t conn_handle, unsigned int passkey)
{
struct ble_gap_conn_desc desc;
struct gap_passkey_display_ev ev;
@@ -817,10 +817,10 @@ static void auth_passkey_display(u16_t conn_handle, unsigned int passkey)
ev.passkey = sys_cpu_to_le32(pk.passkey);
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_PASSKEY_DISPLAY,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
-static void auth_passkey_entry(u16_t conn_handle)
+static void auth_passkey_entry(uint16_t conn_handle)
{
struct ble_gap_conn_desc desc;
struct gap_passkey_entry_req_ev ev;
@@ -840,10 +840,10 @@ static void auth_passkey_entry(u16_t conn_handle)
ev.address_type = addr->type;
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_PASSKEY_ENTRY_REQ,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
-static void auth_passkey_numcmp(u16_t conn_handle, unsigned int passkey)
+static void auth_passkey_numcmp(uint16_t conn_handle, unsigned int passkey)
{
struct ble_gap_conn_desc desc;
struct gap_passkey_confirm_req_ev ev;
@@ -864,10 +864,10 @@ static void auth_passkey_numcmp(u16_t conn_handle, unsigned int passkey)
ev.passkey = sys_cpu_to_le32(passkey);
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_PASSKEY_CONFIRM_REQ,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
-static void auth_passkey_oob_sc(u16_t conn_handle)
+static void auth_passkey_oob_sc(uint16_t conn_handle)
{
int rc;
struct ble_sm_io pk;
@@ -889,7 +889,7 @@ static void auth_passkey_oob_sc(u16_t conn_handle)
}
}
-static void le_passkey_action(u16_t conn_handle,
+static void le_passkey_action(uint16_t conn_handle,
struct ble_gap_passkey_params *params)
{
SYS_LOG_DBG("");
@@ -917,7 +917,7 @@ static void le_passkey_action(u16_t conn_handle,
}
}
-static void le_identity_resolved(u16_t conn_handle)
+static void le_identity_resolved(uint16_t conn_handle)
{
struct ble_gap_conn_desc desc;
struct gap_identity_resolved_ev ev;
@@ -941,7 +941,7 @@ static void le_identity_resolved(u16_t conn_handle)
sizeof(ev.identity_address));
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_IDENTITY_RESOLVED,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static void le_conn_param_update(struct ble_gap_conn_desc *desc)
@@ -958,7 +958,7 @@ static void le_conn_param_update(struct ble_gap_conn_desc *desc)
ev.supervision_timeout = desc->supervision_timeout;
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_CONN_PARAM_UPDATE,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static void le_encryption_changed(struct ble_gap_conn_desc *desc)
@@ -986,7 +986,7 @@ static void le_encryption_changed(struct ble_gap_conn_desc *desc)
}
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_SEC_LEVEL_CHANGED,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static void print_bytes(const uint8_t *bytes, int len)
@@ -1055,7 +1055,7 @@ static void adv_complete(void)
ev.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_EV_NEW_SETTINGS, CONTROLLER_INDEX,
- (u8_t *) &ev, sizeof(ev));
+ (uint8_t *) &ev, sizeof(ev));
}
static int gap_event_cb(struct ble_gap_event *event, void *arg)
@@ -1197,9 +1197,9 @@ static int gap_event_cb(struct ble_gap_event *event, void *arg)
return 0;
}
-static void connect(const u8_t *data, u16_t len)
+static void connect(const uint8_t *data, uint16_t len)
{
- u8_t status = BTP_STATUS_SUCCESS;
+ uint8_t status = BTP_STATUS_SUCCESS;
SYS_LOG_DBG("");
@@ -1211,10 +1211,10 @@ static void connect(const u8_t *data, u16_t len)
tester_rsp(BTP_SERVICE_ID_GAP, GAP_CONNECT, CONTROLLER_INDEX, status);
}
-static void disconnect(const u8_t *data, u16_t len)
+static void disconnect(const uint8_t *data, uint16_t len)
{
struct ble_gap_conn_desc desc;
- u8_t status;
+ uint8_t status;
int rc;
SYS_LOG_DBG("");
@@ -1236,10 +1236,10 @@ rsp:
status);
}
-static void set_io_cap(const u8_t *data, u16_t len)
+static void set_io_cap(const uint8_t *data, uint16_t len)
{
const struct gap_set_io_cap_cmd *cmd = (void *) data;
- u8_t status;
+ uint8_t status;
SYS_LOG_DBG("");
@@ -1276,10 +1276,10 @@ rsp:
status);
}
-static void pair(const u8_t *data, u16_t len)
+static void pair(const uint8_t *data, uint16_t len)
{
struct ble_gap_conn_desc desc;
- u8_t status;
+ uint8_t status;
int rc;
SYS_LOG_DBG("");
@@ -1301,9 +1301,9 @@ rsp:
tester_rsp(BTP_SERVICE_ID_GAP, GAP_PAIR, CONTROLLER_INDEX, status);
}
-static void unpair(const u8_t *data, u16_t len)
+static void unpair(const uint8_t *data, uint16_t len)
{
- u8_t status;
+ uint8_t status;
int err;
SYS_LOG_DBG("");
@@ -1313,12 +1313,12 @@ static void unpair(const u8_t *data, u16_t len)
tester_rsp(BTP_SERVICE_ID_GAP, GAP_UNPAIR, CONTROLLER_INDEX, status);
}
-static void passkey_entry(const u8_t *data, u16_t len)
+static void passkey_entry(const uint8_t *data, uint16_t len)
{
const struct gap_passkey_entry_cmd *cmd = (void *) data;
struct ble_gap_conn_desc desc;
struct ble_sm_io pk;
- u8_t status;
+ uint8_t status;
int rc;
SYS_LOG_DBG("");
@@ -1345,12 +1345,12 @@ rsp:
status);
}
-static void passkey_confirm(const u8_t *data, u16_t len)
+static void passkey_confirm(const uint8_t *data, uint16_t len)
{
const struct gap_passkey_confirm_cmd *cmd = (void *) data;
struct ble_gap_conn_desc desc;
struct ble_sm_io pk;
- u8_t status;
+ uint8_t status;
int rc;
SYS_LOG_DBG("");
@@ -1378,7 +1378,7 @@ rsp:
status);
}
-static void start_direct_adv(const u8_t *data, u16_t len)
+static void start_direct_adv(const uint8_t *data, uint16_t len)
{
const struct gap_start_direct_adv_cmd *cmd = (void *) data;
struct gap_start_advertising_rp rp;
@@ -1403,7 +1403,7 @@ static void start_direct_adv(const u8_t *data, u16_t len)
rp.current_settings = sys_cpu_to_le32(current_settings);
tester_send(BTP_SERVICE_ID_GAP, GAP_START_DIRECT_ADV, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
return;
fail:
tester_rsp(BTP_SERVICE_ID_GAP, GAP_START_DIRECT_ADV, CONTROLLER_INDEX,
@@ -1416,7 +1416,7 @@ static void conn_param_update_cb(uint16_t conn_handle, int status, void *arg)
conn_handle, status);
}
-static int conn_param_update_slave(u16_t conn_handle,
+static int conn_param_update_slave(uint16_t conn_handle,
const struct gap_conn_param_update_cmd *cmd)
{
int rc;
@@ -1436,7 +1436,7 @@ static int conn_param_update_slave(u16_t conn_handle,
return 0;
}
-static int conn_param_update_master(u16_t conn_handle,
+static int conn_param_update_master(uint16_t conn_handle,
const struct gap_conn_param_update_cmd *cmd)
{
int rc;
@@ -1489,7 +1489,7 @@ rsp:
SYS_LOG_ERR("Conn param update fail; rc=%d", rc);
}
-static void conn_param_update_async(const u8_t *data, u16_t len)
+static void conn_param_update_async(const uint8_t *data, uint16_t len)
{
const struct gap_conn_param_update_cmd *cmd = (void *) data;
update_params = *cmd;
@@ -1500,7 +1500,7 @@ static void conn_param_update_async(const u8_t *data, u16_t len)
BTP_STATUS_SUCCESS);
}
-static void oob_legacy_set_data(const u8_t *data, u16_t len)
+static void oob_legacy_set_data(const uint8_t *data, uint16_t len)
{
const struct gap_oob_legacy_set_data_cmd *cmd = (void *) data;
@@ -1511,7 +1511,7 @@ static void oob_legacy_set_data(const u8_t *data, u16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
-static void oob_sc_get_local_data(const u8_t *data, u16_t len)
+static void oob_sc_get_local_data(const uint8_t *data, uint16_t len)
{
struct gap_oob_sc_get_local_data_rp rp;
@@ -1519,10 +1519,10 @@ static void oob_sc_get_local_data(const u8_t *data, u16_t len)
memcpy(rp.c, oob_data_local.c, 16);
tester_send(BTP_SERVICE_ID_GAP, GAP_OOB_SC_GET_LOCAL_DATA,
- CONTROLLER_INDEX, (u8_t *) &rp, sizeof(rp));
+ CONTROLLER_INDEX, (uint8_t *) &rp, sizeof(rp));
}
-static void oob_sc_set_remote_data(const u8_t *data, u16_t len)
+static void oob_sc_set_remote_data(const uint8_t *data, uint16_t len)
{
const struct gap_oob_sc_set_remote_data_cmd *cmd = (void *) data;
@@ -1534,7 +1534,7 @@ static void oob_sc_set_remote_data(const u8_t *data, u16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
-static void set_mitm(const u8_t *data, u16_t len)
+static void set_mitm(const uint8_t *data, uint16_t len)
{
const struct gap_set_mitm_cmd *cmd = (void *) data;
@@ -1544,8 +1544,8 @@ static void set_mitm(const u8_t *data, u16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
-void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
- u16_t len)
+void tester_handle_gap(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len)
{
switch (opcode) {
case GAP_READ_SUPPORTED_COMMANDS:
@@ -1664,7 +1664,7 @@ static void tester_init_gap_cb(int err)
BTP_STATUS_SUCCESS);
}
-u8_t tester_init_gap(void)
+uint8_t tester_init_gap(void)
{
#if MYNEWT_VAL(BLE_SM_SC)
int rc;
@@ -1682,7 +1682,7 @@ u8_t tester_init_gap(void)
return BTP_STATUS_SUCCESS;
}
-u8_t tester_unregister_gap(void)
+uint8_t tester_unregister_gap(void)
{
return BTP_STATUS_SUCCESS;
}
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/gatt.c b/src/libs/mynewt-nimble/apps/bttester/src/gatt.c
index 7e7d1d3b..d40de262 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/gatt.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/gatt.c
@@ -76,8 +76,8 @@
static uint8_t gatt_svr_pts_static_long_val[300];
static uint8_t gatt_svr_pts_static_val[30];
static uint8_t gatt_svr_pts_static_short_val;
-static u8_t notify_state;
-static u8_t indicate_state;
+static uint8_t notify_state;
+static uint8_t indicate_state;
static uint16_t myconn_handle;
static struct os_callout notify_tx_timer;
uint16_t notify_handle;
@@ -253,7 +253,7 @@ static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
},
};
-static void attr_value_changed_ev(u16_t handle, struct os_mbuf *data)
+static void attr_value_changed_ev(uint16_t handle, struct os_mbuf *data)
{
struct gatt_attr_value_changed_ev *ev;
struct os_mbuf *buf = os_msys_get(0, 0);
@@ -569,7 +569,7 @@ gatt_svr_rel_write_test(uint16_t conn_handle, uint16_t attr_handle,
}
}
-static void start_server(u8_t *data, u16_t len)
+static void start_server(uint8_t *data, uint16_t len)
{
struct gatt_start_server_rp rp;
@@ -583,14 +583,14 @@ static void start_server(u8_t *data, u16_t len)
rp.db_attr_cnt = 0;
tester_send(BTP_SERVICE_ID_GATT, GATT_START_SERVER, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) &rp, sizeof(rp));
}
/* Convert UUID from BTP command to bt_uuid */
-static u8_t btp2bt_uuid(const u8_t *uuid, u8_t len,
+static uint8_t btp2bt_uuid(const uint8_t *uuid, uint8_t len,
ble_uuid_any_t *bt_uuid)
{
- u16_t le16;
+ uint16_t le16;
switch (len) {
case 0x02: /* UUID 16 */
@@ -614,8 +614,8 @@ static u8_t btp2bt_uuid(const u8_t *uuid, u8_t len,
* It is not intended to be used by client and server at the same time.
*/
static struct {
- u16_t len;
- u8_t buf[MAX_BUFFER_SIZE];
+ uint16_t len;
+ uint8_t buf[MAX_BUFFER_SIZE];
} gatt_buf;
static void *gatt_buf_add(const void *data, size_t len)
@@ -665,7 +665,7 @@ static int read_cb(uint16_t conn_handle,
void *arg)
{
struct gatt_read_rp *rp = (void *) gatt_buf.buf;
- u8_t btp_opcode = (uint8_t) (int) arg;
+ uint8_t btp_opcode = (uint8_t) (int) arg;
SYS_LOG_DBG("status=%d", error->status);
@@ -692,7 +692,7 @@ static int read_cb(uint16_t conn_handle,
return 0;
}
-static void read(u8_t *data, u16_t len)
+static void read(uint8_t *data, uint16_t len)
{
const struct gatt_read_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -731,7 +731,7 @@ static int read_long_cb(uint16_t conn_handle,
void *arg)
{
struct gatt_read_rp *rp = (void *) gatt_buf.buf;
- u8_t btp_opcode = (uint8_t) (int) arg;
+ uint8_t btp_opcode = (uint8_t) (int) arg;
SYS_LOG_DBG("status=%d", error->status);
@@ -762,7 +762,7 @@ static int read_long_cb(uint16_t conn_handle,
return 0;
}
-static void read_long(u8_t *data, u16_t len)
+static void read_long(uint8_t *data, uint16_t len)
{
const struct gatt_read_long_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -797,10 +797,10 @@ fail:
BTP_STATUS_FAILED);
}
-static void read_multiple(u8_t *data, u16_t len)
+static void read_multiple(uint8_t *data, uint16_t len)
{
const struct gatt_read_multiple_cmd *cmd = (void *) data;
- u16_t handles[cmd->handles_count];
+ uint16_t handles[cmd->handles_count];
struct ble_gap_conn_desc conn;
int rc, i;
@@ -836,11 +836,11 @@ fail:
BTP_STATUS_FAILED);
}
-static void write_without_rsp(u8_t *data, u16_t len, u8_t op, bool sign)
+static void write_without_rsp(uint8_t *data, uint16_t len, uint8_t op, bool sign)
{
const struct gatt_write_without_rsp_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
- u8_t status = BTP_STATUS_SUCCESS;
+ uint8_t status = BTP_STATUS_SUCCESS;
int rc;
SYS_LOG_DBG("");
@@ -866,7 +866,7 @@ static int write_rsp(uint16_t conn_handle, const struct ble_gatt_error *error,
void *arg)
{
uint8_t err = (uint8_t) error->status;
- u8_t btp_opcode = (uint8_t) (int) arg;
+ uint8_t btp_opcode = (uint8_t) (int) arg;
SYS_LOG_DBG("");
@@ -875,7 +875,7 @@ static int write_rsp(uint16_t conn_handle, const struct ble_gatt_error *error,
return 0;
}
-static void write(u8_t *data, u16_t len)
+static void write(uint8_t *data, uint16_t len)
{
const struct gatt_write_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -901,7 +901,7 @@ fail:
BTP_STATUS_FAILED);
}
-static void write_long(u8_t *data, u16_t len)
+static void write_long(uint8_t *data, uint16_t len)
{
const struct gatt_write_long_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -952,7 +952,7 @@ static int reliable_write_rsp(uint16_t conn_handle,
return 0;
}
-static void reliable_write(u8_t *data, u16_t len)
+static void reliable_write(uint8_t *data, uint16_t len)
{
const struct gatt_reliable_write_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -994,12 +994,12 @@ fail:
}
static struct bt_gatt_subscribe_params {
- u16_t ccc_handle;
- u16_t value;
- u16_t value_handle;
+ uint16_t ccc_handle;
+ uint16_t value;
+ uint16_t value_handle;
} subscribe_params;
-static void read_uuid(u8_t *data, u16_t len)
+static void read_uuid(uint8_t *data, uint16_t len)
{
const struct gatt_read_uuid_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -1046,8 +1046,8 @@ static int disc_prim_uuid_cb(uint16_t conn_handle,
struct gatt_disc_prim_uuid_rp *rp = (void *) gatt_buf.buf;
struct gatt_service *service;
const ble_uuid_any_t *uuid;
- u8_t uuid_length;
- u8_t opcode = (u8_t) (int) arg;
+ uint8_t uuid_length;
+ uint8_t opcode = (uint8_t) (int) arg;
SYS_LOG_DBG("");
@@ -1081,7 +1081,7 @@ static int disc_prim_uuid_cb(uint16_t conn_handle,
service->uuid_length = uuid_length;
if (uuid->u.type == BLE_UUID_TYPE_16) {
- u16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
+ uint16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
memcpy(service->uuid, &u16, uuid_length);
} else {
memcpy(service->uuid, BLE_UUID128(uuid)->value,
@@ -1102,7 +1102,7 @@ static int disc_all_desc_cb(uint16_t conn_handle,
struct gatt_disc_all_desc_rp *rp = (void *) gatt_buf.buf;
struct gatt_descriptor *dsc;
const ble_uuid_any_t *uuid;
- u8_t uuid_length;
+ uint8_t uuid_length;
SYS_LOG_DBG("");
@@ -1135,7 +1135,7 @@ static int disc_all_desc_cb(uint16_t conn_handle,
dsc->uuid_length = uuid_length;
if (uuid->u.type == BLE_UUID_TYPE_16) {
- u16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
+ uint16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
memcpy(dsc->uuid, &u16, uuid_length);
} else {
memcpy(dsc->uuid, BLE_UUID128(uuid)->value, uuid_length);
@@ -1146,7 +1146,7 @@ static int disc_all_desc_cb(uint16_t conn_handle,
return 0;
}
-static void disc_all_prim_svcs(u8_t *data, u16_t len)
+static void disc_all_prim_svcs(uint8_t *data, uint16_t len)
{
struct ble_gap_conn_desc conn;
int rc;
@@ -1175,7 +1175,7 @@ fail:
CONTROLLER_INDEX, BTP_STATUS_FAILED);
}
-static void disc_all_desc(u8_t *data, u16_t len)
+static void disc_all_desc(uint8_t *data, uint16_t len)
{
const struct gatt_disc_all_desc_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -1221,7 +1221,7 @@ static int find_included_cb(uint16_t conn_handle,
struct gatt_included *included;
const ble_uuid_any_t *uuid;
int service_handle = (int) arg;
- u8_t uuid_length;
+ uint8_t uuid_length;
SYS_LOG_DBG("");
@@ -1259,7 +1259,7 @@ static int find_included_cb(uint16_t conn_handle,
included->service.uuid_length = uuid_length;
if (uuid->u.type == BLE_UUID_TYPE_16) {
- u16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
+ uint16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
memcpy(included->service.uuid, &u16, uuid_length);
} else {
memcpy(included->service.uuid, BLE_UUID128(uuid)->value,
@@ -1278,8 +1278,8 @@ static int disc_chrc_cb(uint16_t conn_handle,
struct gatt_disc_chrc_rp *rp = (void *) gatt_buf.buf;
struct gatt_characteristic *chrc;
const ble_uuid_any_t *uuid;
- u8_t btp_opcode = (uint8_t) (int) arg;
- u8_t uuid_length;
+ uint8_t btp_opcode = (uint8_t) (int) arg;
+ uint8_t uuid_length;
SYS_LOG_DBG("");
@@ -1314,7 +1314,7 @@ static int disc_chrc_cb(uint16_t conn_handle,
chrc->uuid_length = uuid_length;
if (uuid->u.type == BLE_UUID_TYPE_16) {
- u16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
+ uint16_t u16 = sys_cpu_to_le16(BLE_UUID16(uuid)->value);
memcpy(chrc->uuid, &u16, uuid_length);
} else {
memcpy(chrc->uuid, BLE_UUID128(uuid)->value,
@@ -1326,7 +1326,7 @@ static int disc_chrc_cb(uint16_t conn_handle,
return 0;
}
-static void disc_chrc_uuid(u8_t *data, u16_t len)
+static void disc_chrc_uuid(uint8_t *data, uint16_t len)
{
const struct gatt_disc_chrc_uuid_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -1366,7 +1366,7 @@ fail:
BTP_STATUS_FAILED);
}
-static void disc_prim_uuid(u8_t *data, u16_t len)
+static void disc_prim_uuid(uint8_t *data, uint16_t len)
{
const struct gatt_disc_prim_uuid_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -1402,7 +1402,7 @@ fail:
BTP_STATUS_FAILED);
}
-static void disc_all_chrc(u8_t *data, u16_t len)
+static void disc_all_chrc(uint8_t *data, uint16_t len)
{
const struct gatt_disc_all_chrc_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -1439,7 +1439,7 @@ fail:
BTP_STATUS_FAILED);
}
-static void find_included(u8_t *data, u16_t len)
+static void find_included(uint8_t *data, uint16_t len)
{
const struct gatt_find_included_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
@@ -1495,7 +1495,7 @@ static int exchange_func(uint16_t conn_handle,
return 0;
}
-static void exchange_mtu(u8_t *data, u16_t len)
+static void exchange_mtu(uint8_t *data, uint16_t len)
{
struct ble_gap_conn_desc conn;
int rc;
@@ -1517,10 +1517,10 @@ fail:
CONTROLLER_INDEX, BTP_STATUS_FAILED);
}
-static int enable_subscription(u16_t conn_handle, u16_t ccc_handle,
- u16_t value)
+static int enable_subscription(uint16_t conn_handle, uint16_t ccc_handle,
+ uint16_t value)
{
- u8_t op;
+ uint8_t op;
SYS_LOG_DBG("");
@@ -1538,9 +1538,9 @@ static int enable_subscription(u16_t conn_handle, u16_t ccc_handle,
return 0;
}
-static int disable_subscription(u16_t conn_handle, u16_t ccc_handle)
+static int disable_subscription(uint16_t conn_handle, uint16_t ccc_handle)
{
- u16_t value = 0x00;
+ uint16_t value = 0x00;
SYS_LOG_DBG("");
@@ -1559,12 +1559,12 @@ static int disable_subscription(u16_t conn_handle, u16_t ccc_handle)
return 0;
}
-static void config_subscription(u8_t *data, u16_t len, u8_t op)
+static void config_subscription(uint8_t *data, uint16_t len, uint8_t op)
{
const struct gatt_cfg_notify_cmd *cmd = (void *) data;
struct ble_gap_conn_desc conn;
- u16_t ccc_handle = sys_le16_to_cpu(cmd->ccc_handle);
- u8_t status;
+ uint16_t ccc_handle = sys_le16_to_cpu(cmd->ccc_handle);
+ uint8_t status;
int rc;
SYS_LOG_DBG("");
@@ -1577,7 +1577,7 @@ static void config_subscription(u8_t *data, u16_t len, u8_t op)
}
if (cmd->enable) {
- u16_t value;
+ uint16_t value;
if (op == GATT_CFG_NOTIFY) {
value = 0x0001;
@@ -1625,10 +1625,10 @@ static int flags_hs2btp_map[] = {
BTP_PERM_F_WRITE_AUTHOR,
};
-static u8_t flags_hs2btp(u8_t flags)
+static uint8_t flags_hs2btp(uint8_t flags)
{
int i;
- u8_t ret = 0;
+ uint8_t ret = 0;
for (i = 0; i < 8; ++i) {
if (flags & BIT(i)) {
@@ -1639,17 +1639,17 @@ static u8_t flags_hs2btp(u8_t flags)
return ret;
}
-static void get_attrs(u8_t *data, u16_t len)
+static void get_attrs(uint8_t *data, uint16_t len)
{
const struct gatt_get_attributes_cmd *cmd = (void *) data;
struct gatt_get_attributes_rp *rp;
struct gatt_attr *gatt_attr;
struct os_mbuf *buf = os_msys_get(0, 0);
- u16_t start_handle, end_handle;
+ uint16_t start_handle, end_handle;
struct ble_att_svr_entry *entry = NULL;
ble_uuid_any_t uuid;
ble_uuid_t *uuid_ptr = NULL;
- u8_t count = 0;
+ uint8_t count = 0;
char str[BLE_UUID_STR_LEN];
SYS_LOG_DBG("");
@@ -1718,13 +1718,13 @@ free:
os_mbuf_free_chain(buf);
}
-static void get_attr_val(u8_t *data, u16_t len)
+static void get_attr_val(uint8_t *data, uint16_t len)
{
const struct gatt_get_attribute_value_cmd *cmd = (void *) data;
struct gatt_get_attribute_value_rp *rp;
struct ble_gap_conn_desc conn;
struct os_mbuf *buf = os_msys_get(0, 0);
- u16_t handle = sys_cpu_to_le16(cmd->handle);
+ uint16_t handle = sys_cpu_to_le16(cmd->handle);
uint8_t out_att_err;
int conn_status;
@@ -1766,7 +1766,7 @@ free:
os_mbuf_free_chain(buf);
}
-static void change_database(u8_t *data, u16_t len)
+static void change_database(uint8_t *data, uint16_t len)
{
const struct gatt_change_database *cmd = (void *) data;
@@ -1782,9 +1782,9 @@ static void change_database(u8_t *data, u16_t len)
return;
}
-static void supported_commands(u8_t *data, u16_t len)
+static void supported_commands(uint8_t *data, uint16_t len)
{
- u8_t cmds[4];
+ uint8_t cmds[4];
struct gatt_read_supported_commands_rp *rp = (void *) cmds;
SYS_LOG_DBG("");
@@ -1816,7 +1816,7 @@ static void supported_commands(u8_t *data, u16_t len)
tester_set_bit(cmds, GATT_CHANGE_DATABASE);
tester_send(BTP_SERVICE_ID_GATT, GATT_READ_SUPPORTED_COMMANDS,
- CONTROLLER_INDEX, (u8_t *) rp, sizeof(cmds));
+ CONTROLLER_INDEX, (uint8_t *) rp, sizeof(cmds));
}
enum attr_type {
@@ -1825,8 +1825,8 @@ enum attr_type {
BLE_GATT_ATTR_DSC,
};
-void tester_handle_gatt(u8_t opcode, u8_t index, u8_t *data,
- u16_t len)
+void tester_handle_gatt(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len)
{
switch (opcode) {
case GATT_READ_SUPPORTED_COMMANDS:
@@ -1905,8 +1905,8 @@ void tester_handle_gatt(u8_t opcode, u8_t index, u8_t *data,
}
}
-int tester_gatt_notify_rx_ev(u16_t conn_handle, u16_t attr_handle,
- u8_t indication, struct os_mbuf *om)
+int tester_gatt_notify_rx_ev(uint16_t conn_handle, uint16_t attr_handle,
+ uint8_t indication, struct os_mbuf *om)
{
struct gatt_notification_ev *ev;
struct ble_gap_conn_desc conn;
@@ -1930,7 +1930,7 @@ int tester_gatt_notify_rx_ev(u16_t conn_handle, u16_t attr_handle,
ev->address_type = addr->type;
memcpy(ev->address, addr->val, sizeof(ev->address));
- ev->type = (u8_t) (indication ? 0x02 : 0x01);
+ ev->type = (uint8_t) (indication ? 0x02 : 0x01);
ev->handle = sys_cpu_to_le16(attr_handle);
ev->data_length = sys_cpu_to_le16(os_mbuf_len(om));
os_mbuf_appendfrom(buf, om, 0, os_mbuf_len(om));
@@ -1988,9 +1988,9 @@ void notify_test(struct os_event *ev)
}
}
-int tester_gatt_subscribe_ev(u16_t conn_handle, u16_t attr_handle, u8_t reason,
- u8_t prev_notify, u8_t cur_notify,
- u8_t prev_indicate, u8_t cur_indicate)
+int tester_gatt_subscribe_ev(uint16_t conn_handle, uint16_t attr_handle, uint8_t reason,
+ uint8_t prev_notify, uint8_t cur_notify,
+ uint8_t prev_indicate, uint8_t cur_indicate)
{
SYS_LOG_DBG("");
myconn_handle = conn_handle;
@@ -2084,7 +2084,7 @@ int gatt_svr_init(void)
return 0;
}
-u8_t tester_init_gatt(void)
+uint8_t tester_init_gatt(void)
{
os_callout_init(&notify_tx_timer, os_eventq_dflt_get(),
notify_test, NULL);
@@ -2092,7 +2092,7 @@ u8_t tester_init_gatt(void)
return BTP_STATUS_SUCCESS;
}
-u8_t tester_unregister_gatt(void)
+uint8_t tester_unregister_gatt(void)
{
return BTP_STATUS_SUCCESS;
}
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/glue.c b/src/libs/mynewt-nimble/apps/bttester/src/glue.c
index 6cd7643c..3e606062 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/glue.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/glue.c
@@ -33,8 +33,8 @@ const char *bt_hex(const void *buf, size_t len)
{
static const char hex[] = "0123456789abcdef";
static char hexbufs[4][137];
- static u8_t curbuf;
- const u8_t *b = buf;
+ static uint8_t curbuf;
+ const uint8_t *b = buf;
char *str;
int i;
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/glue.h b/src/libs/mynewt-nimble/apps/bttester/src/glue.h
index e563331e..65085601 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/glue.h
+++ b/src/libs/mynewt-nimble/apps/bttester/src/glue.h
@@ -22,11 +22,11 @@
#include "os/endian.h"
-#define u8_t uint8_t
-#define s8_t int8_t
-#define u16_t uint16_t
-#define u32_t uint32_t
-#define s32_t int32_t
+#define uint8_t uint8_t
+#define int8_t int8_t
+#define uint16_t uint16_t
+#define uint32_t uint32_t
+#define int32_t int32_t
#ifndef BIT
#define BIT(n) (1UL << (n))
@@ -37,16 +37,16 @@
#define sys_le16_to_cpu le16toh
struct bt_data {
- u8_t type;
- u8_t data_len;
- const u8_t *data;
+ uint8_t type;
+ uint8_t data_len;
+ const uint8_t *data;
};
#define BT_DATA(_type, _data, _data_len) \
{ \
.type = (_type), \
.data_len = (_data_len), \
- .data = (const u8_t *)(_data), \
+ .data = (const uint8_t *)(_data), \
}
struct os_mbuf * NET_BUF_SIMPLE(uint16_t size);
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/l2cap.c b/src/libs/mynewt-nimble/apps/bttester/src/l2cap.c
index 45b904a1..5c4fc712 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/l2cap.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/l2cap.c
@@ -33,11 +33,13 @@
#include "host/ble_gap.h"
#include "host/ble_l2cap.h"
+#include "../../../nimble/host/src/ble_l2cap_priv.h"
+
#include "bttester.h"
#define CONTROLLER_INDEX 0
#define CHANNELS MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM)
-#define TESTER_COC_MTU (230)
+#define TESTER_COC_MTU MYNEWT_VAL(BTTESTER_L2CAP_COC_MTU)
#define TESTER_COC_BUF_COUNT (3 * MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM))
static os_membuf_t tester_sdu_coc_mem[
@@ -48,14 +50,34 @@ struct os_mbuf_pool sdu_os_mbuf_pool;
static struct os_mempool sdu_coc_mbuf_mempool;
static struct channel {
- u8_t chan_id; /* Internal number that identifies L2CAP channel. */
- u8_t state;
+ uint8_t chan_id; /* Internal number that identifies L2CAP channel. */
+ uint8_t state;
struct ble_l2cap_chan *chan;
} channels[CHANNELS];
-static u8_t recv_cb_buf[TESTER_COC_MTU + sizeof(struct l2cap_data_received_ev)];
+static uint8_t recv_cb_buf[TESTER_COC_MTU + sizeof(struct l2cap_data_received_ev)];
+
+static struct channel *get_free_channel(void)
+{
+ uint8_t i;
+ struct channel *chan;
-struct channel *find_channel(struct ble_l2cap_chan *chan) {
+ for (i = 0; i < CHANNELS; i++) {
+ if (channels[i].state) {
+ continue;
+ }
+
+ chan = &channels[i];
+ chan->chan_id = i;
+
+ return chan;
+ }
+
+ return NULL;
+}
+
+struct channel *find_channel(struct ble_l2cap_chan *chan)
+{
int i;
for (i = 0; i < CHANNELS; ++i) {
@@ -67,6 +89,15 @@ struct channel *find_channel(struct ble_l2cap_chan *chan) {
return NULL;
}
+struct channel *get_channel(uint8_t chan_id)
+{
+ if (chan_id >= CHANNELS) {
+ return NULL;
+ }
+
+ return &channels[chan_id];
+}
+
static void
tester_l2cap_coc_recv(struct ble_l2cap_chan *chan, struct os_mbuf *sdu)
{
@@ -84,14 +115,20 @@ static void recv_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
struct os_mbuf *buf, void *arg)
{
struct l2cap_data_received_ev *ev = (void *) recv_cb_buf;
- struct channel *channel = arg;
+ struct channel *channel = find_channel(chan);
+ assert(channel != NULL);
ev->chan_id = channel->chan_id;
- ev->data_length = buf->om_len;
- memcpy(ev->data, buf->om_data, buf->om_len);
+ ev->data_length = OS_MBUF_PKTLEN(buf);
+
+ if (ev->data_length > TESTER_COC_MTU) {
+ SYS_LOG_ERR("Too large sdu received, truncating data");
+ ev->data_length = TESTER_COC_MTU;
+ }
+ os_mbuf_copydata(buf, 0, ev->data_length, ev->data);
tester_send(BTP_SERVICE_ID_L2CAP, L2CAP_EV_DATA_RECEIVED,
- CONTROLLER_INDEX, recv_cb_buf, sizeof(*ev) + buf->om_len);
+ CONTROLLER_INDEX, recv_cb_buf, sizeof(*ev) + ev->data_length);
tester_l2cap_coc_recv(chan, buf);
}
@@ -108,44 +145,49 @@ static void unstalled_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
}
}
-static struct channel *get_free_channel(void)
+static void reconfigured_ev(uint16_t conn_handle, struct ble_l2cap_chan *chan,
+ struct ble_l2cap_chan_info *chan_info,
+ int status)
{
- u8_t i;
- struct channel *chan;
+ struct l2cap_reconfigured_ev ev;
+ struct channel *channel;
- for (i = 0; i < CHANNELS; i++) {
- if (channels[i].state) {
- continue;
- }
+ if (status != 0) {
+ return;
+ }
- chan = &channels[i];
- chan->chan_id = i;
+ channel = find_channel(chan);
+ assert(channel != NULL);
- return chan;
- }
+ ev.chan_id = channel->chan_id;
+ ev.peer_mtu = chan_info->peer_coc_mtu;
+ ev.peer_mps = chan_info->peer_l2cap_mtu;
+ ev.our_mtu = chan_info->our_coc_mtu;
+ ev.our_mps = chan_info->our_l2cap_mtu;
- return NULL;
+ tester_send(BTP_SERVICE_ID_L2CAP, L2CAP_EV_RECONFIGURED,
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static void connected_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
- void *arg)
+ struct ble_l2cap_chan_info *chan_info, void *arg)
{
struct l2cap_connected_ev ev;
struct ble_gap_conn_desc desc;
- struct channel *channel;
+ struct channel *channel = find_channel(chan);
- channel = get_free_channel();
- if (!channel) {
- assert(0);
+ if (channel == NULL) {
+ channel = get_free_channel();
}
- channel->chan = chan;
- channel->state = 0;
-
ev.chan_id = channel->chan_id;
+ ev.psm = chan_info->psm;
+ ev.peer_mtu = chan_info->peer_coc_mtu;
+ ev.peer_mps = chan_info->peer_l2cap_mtu;
+ ev.our_mtu = chan_info->our_coc_mtu;
+ ev.our_mps = chan_info->our_l2cap_mtu;
channel->state = 1;
channel->chan = chan;
- /* TODO: ev.psm */
if (!ble_gap_conn_find(conn_handle, &desc)) {
ev.address_type = desc.peer_ota_addr.type;
@@ -154,11 +196,11 @@ static void connected_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
}
tester_send(BTP_SERVICE_ID_L2CAP, L2CAP_EV_CONNECTED, CONTROLLER_INDEX,
- (u8_t *) &ev, sizeof(ev));
+ (uint8_t *) &ev, sizeof(ev));
}
static void disconnected_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
- void *arg)
+ struct ble_l2cap_chan_info *chan_info, void *arg)
{
struct l2cap_disconnected_ev ev;
struct ble_gap_conn_desc desc;
@@ -167,14 +209,12 @@ static void disconnected_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
memset(&ev, 0, sizeof(struct l2cap_disconnected_ev));
channel = find_channel(chan);
- if (channel != NULL) {
- channel->state = 0;
- channel->chan = chan;
+ assert(channel != NULL);
- ev.chan_id = channel->chan_id;
- /* TODO: ev.result */
- /* TODO: ev.psm */
- }
+ channel->state = 0;
+ channel->chan = chan;
+ ev.chan_id = channel->chan_id;
+ ev.psm = chan_info->psm;
if (!ble_gap_conn_find(conn_handle, &desc)) {
ev.address_type = desc.peer_ota_addr.type;
@@ -183,7 +223,7 @@ static void disconnected_cb(uint16_t conn_handle, struct ble_l2cap_chan *chan,
}
tester_send(BTP_SERVICE_ID_L2CAP, L2CAP_EV_DISCONNECTED,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static int accept_cb(uint16_t conn_handle, uint16_t peer_mtu,
@@ -208,39 +248,51 @@ static int
tester_l2cap_event(struct ble_l2cap_event *event, void *arg)
{
struct ble_l2cap_chan_info chan_info;
+ int accept_response;
switch (event->type) {
- case BLE_L2CAP_EVENT_COC_CONNECTED:
+ case BLE_L2CAP_EVENT_COC_CONNECTED:
+ if (ble_l2cap_get_chan_info(event->connect.chan, &chan_info)) {
+ assert(0);
+ }
+
if (event->connect.status) {
console_printf("LE COC error: %d\n", event->connect.status);
disconnected_cb(event->connect.conn_handle,
- event->connect.chan, arg);
+ event->connect.chan, &chan_info, arg);
return 0;
}
- ble_l2cap_get_chan_info(event->connect.chan, &chan_info);
-
- console_printf("LE COC connected, conn: %d, chan: 0x%08lx, scid: 0x%04x, "
- "dcid: 0x%04x, our_mtu: 0x%04x, peer_mtu: 0x%04x\n",
- event->connect.conn_handle,
- (uint32_t) event->connect.chan,
- chan_info.scid,
- chan_info.dcid,
- chan_info.our_l2cap_mtu,
- chan_info.peer_l2cap_mtu);
+ console_printf("LE COC connected, conn: %d, chan: 0x%08lx, "
+ "psm: 0x%02x, scid: 0x%04x, dcid: 0x%04x, "
+ "our_mps: %d, our_mtu: %d, peer_mps: %d, "
+ "peer_mtu: %d\n", event->connect.conn_handle,
+ (uint32_t) event->connect.chan, chan_info.psm,
+ chan_info.scid, chan_info.dcid,
+ chan_info.our_l2cap_mtu, chan_info.our_coc_mtu,
+ chan_info.peer_l2cap_mtu, chan_info.peer_coc_mtu);
connected_cb(event->connect.conn_handle,
- event->connect.chan, arg);
+ event->connect.chan, &chan_info, arg);
return 0;
case BLE_L2CAP_EVENT_COC_DISCONNECTED:
+ if (ble_l2cap_get_chan_info(event->disconnect.chan,
+ &chan_info)) {
+ assert(0);
+ }
console_printf("LE CoC disconnected, chan: 0x%08lx\n",
(uint32_t) event->disconnect.chan);
disconnected_cb(event->disconnect.conn_handle,
- event->disconnect.chan, arg);
+ event->disconnect.chan, &chan_info, arg);
return 0;
case BLE_L2CAP_EVENT_COC_ACCEPT:
+ accept_response = POINTER_TO_INT(arg);
+ if (accept_response) {
+ return accept_response;
+ }
+
console_printf("LE CoC accept, chan: 0x%08lx, handle: %u, sdu_size: %u\n",
(uint32_t) event->accept.chan,
event->accept.conn_handle,
@@ -254,7 +306,8 @@ tester_l2cap_event(struct ble_l2cap_event *event, void *arg)
console_printf("LE CoC data received, chan: 0x%08lx, handle: %u, sdu_len: %u\n",
(uint32_t) event->receive.chan,
event->receive.conn_handle,
- event->receive.sdu_rx->om_len);
+ OS_MBUF_PKTLEN(event->receive.sdu_rx));
+
recv_cb(event->receive.conn_handle, event->receive.chan,
event->receive.sdu_rx, arg);
return 0;
@@ -263,57 +316,118 @@ tester_l2cap_event(struct ble_l2cap_event *event, void *arg)
(uint32_t) event->tx_unstalled.chan,
event->tx_unstalled.conn_handle,
event->tx_unstalled.status);
+
unstalled_cb(event->tx_unstalled.conn_handle,
event->tx_unstalled.chan,
event->tx_unstalled.status, arg);
return 0;
+ case BLE_L2CAP_EVENT_COC_RECONFIG_COMPLETED:
+ if (ble_l2cap_get_chan_info(event->reconfigured.chan,
+ &chan_info)) {
+ assert(0);
+ }
+ console_printf("LE CoC reconfigure completed status 0x%02x, "
+ "chan: 0x%08lx\n", event->reconfigured.status,
+ (uint32_t) event->reconfigured.chan);
+
+ if (event->reconfigured.status == 0) {
+ console_printf("\t our_mps: %d our_mtu %d\n",
+ chan_info.our_l2cap_mtu, chan_info.our_coc_mtu);
+ }
+
+ reconfigured_ev(event->reconfigured.conn_handle,
+ event->reconfigured.chan,
+ &chan_info,
+ event->reconfigured.status);
+ return 0;
+ case BLE_L2CAP_EVENT_COC_PEER_RECONFIGURED:
+ if (ble_l2cap_get_chan_info(event->reconfigured.chan,
+ &chan_info)) {
+ assert(0);
+ }
+ console_printf("LE CoC peer reconfigured status 0x%02x, "
+ "chan: 0x%08lx\n", event->reconfigured.status,
+ (uint32_t) event->reconfigured.chan);
+
+ if (event->reconfigured.status == 0) {
+ console_printf("\t peer_mps: %d peer_mtu %d\n",
+ chan_info.peer_l2cap_mtu, chan_info.peer_coc_mtu);
+ }
+
+ reconfigured_ev(event->reconfigured.conn_handle,
+ event->reconfigured.chan,
+ &chan_info,
+ event->reconfigured.status);
+ return 0;
default:
return 0;
}
}
-static void connect(u8_t *data, u16_t len)
+static void connect(uint8_t *data, uint16_t len)
{
const struct l2cap_connect_cmd *cmd = (void *) data;
- struct l2cap_connect_rp rp;
+ uint8_t rp_buf[sizeof(struct l2cap_connect_rp) + cmd->num];
+ struct l2cap_connect_rp *rp = (void *) rp_buf;
struct ble_gap_conn_desc desc;
struct channel *chan;
- struct os_mbuf *sdu_rx;
+ struct os_mbuf *sdu_rx[cmd->num];
ble_addr_t *addr = (void *) data;
+ uint16_t mtu = htole16(cmd->mtu);
int rc;
+ int i;
SYS_LOG_DBG("connect: type: %d addr: %s", addr->type, bt_hex(addr->val, 6));
+ if (mtu == 0 || mtu > TESTER_COC_MTU) {
+ mtu = TESTER_COC_MTU;
+ }
+
rc = ble_gap_conn_find_by_addr(addr, &desc);
if (rc) {
SYS_LOG_ERR("GAP conn find failed");
goto fail;
}
- chan = get_free_channel();
- if (!chan) {
- SYS_LOG_ERR("No free channels");
- goto fail;
+ rp->num = cmd->num;
+
+ for (i = 0; i < cmd->num; i++) {
+ chan = get_free_channel();
+ if (!chan) {
+ SYS_LOG_ERR("No free channels");
+ goto fail;
+ }
+
+ rp->chan_ids[i] = chan->chan_id;
+
+ sdu_rx[i] = os_mbuf_get_pkthdr(&sdu_os_mbuf_pool, 0);
+ if (sdu_rx[i] == NULL) {
+ SYS_LOG_ERR("Failed to alloc buf");
+ goto fail;
+ }
}
- sdu_rx = os_mbuf_get_pkthdr(&sdu_os_mbuf_pool, 0);
- if (sdu_rx == NULL) {
- SYS_LOG_ERR("Failed to alloc buf");
+ if (cmd->num == 1) {
+ rc = ble_l2cap_connect(desc.conn_handle, htole16(cmd->psm),
+ mtu, sdu_rx[0],
+ tester_l2cap_event, NULL);
+ } else if (cmd->num > 1) {
+ rc = ble_l2cap_enhanced_connect(desc.conn_handle,
+ htole16(cmd->psm), mtu,
+ cmd->num, sdu_rx,
+ tester_l2cap_event, NULL);
+ } else {
+ SYS_LOG_ERR("Invalid 'num' parameter value");
goto fail;
}
- rc = ble_l2cap_connect(desc.conn_handle, htole16(cmd->psm),
- TESTER_COC_MTU, sdu_rx,
- tester_l2cap_event, chan);
if (rc) {
SYS_LOG_ERR("L2CAP connect failed\n");
goto fail;
}
- rp.chan_id = chan->chan_id;
-
tester_send(BTP_SERVICE_ID_L2CAP, L2CAP_CONNECT, CONTROLLER_INDEX,
- (u8_t *) &rp, sizeof(rp));
+ (uint8_t *) rp, sizeof(rp_buf));
return;
@@ -322,16 +436,17 @@ fail:
BTP_STATUS_FAILED);
}
-static void disconnect(u8_t *data, u16_t len)
+static void disconnect(const uint8_t *data, uint16_t len)
{
const struct l2cap_disconnect_cmd *cmd = (void *) data;
struct channel *chan;
- u8_t status;
+ uint8_t status;
int err;
SYS_LOG_DBG("");
- chan = &channels[cmd->chan_id];
+ chan = get_channel(cmd->chan_id);
+ assert(chan != NULL);
err = ble_l2cap_disconnect(chan->chan);
if (err) {
@@ -346,16 +461,21 @@ rsp:
status);
}
-static void send_data(u8_t *data, u16_t len)
+static void send_data(const uint8_t *data, uint16_t len)
{
const struct l2cap_send_data_cmd *cmd = (void *) data;
- struct channel *chan = &channels[cmd->chan_id];
struct os_mbuf *sdu_tx = NULL;
int rc;
- u16_t data_len = sys_le16_to_cpu(cmd->data_len);
+ uint16_t data_len = sys_le16_to_cpu(cmd->data_len);
+ struct channel *chan = get_channel(cmd->chan_id);
SYS_LOG_DBG("cmd->chan_id=%d", cmd->chan_id);
+ if (!chan) {
+ SYS_LOG_ERR("Invalid channel\n");
+ goto fail;
+ }
+
/* FIXME: For now, fail if data length exceeds buffer length */
if (data_len > TESTER_COC_MTU) {
SYS_LOG_ERR("Data length exceeds buffer length");
@@ -386,16 +506,48 @@ fail:
BTP_STATUS_FAILED);
}
-static void listen(u8_t *data, u16_t len)
+static int
+l2cap_coc_err2hs_err(uint16_t coc_err)
+{
+ switch (coc_err) {
+ case BLE_L2CAP_COC_ERR_UNKNOWN_LE_PSM:
+ return BLE_HS_ENOTSUP;
+ case BLE_L2CAP_COC_ERR_NO_RESOURCES:
+ return BLE_HS_ENOMEM;
+ case BLE_L2CAP_COC_ERR_INSUFFICIENT_AUTHEN:
+ return BLE_HS_EAUTHEN;
+ case BLE_L2CAP_COC_ERR_INSUFFICIENT_AUTHOR:
+ return BLE_HS_EAUTHOR;
+ case BLE_L2CAP_COC_ERR_INSUFFICIENT_ENC:
+ return BLE_HS_EENCRYPT;
+ case BLE_L2CAP_COC_ERR_INSUFFICIENT_KEY_SZ:
+ return BLE_HS_EENCRYPT_KEY_SZ;
+ case BLE_L2CAP_COC_ERR_UNACCEPTABLE_PARAMETERS:
+ return BLE_HS_EINVAL;
+ default:
+ return 0;
+ }
+}
+
+
+static void listen(const uint8_t *data, uint16_t len)
{
const struct l2cap_listen_cmd *cmd = (void *) data;
+ uint16_t mtu = htole16(cmd->mtu);
+ uint16_t rsp = htole16(cmd->response);
int rc;
SYS_LOG_DBG("");
+ if (mtu == 0 || mtu > TESTER_COC_MTU) {
+ mtu = TESTER_COC_MTU;
+ }
+
+ rsp = l2cap_coc_err2hs_err(rsp);
+
/* TODO: Handle cmd->transport flag */
- rc = ble_l2cap_create_server(cmd->psm, TESTER_COC_MTU,
- tester_l2cap_event, NULL);
+ rc = ble_l2cap_create_server(cmd->psm, mtu, tester_l2cap_event,
+ INT_TO_POINTER(rsp));
if (rc) {
goto fail;
}
@@ -409,9 +561,54 @@ fail:
BTP_STATUS_FAILED);
}
-static void supported_commands(u8_t *data, u16_t len)
+static void reconfigure(const uint8_t *data, uint16_t len)
{
- u8_t cmds[1];
+ const struct l2cap_reconfigure_cmd *cmd = (void *) data;
+ uint16_t mtu = htole16(cmd->mtu);
+ struct ble_gap_conn_desc desc;
+ ble_addr_t *addr = (void *) data;
+ struct ble_l2cap_chan *chans[cmd->num];
+ struct channel *channel;
+ int rc;
+ int i;
+
+ SYS_LOG_DBG("");
+
+ if (mtu == 0 || mtu > TESTER_COC_MTU) {
+ mtu = TESTER_COC_MTU;
+ }
+
+ rc = ble_gap_conn_find_by_addr(addr, &desc);
+ if (rc) {
+ SYS_LOG_ERR("GAP conn find failed");
+ goto fail;
+ }
+
+ for (i = 0; i < cmd->num; ++i) {
+ channel = get_channel(cmd->idxs[i]);
+ if (channel == NULL) {
+ goto fail;
+ }
+ chans[i] = channel->chan;
+ }
+
+ rc = ble_l2cap_reconfig(chans, cmd->num, mtu);
+ if (rc) {
+ goto fail;
+ }
+
+ tester_rsp(BTP_SERVICE_ID_L2CAP, L2CAP_RECONFIGURE, CONTROLLER_INDEX,
+ BTP_STATUS_SUCCESS);
+ return;
+
+fail:
+ tester_rsp(BTP_SERVICE_ID_L2CAP, L2CAP_RECONFIGURE, CONTROLLER_INDEX,
+ BTP_STATUS_FAILED);
+}
+
+static void supported_commands(uint8_t *data, uint16_t len)
+{
+ uint8_t cmds[1];
struct l2cap_read_supported_commands_rp *rp = (void *) cmds;
memset(cmds, 0, sizeof(cmds));
@@ -421,13 +618,14 @@ static void supported_commands(u8_t *data, u16_t len)
tester_set_bit(cmds, L2CAP_DISCONNECT);
tester_set_bit(cmds, L2CAP_LISTEN);
tester_set_bit(cmds, L2CAP_SEND_DATA);
+ tester_set_bit(cmds, L2CAP_RECONFIGURE);
tester_send(BTP_SERVICE_ID_L2CAP, L2CAP_READ_SUPPORTED_COMMANDS,
- CONTROLLER_INDEX, (u8_t *) rp, sizeof(cmds));
+ CONTROLLER_INDEX, (uint8_t *) rp, sizeof(cmds));
}
-void tester_handle_l2cap(u8_t opcode, u8_t index, u8_t *data,
- u16_t len)
+void tester_handle_l2cap(uint8_t opcode, uint8_t index, uint8_t *data,
+ uint16_t len)
{
switch (opcode) {
case L2CAP_READ_SUPPORTED_COMMANDS:
@@ -445,6 +643,9 @@ void tester_handle_l2cap(u8_t opcode, u8_t index, u8_t *data,
case L2CAP_LISTEN:
listen(data, len);
return;
+ case L2CAP_RECONFIGURE:
+ reconfigure(data, len);
+ return;
default:
tester_rsp(BTP_SERVICE_ID_L2CAP, opcode, index,
BTP_STATUS_UNKNOWN_CMD);
@@ -452,7 +653,7 @@ void tester_handle_l2cap(u8_t opcode, u8_t index, u8_t *data,
}
}
-u8_t tester_init_l2cap(void)
+uint8_t tester_init_l2cap(void)
{
int rc;
@@ -469,7 +670,7 @@ u8_t tester_init_l2cap(void)
return BTP_STATUS_SUCCESS;
}
-u8_t tester_unregister_l2cap(void)
+uint8_t tester_unregister_l2cap(void)
{
return BTP_STATUS_SUCCESS;
}
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/mesh.c b/src/libs/mynewt-nimble/apps/bttester/src/mesh.c
index e18a2a4e..8226fe99 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/mesh.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/mesh.c
@@ -38,7 +38,7 @@
#include "bttester.h"
-extern u8_t own_addr_type;
+extern uint8_t own_addr_type;
#define CONTROLLER_INDEX 0
#define CID_LOCAL 0xffff
@@ -47,21 +47,21 @@ extern u8_t own_addr_type;
#define CUR_FAULTS_MAX 4
#define HEALTH_TEST_ID 0x00
-static u8_t cur_faults[CUR_FAULTS_MAX];
-static u8_t reg_faults[CUR_FAULTS_MAX * 2];
+static uint8_t cur_faults[CUR_FAULTS_MAX];
+static uint8_t reg_faults[CUR_FAULTS_MAX * 2];
/* Provision node data */
-static u8_t net_key[16];
-static u16_t net_key_idx;
-static u8_t flags;
-static u32_t iv_index;
-static u16_t addr;
-static u8_t dev_key[16];
-static u8_t input_size;
+static uint8_t net_key[16];
+static uint16_t net_key_idx;
+static uint8_t flags;
+static uint32_t iv_index;
+static uint16_t addr;
+static uint8_t dev_key[16];
+static uint8_t input_size;
/* Configured provisioning data */
-static u8_t dev_uuid[16];
-static u8_t static_auth[16];
+static uint8_t dev_uuid[16];
+static uint8_t static_auth[16];
/* Vendor Model data */
#define VND_MODEL_ID_1 0x1234
@@ -71,20 +71,20 @@ static u8_t static_auth[16];
static struct model_data {
struct bt_mesh_model *model;
- u16_t addr;
- u16_t appkey_idx;
+ uint16_t addr;
+ uint16_t appkey_idx;
} model_bound[MODEL_BOUNDS_MAX];
static struct {
- u16_t local;
- u16_t dst;
- u16_t net_idx;
+ uint16_t local;
+ uint16_t dst;
+ uint16_t net_idx;
} net = {
.local = BT_MESH_ADDR_UNASSIGNED,
.dst = BT_MESH_ADDR_UNASSIGNED,
};
-static void supported_commands(u8_t *data, u16_t len)
+static void supported_commands(uint8_t *data, uint16_t len)
{
struct os_mbuf *buf = NET_BUF_SIMPLE(BTP_DATA_MAX_SIZE);
@@ -121,29 +121,9 @@ static void supported_commands(u8_t *data, u16_t len)
CONTROLLER_INDEX, buf);
}
-static struct bt_mesh_cfg_srv cfg_srv = {
- .relay = BT_MESH_RELAY_ENABLED,
- .beacon = BT_MESH_BEACON_ENABLED,
-#if MYNEWT_VAL(BLE_MESH_FRIEND)
- .frnd = BT_MESH_FRIEND_ENABLED,
-#else
- .frnd = BT_MESH_FRIEND_NOT_SUPPORTED,
-#endif
-#if MYNEWT_VAL(BLE_MESH_GATT_PROXY)
- .gatt_proxy = BT_MESH_GATT_PROXY_ENABLED,
-#else
- .gatt_proxy = BT_MESH_GATT_PROXY_NOT_SUPPORTED,
-#endif
- .default_ttl = 7,
-
- /* 3 transmissions with 20ms interval */
- .net_transmit = BT_MESH_TRANSMIT(2, 20),
- .relay_retransmit = BT_MESH_TRANSMIT(2, 20),
-};
-
-static void get_faults(u8_t *faults, u8_t faults_size, u8_t *dst, u8_t *count)
+static void get_faults(uint8_t *faults, uint8_t faults_size, uint8_t *dst, uint8_t *count)
{
- u8_t i, limit = *count;
+ uint8_t i, limit = *count;
for (i = 0, *count = 0; i < faults_size && *count < limit; i++) {
if (faults[i]) {
@@ -153,8 +133,8 @@ static void get_faults(u8_t *faults, u8_t faults_size, u8_t *dst, u8_t *count)
}
}
-static int fault_get_cur(struct bt_mesh_model *model, u8_t *test_id,
- u16_t *company_id, u8_t *faults, u8_t *fault_count)
+static int fault_get_cur(struct bt_mesh_model *model, uint8_t *test_id,
+ uint16_t *company_id, uint8_t *faults, uint8_t *fault_count)
{
SYS_LOG_DBG("");
@@ -166,8 +146,8 @@ static int fault_get_cur(struct bt_mesh_model *model, u8_t *test_id,
return 0;
}
-static int fault_get_reg(struct bt_mesh_model *model, u16_t company_id,
- u8_t *test_id, u8_t *faults, u8_t *fault_count)
+static int fault_get_reg(struct bt_mesh_model *model, uint16_t company_id,
+ uint8_t *test_id, uint8_t *faults, uint8_t *fault_count)
{
SYS_LOG_DBG("company_id 0x%04x", company_id);
@@ -229,7 +209,7 @@ health_pub_init(void)
static struct bt_mesh_cfg_cli cfg_cli = {
};
-void show_faults(u8_t test_id, u16_t cid, u8_t *faults, size_t fault_count)
+void show_faults(uint8_t test_id, uint16_t cid, uint8_t *faults, size_t fault_count)
{
size_t i;
@@ -247,8 +227,8 @@ void show_faults(u8_t test_id, u16_t cid, u8_t *faults, size_t fault_count)
}
}
-static void health_current_status(struct bt_mesh_health_cli *cli, u16_t addr,
- u8_t test_id, u16_t cid, u8_t *faults,
+static void health_current_status(struct bt_mesh_health_cli *cli, uint16_t addr,
+ uint8_t test_id, uint16_t cid, uint8_t *faults,
size_t fault_count)
{
SYS_LOG_DBG("Health Current Status from 0x%04x", addr);
@@ -260,7 +240,7 @@ static struct bt_mesh_health_cli health_cli = {
};
static struct bt_mesh_model root_models[] = {
- BT_MESH_MODEL_CFG_SRV(&cfg_srv),
+ BT_MESH_MODEL_CFG_SRV,
BT_MESH_MODEL_CFG_CLI(&cfg_cli),
BT_MESH_MODEL_HEALTH_SRV(&health_srv, &health_pub),
BT_MESH_MODEL_HEALTH_CLI(&health_cli),
@@ -295,7 +275,7 @@ static void link_open(bt_mesh_prov_bearer_t bearer)
}
tester_send(BTP_SERVICE_ID_MESH, MESH_EV_PROV_LINK_OPEN,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static void link_close(bt_mesh_prov_bearer_t bearer)
@@ -318,10 +298,10 @@ static void link_close(bt_mesh_prov_bearer_t bearer)
}
tester_send(BTP_SERVICE_ID_MESH, MESH_EV_PROV_LINK_CLOSED,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
-static int output_number(bt_mesh_output_action_t action, u32_t number)
+static int output_number(bt_mesh_output_action_t action, uint32_t number)
{
struct mesh_out_number_action_ev ev;
@@ -331,7 +311,7 @@ static int output_number(bt_mesh_output_action_t action, u32_t number)
ev.number = sys_cpu_to_le32(number);
tester_send(BTP_SERVICE_ID_MESH, MESH_EV_OUT_NUMBER_ACTION,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
return 0;
}
@@ -357,7 +337,7 @@ static int output_string(const char *str)
return 0;
}
-static int input(bt_mesh_input_action_t action, u8_t size)
+static int input(bt_mesh_input_action_t action, uint8_t size)
{
struct mesh_in_action_ev ev;
@@ -369,12 +349,15 @@ static int input(bt_mesh_input_action_t action, u8_t size)
ev.size = size;
tester_send(BTP_SERVICE_ID_MESH, MESH_EV_IN_ACTION, CONTROLLER_INDEX,
- (u8_t *) &ev, sizeof(ev));
+ (uint8_t *) &ev, sizeof(ev));
return 0;
}
-static void prov_complete(u16_t net_idx, u16_t addr)
+static uint8_t vnd_app_key[16];
+static uint16_t vnd_app_key_idx = 0x000f;
+
+static void prov_complete(uint16_t net_idx, uint16_t addr)
{
SYS_LOG_DBG("net_idx 0x%04x addr 0x%04x", net_idx, addr);
@@ -412,7 +395,7 @@ static struct bt_mesh_prov prov = {
.reset = prov_reset,
};
-static void config_prov(u8_t *data, u16_t len)
+static void config_prov(uint8_t *data, uint16_t len)
{
const struct mesh_config_provisioning_cmd *cmd = (void *) data;
@@ -430,7 +413,7 @@ static void config_prov(u8_t *data, u16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
-static void provision_node(u8_t *data, u16_t len)
+static void provision_node(uint8_t *data, uint16_t len)
{
const struct mesh_provision_node_cmd *cmd = (void *) data;
@@ -448,9 +431,9 @@ static void provision_node(u8_t *data, u16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
-static void init(u8_t *data, u16_t len)
+static void init(uint8_t *data, uint16_t len)
{
- u8_t status = BTP_STATUS_SUCCESS;
+ uint8_t status = BTP_STATUS_SUCCESS;
int err;
SYS_LOG_DBG("");
@@ -475,15 +458,12 @@ static void init(u8_t *data, u16_t len)
}
}
- /* Set device key for vendor model */
- vnd_models[0].keys[0] = BT_MESH_KEY_DEV;
-
rsp:
tester_rsp(BTP_SERVICE_ID_MESH, MESH_INIT, CONTROLLER_INDEX,
status);
}
-static void reset(u8_t *data, u16_t len)
+static void reset(uint8_t *data, uint16_t len)
{
SYS_LOG_DBG("");
@@ -493,11 +473,11 @@ static void reset(u8_t *data, u16_t len)
BTP_STATUS_SUCCESS);
}
-static void input_number(u8_t *data, u16_t len)
+static void input_number(uint8_t *data, uint16_t len)
{
const struct mesh_input_number_cmd *cmd = (void *) data;
- u8_t status = BTP_STATUS_SUCCESS;
- u32_t number;
+ uint8_t status = BTP_STATUS_SUCCESS;
+ uint32_t number;
int err;
number = sys_le32_to_cpu(cmd->number);
@@ -513,11 +493,11 @@ static void input_number(u8_t *data, u16_t len)
status);
}
-static void input_string(u8_t *data, u16_t len)
+static void input_string(uint8_t *data, uint16_t len)
{
const struct mesh_input_string_cmd *cmd = (void *) data;
- u8_t status = BTP_STATUS_SUCCESS;
- u8_t str_auth[16];
+ uint8_t status = BTP_STATUS_SUCCESS;
+ uint8_t str_auth[16];
int err;
SYS_LOG_DBG("");
@@ -544,7 +524,7 @@ rsp:
status);
}
-static void ivu_test_mode(u8_t *data, u16_t len)
+static void ivu_test_mode(uint8_t *data, uint16_t len)
{
const struct mesh_ivu_test_mode_cmd *cmd = (void *) data;
@@ -556,7 +536,7 @@ static void ivu_test_mode(u8_t *data, u16_t len)
BTP_STATUS_SUCCESS);
}
-static void ivu_toggle_state(u8_t *data, u16_t len)
+static void ivu_toggle_state(uint8_t *data, uint16_t len)
{
bool result;
@@ -571,7 +551,7 @@ static void ivu_toggle_state(u8_t *data, u16_t len)
result ? BTP_STATUS_SUCCESS : BTP_STATUS_FAILED);
}
-static void lpn(u8_t *data, u16_t len)
+static void lpn(uint8_t *data, uint16_t len)
{
struct mesh_lpn_set_cmd *cmd = (void *) data;
bool enable;
@@ -589,7 +569,7 @@ static void lpn(u8_t *data, u16_t len)
err ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS);
}
-static void lpn_poll(u8_t *data, u16_t len)
+static void lpn_poll(uint8_t *data, uint16_t len)
{
int err;
@@ -604,13 +584,13 @@ static void lpn_poll(u8_t *data, u16_t len)
err ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS);
}
-static void net_send(u8_t *data, u16_t len)
+static void net_send(uint8_t *data, uint16_t len)
{
struct mesh_net_send_cmd *cmd = (void *) data;
- struct os_mbuf *msg = NET_BUF_SIMPLE(UINT8_MAX);
+ struct os_mbuf *msg = NET_BUF_SIMPLE(UINT8_MAX);
struct bt_mesh_msg_ctx ctx = {
.net_idx = net.net_idx,
- .app_idx = BT_MESH_KEY_DEV,
+ .app_idx = vnd_app_key_idx,
.addr = sys_le16_to_cpu(cmd->dst),
.send_ttl = cmd->ttl,
};
@@ -619,6 +599,12 @@ static void net_send(u8_t *data, u16_t len)
SYS_LOG_DBG("ttl 0x%02x dst 0x%04x payload_len %d", ctx.send_ttl,
ctx.addr, cmd->payload_len);
+ if (!bt_mesh_app_key_get(vnd_app_key_idx)) {
+ (void)bt_mesh_app_key_add(vnd_app_key_idx, net.net_idx,
+ vnd_app_key);
+ vnd_models[0].keys[0] = vnd_app_key_idx;
+ }
+
net_buf_simple_add_mem(msg, cmd->payload, cmd->payload_len);
err = bt_mesh_model_send(&vnd_models[0], &ctx, msg, NULL, NULL);
@@ -632,13 +618,13 @@ static void net_send(u8_t *data, u16_t len)
os_mbuf_free_chain(msg);
}
-static void health_generate_faults(u8_t *data, u16_t len)
+static void health_generate_faults(uint8_t *data, uint16_t len)
{
struct mesh_health_generate_faults_rp *rp;
struct os_mbuf *buf = NET_BUF_SIMPLE(sizeof(*rp) + sizeof(cur_faults) +
sizeof(reg_faults));
- u8_t some_faults[] = { 0x01, 0x02, 0x03, 0xff, 0x06 };
- u8_t cur_faults_count, reg_faults_count;
+ uint8_t some_faults[] = { 0x01, 0x02, 0x03, 0xff, 0x06 };
+ uint8_t cur_faults_count, reg_faults_count;
rp = net_buf_simple_add(buf, sizeof(*rp));
@@ -658,7 +644,7 @@ static void health_generate_faults(u8_t *data, u16_t len)
CONTROLLER_INDEX, buf);
}
-static void health_clear_faults(u8_t *data, u16_t len)
+static void health_clear_faults(uint8_t *data, uint16_t len)
{
SYS_LOG_DBG("");
@@ -671,7 +657,7 @@ static void health_clear_faults(u8_t *data, u16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
-static void model_send(u8_t *data, u16_t len)
+static void model_send(uint8_t *data, uint16_t len)
{
struct mesh_model_send_cmd *cmd = (void *) data;
struct os_mbuf *msg = NET_BUF_SIMPLE(UINT8_MAX);
@@ -683,7 +669,7 @@ static void model_send(u8_t *data, u16_t len)
};
struct bt_mesh_model *model = NULL;
int err, i;
- u16_t src = sys_le16_to_cpu(cmd->src);
+ uint16_t src = sys_le16_to_cpu(cmd->src);
/* Lookup source address */
for (i = 0; i < ARRAY_SIZE(model_bound); i++) {
@@ -720,10 +706,10 @@ fail:
}
#if MYNEWT_VAL(BLE_MESH_TESTING)
-static void lpn_subscribe(u8_t *data, u16_t len)
+static void lpn_subscribe(uint8_t *data, uint16_t len)
{
struct mesh_lpn_subscribe_cmd *cmd = (void *) data;
- u16_t address = sys_le16_to_cpu(cmd->address);
+ uint16_t address = sys_le16_to_cpu(cmd->address);
int err;
SYS_LOG_DBG("address 0x%04x", address);
@@ -737,10 +723,10 @@ static void lpn_subscribe(u8_t *data, u16_t len)
err ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS);
}
-static void lpn_unsubscribe(u8_t *data, u16_t len)
+static void lpn_unsubscribe(uint8_t *data, uint16_t len)
{
struct mesh_lpn_unsubscribe_cmd *cmd = (void *) data;
- u16_t address = sys_le16_to_cpu(cmd->address);
+ uint16_t address = sys_le16_to_cpu(cmd->address);
int err;
SYS_LOG_DBG("address 0x%04x", address);
@@ -754,7 +740,7 @@ static void lpn_unsubscribe(u8_t *data, u16_t len)
err ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS);
}
-static void rpl_clear(u8_t *data, u16_t len)
+static void rpl_clear(uint8_t *data, uint16_t len)
{
int err;
@@ -770,7 +756,7 @@ static void rpl_clear(u8_t *data, u16_t len)
}
#endif /* MYNEWT_VAL(BLE_MESH_TESTING) */
-static void proxy_identity_enable(u8_t *data, u16_t len)
+static void proxy_identity_enable(uint8_t *data, uint16_t len)
{
int err;
@@ -785,7 +771,7 @@ static void proxy_identity_enable(u8_t *data, u16_t len)
err ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS);
}
-void tester_handle_mesh(u8_t opcode, u8_t index, u8_t *data, u16_t len)
+void tester_handle_mesh(uint8_t opcode, uint8_t index, uint8_t *data, uint16_t len)
{
switch (opcode) {
case MESH_READ_SUPPORTED_COMMANDS:
@@ -854,7 +840,7 @@ void tester_handle_mesh(u8_t opcode, u8_t index, u8_t *data, u16_t len)
}
}
-void net_recv_ev(u8_t ttl, u8_t ctl, u16_t src, u16_t dst, const void *payload,
+void net_recv_ev(uint8_t ttl, uint8_t ctl, uint16_t src, uint16_t dst, const void *payload,
size_t payload_len)
{
struct os_mbuf *buf = NET_BUF_SIMPLE(UINT8_MAX);
@@ -883,8 +869,8 @@ done:
os_mbuf_free_chain(buf);
}
-static void model_bound_cb(u16_t addr, struct bt_mesh_model *model,
- u16_t key_idx)
+static void model_bound_cb(uint16_t addr, struct bt_mesh_model *model,
+ uint16_t key_idx)
{
int i;
@@ -904,8 +890,8 @@ static void model_bound_cb(u16_t addr, struct bt_mesh_model *model,
SYS_LOG_ERR("model_bound is full");
}
-static void model_unbound_cb(u16_t addr, struct bt_mesh_model *model,
- u16_t key_idx)
+static void model_unbound_cb(uint16_t addr, struct bt_mesh_model *model,
+ uint16_t key_idx)
{
int i;
@@ -925,7 +911,7 @@ static void model_unbound_cb(u16_t addr, struct bt_mesh_model *model,
SYS_LOG_INF("model not found");
}
-static void invalid_bearer_cb(u8_t opcode)
+static void invalid_bearer_cb(uint8_t opcode)
{
struct mesh_invalid_bearer_ev ev = {
.opcode = opcode,
@@ -934,7 +920,7 @@ static void invalid_bearer_cb(u8_t opcode)
SYS_LOG_DBG("opcode 0x%02x", opcode);
tester_send(BTP_SERVICE_ID_MESH, MESH_EV_INVALID_BEARER,
- CONTROLLER_INDEX, (u8_t *) &ev, sizeof(ev));
+ CONTROLLER_INDEX, (uint8_t *) &ev, sizeof(ev));
}
static void incomp_timer_exp_cb(void)
@@ -951,7 +937,7 @@ static struct bt_test_cb bt_test_cb = {
.mesh_trans_incomp_timer_exp = incomp_timer_exp_cb,
};
-u8_t tester_init_mesh(void)
+uint8_t tester_init_mesh(void)
{
health_pub_init();
@@ -962,7 +948,7 @@ u8_t tester_init_mesh(void)
return BTP_STATUS_SUCCESS;
}
-u8_t tester_unregister_mesh(void)
+uint8_t tester_unregister_mesh(void)
{
return BTP_STATUS_SUCCESS;
}
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/rtt_pipe.c b/src/libs/mynewt-nimble/apps/bttester/src/rtt_pipe.c
index 379345a0..4e667709 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/rtt_pipe.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/rtt_pipe.c
@@ -31,7 +31,7 @@ static struct hal_timer rtt_timer;
static bttester_pipe_recv_cb app_cb;
-static u8_t *recv_buf;
+static uint8_t *recv_buf;
static size_t recv_buf_len;
static size_t recv_off;
@@ -74,7 +74,7 @@ rtt_pipe_poll_func(void *arg)
itvl_ms = min(itvl_ms, RTT_INPUT_POLL_INTERVAL_MAX);
} else {
while (key >= 0 && avail > 0) {
- recv_buf[recv_off] = (u8_t) key;
+ recv_buf[recv_off] = (uint8_t) key;
recv_off++;
avail = recv_buf_len - recv_off;
key = rtt_pipe_get_char((unsigned int) rtt_index_down);
@@ -93,14 +93,14 @@ rtt_pipe_poll_func(void *arg)
}
int
-bttester_pipe_send(const u8_t *data, int len)
+bttester_pipe_send(const uint8_t *data, int len)
{
SEGGER_RTT_Write((unsigned int) rtt_index_up, data, (unsigned int) len);
return 0;
}
void
-bttester_pipe_register(u8_t *buf, size_t len, bttester_pipe_recv_cb cb)
+bttester_pipe_register(uint8_t *buf, size_t len, bttester_pipe_recv_cb cb)
{
recv_buf = buf;
recv_buf_len = len;
diff --git a/src/libs/mynewt-nimble/apps/bttester/src/uart_pipe.c b/src/libs/mynewt-nimble/apps/bttester/src/uart_pipe.c
index ecbefa02..1118d9af 100644
--- a/src/libs/mynewt-nimble/apps/bttester/src/uart_pipe.c
+++ b/src/libs/mynewt-nimble/apps/bttester/src/uart_pipe.c
@@ -26,7 +26,7 @@
#include "bttester_pipe.h"
-static u8_t *recv_buf;
+static uint8_t *recv_buf;
static size_t recv_buf_len;
static bttester_pipe_recv_cb app_cb;
static size_t recv_off;
@@ -144,7 +144,7 @@ uart_console_rx_char(void *arg, uint8_t byte)
static int
uart_pipe_handle_char(int key)
{
- recv_buf[recv_off] = (u8_t) key;
+ recv_buf[recv_off] = (uint8_t) key;
recv_off++;
return 0;
@@ -194,7 +194,7 @@ uart_console_rx_char_event(struct os_event *ev)
}
int
-bttester_pipe_send(const u8_t *data, int len)
+bttester_pipe_send(const uint8_t *data, int len)
{
int i;
@@ -272,7 +272,7 @@ bttester_pipe_init(void)
}
void
-bttester_pipe_register(u8_t *buf, size_t len, bttester_pipe_recv_cb cb)
+bttester_pipe_register(uint8_t *buf, size_t len, bttester_pipe_recv_cb cb)
{
recv_buf = buf;
recv_buf_len = len;
diff --git a/src/libs/mynewt-nimble/apps/bttester/syscfg.yml b/src/libs/mynewt-nimble/apps/bttester/syscfg.yml
index d0fffe13..db869c34 100644
--- a/src/libs/mynewt-nimble/apps/bttester/syscfg.yml
+++ b/src/libs/mynewt-nimble/apps/bttester/syscfg.yml
@@ -53,7 +53,7 @@ syscfg.defs:
BTTESTER_CONN_RETRY:
description: Retry connections when connection failed to be established
- value: 3
+ value: 0
BTTESTER_BTP_DATA_SIZE_MAX:
description: Maximum BTP payload
@@ -71,12 +71,16 @@ syscfg.defs:
description: Enable logging BTP traffic
value: 0
+ BTTESTER_L2CAP_COC_MTU:
+ description: Maximum MTU size the application can handle
+ value: 230
+
syscfg.vals:
OS_MAIN_STACK_SIZE: 512
SHELL_TASK: 0
SHELL_NEWTMGR: 0
LOG_LEVEL: 12
- MSYS_1_BLOCK_COUNT: 48
+ MSYS_1_BLOCK_COUNT: 80
BLE_MONITOR_RTT: 1
CONSOLE_RTT: 0
@@ -86,6 +90,8 @@ syscfg.vals:
BLE_L2CAP_COC_MAX_NUM: 2
BLE_L2CAP_SIG_MAX_PROCS: 2
+ BLE_L2CAP_ENHANCED_COC: 1
+ BLE_VERSION: 52
# Some testcases require MPS < MTU
BLE_L2CAP_COC_MPS: 100
BLE_RPA_TIMEOUT: 30
@@ -98,6 +104,9 @@ syscfg.vals:
BLE_SVC_GAP_PPCP_MIN_CONN_INTERVAL: 9
BLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL: 30
BLE_SVC_GAP_PPCP_SUPERVISION_TMO: 2000
+ BLE_SVC_GAP_APPEARANCE_WRITE_PERM: 0
+ BLE_SVC_GAP_DEVICE_NAME_WRITE_PERM: 0
+ BLE_STORE_CONFIG_PERSIST: 0
BLE_MESH: 1
BLE_MESH_SHELL: 0
@@ -117,6 +126,11 @@ syscfg.vals:
BLE_MESH_FRIEND: 1
BLE_MESH_CFG_CLI: 1
BLE_MESH_RX_SDU_MAX: 110
+ BLE_MESH_HEALTH_CLI: 1
+ BLE_MESH_FRIEND_QUEUE_SIZE: 32
+ BLE_MESH_RX_SEG_MAX: 13
+ BLE_MESH_TX_SEG_MSG_COUNT: 2
+ BLE_MAX_CONNECTIONS: 8
BLE_MESH_ADV_BUF_COUNT: 20
BLE_MESH_TX_SEG_MAX: 6