From: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
To: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Cc: dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH net-next 4/7] openvswitch: Reset upper layer protocol info on internal devices.
Date: Fri, 20 Jul 2012 15:26:47 -0700 [thread overview]
Message-ID: <1342823210-3308-5-git-send-email-jesse@nicira.com> (raw)
In-Reply-To: <1342823210-3308-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
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 <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
---
net/openvswitch/vport-internal_dev.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
index de509d3..4061b9e 100644
--- 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 vport *vport, struct sk_buff *skb)
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);
--
1.7.9.5
next prev parent reply other threads:[~2012-07-20 22:26 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-20 22:26 [GIT net-next] Open vSwitch Jesse Gross
[not found] ` <1342823210-3308-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2012-07-20 22:26 ` [PATCH net-next 1/7] openvswitch: Enable retrieval of TCP flags from IPv6 traffic Jesse Gross
2012-07-20 22:26 ` [PATCH net-next 2/7] openvswitch: Do not send notification if ovs_vport_set_options() failed Jesse Gross
2012-07-20 22:26 ` [PATCH net-next 3/7] openvswitch: Replace Nicira Networks Jesse Gross
2012-07-20 22:26 ` Jesse Gross [this message]
[not found] ` <1342823210-3308-5-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2012-09-04 0:57 ` [PATCH net-next 4/7] openvswitch: Reset upper layer protocol info on internal devices Jesse Gross
[not found] ` <CAEP_g=-giF74zveQgLsrAwS0kp2P3cj_O7mHaKKLVfKwQCNBag-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-04 1:00 ` David Miller
[not found] ` <20120903.210055.1839817610578900310.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2012-09-04 1:07 ` Jesse Gross
[not found] ` <CAEP_g=_+Q4Axi0vH8nce6zVZgs++62PbiTWum_z+s_PbpwzgOA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-04 18:22 ` David Miller
2012-09-04 18:23 ` Chris Wright
2012-07-20 22:26 ` [PATCH net-next 5/7] openvswitch: Check currect return value from skb_gso_segment() Jesse Gross
2012-07-20 22:26 ` [PATCH net-next 6/7] openvswitch: Check gso_type for correct sk_buff in queue_gso_packets() Jesse Gross
2012-07-20 22:26 ` [PATCH net-next 7/7] openvswitch: Fix typo in documentation Jesse Gross
2012-07-20 23:17 ` [GIT net-next] Open vSwitch David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1342823210-3308-5-git-send-email-jesse@nicira.com \
--to=jesse-l0m0p4e3n4lqt0dzr+alfa@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).