Subject: Re: pktgen question

From: Steve Wise <[email-masked]>
Date: Mon, 24 Sep 2007 08:54:13 -0500

I think pktgen should be cloning the skbs using skb_clone().  Then it 
will work for all devices, eh?

Ben Greear wrote:
> jamal wrote:
>> On Sun, 2007-23-09 at 12:55 -0500, Steve Wise wrote:
>>
>>  
>>> Its a hack that breaks cxgb3 because cxgb3 uses the skb->cb area for 
>>> each skb passed down.  So cxgb3 is at fault then?  IE a driver cannot 
>>> use the skb->cb field if the users count is > 1?  Or maybe a driver 
>>> can _never_ use the cb field?
>>>     
>>
>> any layer can use the cb structure whichever way they wish. There are
>> violations, e.g:
>> the vlan code also uses the cb field to pass vlan details for hardware
>> acceleration. How does pktgen affect it though, clone() will just copy
>> the cb field and pktgen doesnt touch it.
>> In retrospect, pktgen may have to use clone - ccing Robert Olsson.
>>   
> Pktgen abuses the ref count, as far as I can tell.  It works with most 
> ethernet drivers,
> but that multi-pkt will also fail with things like vlans because the 
> skb->dev is changed
> as it is transmitted (to the lower-level device).
> 
> I'd say just don't use the multi-pkt with pktgen on devices that can't 
> handle it.
> 
> Thanks,
> Ben
> 
>