On Fri, Oct 03, 2008 at 06:25:59PM +0100, Ben Hutchings wrote:
quoted text > > Most of the DSA switches currently in the field do not support the
> > Ethertype DSA tagging format that one of the previous patches added
> > support for, but only the original DSA tagging format.
> >
> > The original DSA tagging format carries the same information as the
> > Ethertype DSA tagging format, but with the difference that it does not
> > have an ethertype field. In other words, when receiving a packet that
> > is tagged with an original DSA tag, there is no way of telling in
> > eth_type_trans() that this packet is in fact a DSA-tagged packet.
> >
> > This patch adds a hook into eth_type_trans() which is only compiled in
> > if support for a switch chip that doesn't support Ethertype DSA is
> > selected, and which checks whether there is a DSA switch driver
> > instance attached to this network device which uses the old tag format.
> > If so, it sets the protocol field to ETH_P_DSA without looking at the
> > packet, so that the packet ends up in the right place.
> [...]
>
> Why should this go in eth_type_trans()? Why don't you put the hook into
> the specific network driver(s) that need it?
>
> For that matter, why should dsa_ptr go in struct net_device and not in
> the private state for the specific network drivers that need it?
DSA is just another protocol. Putting hooks in specific network driver
to handle a certain protocol doesn't seem like the right thing to do to
me.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html