aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/ip_gre.c
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2010-11-03 00:41:38 -0400
committerDavid S. Miller <davem@davemloft.net>2010-11-15 13:44:04 -0500
commitcc9ff19da9bf76a2f70bcb80225a1c587c162e52 (patch)
tree181efcd617a42a48fa94c51cfe9dc0e77b3b5775 /net/ipv4/ip_gre.c
parente1f2d8c2cc61d2b9472efe44e8a2b098336914b4 (diff)
xfrm: use gre key as flow upper protocol info
The GRE Key field is intended to be used for identifying an individual traffic flow within a tunnel. It is useful to be able to have XFRM policy selector matches to have different policies for different GRE tunnels. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_gre.c')
-rw-r--r--net/ipv4/ip_gre.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index cab2057d5430..aace653710f6 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -779,9 +779,9 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev
779 .tos = RT_TOS(tos) 779 .tos = RT_TOS(tos)
780 } 780 }
781 }, 781 },
782 .proto = IPPROTO_GRE 782 .proto = IPPROTO_GRE,
783 } 783 .fl_gre_key = tunnel->parms.o_key
784; 784 };
785 if (ip_route_output_key(dev_net(dev), &rt, &fl)) { 785 if (ip_route_output_key(dev_net(dev), &rt, &fl)) {
786 dev->stats.tx_carrier_errors++; 786 dev->stats.tx_carrier_errors++;
787 goto tx_error; 787 goto tx_error;
@@ -958,7 +958,8 @@ static int ipgre_tunnel_bind_dev(struct net_device *dev)
958 .tos = RT_TOS(iph->tos) 958 .tos = RT_TOS(iph->tos)
959 } 959 }
960 }, 960 },
961 .proto = IPPROTO_GRE 961 .proto = IPPROTO_GRE,
962 .fl_gre_key = tunnel->parms.o_key
962 }; 963 };
963 struct rtable *rt; 964 struct rtable *rt;
964 965
@@ -1223,7 +1224,8 @@ static int ipgre_open(struct net_device *dev)
1223 .tos = RT_TOS(t->parms.iph.tos) 1224 .tos = RT_TOS(t->parms.iph.tos)
1224 } 1225 }
1225 }, 1226 },
1226 .proto = IPPROTO_GRE 1227 .proto = IPPROTO_GRE,
1228 .fl_gre_key = t->parms.o_key
1227 }; 1229 };
1228 struct rtable *rt; 1230 struct rtable *rt;
1229 1231