Subject: Re: [RFC PATCH 03/13] net: Add net protocol offload registration infrustructure

From: Vlad Yasevich <[email-masked]>
Date: Wed, 14 Nov 2012 21:16:22 -0500

On 11/14/2012 06:14 PM, Francois Romieu wrote:
> Vlad Yasevich <[email-masked]> :
> [...]
>> diff --git a/include/net/protocol.h b/include/net/protocol.h
>> index 929528c..d8ecb17 100644
>> --- a/include/net/protocol.h
>> +++ b/include/net/protocol.h
>> @@ -77,6 +77,15 @@ struct inet6_protocol {
>>   #define INET6_PROTO_GSO_EXTHDR	0x4
>>   #endif
>>
>> +struct net_offload {
>> +	int			(*gso_send_check)(struct sk_buff *skb);
>> +	struct sk_buff	       *(*gso_segment)(struct sk_buff *skb,
>> +					       netdev_features_t features);
>> +	struct sk_buff	      **(*gro_receive)(struct sk_buff **head,
>> +					       struct sk_buff *skb);
>> +	int			(*gro_complete)(struct sk_buff *skb);
>> +};
>
> Would it be worth adding a #14 where packet_offload and net_offload
> share a common offload struct instead of duplicating (currently) identical
> members ?
>

I'll look...  There are some very minor diffs between the structs, so 
one could at least be based on another.

What bugs me more actually is the duplication between IPv4 and IPv6 
lists.  One idea I had before was to have packet_offload be a container
for the array of net_offloads.  We would then have a single set of 
functions to register tcp/udp callbacks for both ipv4 and ipv6.  I might
resurrect that patch and send it for comments as well.

-vlad