You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by na...@apache.org on 2022/03/16 09:35:29 UTC
[mynewt-nimble] branch master updated: apps/bttester: set filter accept list
This is an automated email from the ASF dual-hosted git repository.
naraj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
The following commit(s) were added to refs/heads/master by this push:
new 788fd3e apps/bttester: set filter accept list
788fd3e is described below
commit 788fd3e378940bf72b2240a14afbd2eedcf778c9
Author: Jakub <ja...@codecoup.pl>
AuthorDate: Thu Sep 23 12:24:32 2021 +0200
apps/bttester: set filter accept list
Receive addrs and save them to filter accept list.
Fix for GAP/CONN/ACEP/BV-04-C test.
---
apps/bttester/src/bttester.h | 5 +++++
apps/bttester/src/gap.c | 31 ++++++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/apps/bttester/src/bttester.h b/apps/bttester/src/bttester.h
index 4a8fc47..4bf7485 100644
--- a/apps/bttester/src/bttester.h
+++ b/apps/bttester/src/bttester.h
@@ -320,6 +320,11 @@ struct gap_set_mitm_cmd {
uint8_t mitm;
} __packed;
+#define GAP_SET_FILTER_ACCEPT_LIST 0x1c
+struct gap_set_filter_accept_list_cmd {
+ uint8_t list_len;
+ ble_addr_t addrs[];
+} __packed;
/* events */
#define GAP_EV_NEW_SETTINGS 0x80
struct gap_new_settings_ev {
diff --git a/apps/bttester/src/gap.c b/apps/bttester/src/gap.c
index 75adeb9..ce6cf33 100644
--- a/apps/bttester/src/gap.c
+++ b/apps/bttester/src/gap.c
@@ -1230,10 +1230,15 @@ static int gap_event_cb(struct ble_gap_event *event, void *arg)
static void connect(const uint8_t *data, uint16_t len)
{
uint8_t status = BTP_STATUS_SUCCESS;
+ ble_addr_t *addr = (ble_addr_t *) data;
SYS_LOG_DBG("");
- if (ble_gap_connect(own_addr_type, (ble_addr_t *) data, 0,
+ if (ble_addr_cmp(BLE_ADDR_ANY, addr) == 0) {
+ addr = NULL;
+ }
+
+ if (ble_gap_connect(own_addr_type, addr, 0,
&dflt_conn_params, gap_event_cb, NULL)) {
status = BTP_STATUS_FAILED;
}
@@ -1574,6 +1579,27 @@ static void set_mitm(const uint8_t *data, uint16_t len)
CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
}
+static void set_filter_accept_list(const uint8_t *data, uint16_t len)
+{
+ uint8_t status = BTP_STATUS_SUCCESS;
+ struct gap_set_filter_accept_list_cmd *tmp =
+ (struct gap_set_filter_accept_list_cmd *) data;
+
+ SYS_LOG_DBG("");
+
+ /*
+ * Check if the nb of bytes received matches the len of addrs list.
+ * Then set the filter accept list.
+ */
+ if (((len - sizeof(tmp->list_len))/sizeof(ble_addr_t) !=
+ tmp->list_len) || ble_gap_wl_set(tmp->addrs, tmp->list_len)) {
+ status = BTP_STATUS_FAILED;
+ }
+
+ tester_rsp(BTP_SERVICE_ID_GAP, GAP_SET_FILTER_ACCEPT_LIST,
+ CONTROLLER_INDEX, status);
+}
+
void tester_handle_gap(uint8_t opcode, uint8_t index, uint8_t *data,
uint16_t len)
{
@@ -1665,6 +1691,9 @@ void tester_handle_gap(uint8_t opcode, uint8_t index, uint8_t *data,
case GAP_SET_MITM:
set_mitm(data, len);
return;
+ case GAP_SET_FILTER_ACCEPT_LIST:
+ set_filter_accept_list(data, len);
+ return;
default:
tester_rsp(BTP_SERVICE_ID_GAP, opcode, index,
BTP_STATUS_UNKNOWN_CMD);