Radioless host sending NXP 802.15.4 data to a host at Google
In order to learn more about what goes on on my home network, I dump packets from time to time. One thing I like to check is the protocol hierarchy. Twice within the past week I have noticed that my homebuilt Linux box sends several NXP 802.15.4 sniffer packets over IPv6 to a host at Google. My homebuilt machine lacks a wifi radio, however; it is connected to the network via ethernet. At least I am certain there is no wireless dongle, and lspci shows nothing that looks like a radio or antenna. I gather from an AI answer that wireshark does look for data in the headers specific to that protocol, so it's not just flagging UDP from port 49999. Any idea what might cause this phenomenon? Have I been p0wned? Thanks in advance!
UPDATE
Using the test for channel length I saw in the code for the dissector, I created a wireshark filter that selects the packets in the sample file but does not select any of the packets from my network that had an endpoint with 49999/udp. There are 2 other tests to falsify a frame as NXP 802.15.4 Sniffer, but I think this filter will do me until I upgrade to 24.04 LTS:
nxp_802154_sniffer.channel >= 11 and nxp_802154_sniffer.channel <= 26
Again, thanks for the pointers!
There is a sample capture attached to 14301: Add dissector for NXP's 802.15.4 sniffer server messages
epan/dissectors/packet-nxp_802154_sniffer.c:
#define NXP_802154_SNIFFER_UDP_PORT 49999 /* Not IANA registered */ ... dissector_add_uint_with_preference("udp.port", NXP_802154_SNIFFER_UDP_PORT, nxp_802154_sniffer_handle);There are a couple checks in the dissector so would be interesting to see why your packets pass.
dissect_nxp_802154_sniffer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { ... /* Check that the packet is long enough for it to belong to us. */ if (tvb_reported_length(tvb) < 9) return 0; if (!test_nxp_802154_sniffer(tvb, offset)) { return 0; }Thank you ChuckC! See my comment on the answer, it is relevant to your comment as well. I took your clue, and I think I was able to follow the C code at gitlab well enough to form one possible explanation.