|
@@ -1184,11 +1184,6 @@ route_lookup:
|
|
}
|
|
}
|
|
skb_dst_set(skb, dst);
|
|
skb_dst_set(skb, dst);
|
|
|
|
|
|
- if (encap_limit >= 0) {
|
|
|
|
- init_tel_txopt(&opt, encap_limit);
|
|
|
|
- ipv6_push_frag_opts(skb, &opt.ops, &proto);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (hop_limit == 0) {
|
|
if (hop_limit == 0) {
|
|
if (skb->protocol == htons(ETH_P_IP))
|
|
if (skb->protocol == htons(ETH_P_IP))
|
|
hop_limit = ip_hdr(skb)->ttl;
|
|
hop_limit = ip_hdr(skb)->ttl;
|
|
@@ -1210,6 +1205,11 @@ route_lookup:
|
|
if (err)
|
|
if (err)
|
|
return err;
|
|
return err;
|
|
|
|
|
|
|
|
+ if (encap_limit >= 0) {
|
|
|
|
+ init_tel_txopt(&opt, encap_limit);
|
|
|
|
+ ipv6_push_frag_opts(skb, &opt.ops, &proto);
|
|
|
|
+ }
|
|
|
|
+
|
|
skb_push(skb, sizeof(struct ipv6hdr));
|
|
skb_push(skb, sizeof(struct ipv6hdr));
|
|
skb_reset_network_header(skb);
|
|
skb_reset_network_header(skb);
|
|
ipv6h = ipv6_hdr(skb);
|
|
ipv6h = ipv6_hdr(skb);
|