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;