X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-dpctl.c;h=9d6bf98520def196206c0b552aa87ca0649a4cf1;hb=b33951b80fa2040ea10d1e247f416f65da062d1e;hp=3167864ae27e0c97453e61f0863bf7e183547542;hpb=feebdea2e5550a71c7accda936b6a55962f60a04;p=openvswitch diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c index 3167864a..9d6bf985 100644 --- a/utilities/ovs-dpctl.c +++ b/utilities/ovs-dpctl.c @@ -38,7 +38,7 @@ #include "netdev.h" #include "odp-util.h" #include "shash.h" -#include "svec.h" +#include "sset.h" #include "timeval.h" #include "util.h" #include "vlog.h" @@ -146,17 +146,8 @@ static void run(int retval, const char *message, ...) if (retval) { va_list args; - fprintf(stderr, "%s: ", program_name); va_start(args, message); - vfprintf(stderr, message, args); - va_end(args); - if (retval == EOF) { - fputs(": unexpected end of file\n", stderr); - } else { - fprintf(stderr, ": %s\n", strerror(retval)); - } - - exit(EXIT_FAILURE); + ovs_fatal_valist(retval, message, args); } } @@ -241,7 +232,7 @@ do_add_if(int argc OVS_UNUSED, char *argv[]) } shash_init(&args); - while ((option = strtok_r(NULL, "", &save_ptr)) != NULL) { + while ((option = strtok_r(NULL, ",", &save_ptr)) != NULL) { char *save_ptr_2 = NULL; char *key, *value; @@ -404,23 +395,21 @@ do_show(int argc, char *argv[]) } } } else { - struct svec types; + struct sset types; const char *type; - size_t i; - svec_init(&types); + sset_init(&types); dp_enumerate_types(&types); - SVEC_FOR_EACH (i, type, &types) { - struct svec names; + SSET_FOR_EACH (type, &types) { + struct sset names; const char *name; - size_t j; - svec_init(&names); + sset_init(&names); if (dp_enumerate_names(type, &names)) { failure = true; continue; } - SVEC_FOR_EACH (j, name, &names) { + SSET_FOR_EACH (name, &names) { struct dpif *dpif; int error; @@ -432,9 +421,9 @@ do_show(int argc, char *argv[]) failure = true; } } - svec_destroy(&names); + sset_destroy(&names); } - svec_destroy(&types); + sset_destroy(&types); } if (failure) { exit(EXIT_FAILURE); @@ -444,34 +433,34 @@ do_show(int argc, char *argv[]) static void do_dump_dps(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) { - struct svec dpif_names, dpif_types; - unsigned int i; + struct sset dpif_names, dpif_types; + const char *type; int error = 0; - svec_init(&dpif_names); - svec_init(&dpif_types); + sset_init(&dpif_names); + sset_init(&dpif_types); dp_enumerate_types(&dpif_types); - for (i = 0; i < dpif_types.n; i++) { - unsigned int j; + SSET_FOR_EACH (type, &dpif_types) { + const char *name; int retval; - retval = dp_enumerate_names(dpif_types.names[i], &dpif_names); + retval = dp_enumerate_names(type, &dpif_names); if (retval) { error = retval; } - for (j = 0; j < dpif_names.n; j++) { + SSET_FOR_EACH (name, &dpif_names) { struct dpif *dpif; - if (!dpif_open(dpif_names.names[j], dpif_types.names[i], &dpif)) { + if (!dpif_open(name, type, &dpif)) { printf("%s\n", dpif_name(dpif)); dpif_close(dpif); } } } - svec_destroy(&dpif_names); - svec_destroy(&dpif_types); + sset_destroy(&dpif_names); + sset_destroy(&dpif_types); if (error) { exit(EXIT_FAILURE); } @@ -480,7 +469,7 @@ do_dump_dps(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) static void do_dump_flows(int argc OVS_UNUSED, char *argv[]) { - const struct odp_flow_stats *stats; + const struct dpif_flow_stats *stats; const struct nlattr *actions; struct dpif_flow_dump dump; const struct nlattr *key; @@ -498,7 +487,7 @@ do_dump_flows(int argc OVS_UNUSED, char *argv[]) ds_clear(&ds); odp_flow_key_format(key, key_len, &ds); ds_put_cstr(&ds, ", "); - format_odp_flow_stats(&ds, stats); + dpif_flow_stats_format(stats, &ds); ds_put_cstr(&ds, ", actions:"); format_odp_actions(&ds, actions, actions_len); printf("%s\n", ds_cstr(&ds));