return OFP11_PORT_C(port);
}
+static inline uint32_t
+hash_ofp_port(ofp_port_t ofp_port)
+{
+ return hash_int(ofp_to_u16(ofp_port), 0);
+}
+
+static inline uint32_t
+hash_odp_port(odp_port_t odp_port)
+{
+ return hash_int(odp_to_u32(odp_port), 0);
+}
+
uint32_t flow_hash_in_minimask(const struct flow *, const struct minimask *,
uint32_t basis);
\f
if (lp && hmap_node_is_null(&lp->hmap_node)) {
lp->port_no = port.port_no;
hmap_insert(&sw->queue_numbers, &lp->hmap_node,
- hash_int(ofp_to_u16(lp->port_no), 0));
+ hash_ofp_port(lp->port_no));
}
}
return 0;
{
const struct lswitch_port *port;
- HMAP_FOR_EACH_WITH_HASH (port, hmap_node, hash_int(ofp_to_u16(in_port), 0),
+ HMAP_FOR_EACH_WITH_HASH (port, hmap_node, hash_ofp_port(in_port),
&sw->queue_numbers) {
if (port->port_no == in_port) {
return port->queue_id;
{
struct dpif_sflow_port *dsp;
- HMAP_FOR_EACH_IN_BUCKET (dsp, hmap_node,
- hash_int(odp_to_u32(odp_port), 0),
- &ds->ports) {
+ HMAP_FOR_EACH_IN_BUCKET (dsp, hmap_node, hash_odp_port(odp_port),
+ &ds->ports) {
if (dsp->odp_port == odp_port) {
return dsp;
}
dsp->ofport = ofport;
dsp->odp_port = odp_port;
SFL_DS_SET(dsp->dsi, SFL_DSCLASS_IFINDEX, ifindex, 0);
- hmap_insert(&ds->ports, &dsp->hmap_node, hash_int(odp_to_u32(odp_port), 0));
+ hmap_insert(&ds->ports, &dsp->hmap_node, hash_odp_port(odp_port));
/* Add poller. */
if (ds->sflow_agent) {
}
hmap_insert(&ofproto->backer->odp_to_ofport_map, &port->odp_port_node,
- hash_int(odp_to_u32(port->odp_port), 0));
+ hash_odp_port(port->odp_port));
}
dpif_port_destroy(&dpif_port);
struct vlan_splinter *vsp;
HMAP_FOR_EACH_WITH_HASH (vsp, vlandev_node,
- hash_int(ofp_to_u16(vlandev_ofp_port), 0),
+ hash_ofp_port(vlandev_ofp_port),
&ofproto->vlandev_map) {
if (vsp->vlandev_ofp_port == vlandev_ofp_port) {
return vsp;
vsp = xmalloc(sizeof *vsp);
hmap_insert(&ofproto->vlandev_map, &vsp->vlandev_node,
- hash_int(ofp_to_u16(port->up.ofp_port), 0));
+ hash_ofp_port(port->up.ofp_port));
hmap_insert(&ofproto->realdev_vid_map, &vsp->realdev_vid_node,
hash_realdev_vid(realdev_ofp_port, vid));
vsp->realdev_ofp_port = realdev_ofp_port;
{
struct ofport_dpif *port;
- HMAP_FOR_EACH_IN_BUCKET (port, odp_port_node,
- hash_int(odp_to_u32(odp_port), 0),
+ HMAP_FOR_EACH_IN_BUCKET (port, odp_port_node, hash_odp_port(odp_port),
&backer->odp_to_ofport_map) {
if (port->odp_port == odp_port) {
return port;
/* Add port to 'p'. */
hmap_insert(&p->ports, &ofport->hmap_node,
- hash_int(ofp_to_u16(ofport->ofp_port), 0));
+ hash_ofp_port(ofport->ofp_port));
shash_add(&p->port_by_name, netdev_name, ofport);
update_mtu(p, ofport);
{
struct ofport *port;
- HMAP_FOR_EACH_IN_BUCKET (port, hmap_node,
- hash_int(ofp_to_u16(ofp_port), 0),
+ HMAP_FOR_EACH_IN_BUCKET (port, hmap_node, hash_ofp_port(ofp_port),
&ofproto->ports) {
if (port->ofp_port == ofp_port) {
return port;
static struct pinqueue *
pinqueue_get(struct pinsched *ps, ofp_port_t port_no)
{
- uint32_t hash = hash_int(ofp_to_u16(port_no), 0);
+ uint32_t hash = hash_ofp_port(port_no);
struct pinqueue *q;
HMAP_FOR_EACH_IN_BUCKET (q, node, hash, &ps->queues) {
ovs_assert(iface->ofp_port == OFPP_NONE && ofp_port != OFPP_NONE);
iface->ofp_port = ofp_port;
hmap_insert(&br->ifaces, &iface->ofp_port_node,
- hash_int(ofp_to_u16(ofp_port), 0));
+ hash_ofp_port(ofp_port));
iface_set_ofport(iface->cfg, ofp_port);
}
{
struct iface *iface;
- HMAP_FOR_EACH_IN_BUCKET (iface, ofp_port_node,
- hash_int(ofp_to_u16(ofp_port), 0),
+ HMAP_FOR_EACH_IN_BUCKET (iface, ofp_port_node, hash_ofp_port(ofp_port),
&br->ifaces) {
if (iface->ofp_port == ofp_port) {
return iface;