浏览代码

ble_mesh: Transport tx fields overflow [Zephyr]

The transport segmented TX nack and seg_pending fields must be at least
6 bits to avoid overflow for 32 segment messages. This change rearranges
the seg_tx fields to gather all state flag fields in one byte, while
making the counter fields whole bytes.
lly 5 年之前
父节点
当前提交
2f73d76768
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      components/bt/esp_ble_mesh/mesh_core/transport.c

+ 2 - 2
components/bt/esp_ble_mesh/mesh_core/transport.c

@@ -80,8 +80,8 @@ static struct seg_tx {
                              new_key:1;     /* New/old key */
     u8_t                     nack_count;    /* Number of unacked segs */
     u8_t                     ttl;
-    u8_t                     seg_pending:5, /* Number of segments pending */
-                             attempts:3;
+    u8_t                     seg_pending;   /* Number of segments pending */
+    u8_t                     attempts;      /* Transmit attempts */
     const struct bt_mesh_send_cb *cb;
     void                    *cb_data;
     struct k_delayed_work    retransmit;    /* Retransmit timer */