On Oct 10, 2009, at 9:11 AM, Gianluca Varenni wrote:
> 2. when we access the packet contents for filtering, the header
> fields are
> inevitably misaligned. In that case the only solution would be using
> macros
> when reading the header fields from the packets to avoid
> misalignment errors
> on architectures like Itanium
You mean macros such as
#define EXTRACT_SHORT(p)\
((((u_short)(((u_char*)p)[0])) << 8) |\
(((u_short)(((u_char*)p)[1])) << 0))
and
#define EXTRACT_LONG(p)\
((((u_int32)(((u_char*)p)[0])) << 24) |\
(((u_int32)(((u_char*)p)[1])) << 16) |\
(((u_int32)(((u_char*)p)[2])) << 8 ) |\
(((u_int32)(((u_char*)p)[3])) << 0 ))
Unless I'm missing something, or you mean something other than BPF
filtering by "filtering", WinPcap's BPF interpreter *already* uses
macros when reading data from packets - it's done that for ages (BPF
dates back to about 1993; it appears they did the development on a
SPARCstation, and SPARC processors don't do unaligned accesses).
_______________________________________________
Winpcap-users mailing list
[email protected]
https://www.winpcap.org/mailman/listinfo/winpcap-users