Re: i386 vs x86_64 struct tpacket_hdr layout

Daniel Borkmann <[email protected]> Fri, 20 Dec 2013 19:45:12 +0100
Newsgroups gmane.linux.network,gmane.linux.network.general
Message-ID <[email protected]>
On 12/20/2013 07:38 PM, David Miller wrote:
> From: Norbert van Bolhuis <[email protected]>
> Date: Fri, 20 Dec 2013 14:30:06 +0100
>
>>
>> I'm compiling my 32bit application with -m32 on a x86_64
>> system/kernel.
>>
>> Things aren't working because for my application tp_len is at offset 4
>> but for the kernel it is at offset 8.
>>
>> struct tpacket_hdr {
>>          unsigned long   tp_status;
>>          unsigned int    tp_len;
>>          unsigned int    tp_snaplen;
>>          unsigned short  tp_mac;
>>          unsigned short  tp_net;
>>          unsigned int    tp_sec;
>>          unsigned int    tp_usec;
>> };
>>
>> How is this suppose to work ?
>
> This is why you should use tpacket layout v2 or v3, rather than v1,
> they fix these issues.

Norbert, please also read Documentation/networking/packet_mmap.txt

Thanks !