void *base_; /* First byte of allocated space. */
uint16_t data_ofs; /* First byte actually in use. */
uint32_t size_; /* Number of bytes in use. */
- uint32_t dp_hash; /* Packet hash. */
+ uint32_t rss_hash; /* Packet hash. */
#endif
uint32_t allocated; /* Number of bytes allocated. */
b->l2_5_ofs = b->l3_ofs = b->l4_ofs = UINT16_MAX;
}
-static inline uint32_t dp_packet_get_dp_hash(struct dp_packet *p)
+static inline uint32_t dp_packet_get_rss_hash(struct dp_packet *p)
{
#ifdef DPDK_NETDEV
return p->mbuf.hash.rss;
#else
- return p->dp_hash;
+ return p->rss_hash;
#endif
}
-static inline void dp_packet_set_dp_hash(struct dp_packet *p,
+static inline void dp_packet_set_rss_hash(struct dp_packet *p,
uint32_t hash)
{
#ifdef DPDK_NETDEV
p->mbuf.hash.rss = hash;
#else
- p->dp_hash = hash;
+ p->rss_hash = hash;
#endif
}
{
uint32_t hash;
- hash = dp_packet_get_dp_hash(packet);
+ hash = dp_packet_get_rss_hash(packet);
if (OVS_UNLIKELY(!hash)) {
hash = miniflow_hash_5tuple(mf, 0);
- dp_packet_set_dp_hash(packet, hash);
+ dp_packet_set_rss_hash(packet, hash);
}
return hash;
}
recirc_pkt->md.recirc_id = nl_attr_get_u32(a);
- /* Hash is private to each packet */
- recirc_pkt->md.dp_hash = dp_packet_get_dp_hash(packets[i]);
-
dp_netdev_input(pmd, &recirc_pkt, 1);
}
(*depth)--;
dp_packet_delete(packet);
} else {
dp_packet_pad(packet);
- dp_packet_set_dp_hash(packet, 0);
+ dp_packet_set_rss_hash(packet, 0);
packets[0] = packet;
*c = 1;
}
ovs_mutex_unlock(&netdev->mutex);
dp_packet_pad(packet);
- dp_packet_set_dp_hash(packet, 0);
+ dp_packet_set_rss_hash(packet, 0);
arr[0] = packet;
*c = 1;
dp_packet_delete(buffer);
} else {
dp_packet_pad(buffer);
- dp_packet_set_dp_hash(buffer, 0);
+ dp_packet_set_rss_hash(buffer, 0);
packets[0] = buffer;
*c = 1;
}
{
uint32_t hash;
- hash = dp_packet_get_dp_hash(packet);
+ hash = dp_packet_get_rss_hash(packet);
return htons((((uint64_t) hash * (tnl_udp_port_max - tnl_udp_port_min)) >> 32) +
tnl_udp_port_min);
case OVS_KEY_ATTR_DP_HASH:
md->dp_hash = nl_attr_get_u32(a);
- dp_packet_set_dp_hash(packet, md->dp_hash);
break;
case OVS_KEY_ATTR_RECIRC_ID:
case OVS_KEY_ATTR_DP_HASH:
md->dp_hash = nl_attr_get_u32(a)
- | (dp_packet_get_dp_hash(packet) & ~*get_mask(a, uint32_t));
- dp_packet_set_dp_hash(packet, md->dp_hash);
+ | (md->dp_hash & ~*get_mask(a, uint32_t));
break;
case OVS_KEY_ATTR_RECIRC_ID:
flow_extract(packets[i], &flow);
hash = flow_hash_5tuple(&flow, hash_act->hash_basis);
- /* We also store the hash value with each packet */
- dp_packet_set_dp_hash(packets[i], hash ? hash : 1);
+ packets[i]->md.dp_hash = hash;
}
} else {
/* Assert on unknown hash algorithm. */