X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif.c;h=952a502d60f26cadaacf4d688084d6701fbeb967;hb=4afba28d559511a5ee03e005b65be8323bf26ad3;hp=d8ca0617329cbed91393b2ad1411b7bbbaf76765;hpb=11a574a737fa506c8e66c7bd42fa3186e70c286f;p=openvswitch diff --git a/lib/dpif.c b/lib/dpif.c index d8ca0617..952a502d 100644 --- a/lib/dpif.c +++ b/lib/dpif.c @@ -486,6 +486,20 @@ dpif_port_destroy(struct dpif_port *dpif_port) free(dpif_port->type); } +/* Checks if port named 'devname' exists in 'dpif'. If so, returns + * true; otherwise, returns false. */ +bool +dpif_port_exists(const struct dpif *dpif, const char *devname) +{ + int error = dpif->dpif_class->port_query_by_name(dpif, devname, NULL); + if (error != 0 && error != ENODEV) { + VLOG_WARN_RL(&error_rl, "%s: failed to query port %s: %s", + dpif_name(dpif), devname, strerror(error)); + } + + return !error; +} + /* Looks up port number 'port_no' in 'dpif'. On success, returns 0 and * initializes '*port' appropriately; on failure, returns a positive errno * value.