You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2017/02/24 19:38:02 UTC
[07/50] incubator-mynewt-core git commit: oic;
reverse the order in which fragments are created from original
packet. This allows os_mbuf_adj() of original packet to free unused mbufs,
when possible.
oic; reverse the order in which fragments are created from original
packet. This allows os_mbuf_adj() of original packet to free
unused mbufs, when possible.
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/c8c06dd1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/c8c06dd1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/c8c06dd1
Branch: refs/heads/develop
Commit: c8c06dd14d0adff1f6dc9f61186030d52edc0323
Parents: 7dca12c
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Fri Dec 16 11:08:00 2016 -0800
Committer: Sterling Hughes <st...@apache.org>
Committed: Sun Dec 18 13:56:17 2016 -0800
----------------------------------------------------------------------
net/oic/src/port/mynewt/ble_adaptor.c | 16 +++++++---------
net/oic/src/port/oc_connectivity.h | 3 +--
2 files changed, 8 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c8c06dd1/net/oic/src/port/mynewt/ble_adaptor.c
----------------------------------------------------------------------
diff --git a/net/oic/src/port/mynewt/ble_adaptor.c b/net/oic/src/port/mynewt/ble_adaptor.c
index 23742b9..39ceac9 100644
--- a/net/oic/src/port/mynewt/ble_adaptor.c
+++ b/net/oic/src/port/mynewt/ble_adaptor.c
@@ -278,25 +278,22 @@ oc_ble_frag(struct os_mbuf *m, uint16_t mtu)
STAILQ_NEXT(pkt, omp_next) = NULL;
return 0;
}
- off = mtu;
+ off = pkt->omp_len % mtu;
- while (off < OS_MBUF_PKTLEN(m)) {
+ while (off > mtu) {
n = os_msys_get_pkthdr(mtu, 0);
if (!n) {
goto err;
}
-
+ STAILQ_NEXT(OS_MBUF_PKTHDR(n), omp_next) = STAILQ_NEXT(pkt, omp_next);
STAILQ_NEXT(pkt, omp_next) = OS_MBUF_PKTHDR(n);
- pkt = STAILQ_NEXT(pkt, omp_next);
- blk = OS_MBUF_PKTLEN(m) - off;
- if (blk > mtu) {
- blk = mtu;
- }
+ blk = pkt->omp_len - off;
if (os_mbuf_appendfrom(n, m, off, blk)) {
goto err;
}
- off += blk;
+ off -= blk;
+ os_mbuf_adj(m, -blk);
}
os_mbuf_adj(m, mtu - OS_MBUF_PKTLEN(m));
return 0;
@@ -334,6 +331,7 @@ oc_send_buffer_gatt(struct os_mbuf *m)
STATS_INCN(oc_ble_stats, obytes, OS_MBUF_PKTLEN(m));
mtu = ble_att_mtu(oe->bt_addr.conn_handle);
+ assert(mtu > 4);
mtu -= 3; /* # of bytes for ATT notification base */
if (oc_ble_frag(m, mtu)) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c8c06dd1/net/oic/src/port/oc_connectivity.h
----------------------------------------------------------------------
diff --git a/net/oic/src/port/oc_connectivity.h b/net/oic/src/port/oc_connectivity.h
index ea44e3e..7f50a6b 100644
--- a/net/oic/src/port/oc_connectivity.h
+++ b/net/oic/src/port/oc_connectivity.h
@@ -41,9 +41,8 @@ typedef struct oc_endpoint {
IPSP = 1 << 2,
MULTICAST = 1 << 3,
SECURED = 1 << 4,
- SERIAL = 1 <<5,
+ SERIAL = 1 << 5,
} flags;
-
union {
oc_ipv6_addr_t ipv6_addr;
oc_le_addr_t bt_addr;