return htonl(tclass << IPV6_TCLASS_SHIFT) | flowlabel;
}
-static inline u32 flowi6_get_flowlabel(const struct flowi6 *fl6)
-{
- return (__force u32)(fl6->flowlabel & IPV6_FLOWLABEL_MASK);
-}
-
/*
* Prototypes exported by ipv6
*/
keys->ports.src = fl6->fl6_sport;
keys->ports.dst = fl6->fl6_dport;
keys->keyid.keyid = fl6->fl6_gre_key;
- keys->tags.flow_label = flowi6_get_flowlabel(fl6);
+ keys->tags.flow_label = (__force u32)fl6->flowlabel;
keys->basic.ip_proto = fl6->flowi6_proto;
return flow_hash_from_keys(keys);
} else {
keys->addrs.v6addrs.src = key_iph->saddr;
keys->addrs.v6addrs.dst = key_iph->daddr;
- keys->tags.flow_label = ip6_flowlabel(key_iph);
+ keys->tags.flow_label = ip6_flowinfo(key_iph);
keys->basic.ip_proto = key_iph->nexthdr;
}
}
} else {
hash_keys.addrs.v6addrs.src = fl6->saddr;
hash_keys.addrs.v6addrs.dst = fl6->daddr;
- hash_keys.tags.flow_label = flowi6_get_flowlabel(fl6);
+ hash_keys.tags.flow_label = (__force u32)fl6->flowlabel;
hash_keys.basic.ip_proto = fl6->flowi6_proto;
}
break;