+ u32 hash = skb_get_rxhash(skb);
+ unsigned int range;
+ int high;
+ int low;
+
+ if (!hash) {
+ struct sw_flow_key *pkt_key = OVS_CB(skb)->pkt_key;
+
+ hash = jhash2((const u32 *)pkt_key,
+ sizeof(*pkt_key) / sizeof(u32), 0);
+ }
+
+ inet_get_local_port_range(&low, &high);
+ range = (high - low) + 1;
+ return (((u64) hash * range) >> 32) + low;
+}
+
+static void lisp_build_header(const struct vport *vport,
+ struct sk_buff *skb)
+{
+ struct lisp_port *lisp_port = lisp_vport(vport);