mesh: clean-up Recieved Message debug output
authorBrian Gix <brian.gix@intel.com>
Wed, 27 Nov 2019 21:39:38 +0000 (13:39 -0800)
committerAnupam Roy <anupam.r@samsung.com>
Tue, 17 Dec 2019 20:49:42 +0000 (02:19 +0530)
For each received packet, this change limits outputing the encrypted
version once, and the decrypted version once per applicable local node.

Change-Id: Ib1d237e5aeef927a20343be2877a98bd3a36ed14
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
mesh/net.c

index 5afeeb8..8cbe785 100644 (file)
@@ -253,6 +253,7 @@ struct net_queue_data {
        uint32_t key_id;
        uint32_t iv_index;
        uint16_t len;
+       bool seen;
 };
 
 struct net_beacon_data {
@@ -2319,22 +2320,15 @@ static enum _relay_advice packet_received(void *user_data,
        uint8_t packet[31];
        bool net_ctl, net_segmented, net_szmic, net_relay;
        struct mesh_friend *net_frnd = NULL;
-       bool drop = false;
-
-       /* Tester--Drop 90% of packets */
-       /* l_getrandom(&iv_flag, 1); */
-       /* if (iv_flag%10<9) drop = true; */
-
 
        memcpy(packet + 2, data, size);
 
-       if (!drop)
-               print_packet("RX: Network [clr] :", packet + 2, size);
-
        net_idx = key_id_to_net_idx(net, key_id);
        if (net_idx == NET_IDX_INVALID)
                return RELAY_NONE;
 
+       print_packet("RX: Network [clr] :", packet + 2, size);
+
        if (!mesh_crypto_packet_parse(packet + 2, size,
                                        &net_ctl, &net_ttl,
                                        &net_seq,
@@ -2375,11 +2369,6 @@ static enum _relay_advice packet_received(void *user_data,
        if (is_us(net, net_src, true))
                return RELAY_NONE;
 
-       if (drop) {
-               l_info("Dropping SEQ 0x%06x", net_seq);
-               return RELAY_NONE;
-       }
-
        l_debug("check %08x", cache_cookie);
 
        /* As a Relay, suppress repeats of last N packets that pass through */
@@ -2510,7 +2499,10 @@ static void net_rx(void *net_ptr, void *user_data)
        if (!key_id)
                return;
 
-       print_packet("RX: Network [enc] :", data->data, data->len);
+       if (!data->seen) {
+               data->seen = true;
+               print_packet("RX: Network [enc] :", data->data, data->len);
+       }
 
        if (data->info) {
                net->instant = data->info->instant;
@@ -2540,6 +2532,7 @@ static void net_msg_recv(void *user_data, struct mesh_io_recv_info *info,
                .data = data + 1,
                .len = len - 1,
                .relay_advice = RELAY_NONE,
+               .seen = false,
        };
 
        if (len < 9)