All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] net: ethernet: mediatek: add HW LRO functions
@ 2016-09-13 13:54 ` Nelson Chang
  0 siblings, 0 replies; 12+ messages in thread
From: Nelson Chang @ 2016-09-13 13:54 UTC (permalink / raw)
  To: john, davem; +Cc: nbd, netdev, linux-mediatek, nelsonch.tw, Nelson Chang

The patches add the large receive offload (LRO) functions by hardware and
the ethtool functions to configure RX flows of HW LRO.

Nelson Chang (3):
  net: ethernet: mediatek: add HW LRO functions of PDMA RX rings
  net: ethernet: mediatek: add ethtool functions to configure RX flows
    of HW LRO
  net: ethernet: mediatek: add dts configuration to enable HW LRO

 .../devicetree/bindings/net/mediatek-net.txt       |   2 +
 drivers/net/ethernet/mediatek/mtk_eth_soc.c        | 433 +++++++++++++++++++--
 drivers/net/ethernet/mediatek/mtk_eth_soc.h        |  75 +++-
 3 files changed, 485 insertions(+), 25 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 12+ messages in thread
* RE: [PATCH net-next 2/3] net: ethernet: mediatek: add ethtool functions to configure RX flows of HW LRO
@ 2016-09-14  5:22 ` Nelson Chang
  0 siblings, 0 replies; 12+ messages in thread
From: Nelson Chang @ 2016-09-14  5:22 UTC (permalink / raw)
  To: f.fainelli, john, davem; +Cc: nbd, netdev, linux-mediatek, nelsonch.tw

(resend)

Thanks Florian for the review!
I will add ndo_fix_features hook in v2 to prevent the case that a user
wants to turn off NETIF_F_LRO but RX flow is programmed.
If any programmed RX flow exists, NETIF_F_LRO cannot be turned off.

-----Original Message-----
From: Florian Fainelli [mailto:f.fainelli@gmail.com]
Sent: Wednesday, September 14, 2016 2:27 AM
To: Nelson Chang (張家祥); john@phrozen.org; davem@davemloft.net
Cc: nbd@openwrt.org; netdev@vger.kernel.org;
linux-mediatek@lists.infradead.org; nelsonch.tw@gmail.com
Subject: Re: [PATCH net-next 2/3] net: ethernet: mediatek: add ethtool
functions to configure RX flows of HW LRO

On 09/13/2016 06:54 AM, Nelson Chang wrote:
> The codes add ethtool functions to set RX flows for HW LRO. Because 
> the HW LRO hardware can only recognize the destination IP of TCP/IP
RX 
> flows, the ethtool command to add HW LRO flow is as below:
> ethtool -N [devname] flow-type tcp4 dst-ip [ip_addr] loc [0~1]
> 
> Otherwise, cause the hardware can set total four destination IPs,
each 
> GMAC (GMAC1/GMAC2) can set two IPs separately at most.
> 
> Signed-off-by: Nelson Chang <nelson.chang@mediatek.com>
> ---

> +
> +static int mtk_set_features(struct net_device *dev, netdev_features_t
> +features) {
> +	int err = 0;
> +
> +	if (!((dev->features ^ features) & NETIF_F_LRO))
> +		return 0;
> +
> +	if (!(features & NETIF_F_LRO))
> +		mtk_hwlro_netdev_disable(dev);

you may want to implement a fix_features ndo operations which makes sure
that NETIF_F_LRO is turned on in case a RX flow is programmed,
otherwise, it may be confusing to the user that a flow was programmed,
but no offload is happening.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-09-14  5:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-13 13:54 [PATCH net-next 0/3] net: ethernet: mediatek: add HW LRO functions Nelson Chang
2016-09-13 13:54 ` Nelson Chang
2016-09-13 13:54 ` [PATCH net-next 1/3] net: ethernet: mediatek: add HW LRO functions of PDMA RX rings Nelson Chang
2016-09-13 13:54   ` Nelson Chang
2016-09-13 13:54 ` [PATCH net-next 2/3] net: ethernet: mediatek: add ethtool functions to configure RX flows of HW LRO Nelson Chang
2016-09-13 13:54   ` Nelson Chang
2016-09-13 18:26   ` Florian Fainelli
2016-09-13 13:54 ` [PATCH net-next 3/3] net: ethernet: mediatek: add dts configuration to enable " Nelson Chang
2016-09-13 13:54   ` Nelson Chang
2016-09-13 18:24   ` Florian Fainelli
2016-09-14  5:22 [PATCH net-next 2/3] net: ethernet: mediatek: add ethtool functions to configure RX flows of " Nelson Chang
2016-09-14  5:22 ` Nelson Chang

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.