Acked-by: Ethan Jackson <et...@nicira.com>
On Wed, Apr 15, 2015 at 11:11 AM, Daniele Di Proietto <diproiet...@vmware.com> wrote: > We already have the 'dp_hash' embedded in the metadata. This caused > confusion in the code. With this commit it should be clear that > 'rss_hash' is the packet hash used for internal purposes, while > 'md.dp_hash' is part of the flow, computed during the execution of > certain actions. > > Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com> > --- > lib/dp-packet.h | 10 +++++----- > lib/dpif-netdev.c | 7 ++----- > lib/netdev-bsd.c | 2 +- > lib/netdev-dummy.c | 2 +- > lib/netdev-linux.c | 2 +- > lib/netdev-vport.c | 2 +- > lib/odp-execute.c | 7 ++----- > 7 files changed, 13 insertions(+), 19 deletions(-) > > diff --git a/lib/dp-packet.h b/lib/dp-packet.h > index 5d0fee7..fd23d11 100644 > --- a/lib/dp-packet.h > +++ b/lib/dp-packet.h > @@ -63,7 +63,7 @@ struct dp_packet { > 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. */ > > @@ -484,22 +484,22 @@ static inline void dp_packet_reset_packet(struct > dp_packet *b, int off) > 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 > } > > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c > index 8aa70c8..5b44d51 100644 > --- a/lib/dpif-netdev.c > +++ b/lib/dpif-netdev.c > @@ -3009,10 +3009,10 @@ dpif_netdev_packet_get_dp_hash(struct dp_packet > *packet, > { > 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; > } > @@ -3492,9 +3492,6 @@ dp_execute_cb(void *aux_, struct dp_packet **packets, > int cnt, > > 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)--; > diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c > index 541e5ec..e77aba5 100644 > --- a/lib/netdev-bsd.c > +++ b/lib/netdev-bsd.c > @@ -642,7 +642,7 @@ netdev_bsd_rxq_recv(struct netdev_rxq *rxq_, struct > dp_packet **packets, > 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; > } > diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c > index 24c91c2..db03f59 100644 > --- a/lib/netdev-dummy.c > +++ b/lib/netdev-dummy.c > @@ -834,7 +834,7 @@ netdev_dummy_rxq_recv(struct netdev_rxq *rxq_, struct > dp_packet **arr, > 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; > diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c > index 23f9856..36e27e0 100644 > --- a/lib/netdev-linux.c > +++ b/lib/netdev-linux.c > @@ -1058,7 +1058,7 @@ netdev_linux_rxq_recv(struct netdev_rxq *rxq_, struct > dp_packet **packets, > 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; > } > diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c > index f228ac2..297320c 100644 > --- a/lib/netdev-vport.c > +++ b/lib/netdev-vport.c > @@ -914,7 +914,7 @@ get_src_port(struct dp_packet *packet) > { > 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); > diff --git a/lib/odp-execute.c b/lib/odp-execute.c > index ccd29d7..f83fe60 100644 > --- a/lib/odp-execute.c > +++ b/lib/odp-execute.c > @@ -312,7 +312,6 @@ odp_execute_set_action(struct dp_packet *packet, const > struct nlattr *a) > > 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: > @@ -405,8 +404,7 @@ odp_execute_masked_set_action(struct dp_packet *packet, > > 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: > @@ -516,8 +514,7 @@ odp_execute_actions(void *dp, struct dp_packet **packets, > int cnt, bool steal, > 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. */ > -- > 2.1.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev