From: Jarno Rajahalme Date: Wed, 9 Jan 2013 12:21:47 +0000 (+0200) Subject: ofproto-dpif: More efficient implementation of get_odp_port(). X-Git-Tag: sliver-openvswitch-1.9.90-3~10^2~26 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=7c33b18807804f1e0dfee809a373933fbfeb9a6d;p=sliver-openvswitch.git ofproto-dpif: More efficient implementation of get_odp_port(). Avoids unnecessary hash bucket traversal (ofproto_get_port()), since we have the ofport_dpif already after odp_port_to_ofport(). Signed-off-by: Jarno Rajahalme [blp@nicira.com simplified the test] Signed-off-by: Ben Pfaff --- diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 186f0a7c5..5b86d463e 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -2792,7 +2792,8 @@ get_ofp_port(const struct ofproto_dpif *ofproto, uint16_t ofp_port) static struct ofport_dpif * get_odp_port(const struct ofproto_dpif *ofproto, uint32_t odp_port) { - return get_ofp_port(ofproto, odp_port_to_ofp_port(ofproto, odp_port)); + struct ofport_dpif *port = odp_port_to_ofport(ofproto->backer, odp_port); + return port && &ofproto->up == port->up.ofproto ? port : NULL; } static void