[ovs-dev] [PATCH 05/14] datapath: Don't unnecessarily set skb mac header.

Jesse Gross jesse at nicira.com
Thu Dec 2 20:36:54 UTC 2010


We currently call skb_reset_mac_header() in a few places when a
packet is received.  However, this is not needed because flow_extract()
will set all of the protocol headers during parsing and nothing needs
the packet headers before that time.

Signed-off-by: Jesse Gross <jesse at nicira.com>
---
 datapath/vport-internal_dev.c |    2 --
 datapath/vport-netdev.c       |    2 --
 2 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/datapath/vport-internal_dev.c b/datapath/vport-internal_dev.c
index 9079295..6d610fd 100644
--- a/datapath/vport-internal_dev.c
+++ b/datapath/vport-internal_dev.c
@@ -73,12 +73,10 @@ static int internal_dev_xmit(struct sk_buff *skb, struct net_device *netdev)
 	struct internal_dev *internal_dev = internal_dev_priv(netdev);
 	struct vport *vport = rcu_dereference(internal_dev->vport);
 
-	skb_reset_mac_header(skb);
 	compute_ip_summed(skb, true);
 	OVS_CB(skb)->flow = NULL;
 
 	vport_receive(vport, skb);
-
 	return 0;
 }
 
diff --git a/datapath/vport-netdev.c b/datapath/vport-netdev.c
index c023c85..c643696 100644
--- a/datapath/vport-netdev.c
+++ b/datapath/vport-netdev.c
@@ -264,9 +264,7 @@ static void netdev_port_receive(struct vport *vport, struct sk_buff *skb)
 
 	skb_warn_if_lro(skb);
 
-	/* Push the Ethernet header back on. */
 	skb_push(skb, ETH_HLEN);
-	skb_reset_mac_header(skb);
 	compute_ip_summed(skb, false);
 
 	vport_receive(vport, skb);
-- 
1.7.1





More information about the dev mailing list