|
@@ -381,9 +381,8 @@ int ip6_forward(struct sk_buff *skb)
|
|
* cannot be fragmented, because there is no warranty
|
|
* cannot be fragmented, because there is no warranty
|
|
* that different fragments will go along one path. --ANK
|
|
* that different fragments will go along one path. --ANK
|
|
*/
|
|
*/
|
|
- if (opt->ra) {
|
|
|
|
- u8 *ptr = skb_network_header(skb) + opt->ra;
|
|
|
|
- if (ip6_call_ra_chain(skb, (ptr[2]<<8) + ptr[3]))
|
|
|
|
|
|
+ if (unlikely(opt->flags & IP6SKB_ROUTERALERT)) {
|
|
|
|
+ if (ip6_call_ra_chain(skb, ntohs(opt->ra)))
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|