From: Alexander Duyck <alexander.h.duyck@intel.com>
To: Florian Fainelli <f.fainelli@gmail.com>, netdev@vger.kernel.org
Cc: davem@davemloft.net, linville@tuxdriver.com
Subject: Re: [PATCH net-next v2 02/12] net: dsa: add Broadcom tag hook
Date: Wed, 06 Aug 2014 13:16:23 -0700 [thread overview]
Message-ID: <53E28D17.8080406@intel.com> (raw)
In-Reply-To: <53E27607.8030301@gmail.com>
On 08/06/2014 11:37 AM, Florian Fainelli wrote:
> On 08/06/2014 07:47 AM, Alexander Duyck wrote:
>> On 08/05/2014 03:31 PM, Florian Fainelli wrote:
>>> Register a fake Ethertype for the Broadcom tag to allow us to hook into
>>> a given Ethernet device receive path and parse this Broadcom tag.
>>>
>>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>
> [snip]
>
>>> diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
>>> index f405e0592407..6b67653d5283 100644
>>> --- a/net/ethernet/eth.c
>>> +++ b/net/ethernet/eth.c
>>> @@ -186,6 +186,8 @@ __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)
>>>
>>> if (unlikely(netdev_uses_trailer_tags(dev)))
>>> return htons(ETH_P_TRAILER);
>>> + if (netdev_uses_brcm_tags(dev))
>>> + return htons(ETH_P_BRCMTAG);
>>>
>>> if (likely(ntohs(eth->h_proto) >= ETH_P_802_3_MIN))
>>> return eth->h_proto;
>>>
>>
>> Maybe we should consider some change to this logic. Maybe a bit flag in
>> the dsa_switch_tree structure that indicates if eth_type_trans should
>> override the protocol or not.
>
> I just tested something like this, which becomes protocol agnostic:
>
> if (unlikely(netdev_uses_dsa(dev)))
> return dsa_tag_protocol(dev);
>
> include/linux/netdevice.h:
> static inline bool netdev_uses_dsa(struct net_device *dev)
> {
> #ifdef CONFIG_NET_DSA
> return dev->dsa_ptr != NULL;
> #else
> return false;
> #endif
> }
>
> include/net/dsa.h:
> static __be16 netdev_dsa_protocol(struct net_device *dev)
> {
> #ifdef CONFIG_NET_DSA
> struct dsa_switch_tree *dst = dev->dsa_ptr;
> return dst->tag_protocol;
> #endif
> }
>
>> Otherwise this is going to start becoming
>> a rather large conditional statement if we have to add a new if every
>> time a new switch is added.
>
> Agreed.
>
I think EDSA does not have same logic for inserting the tags. You may
want to look into that to determine if this is acceptable for that case
or not.
Thanks,
Alex
next prev parent reply other threads:[~2014-08-06 20:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-05 22:31 [PATCH net-next v2 00/12] dsa: support for Broadcom Starfighter 2 Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 01/12] net: phy: add generic UniMAC MDIO bus driver Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 02/12] net: dsa: add Broadcom tag hook Florian Fainelli
2014-08-06 12:25 ` Sergei Shtylyov
2014-08-06 14:47 ` Alexander Duyck
2014-08-06 18:37 ` Florian Fainelli
2014-08-06 20:16 ` Alexander Duyck [this message]
2014-08-05 22:31 ` [PATCH net-next v2 03/12] net: dsa: provide a switch device device tree node pointer Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 04/12] net: dsa: retain a per-port device_node pointer Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 05/12] net: dsa: allow for more complex PHY setups Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 06/12] net: dsa: allow switches to work without tagging Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 07/12] net: dsa: allow drivers to do link adjustment Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 08/12] net: dsa: allow updating fixed PHY link information Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 09/12] net: dsa: add Broadcom tag RX/TX handler Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 10/12] net: dsa: add Broadcom SF2 switch driver Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 11/12] Documentation: devicetree: update dsa binding with optional properties Florian Fainelli
2014-08-05 22:31 ` [PATCH net-next v2 12/12] Documentation: devicetree: add Broadcom Starfighter 2 binding Florian Fainelli
2014-08-05 22:38 ` [PATCH net-next v2 00/12] dsa: support for Broadcom Starfighter 2 David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53E28D17.8080406@intel.com \
--to=alexander.h.duyck@intel.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).