aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/xfrm.h
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 /include/net/xfrm.h
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 'include/net/xfrm.h')
-rw-r--r--include/net/xfrm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index bcfb6b24b01..54b28322948 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -805,6 +805,9 @@ __be16 xfrm_flowi_sport(struct flowi *fl)
805 case IPPROTO_MH: 805 case IPPROTO_MH:
806 port = htons(fl->fl_mh_type); 806 port = htons(fl->fl_mh_type);
807 break; 807 break;
808 case IPPROTO_GRE:
809 port = htonl(fl->fl_gre_key) >> 16;
810 break;
808 default: 811 default:
809 port = 0; /*XXX*/ 812 port = 0; /*XXX*/
810 } 813 }
@@ -826,6 +829,9 @@ __be16 xfrm_flowi_dport(struct flowi *fl)
826 case IPPROTO_ICMPV6: 829 case IPPROTO_ICMPV6:
827 port = htons(fl->fl_icmp_code); 830 port = htons(fl->fl_icmp_code);
828 break; 831 break;
832 case IPPROTO_GRE:
833 port = htonl(fl->fl_gre_key) & 0xffff;
834 break;
829 default: 835 default:
830 port = 0; /*XXX*/ 836 port = 0; /*XXX*/
831 } 837 }