{'fraction_non_alphanumeric': 0.02242152466367713, 'fraction_numerical': 0.0, 'mean_word_length': 5.661691542288557, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Feluda: Provenance-Enabled Diagnosis of Elusive Network Failures in Wireless Sensor Networks

Sensor nodes are prone to failures due to their limited hardware capabilities, and software uncertainties stemming from erroneous logic or configuration. Such failures as well as wireless channel dynamics can degrade network performance, potentially creating network partitions. Existing troubleshooting tools either only diagnose a few problems or suffer from high overhead due to periodic transmission of control packets. In this paper, we propose Feluda, a system that exploits provenance, i.e., forwarding path of data packets, for automatic localization of problematic nodes and packets. Unlike existing methods, Feluda extracts necessary network performance metrics from packet headers and stores them into node flash storage, thereby reducing out-of-band packet transmissions. Once problematic nodes and corresponding packets are identified at the base station (BS), Feluda provides efficient querying mechanisms to retrieve packet headers of interest from specific nodes. Packet header analysis reveals the root cause of the problem. We implement Feluda using Java and ContikiOS on the BS and sensor nodes, respectively. Testbed experiments and COOJA simulations demonstrate the effectiveness of Feluda compared to the state-of the-art.