Subject: Re: [RFC patch net-next-2.6] net: allow multiple rx_handler registration

From: Jiri Pirko <[email-masked]>
Date: Thu, 30 Jun 2011 20:28:57 +0200

Thu, Jun 30, 2011 at 08:13:59PM CEST, [email-masked] wrote:
>On 06/30/2011 08:16 AM, Jiri Pirko wrote:
>>For some net topos it is necessary to have multiple "soft-net-devices"
>>hooked on one netdev. For example very common is to have
>>eth<->(br+vlan). Vlan is not using rh_handler (yet) but also for example
>>macvlan would be useful to have hooked on same netdev as br.
>>
>>This patch introduces rx_handler list. size struct net_device stays
>>intact. Measured performance regression on eth-br topo is ~1% (on received
>>pkts generated by pktgen) and on eth-bond topo it is ~0.25%
>>
>>On br I think that the performance can be brought back maybe by using per-cpu
>>variables to store port in rx_path (I must check this)
>
>>+enum rx_handler_prio {
>>+	RX_HANDLER_PRIO_BRIDGE,
>>+	RX_HANDLER_PRIO_BOND,
>>+	RX_HANDLER_PRIO_MACVLAN,
>>+};
>
>Maybe add RX_HANDLER_PRIO_LATER, RX_HANDLER_PRIO_FIRST
>for other modules that want to link
>here, but don't have specific ordering other than before
>or after these specific types?
>
>Or maybe start PRIO_BRIDGE at 100, BOND 110, MACVLAN 120
>to leave gaps.

I was thinking about this. But that would be useful only for out of the
tree drivers. For in tree drivers, new prio would be just inserted
whereever.

>
>Thanks,
>Ben
>
>-- 
>Ben Greear <[email-masked]>
>Candela Technologies Inc  http://www.candelatech.com
>