Re: Protocol handler using dev_add_pack

From: Jerry Yu
Date: Thu Jul 12 2012 - 14:13:08 EST


Eric,

Thank you very much. Once I disabled scatter-gather on the NIC, the
issue disappeared. Now I just need to figure out how to access the
paged data if the scatter-gather I/O feature enabled. Seems that the
functions to map and unmap frag pages ( kmap_skb_frag and
kunmap_skb_frag) are removed from skbuff.h in 3.2.0-26. I may have to
create similar functions by myself.

Thanks again,

Jerry

On Wed, Jul 11, 2012 at 11:17 AM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:
> On Wed, 2012-07-11 at 10:38 -0300, Jerry Yu wrote:
>> I am working on a kernel module to monitor all TCP packets. I created a protocol
>> handler with protocol code ETH_P_ALL to handle all incoming and outgoing
>> TCP packets. The code worked fine on 2.6.14 kernel, but in current 3.2.0-26
>> kernel, I am no longer able to get the TCP payload for outgoing packets.
>> The data in TCP payload section of skb->data are mainly 0x00. I am still
>> able to get incoming TCP packets' payloads though.
>>
>> Is there any change in 3.2.0 or other early kernel versions that will cause
>> this issue?
>
> Maybe you make wrong assumptions in your code.
>
> skb->data doesnt exactly contains tcp payload of locally generated TCP
> packets, unless you disabled scatter-gather on the NIC
>
> ehtool -K eth0 sg off
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/