Thread (21 messages) 21 messages, 6 authors, 2011-07-01

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

From: Michał Mirosław <hidden>
Date: 2011-07-01 06:36:51

2011/6/30 Jiri Pirko [off-list ref]:
Thu, Jun 30, 2011 at 06:27:12PM CEST, shemminger@vyatta.com wrote:
quoted
On Thu, 30 Jun 2011 17:16:49 +0200
Jiri Pirko [off-list ref] wrote:
quoted
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)

Please comment.

Signed-off-by: Jiri Pirko <redacted>
I am ok with the infrastructure, but why should Vlan use rh_handle.
Well why it shoudln't. It would fit into what rx_handler is here for - the
code would be more unified. Also net_device struct would lose struct
vlan_group __rcu *vlgrp pointer (and reducing net_device size is always
good thing).
quoted
It is wrong to allow macvlan and bridge to share same device.
Right now the code blocks users from doing lots of stupid things.
Right, this is since rx_handler was introduced. Before that all these
stupid configs were allowed. It's possible easily to forbid unwanted
configs by checking priv flags.
We could introduce a catch-all macvlan/vlan device that would take
addresses/VLANs which are not covered by other configured
macvlans/vlans. This would allow clearer configuration and would make
the evaluation order explicit. As a bonus, this will give another
device to put tcpdump on. ;-)

Best Regards,
Michał Mirosław
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help