You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2017/04/10 11:46:55 UTC
[03/50] incubator-mynewt-core git commit: nimble/att: Use new helpers
for sending MTU exchange
nimble/att: Use new helpers for sending MTU exchange
This constructs response directly on mbuf reducing number of memcopies.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/55b8a5c2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/55b8a5c2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/55b8a5c2
Branch: refs/heads/master
Commit: 55b8a5c20766f93996cd04d8ba06f8b77787932d
Parents: b50707b
Author: Szymon Janc <sz...@codecoup.pl>
Authored: Fri Mar 24 15:27:26 2017 +0100
Committer: Szymon Janc <sz...@codecoup.pl>
Committed: Mon Apr 10 11:31:30 2017 +0200
----------------------------------------------------------------------
net/nimble/host/src/ble_att_clt.c | 16 +++++++++-------
net/nimble/host/src/ble_att_priv.h | 3 +--
net/nimble/host/src/ble_gattc.c | 15 +++++----------
net/nimble/host/test/src/ble_att_clt_test.c | 4 +---
4 files changed, 16 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/55b8a5c2/net/nimble/host/src/ble_att_clt.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_clt.c b/net/nimble/host/src/ble_att_clt.c
index 8c92893..7ea7980 100644
--- a/net/nimble/host/src/ble_att_clt.c
+++ b/net/nimble/host/src/ble_att_clt.c
@@ -116,14 +116,15 @@ ble_att_clt_rx_error(uint16_t conn_handle, struct os_mbuf **rxom)
*****************************************************************************/
int
-ble_att_clt_tx_mtu(uint16_t conn_handle, const struct ble_att_mtu_cmd *req)
+ble_att_clt_tx_mtu(uint16_t conn_handle, uint16_t mtu)
{
+ struct ble_att_mtu_cmd *req;
struct ble_l2cap_chan *chan;
struct ble_hs_conn *conn;
struct os_mbuf *txom;
int rc;
- if (req->bamc_mtu < BLE_ATT_MTU_DFLT) {
+ if (mtu < BLE_ATT_MTU_DFLT) {
return BLE_HS_EINVAL;
}
@@ -143,13 +144,14 @@ ble_att_clt_tx_mtu(uint16_t conn_handle, const struct ble_att_mtu_cmd *req)
return rc;
}
- rc = ble_att_clt_init_req(BLE_ATT_MTU_CMD_SZ, &txom);
- if (rc != 0) {
- return rc;
+ req = ble_att_cmd_get(BLE_ATT_OP_MTU_REQ, sizeof(*req), &txom);
+ if (req == NULL) {
+ return BLE_HS_ENOMEM;
}
- ble_att_mtu_req_write(txom->om_data, txom->om_len, req);
- rc = ble_att_clt_tx_req(conn_handle, txom);
+ req->bamc_mtu = htole16(mtu);
+
+ rc = ble_att_tx(conn_handle, txom);
if (rc != 0) {
return rc;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/55b8a5c2/net/nimble/host/src/ble_att_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_priv.h b/net/nimble/host/src/ble_att_priv.h
index 918ca9b..4e37bb7 100644
--- a/net/nimble/host/src/ble_att_priv.h
+++ b/net/nimble/host/src/ble_att_priv.h
@@ -250,8 +250,7 @@ struct ble_att_read_group_type_adata {
};
int ble_att_clt_rx_error(uint16_t conn_handle, struct os_mbuf **rxom);
-int ble_att_clt_tx_mtu(uint16_t conn_handle,
- const struct ble_att_mtu_cmd *req);
+int ble_att_clt_tx_mtu(uint16_t conn_handle, uint16_t mtu);
int ble_att_clt_rx_mtu(uint16_t conn_handle, struct os_mbuf **rxom);
int ble_att_clt_tx_read(uint16_t conn_handle,
const struct ble_att_read_req *req);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/55b8a5c2/net/nimble/host/src/ble_gattc.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_gattc.c b/net/nimble/host/src/ble_gattc.c
index 917e21a..d50368f 100644
--- a/net/nimble/host/src/ble_gattc.c
+++ b/net/nimble/host/src/ble_gattc.c
@@ -1267,28 +1267,23 @@ ble_gattc_mtu_err(struct ble_gattc_proc *proc, int status, uint16_t att_handle)
static int
ble_gattc_mtu_tx(struct ble_gattc_proc *proc)
{
- struct ble_att_mtu_cmd req;
struct ble_l2cap_chan *chan;
struct ble_hs_conn *conn;
+ uint16_t mtu;
int rc;
ble_hs_lock();
rc = ble_att_conn_chan_find(proc->conn_handle, &conn, &chan);
if (rc == 0) {
- req.bamc_mtu = chan->my_mtu;
+ mtu = chan->my_mtu;
}
ble_hs_unlock();
- if (rc != 0) {
- return rc;
- }
-
- rc = ble_att_clt_tx_mtu(proc->conn_handle, &req);
- if (rc != 0) {
- return rc;
+ if (rc == 0) {
+ rc = ble_att_clt_tx_mtu(proc->conn_handle, mtu);
}
- return 0;
+ return rc;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/55b8a5c2/net/nimble/host/test/src/ble_att_clt_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/test/src/ble_att_clt_test.c b/net/nimble/host/test/src/ble_att_clt_test.c
index 3728557..c452128 100644
--- a/net/nimble/host/test/src/ble_att_clt_test.c
+++ b/net/nimble/host/test/src/ble_att_clt_test.c
@@ -278,11 +278,9 @@ ble_att_clt_test_misc_prep_bad(uint16_t handle, uint16_t offset,
static void
ble_att_clt_test_misc_tx_mtu(uint16_t conn_handle, uint16_t mtu, int status)
{
- struct ble_att_mtu_cmd req;
int rc;
- req.bamc_mtu = mtu;
- rc = ble_att_clt_tx_mtu(conn_handle, &req);
+ rc = ble_att_clt_tx_mtu(conn_handle, mtu);
TEST_ASSERT(rc == status);
if (rc == 0) {