This is a note to let you know that I've just added the patch titled

    openvswitch: Reset upper layer protocol info on internal devices.

to the 3.4-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     openvswitch-reset-upper-layer-protocol-info-on-internal-devices.patch
and it can be found in the queue-3.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From c7df1099f1ecaae91421cabad25658cbad9e593e Mon Sep 17 00:00:00 2001
From: Jesse Gross <[email protected]>
Date: Fri, 25 May 2012 11:29:30 -0700
Subject: openvswitch: Reset upper layer protocol info on internal devices.


From: Jesse Gross <[email protected]>

[ Upstream commit 7fe99e2d434eafeac0c57b279a77e5de39212636 ]

It's possible that packets that are sent on internal devices (from
the OVS perspective) have already traversed the local IP stack.
After they go through the internal device, they will again travel
through the IP stack which may get confused by the presence of
existing information in the skb. The problem can be observed
when switching between namespaces. This clears out that information
to avoid problems but deliberately leaves other metadata alone.
This is to provide maximum flexibility in chaining together OVS
and other Linux components.

Signed-off-by: Jesse Gross <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 net/openvswitch/vport-internal_dev.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/net/openvswitch/vport-internal_dev.c
+++ b/net/openvswitch/vport-internal_dev.c
@@ -24,6 +24,9 @@
 #include <linux/ethtool.h>
 #include <linux/skbuff.h>
 
+#include <net/dst.h>
+#include <net/xfrm.h>
+
 #include "datapath.h"
 #include "vport-internal_dev.h"
 #include "vport-netdev.h"
@@ -209,6 +212,11 @@ static int internal_dev_recv(struct vpor
        int len;
 
        len = skb->len;
+
+       skb_dst_drop(skb);
+       nf_reset(skb);
+       secpath_reset(skb);
+
        skb->dev = netdev;
        skb->pkt_type = PACKET_HOST;
        skb->protocol = eth_type_trans(skb, netdev);


Patches currently in stable-queue which might be from [email protected] are

queue-3.4/openvswitch-reset-upper-layer-protocol-info-on-internal-devices.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to