X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-dpctl.c;h=0516d1b27968c7cb34d433a5b12839ee862d2cf8;hb=bab3c0b820111eaf50878863f82e479fea4fa8a3;hp=a87a30514ef05fad20d12a7153154309b0d62b31;hpb=4e022ec09e14ac89add74c1b4b8e3ff3873edbf0;p=sliver-openvswitch.git diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c index a87a30514..0516d1b27 100644 --- a/utilities/ovs-dpctl.c +++ b/utilities/ovs-dpctl.c @@ -66,7 +66,7 @@ static bool may_create; * the option itself. */ static int verbosity; -static const struct command all_commands[]; +static const struct command *get_all_commands(void); static void usage(void) NO_RETURN; static void parse_options(int argc, char *argv[]); @@ -77,7 +77,7 @@ main(int argc, char *argv[]) set_program_name(argv[0]); parse_options(argc, argv); signal(SIGPIPE, SIG_IGN); - run_command(argc - optind, argv + optind, all_commands); + run_command(argc - optind, argv + optind, get_all_commands()); return 0; } @@ -182,6 +182,8 @@ usage(void) vlog_usage(); printf("\nOptions for show and mod-flow:\n" " -s, --statistics print statistics for port or flow\n" + "\nOptions for dump-flows:\n" + " -m, --more increase verbosity of output\n" "\nOptions for mod-flow:\n" " --may-create create flow if it doesn't exist\n" " --clear reset existing stats to zero\n" @@ -590,13 +592,13 @@ show_dpif(struct dpif *dpif) free(nodes); } else { printf(", could not retrieve configuration (%s)", - strerror(error)); + ovs_strerror(error)); } smap_destroy(&config); netdev_close(netdev); } else { - printf(": open failed (%s)", strerror(error)); + printf(": open failed (%s)", ovs_strerror(error)); } putchar(')'); } @@ -608,12 +610,12 @@ show_dpif(struct dpif *dpif) error = netdev_open(dpif_port.name, dpif_port.type, &netdev); if (error) { - printf(", open failed (%s)", strerror(error)); + printf(", open failed (%s)", ovs_strerror(error)); continue; } error = netdev_get_stats(netdev, &s); if (error) { - printf(", could not retrieve stats (%s)", strerror(error)); + printf(", could not retrieve stats (%s)", ovs_strerror(error)); continue; } @@ -761,7 +763,7 @@ dpctl_dump_flows(int argc, char *argv[]) &mask, &mask_len, &actions, &actions_len, &stats)) { ds_clear(&ds); - odp_flow_format(key, key_len, mask, mask_len, &ds); + odp_flow_format(key, key_len, mask, mask_len, &ds, verbosity); ds_put_cstr(&ds, ", "); dpif_flow_stats_format(stats, &ds); @@ -997,7 +999,8 @@ sort_output_actions(struct nlattr *actions, size_t length) } if (first_output) { uint8_t *end = (uint8_t *) actions + length; - sort_output_actions__(first_output, (struct nlattr *) end); + sort_output_actions__(first_output, + ALIGNED_CAST(struct nlattr *, end)); } } @@ -1049,7 +1052,7 @@ dpctl_normalize_actions(int argc, char *argv[]) "odp_flow_key_from_string"); ds_clear(&s); - odp_flow_format(keybuf.data, keybuf.size, NULL, 0, &s); + odp_flow_format(keybuf.data, keybuf.size, NULL, 0, &s, verbosity); printf("input flow: %s\n", ds_cstr(&s)); run(odp_flow_key_to_flow(keybuf.data, keybuf.size, &flow), @@ -1146,3 +1149,8 @@ static const struct command all_commands[] = { { NULL, 0, 0, NULL }, }; + +static const struct command *get_all_commands(void) +{ + return all_commands; +}