mesh: Clean up style in net.c
authorInga Stotland <inga.stotland@intel.com>
Sun, 31 May 2020 04:41:27 +0000 (21:41 -0700)
committerAbhay Agarwal <ay.agarwal@samsung.com>
Fri, 18 Dec 2020 05:40:30 +0000 (11:10 +0530)
Change-Id: Iba040f18c86f7d66cdef68ab455e472ef7d13973
Signed-off-by: anuj.bhumiya <anuj.bhumiya@samsung.com>
mesh/net.c

index c57beed..031c7cf 100644 (file)
@@ -518,7 +518,8 @@ uint32_t mesh_net_next_seq_num(struct mesh_net *net)
 {
        uint32_t seq = net->seq_num++;
 
-       /* Cap out-of-range seq_num max value to +1. Out of range
+       /*
+        * Cap out-of-range seq_num max value to +1. Out of range
         * seq_nums will not be sent as they would violate spec.
         * This condition signals a runaway seq_num condition, and
         * the node must wait for a completed IV Index update procedure
@@ -537,9 +538,7 @@ static struct mesh_sar *mesh_sar_new(size_t len)
        struct mesh_sar *sar;
 
        sar = l_malloc(size);
-
        memset(sar, 0, size);
-
        return sar;
 }
 
@@ -1370,20 +1369,18 @@ enqueue:
                        void *old = l_queue_remove_if(frnd->pkt_cache,
                                                        match_ack, rx);
 
-                       if (old) {
-                               if (old_head == old) {
-                                       /*
-                                        * If we are discarding head for any
-                                        * reason, reset FRND SEQ
-                                        */
-                                       frnd->u.active.last =
-                                                       frnd->u.active.seq;
-                               }
-
-                               l_free(old);
-                       } else
+                       if (!old)
                                break;
 
+                       if (old_head == old)
+                               /*
+                                * If we are discarding head for any
+                                * reason, reset FRND SEQ
+                                */
+                               frnd->u.active.last = frnd->u.active.seq;
+
+                       l_free(old);
+
                } while (true);
        }
 
@@ -1463,6 +1460,7 @@ static bool friend_packet_queue(struct mesh_net *net,
                        data += 12;
                        hdr += (1 << SEGO_HDR_SHIFT);
                }
+
                frnd_msg->u.s12[seg_max].seq = seq;
                frnd_msg->cnt_in = seg_max;
                frnd_msg->last_len = size % 12;
@@ -1486,6 +1484,7 @@ static bool friend_packet_queue(struct mesh_net *net,
                        memcpy(frnd_msg->u.one[0].data, data, size);
                        frnd_msg->last_len = size;
                }
+
                frnd_msg->u.one[0].hdr = hdr;
                frnd_msg->u.one[0].seq = seq;
        }
@@ -1638,7 +1637,6 @@ static void inmsg_to(struct l_timeout *msg_timeout, void *user_data)
                return;
 
        sar->msg_timeout = NULL;
-
        mesh_sar_free(sar);
 }
 
@@ -2032,10 +2030,8 @@ static bool seg_rxed(struct mesh_net *net, bool frnd, uint32_t iv_index,
                send_net_ack(net, sar_in, expected);
 
                msg_rxed(net, frnd, iv_index, ttl, seq, net_idx,
-                               sar_in->remote, dst,
-                               key_aid, true, szmic,
-                               sar_in->seqZero,
-                               sar_in->buf, sar_in->len);
+                               sar_in->remote, dst, key_aid, true, szmic,
+                               sar_in->seqZero, sar_in->buf, sar_in->len);
 
                /* Kill Inter-Seg timeout */
                l_timeout_remove(sar_in->seg_timeout);
@@ -2078,12 +2074,8 @@ static bool ctl_received(struct mesh_net *net, uint16_t key_id,
                uint32_t hdr = opcode << OPCODE_HDR_SHIFT;
                uint8_t frnd_ttl = ttl - 1;
 
-               if (friend_packet_queue(net, iv_index,
-                                       true, frnd_ttl,
-                                       seq,
-                                       src, dst,
-                                       hdr,
-                                       pkt, len))
+               if (friend_packet_queue(net, iv_index, true, frnd_ttl, seq,
+                                               src, dst, hdr, pkt, len))
                        return true;
        }
 
