[ovs-dev] [PATCH 1/2] [RFC] datapath: tunneling: Push vlan_set_tci() call into protocol handlers

Simon Horman horms at verge.net.au
Thu Apr 19 04:50:03 UTC 2012


This allows tunneling protocols to set the VLAN TCI to a non-zero
value and will be used by the implementation of STT.

Implementation suggested by Jesse Gross

Cc: Jesse Gross <jesse at nicira.com>
Signed-off-by: Simon Horman <horms at verge.net.au>
---
 datapath/tunnel.c       |    1 -
 datapath/vport-capwap.c |    1 +
 datapath/vport-gre.c    |    1 +
 3 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/datapath/tunnel.c b/datapath/tunnel.c
index d406dbc..68a38be 100644
--- a/datapath/tunnel.c
+++ b/datapath/tunnel.c
@@ -434,7 +434,6 @@ void ovs_tnl_rcv(struct vport *vport, struct sk_buff *skb, u8 tos)
 	secpath_reset(skb);
 
 	ecn_decapsulate(skb, tos);
-	vlan_set_tci(skb, 0);
 
 	if (unlikely(compute_ip_summed(skb, false))) {
 		kfree_skb(skb);
diff --git a/datapath/vport-capwap.c b/datapath/vport-capwap.c
index e5b7afb..ddeee8d 100644
--- a/datapath/vport-capwap.c
+++ b/datapath/vport-capwap.c
@@ -338,6 +338,7 @@ static int capwap_rcv(struct sock *sk, struct sk_buff *skb)
 	else
 		OVS_CB(skb)->tun_id = 0;
 
+	vlan_set_tci(skb, 0);
 	ovs_tnl_rcv(vport, skb, iph->tos);
 	goto out;
 
diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c
index 3bb55f0..8c14cf8 100644
--- a/datapath/vport-gre.c
+++ b/datapath/vport-gre.c
@@ -359,6 +359,7 @@ static int gre_rcv(struct sk_buff *skb)
 	__skb_pull(skb, hdr_len);
 	skb_postpull_rcsum(skb, skb_transport_header(skb), hdr_len + ETH_HLEN);
 
+	vlan_set_tci(skb, 0);
 	ovs_tnl_rcv(vport, skb, iph->tos);
 	return 0;
 
-- 
1.7.9.5




More information about the dev mailing list