I'm working on a project where we need to listen to an embedded device via ethernet. It sends UDP via IPv4.
The problem is there is a bug in the embedded device's software and it sets the "Total Length" field in the IPv4 header to be too large. It appears that the operating system (Windows, Linux) drops this message, and my application doesn't get to see any packets.
I have used libpcap to capture raw packets, which can grab the packet before it gets discarded. This appears to me to be the only workaround. I was wondering if anyone had any other ideas for capturing this data with a more native solution (Windows or Linux) since packaging libpcap with my application is not ideal.
Thanks!