aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/net/flow.h2
-rw-r--r--include/net/xfrm.h6
2 files changed, 8 insertions, 0 deletions
diff --git a/include/net/flow.h b/include/net/flow.h
index 0ac3fb5e0973..7196e6864b8d 100644
--- a/include/net/flow.h
+++ b/include/net/flow.h
@@ -67,6 +67,7 @@ struct flowi {
67 } dnports; 67 } dnports;
68 68
69 __be32 spi; 69 __be32 spi;
70 __be32 gre_key;
70 71
71 struct { 72 struct {
72 __u8 type; 73 __u8 type;
@@ -78,6 +79,7 @@ struct flowi {
78#define fl_icmp_code uli_u.icmpt.code 79#define fl_icmp_code uli_u.icmpt.code
79#define fl_ipsec_spi uli_u.spi 80#define fl_ipsec_spi uli_u.spi
80#define fl_mh_type uli_u.mht.type 81#define fl_mh_type uli_u.mht.type
82#define fl_gre_key uli_u.gre_key
81 __u32 secid; /* used by xfrm; see secid.txt */ 83 __u32 secid; /* used by xfrm; see secid.txt */
82} __attribute__((__aligned__(BITS_PER_LONG/8))); 84} __attribute__((__aligned__(BITS_PER_LONG/8)));
83 85
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index bcfb6b24b019..54b283229488 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 }