From: wstephen-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: wstephen-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
jcliburn-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] ethernet: atheros: Add nss-gmac driver
Date: Mon, 19 Jan 2015 21:58:09 -0000 [thread overview]
Message-ID: <3ad19b16fe5c58612479f70c052d0045.squirrel@www.codeaurora.org> (raw)
In-Reply-To: <2318041.V2OJAPu7gC@wuerfel>
> On Thursday 15 January 2015 08:12:51 wstephen-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org wrote:
>>
>> The nss-gmac driver is for the internal GMAC IP in the Qualcomm IPQ806x
>> SoC. There are 2 ARM cores and 2 NSS cores inside the IPQ806x SoC. The
>> main purpose of these NSS cores is to offload the networking stack from
>> the ARM cores to achieve high performance at routing/ipsec..etc without
>> exhausting the ARM core CPU cycles. There is another nss-drv driver for
>> the NSS cores.
>
> I see.
>
>> The nss-gmac driver is designed to work standalone or with the nss-drv
>> driver so the switchable data plane overlay was implemented. When it
>> worked standalone, the data plane is running on the ARM core as a
>> standard
>> networking driver.
>
> How do you decide which way it gets used on a particular system?
>
By default the GMAC driver uses a native (Host ARM CPU) based data plane.
If the configuration loads the offload nss-drv driver, the offload driver
registers an overlay with the GMAC.
>> The nss-drv driver can take over the data plane and
>> offload it to the NSS cores. The STMicro stmmac driver does not have
>> this
>> kind of overlay design so is not suitable for IPQ806x. This is why we
>> don't based on the stmmac driver
>
> Which kind of offload is implemented specifically? 'data plane' sounds
> fairly generic and could mean anything, and the code isn't readable enough
> in its current form for me to find out.
The Network Subsystem (NSS core) provides a GMAC pass-through until it is
given a rule to offload work. Once a rule is given, it is capable of
performing: bridging, IPv4 NAT/FWD, IPv6 NAT/FWD, IPSec, LAG, and other
protocols.
>
> Arnd
>
Hope this clarify your question!
Thanks,
Stephen
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: wstephen@codeaurora.org
To: "Arnd Bergmann" <arnd@arndb.de>
Cc: wstephen@codeaurora.org, jcliburn@gmail.com,
grant.likely@linaro.org, robh+dt@kernel.org,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH] ethernet: atheros: Add nss-gmac driver
Date: Mon, 19 Jan 2015 21:58:09 -0000 [thread overview]
Message-ID: <3ad19b16fe5c58612479f70c052d0045.squirrel@www.codeaurora.org> (raw)
In-Reply-To: <2318041.V2OJAPu7gC@wuerfel>
> On Thursday 15 January 2015 08:12:51 wstephen@codeaurora.org wrote:
>>
>> The nss-gmac driver is for the internal GMAC IP in the Qualcomm IPQ806x
>> SoC. There are 2 ARM cores and 2 NSS cores inside the IPQ806x SoC. The
>> main purpose of these NSS cores is to offload the networking stack from
>> the ARM cores to achieve high performance at routing/ipsec..etc without
>> exhausting the ARM core CPU cycles. There is another nss-drv driver for
>> the NSS cores.
>
> I see.
>
>> The nss-gmac driver is designed to work standalone or with the nss-drv
>> driver so the switchable data plane overlay was implemented. When it
>> worked standalone, the data plane is running on the ARM core as a
>> standard
>> networking driver.
>
> How do you decide which way it gets used on a particular system?
>
By default the GMAC driver uses a native (Host ARM CPU) based data plane.
If the configuration loads the offload nss-drv driver, the offload driver
registers an overlay with the GMAC.
>> The nss-drv driver can take over the data plane and
>> offload it to the NSS cores. The STMicro stmmac driver does not have
>> this
>> kind of overlay design so is not suitable for IPQ806x. This is why we
>> don't based on the stmmac driver
>
> Which kind of offload is implemented specifically? 'data plane' sounds
> fairly generic and could mean anything, and the code isn't readable enough
> in its current form for me to find out.
The Network Subsystem (NSS core) provides a GMAC pass-through until it is
given a rule to offload work. Once a rule is given, it is capable of
performing: bridging, IPv4 NAT/FWD, IPv6 NAT/FWD, IPSec, LAG, and other
protocols.
>
> Arnd
>
Hope this clarify your question!
Thanks,
Stephen
next prev parent reply other threads:[~2015-01-19 21:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-08 22:03 [PATCH] ethernet: atheros: Add nss-gmac driver Stephen Wang
2015-01-08 22:03 ` Stephen Wang
2015-01-08 23:35 ` Arnd Bergmann
2015-01-15 8:12 ` wstephen-sgV2jX0FEOL9JmXXK+q4OQ
2015-01-15 8:12 ` wstephen
2015-01-15 12:34 ` Arnd Bergmann
2015-01-19 21:58 ` wstephen-sgV2jX0FEOL9JmXXK+q4OQ [this message]
2015-01-19 21:58 ` wstephen
2015-01-20 14:05 ` Arnd Bergmann
2015-01-22 0:20 ` wstephen-sgV2jX0FEOL9JmXXK+q4OQ
2015-01-22 0:20 ` wstephen
[not found] ` <f9cbb34c9228b2af7ed6c1c96a6aa61c.squirrel-mMfbam+mt9083fI46fginR2eb7JE58TQ@public.gmane.org>
2015-01-22 10:18 ` Arnd Bergmann
2015-01-22 10:18 ` Arnd Bergmann
2015-01-23 8:54 ` David Miller
[not found] ` <1420754626-30121-1-git-send-email-wstephen-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-01-08 22:18 ` Joe Perches
2015-01-08 22:18 ` Joe Perches
2015-01-09 0:00 ` Francois Romieu
2015-01-09 0:00 ` Francois Romieu
2015-01-09 13:50 ` Mark Rutland
2015-01-09 13:50 ` Mark Rutland
2015-01-16 2:00 ` Stephen Hemminger
2015-01-16 2:00 ` Stephen Hemminger
2015-01-16 1:56 ` Stephen Hemminger
2015-01-16 1:58 ` Stephen Hemminger
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=3ad19b16fe5c58612479f70c052d0045.squirrel@www.codeaurora.org \
--to=wstephen-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=jcliburn-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.