@@ -2101,10 +2093,8 @@ static bool ctl_received(struct mesh_net *net, uint16_t key_id,
                        return false;
 
                print_packet("Rx-NET_OP_FRND_POLL", pkt, len);
-               friend_poll(net, src, !!(pkt[0]),
-                               l_queue_find(net->friends,
-                                               match_by_friend,
-                                               L_UINT_TO_PTR(src)));
+               friend_poll(net, src, !!(pkt[0]), l_queue_find(net->friends,
+                                       match_by_friend, L_UINT_TO_PTR(src)));
                break;
 
        case NET_OP_FRND_REQUEST:
@@ -2140,8 +2130,7 @@ static bool ctl_received(struct mesh_net *net, uint16_t key_id,
 
                print_packet("Rx-NET_OP_FRND_CLEAR", pkt, len);
                friend_clear(net, src, l_get_be16(pkt), l_get_be16(pkt + 2),
-                               l_queue_find(net->friends,
-                                       match_by_friend,
+                               l_queue_find(net->friends, match_by_friend,
                                        L_UINT_TO_PTR(l_get_be16(pkt))));
                l_debug("Remaining Friends: %d", l_queue_length(net->friends));
                break;
@@ -2161,9 +2150,8 @@ static bool ctl_received(struct mesh_net *net, uint16_t key_id,
                        return false;
 
                print_packet("Rx-NET_OP_PROXY_SUB_REMOVE", pkt, len);
-               friend_sub_del(net, l_queue_find(net->friends,
-                                       match_by_friend, L_UINT_TO_PTR(src)),
-                               pkt, len);
+               friend_sub_del(net, l_queue_find(net->friends, match_by_friend,
+                                               L_UINT_TO_PTR(src)), pkt, len);
                break;
 
        case NET_OP_PROXY_SUB_CONFIRM:
@@ -2197,12 +2185,10 @@ static bool ctl_received(struct mesh_net *net, uint16_t key_id,
                break;
        }
 
-       if (n) {
-               mesh_net_transport_send(net, 0, 0,
-                               mesh_net_get_iv_index(net), rsp_ttl,
-                               0, dst & 0x8000 ? 0 : dst, src,
-                               msg, n);
-       }
+       if (n)
+               mesh_net_transport_send(net, 0, 0, mesh_net_get_iv_index(net),
+                                       rsp_ttl, 0, dst & 0x8000 ? 0 : dst,
+                                       src, msg, n);
 
        return true;
 }
@@ -2333,17 +2319,12 @@ static enum _relay_advice packet_received(void *user_data,
 
        print_packet("RX: Network [clr] :", packet + 2, size);
 
-       if (!mesh_crypto_packet_parse(packet + 2, size,
-                                       &net_ctl, &net_ttl,
-                                       &net_seq,
-                                       &net_src, &net_dst,
-                                       &cache_cookie,
-                                       &net_opcode,
-                                       &net_segmented,
-                                       &net_key_id,
-                                       &net_szmic, &net_relay, &net_seqZero,
-                                       &net_segO, &net_segN,
-                                       &msg, &app_msg_len)) {
+       if (!mesh_crypto_packet_parse(packet + 2, size, &net_ctl, &net_ttl,
+                                       &net_seq, &net_src, &net_dst,
+                                       &cache_cookie, &net_opcode,
+                                       &net_segmented, &net_key_id, &net_szmic,
+                                       &net_relay, &net_seqZero, &net_segO,
+                                       &net_segN, &msg, &app_msg_len)) {
                l_error("Failed to parse packet content");
                return RELAY_NONE;
        }
@@ -2358,8 +2339,10 @@ static enum _relay_advice packet_received(void *user_data,
        if (is_us(net, net_src, true))
                return RELAY_NONE;
 
-       /* As a Relay, suppress repeats of last N packets that pass through */
-       /* The "cache_cookie" should be unique part of App message */
+       /*
+        * As a Relay, suppress repeats of last N packets that pass through
+        * The "cache_cookie" should be unique part of App message.
+        */
        if (msg_in_cache(net, net_src, net_seq, cache_cookie))
                return RELAY_NONE;
 
@@ -2386,57 +2369,48 @@ static enum _relay_advice packet_received(void *user_data,
                                /* If this is an ACK to our friend queue-only */
                                if (is_lpn_friend(net, net_dst))
                                        friend_ack_rxed(net, iv_index, net_seq,
-                                                       net_src, net_dst,
-                                                       msg);
+                                                       net_src, net_dst, msg);
                                else
                                        ack_received(net, false,
                                                        net_src, net_dst,
                                                        net_seqZero,
                                                        l_get_be32(msg + 3));
                        } else {
-                               ctl_received(net, key_id,
-                                               iv_index,
-                                               net_ttl, net_seq, net_src,
-                                               net_dst, net_opcode, rssi,
-                                               msg, app_msg_len);
+                               ctl_received(net, key_id, iv_index, net_ttl,
+                                               net_seq, net_src, net_dst,
+                                               net_opcode, rssi, msg,
+                                                               app_msg_len);
                        }
                } else if (net_segmented) {
-                       /* If we accept SAR packets to non-Unicast, then
+                       /*
+                        * If we accept SAR packets to non-Unicast, then
                         * Friend Sar at least needs to be Unicast Only
                         */
                        if (is_lpn_friend(net, net_dst) &&
                                                        !(net_dst & 0x8000)) {
-                               /* Check TTL >= 2 before accepting segments
+                               /*
+                                * Check TTL >= 2 before accepting segments
                                 * for Friends
                                 */
                                if (net_ttl >= 2) {
-                                       friend_seg_rxed(net, iv_index,
-                                               net_ttl, net_seq,
-                                               net_src, net_dst,
+                                       friend_seg_rxed(net, iv_index, net_ttl,
+                                               net_seq, net_src, net_dst,
                                                l_get_be32(packet + 2 + 9),
                                                msg, app_msg_len);
                                }
                        } else {
                                seg_rxed(net, NULL, iv_index, net_ttl,
-                                               net_seq, net_idx,
-                                               net_src, net_dst,
-                                               net_key_id,
-                                               net_szmic, net_seqZero,
-                                               net_segO, net_segN,
+                                               net_seq, net_idx, net_src,
+                                               net_dst, net_key_id, net_szmic,
+                                               net_seqZero, net_segO, net_segN,
                                                msg, app_msg_len);
                        }
 
                } else {
-                       msg_rxed(net, NULL,
-                                               iv_index,
-                                               net_ttl,
-                                               net_seq,
-                                               net_idx,
-                                               net_src, net_dst,
-                                               net_key_id,
-                                               false, false,
-                                               net_seq & SEQ_ZERO_MASK,
-                                               msg, app_msg_len);
+                       msg_rxed(net, NULL, iv_index, net_ttl, net_seq, net_idx,
+                                       net_src, net_dst, net_key_id, false,
+                                       false, net_seq & SEQ_ZERO_MASK, msg,
+                                       app_msg_len);
                }
 
                /* If this is one of our Unicast addresses, disallow relay */
@@ -2493,8 +2467,8 @@ static void net_rx(void *net_ptr, void *user_data)
                rssi = data->info->rssi;
        }
 
-       relay_advice = packet_received(net, key_id, iv_index,
-                                                       out, out_size, rssi);
+       relay_advice = packet_received(net, key_id, iv_index, out, out_size,
+                                                                       rssi);
        if (relay_advice > data->relay_advice) {
                data->iv_index = iv_index;
                data->relay_advice = relay_advice;
@@ -2558,6 +2532,7 @@ static void iv_upd_to(struct l_timeout *upd_timeout, void *user_data)
                l_debug("iv_upd_state = IV_UPD_NORMAL_HOLD");
                net->iv_upd_state = IV_UPD_NORMAL_HOLD;
                l_timeout_modify(net->iv_update_timeout, IV_IDX_UPD_MIN);
+
                if (net->iv_update)
                        mesh_net_set_seq_num(net, 0);
 
@@ -2576,10 +2551,12 @@ static void iv_upd_to(struct l_timeout *upd_timeout, void *user_data)
                net->iv_update_timeout = NULL;
                l_debug("iv_upd_state = IV_UPD_NORMAL");
                net->iv_upd_state = IV_UPD_NORMAL;
+
                if (net->iv_update)
                        mesh_net_set_seq_num(net, 0);
 
                net->iv_update = false;
+
                if (net->seq_num > IV_UPDATE_SEQ_TRIGGER)
                        mesh_net_iv_index_update(net);
                break;
@@ -2603,7 +2580,8 @@ static int key_refresh_phase_two(struct mesh_net *net, uint16_t idx)
        l_debug("Key refresh procedure phase 2: start using new net TX keys");
        subnet->key_refresh = 1;
        subnet->net_key_tx = subnet->net_key_upd;
-       /* TODO: Provisioner may need to stay in phase three until
+       /*
+        * TODO: Provisioner may need to stay in phase three until
         * it hears beacons from all the nodes
         */
        subnet->kr_phase = KEY_REFRESH_PHASE_TWO;
@@ -2684,7 +2662,8 @@ static void update_iv_ivu_state(struct mesh_net *net, uint32_t iv_index,
                        if (iv_index == net->iv_index && !net->iv_update)
                                return;
 
-                       /* Other devices will be accepting old or new iv_index,
+                       /*
+                        * Other devices will be accepting old or new iv_index,
                         * but we don't know how far through update they are.
                         * Starting permissive state will allow us maximum
                         * (96 hours) to resync
@@ -2692,7 +2671,7 @@ static void update_iv_ivu_state(struct mesh_net *net, uint32_t iv_index,
                        l_debug("iv_upd_state = IV_UPD_UPDATING");
                        net->iv_upd_state = IV_UPD_UPDATING;
                        net->iv_update_timeout = l_timeout_create(
-                               IV_IDX_UPD_MIN, iv_upd_to, net, NULL);
+                                       IV_IDX_UPD_MIN, iv_upd_to, net, NULL);
                } else {
                        l_debug("iv_upd_state = IV_UPD_NORMAL");
                        net->iv_upd_state = IV_UPD_NORMAL;
@@ -2769,8 +2748,8 @@ static void process_beacon(void *net_ptr, void *user_data)
         * Ignore the beacon if it doesn't change anything, unless we're
         * doing IV Recovery
         */
-       if (net->iv_upd_state == IV_UPD_INIT ||
-                               ivi != net->iv_index || ivu != net->iv_update)
+       if (net->iv_upd_state == IV_UPD_INIT || ivi != net->iv_index ||
+                                                       ivu != net->iv_update)
                update_iv_ivu_state(net, ivi, ivu);
 
        if (kr != local_kr)
@@ -2877,6 +2856,7 @@ bool mesh_net_set_key(struct mesh_net *net, uint16_t idx, const uint8_t *key,
        if (phase == KEY_REFRESH_PHASE_TWO) {
                subnet->key_refresh = 1;
                subnet->net_key_tx = subnet->net_key_upd;
+
                if (net->beacon_enable) {
                        /* Switch beaconing key */
                        net_key_beacon_disable(subnet->net_key_cur);
@@ -2956,6 +2936,7 @@ bool mesh_net_iv_index_update(struct mesh_net *net)
 
        l_debug("iv_upd_state = IV_UPD_UPDATING");
        mesh_net_flush_msg_queues(net);
+
        if (!mesh_config_write_iv_index(node_config_get(net->node),
                                                net->iv_index + 1, true))
                return false;
@@ -3075,7 +3056,7 @@ static bool send_seg(struct mesh_net *net, struct mesh_sar *msg, uint8_t segO)
                return false;
 
        if (!net_key_encrypt(subnet->net_key_tx, msg->iv_index, packet + 1,
-                                                            packet_len)) {
+                                                               packet_len)) {
                l_error("Failed to encode packet");
                return false;
        }
@@ -3088,12 +3069,9 @@ static bool send_seg(struct mesh_net *net, struct mesh_sar *msg, uint8_t segO)
 }
 
 void mesh_net_send_seg(struct mesh_net *net, uint32_t net_key_id,
-                               uint32_t iv_index,
-                               uint8_t ttl,
-                               uint32_t seq,
-                               uint16_t src, uint16_t dst,
-                               uint32_t hdr,
-                               const void *seg, uint16_t seg_len)
+                       uint32_t iv_index, uint8_t ttl, uint32_t seq,
+                       uint16_t src, uint16_t dst, uint32_t hdr,
+                       const void *seg, uint16_t seg_len)
 {
        uint8_t packet[30];
        uint8_t packet_len;
@@ -3110,15 +3088,10 @@ void mesh_net_send_seg(struct mesh_net *net, uint32_t net_key_id,
        l_debug("SEQ0: %6.6x", seq);
        l_debug("segO: %d", segO);
 
-       if (!mesh_crypto_packet_build(false, ttl,
-                               seq,
-                               src, dst,
-                               0,
-                               segmented, app_key_id,
-                               szmic, false, seqZero,
-                               segO, segN,
-                               seg, seg_len,
-                               packet + 1, &packet_len)) {
+       if (!mesh_crypto_packet_build(false, ttl, seq, src, dst, 0,
+                                       segmented, app_key_id, szmic, false,
+                                       seqZero, segO, segN, seg, seg_len,
+                                       packet + 1, &packet_len)) {
                l_error("Failed to build packet");
                return;
        }
@@ -3164,12 +3137,8 @@ bool mesh_net_app_send(struct mesh_net *net, bool frnd_cred, uint16_t src,
        segmented |= !!(seg_max);
 
        /* First enqueue to any Friends and internal models */
-       result = msg_rxed(net, false, iv_index, ttl,
-                               seq,
-                               net_idx,
-                               src, dst,
-                               key_aid, segmented,
-                               szmic, seq & SEQ_ZERO_MASK,
+       result = msg_rxed(net, false, iv_index, ttl, seq, net_idx, src, dst,
+                               key_aid, segmented, szmic, seq & SEQ_ZERO_MASK,
                                msg, msg_len);
 
        /*
@@ -3201,7 +3170,7 @@ bool mesh_net_app_send(struct mesh_net *net, bool frnd_cred, uint16_t src,
                payload->id = ++net->sar_id_next;
 
                /* Single thread SAR messages to same Unicast DST */
-               if (NULL != l_queue_find(net->sar_out, match_sar_remote,
+               if (l_queue_find(net->sar_out, match_sar_remote,
                                                        L_UINT_TO_PTR(dst))) {
                        /* Delay sending Outbound SAR unless prior
                         * SAR to same DST has completed */
@@ -3240,13 +3209,9 @@ bool mesh_net_app_send(struct mesh_net *net, bool frnd_cred, uint16_t src,
        return result;
 }
 
-void mesh_net_ack_send(struct mesh_net *net, uint32_t key_id,
-                               uint32_t iv_index,
-                               uint8_t ttl,
-                               uint32_t seq,
-                               uint16_t src, uint16_t dst,
-                               bool rly, uint16_t seqZero,
-                               uint32_t ack_flags)
+void mesh_net_ack_send(struct mesh_net *net, uint32_t key_id, uint32_t iv_index,
+                       uint8_t ttl, uint32_t seq, uint16_t src, uint16_t dst,
+                       bool rly, uint16_t seqZero, uint32_t ack_flags)
 {
        uint32_t hdr;
        uint8_t data[7];
@@ -3258,18 +3223,13 @@ void mesh_net_ack_send(struct mesh_net *net, uint32_t key_id,
        hdr |= (seqZero & SEQ_ZERO_MASK) << SEQ_ZERO_HDR_SHIFT;
        l_put_be32(hdr, data);
        l_put_be32(ack_flags, data + 3);
-       if (!mesh_crypto_packet_build(true, ttl,
-                                       seq,
-                                       src, dst,
-                                       NET_OP_SEG_ACKNOWLEDGE,
-                                       false, /* Not Segmented */
-                                       0,      /* No Key ID associated */
-                                       false, rly, seqZero,
-                                       0, 0,   /* no segO or segN */
-                                       data + 1, 6,
-                                       pkt + 1, &pkt_len)) {
+
+       /* Not Segmented, no Key ID associated, no segO or segN */
+       if (!mesh_crypto_packet_build(true, ttl, seq, src, dst,
+                                       NET_OP_SEG_ACKNOWLEDGE, false, 0, false,
+                                       rly, seqZero, 0, 0, data + 1, 6,
+                                       pkt + 1, &pkt_len))
                return;
-       }
 
        if (!key_id) {
                struct mesh_subnet *subnet = get_primary_subnet(net);
@@ -3321,24 +3281,17 @@ void mesh_net_transport_send(struct mesh_net *net, uint32_t key_id,
                uint32_t hdr = msg[0] << OPCODE_HDR_SHIFT;
                uint8_t frnd_ttl = ttl;
 
-               if (friend_packet_queue(net, iv_index,
-                                       true, frnd_ttl,
-                                       mesh_net_next_seq_num(net),
-                                       src, dst,
-                                       hdr,
-                                       msg + 1, msg_len - 1)) {
+               if (friend_packet_queue(net, iv_index, true, frnd_ttl,
+                                       mesh_net_next_seq_num(net), src, dst,
+                                       hdr, msg + 1, msg_len - 1))
                        return;
-               }
        }
 
        /* Deliver to Local entities if applicable */
-       if (!(dst & 0x8000) && src >= net->src_addr && src <= net->last_addr) {
-               result = ctl_received(net, key_id,
-                                       iv_index, ttl,
-                                       mesh_net_next_seq_num(net),
-                                       src, dst,
+       if (!(dst & 0x8000) && src >= net->src_addr && src <= net->last_addr)
+               result = ctl_received(net, key_id, iv_index, ttl,
+                                       mesh_net_next_seq_num(net), src, dst,
                                        msg[0], 0, msg + 1, msg_len - 1);
-       }
 
        if (!key_id) {
                struct mesh_subnet *subnet = l_queue_find(net->subnets,
@@ -3353,15 +3306,9 @@ void mesh_net_transport_send(struct mesh_net *net, uint32_t key_id,
                        return;
        }
 
-       if (!mesh_crypto_packet_build(true, ttl,
-                               use_seq,
-                               src, dst,
-                               msg[0],
-                               false, 0,
-                               false, false, 0,
-                               0, 0,
-                               msg + 1, msg_len - 1,
-                               pkt + 1, &pkt_len))
+       if (!mesh_crypto_packet_build(true, ttl, use_seq, src, dst, msg[0],
+                               false, 0, false, false, 0, 0, 0, msg + 1,
+                               msg_len - 1, pkt + 1, &pkt_len))
                return;
 
        if (!net_key_encrypt(key_id, iv_index, pkt + 1, pkt_len)) {
@@ -3515,7 +3462,7 @@ void mesh_net_heartbeat_send(struct mesh_net *net)
        n += 2;
 
        mesh_net_transport_send(net, 0, 0, mesh_net_get_iv_index(net),
-                               hb->pub_ttl, 0, 0, hb->pub_dst, msg, n);
+                                       hb->pub_ttl, 0, 0, hb->pub_dst, msg, n);
 }
 
 void mesh_net_heartbeat_init(struct mesh_net *net)
@@ -3573,7 +3520,7 @@ uint16_t mesh_net_get_primary_idx(struct mesh_net *net)
 uint32_t mesh_net_friend_timeout(struct mesh_net *net, uint16_t addr)
 {
        struct mesh_friend *frnd = l_queue_find(net->friends, match_by_friend,
-                                               L_UINT_TO_PTR(addr));
+                                                       L_UINT_TO_PTR(addr));
 
        if (!frnd)
                return 0;