From 7c33b18807804f1e0dfee809a373933fbfeb9a6d Mon Sep 17 00:00:00 2001 From: Jarno Rajahalme Date: Wed, 9 Jan 2013 14:21:47 +0200 Subject: [PATCH] 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 --- ofproto/ofproto-dpif.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 -- 2.43.0