aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/xfrm6_state.c')
-rw-r--r--net/ipv6/xfrm6_state.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c
index 98b05f472322..90fef0a4726f 100644
--- a/net/ipv6/xfrm6_state.c
+++ b/net/ipv6/xfrm6_state.c
@@ -177,7 +177,8 @@ int xfrm6_extract_header(struct sk_buff *skb)
177 XFRM_MODE_SKB_CB(skb)->frag_off = htons(IP_DF); 177 XFRM_MODE_SKB_CB(skb)->frag_off = htons(IP_DF);
178 XFRM_MODE_SKB_CB(skb)->tos = ipv6_get_dsfield(iph); 178 XFRM_MODE_SKB_CB(skb)->tos = ipv6_get_dsfield(iph);
179 XFRM_MODE_SKB_CB(skb)->ttl = iph->hop_limit; 179 XFRM_MODE_SKB_CB(skb)->ttl = iph->hop_limit;
180 XFRM_MODE_SKB_CB(skb)->protocol = iph->nexthdr; 180 XFRM_MODE_SKB_CB(skb)->protocol =
181 skb_network_header(skb)[IP6CB(skb)->nhoff];
181 memcpy(XFRM_MODE_SKB_CB(skb)->flow_lbl, iph->flow_lbl, 182 memcpy(XFRM_MODE_SKB_CB(skb)->flow_lbl, iph->flow_lbl,
182 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl)); 183 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl));
183 184
@@ -187,11 +188,13 @@ int xfrm6_extract_header(struct sk_buff *skb)
187static struct xfrm_state_afinfo xfrm6_state_afinfo = { 188static struct xfrm_state_afinfo xfrm6_state_afinfo = {
188 .family = AF_INET6, 189 .family = AF_INET6,
189 .proto = IPPROTO_IPV6, 190 .proto = IPPROTO_IPV6,
191 .eth_proto = htons(ETH_P_IPV6),
190 .owner = THIS_MODULE, 192 .owner = THIS_MODULE,
191 .init_tempsel = __xfrm6_init_tempsel, 193 .init_tempsel = __xfrm6_init_tempsel,
192 .tmpl_sort = __xfrm6_tmpl_sort, 194 .tmpl_sort = __xfrm6_tmpl_sort,
193 .state_sort = __xfrm6_state_sort, 195 .state_sort = __xfrm6_state_sort,
194 .output = xfrm6_output, 196 .output = xfrm6_output,
197 .extract_input = xfrm6_extract_input,
195 .extract_output = xfrm6_extract_output, 198 .extract_output = xfrm6_extract_output,
196}; 199};
197 200