Re: [PATCH] ethernet: atheros: Add nss-gmac driver

From: Arnd Bergmann
Date: Tue Jan 20 2015 - 09:05:35 EST


On Monday 19 January 2015 21:58:09 wstephen@xxxxxxxxxxxxxx wrote:
> > On Thursday 15 January 2015 08:12:51 wstephen@xxxxxxxxxxxxxx wrote:
> >
> >> 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.

Right. For review purposes, I think it would be helpful to split this
huge patch into several steps then:

- add a base driver
- add the overlay interface
- add the nss driver

Ideally more of them.

> >> 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.
>
> Hope this clarify your question!

Thanks for the description, this sounds very interesting indeed. I do
have more questions though: how do you get the rules into the NSS driver?
Does this get handled transparently by the openvswitch driver or
did you have to add new user interfaces for it?

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/