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

From: Ben Greear <[email-masked]>
Date: Thu, 30 Jun 2011 11:13:59 -0700

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.

Thanks,
Ben

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