From: Florian Fainelli <f.fainelli@gmail•com>
To: Alexander Duyck <alexander.duyck@gmail•com>, netdev@vger•kernel.org
Cc: davem@davemloft•net, jhs@mojatatu•com, linville@tuxdriver•com,
alexander.h.duyck@intel•com
Subject: Re: [PATCH net-next v3 09/12] net: dsa: add Broadcom tag RX/TX handler
Date: Sun, 24 Aug 2014 19:37:12 -0700 [thread overview]
Message-ID: <53FAA158.6050600@gmail.com> (raw)
In-Reply-To: <53FA6C55.5040903@gmail.com>
Le 24/08/2014 15:51, Alexander Duyck a écrit :
> On 08/24/2014 11:44 AM, Florian Fainelli wrote:
>> Add support for the 4-bytes Broadcom tag that built-in switches such as
>> the Starfighter 2 might insert when receiving packets, or that we need
>> to insert while targetting specific switch ports. We use a fake
>> EtherType field for this 4-bytes switch tag: ETH_P_BRCMTAG since we need
>> to use the skb->protocol override in the receive path.
>>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail•com>
>> ---
>> Changes in v3:
>> - add ETH_P_BRCMTAG as part of this changeset and not in a previous patch
>> - fixed an early de-reference in the receive hook
>
> I was just wondering. Is there a reason we need to register this as yet
> another protocol?
For the broadcom tag format, not specifically no, this is mostly so it
looks like what has been done so far, but since this is not a real
ethertype, there is no need for this.
>
> It seems like we should be able to just register one DSA tag protocol
> and then we could push the parsing function out to a function pointer
> contained in the DSA switch structure. My concern is that as we add
> each new switch message format we are looking at the potential for yet
> another Ethertype and they are a limited resource.
>
> So for example in the section below you already have to dig out the
> dsa_switch structure and tree before you even start processing the
> headers.
>
>> +
>> +static int brcm_tag_rcv(struct sk_buff *skb, struct net_device *dev,
>> + struct packet_type *pt, struct net_device *orig_dev)
>> +{
>> + struct dsa_switch_tree *dst = dev->dsa_ptr;
>> + struct dsa_switch *ds;
>> + int source_port;
>> + u8 *brcm_tag;
>> +
>> + if (unlikely(dst == NULL))
>> + goto out_drop;
>> +
>> + ds = dst->ds[0];
>> +
>> + skb = skb_unshare(skb, GFP_ATOMIC);
>> + if (skb == NULL)
>> + goto out;
>
> At this point here we already have the dsa pointers and could just pull
> up a function pointer so all of the code below could potentially be
> moved into a separate function allowing us to drop the need to have
> multiple Ethertypes and so we could just use ETH_P_DSA for all DSA
> tagging type.
I see, or rather maybe just use ETH_P_EDSA which is a real assigned
ethertype?
--
Florian
next prev parent reply other threads:[~2014-08-25 2:37 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-24 18:44 [PATCH net-next v3 00/12] dsa: support for Broadcom Starfighter 2 Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 01/12] net: dsa: rework skb->protocol override helpers Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 02/12] net: phy: add generic UniMAC MDIO bus driver Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 03/12] net: dsa: provide a switch device device tree node pointer Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 04/12] net: dsa: retain a per-port device_node pointer Florian Fainelli
2014-08-24 23:32 ` Alexander Duyck
2014-08-25 2:30 ` Florian Fainelli
2014-08-26 0:51 ` Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 05/12] net: dsa: allow for more complex PHY setups Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 06/12] net: dsa: allow switches to work without tagging Florian Fainelli
2014-08-24 23:27 ` Alexander Duyck
2014-08-24 18:44 ` [PATCH net-next v3 07/12] net: dsa: allow drivers to do link adjustment Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 08/12] net: dsa: allow updating fixed PHY link information Florian Fainelli
2014-08-25 4:56 ` David Miller
2014-08-25 19:33 ` Sergei Shtylyov
2014-08-24 18:44 ` [PATCH net-next v3 09/12] net: dsa: add Broadcom tag RX/TX handler Florian Fainelli
2014-08-24 22:51 ` Alexander Duyck
2014-08-25 2:37 ` Florian Fainelli [this message]
2014-08-25 14:51 ` Alexander Duyck
2014-08-24 18:44 ` [PATCH net-next v3 10/12] net: dsa: add Broadcom SF2 switch driver Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 11/12] Documentation: devicetree: update dsa binding with optional properties Florian Fainelli
2014-08-24 18:44 ` [PATCH net-next v3 12/12] Documentation: devicetree: add Broadcom Starfighter 2 binding Florian Fainelli
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=53FAA158.6050600@gmail.com \
--to=f.fainelli@gmail$(echo .)com \
--cc=alexander.duyck@gmail$(echo .)com \
--cc=alexander.h.duyck@intel$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=jhs@mojatatu$(echo .)com \
--cc=linville@tuxdriver$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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