aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/xfrm4_policy.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-03-12 00:43:55 -0500
committerDavid S. Miller <davem@davemloft.net>2011-03-12 18:08:46 -0500
commit6281dcc94a96bd73017b2baa8fa83925405109ef (patch)
tree8deee4d66d256d10ea25f66520eb96b1fade1545 /net/ipv4/xfrm4_policy.c
parent08704bcbf022786532b5f188935ab6619906049f (diff)
net: Make flowi ports AF dependent.
Create two sets of port member accessors, one set prefixed by fl4_* and the other prefixed by fl6_* This will let us to create AF optimal flow instances. It will work because every context in which we access the ports, we have to be fully aware of which AF the flowi is anyways. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/xfrm4_policy.c')
-rw-r--r--net/ipv4/xfrm4_policy.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
index 4294f121a749..b7b0921b425d 100644
--- a/net/ipv4/xfrm4_policy.c
+++ b/net/ipv4/xfrm4_policy.c
@@ -117,8 +117,8 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
117 pskb_may_pull(skb, xprth + 4 - skb->data)) { 117 pskb_may_pull(skb, xprth + 4 - skb->data)) {
118 __be16 *ports = (__be16 *)xprth; 118 __be16 *ports = (__be16 *)xprth;
119 119
120 fl->fl_ip_sport = ports[!!reverse]; 120 fl->fl4_sport = ports[!!reverse];
121 fl->fl_ip_dport = ports[!reverse]; 121 fl->fl4_dport = ports[!reverse];
122 } 122 }
123 break; 123 break;
124 124
@@ -126,8 +126,8 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
126 if (pskb_may_pull(skb, xprth + 2 - skb->data)) { 126 if (pskb_may_pull(skb, xprth + 2 - skb->data)) {
127 u8 *icmp = xprth; 127 u8 *icmp = xprth;
128 128
129 fl->fl_icmp_type = icmp[0]; 129 fl->fl4_icmp_type = icmp[0];
130 fl->fl_icmp_code = icmp[1]; 130 fl->fl4_icmp_code = icmp[1];
131 } 131 }
132 break; 132 break;
133 133
@@ -135,7 +135,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
135 if (pskb_may_pull(skb, xprth + 4 - skb->data)) { 135 if (pskb_may_pull(skb, xprth + 4 - skb->data)) {
136 __be32 *ehdr = (__be32 *)xprth; 136 __be32 *ehdr = (__be32 *)xprth;
137 137
138 fl->fl_ipsec_spi = ehdr[0]; 138 fl->fl4_ipsec_spi = ehdr[0];
139 } 139 }
140 break; 140 break;
141 141
@@ -143,7 +143,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
143 if (pskb_may_pull(skb, xprth + 8 - skb->data)) { 143 if (pskb_may_pull(skb, xprth + 8 - skb->data)) {
144 __be32 *ah_hdr = (__be32*)xprth; 144 __be32 *ah_hdr = (__be32*)xprth;
145 145
146 fl->fl_ipsec_spi = ah_hdr[1]; 146 fl->fl4_ipsec_spi = ah_hdr[1];
147 } 147 }
148 break; 148 break;
149 149
@@ -151,7 +151,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
151 if (pskb_may_pull(skb, xprth + 4 - skb->data)) { 151 if (pskb_may_pull(skb, xprth + 4 - skb->data)) {
152 __be16 *ipcomp_hdr = (__be16 *)xprth; 152 __be16 *ipcomp_hdr = (__be16 *)xprth;
153 153
154 fl->fl_ipsec_spi = htonl(ntohs(ipcomp_hdr[1])); 154 fl->fl4_ipsec_spi = htonl(ntohs(ipcomp_hdr[1]));
155 } 155 }
156 break; 156 break;
157 157
@@ -163,13 +163,13 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
163 if (greflags[0] & GRE_KEY) { 163 if (greflags[0] & GRE_KEY) {
164 if (greflags[0] & GRE_CSUM) 164 if (greflags[0] & GRE_CSUM)
165 gre_hdr++; 165 gre_hdr++;
166 fl->fl_gre_key = gre_hdr[1]; 166 fl->fl4_gre_key = gre_hdr[1];
167 } 167 }
168 } 168 }
169 break; 169 break;
170 170
171 default: 171 default:
172 fl->fl_ipsec_spi = 0; 172 fl->fl4_ipsec_spi = 0;
173 break; 173 break;
174 } 174 }
175 } 175 }