netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] macvlan: Disable LRO on lowerdev; warn if it's turned back on
@ 2012-02-21 19:13 Ben Hutchings
  2012-02-21 20:01 ` John Fastabend
  0 siblings, 1 reply; 6+ messages in thread
From: Ben Hutchings @ 2012-02-21 19:13 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, Shradha Shah, Patrick McHardy, Eric W. Biederman

Large Receive Offload (LRO) is only appropriate for packets that are
destined for the host, and should be disabled if received packets may
be forwarded.

Further, macvtap_skb_to_vnet_hdr() will BUG() on a packet received
with LRO (but not GRO).

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
I'm not really familiar with macvlan so I'm not certain that this should
be applied to all modes.

Ben.

 drivers/net/macvlan.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 9ea9921..c64e26c 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -168,6 +168,11 @@ static rx_handler_result_t macvlan_handle_frame(struct sk_buff **pskb)
 	unsigned int len = 0;
 	int ret = NET_RX_DROP;
 
+	if (skb_warn_if_lro(skb)) {
+		kfree_skb(skb);
+		return RX_HANDLER_CONSUMED;
+	}
+
 	port = macvlan_port_get_rcu(skb->dev);
 	if (is_multicast_ether_addr(eth->h_dest)) {
 		skb = ip_check_defrag(skb, IP_DEFRAG_MACVLAN);
@@ -717,6 +722,8 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev,
 		memcpy(dev->dev_addr, lowerdev->dev_addr, ETH_ALEN);
 	}
 
+	dev_disable_lro(lowerdev);
+
 	port->count += 1;
 	err = register_netdevice(dev);
 	if (err < 0)
-- 
1.7.7.6


-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

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

end of thread, other threads:[~2012-02-25 22:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-21 19:13 [PATCH net] macvlan: Disable LRO on lowerdev; warn if it's turned back on Ben Hutchings
2012-02-21 20:01 ` John Fastabend
2012-02-21 20:28   ` Ben Hutchings
2012-02-21 21:46     ` Ben Greear
2012-02-25 22:07       ` Eric W. Biederman
2012-02-25 22:49         ` Ben Hutchings

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).