Make opt_dpif_open() to export the next argument to be parsed in opt_dpif_open(). It will be useful for the following patches.
Signed-off-by: Yi-Hung Wei <[email protected]> --- lib/dpctl.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/dpctl.c b/lib/dpctl.c index c228dc10c2e3..b47273796511 100644 --- a/lib/dpctl.c +++ b/lib/dpctl.c @@ -215,14 +215,23 @@ dp_arg_exists(int argc, const char *argv[]) * * The datapath name is not a mandatory parameter for this command. If it is * not specified, we retrieve it from the current setup, assuming only one - * exists. On success stores the opened dpif in '*dpifp'. */ + * exists. On success stores the opened dpif in '*dpifp', and the next + * arugment to be parsed in '*indexp'. */ static int opt_dpif_open(int argc, const char *argv[], struct dpctl_params *dpctl_p, - uint8_t max_args, struct dpif **dpifp) + int max_args, struct dpif **dpifp, int *indexp) { char *dpname; + + if (indexp) { + *indexp = 1; + } + if (dp_arg_exists(argc, argv)) { dpname = xstrdup(argv[1]); + if (indexp) { + *indexp = 2; + } } else if (argc != max_args) { dpname = get_one_dp(dpctl_p); } else { @@ -897,7 +906,7 @@ dpctl_dump_flows(int argc, const char *argv[], struct dpctl_params *dpctl_p) } } - error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (error) { goto out_free; } @@ -1024,7 +1033,7 @@ dpctl_put_flow(int argc, const char *argv[], enum dpif_flow_put_flags flags, struct simap port_names; int n, error; - error = opt_dpif_open(argc, argv, dpctl_p, 4, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 4, &dpif, NULL); if (error) { return error; } @@ -1126,7 +1135,7 @@ dpctl_get_flow(int argc, const char *argv[], struct dpctl_params *dpctl_p) struct ds ds; int n, error; - error = opt_dpif_open(argc, argv, dpctl_p, 3, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 3, &dpif, NULL); if (error) { return error; } @@ -1175,7 +1184,7 @@ dpctl_del_flow(int argc, const char *argv[], struct dpctl_params *dpctl_p) struct simap port_names; int n, error; - error = opt_dpif_open(argc, argv, dpctl_p, 3, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 3, &dpif, NULL); if (error) { return error; } @@ -1244,7 +1253,7 @@ dpctl_del_flows(int argc, const char *argv[], struct dpctl_params *dpctl_p) { struct dpif *dpif; - int error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + int error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (error) { return error; } @@ -1305,7 +1314,7 @@ dpctl_dump_conntrack(int argc, const char *argv[], argc--; } - error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (error) { return error; } @@ -1369,7 +1378,7 @@ dpctl_flush_conntrack(int argc, const char *argv[], goto error; } - error = opt_dpif_open(argc, argv, dpctl_p, 4, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 4, &dpif, NULL); if (error) { return error; } @@ -1420,7 +1429,7 @@ dpctl_ct_stats_show(int argc, const char *argv[], } } - error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (error) { return error; } @@ -1545,7 +1554,7 @@ dpctl_ct_bkts(int argc, const char *argv[], } } - error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (error) { return error; } @@ -1625,7 +1634,7 @@ dpctl_ct_set_maxconns(int argc, const char *argv[], struct dpctl_params *dpctl_p) { struct dpif *dpif; - int error = opt_dpif_open(argc, argv, dpctl_p, 3, &dpif); + int error = opt_dpif_open(argc, argv, dpctl_p, 3, &dpif, NULL); if (!error) { uint32_t maxconns; if (ovs_scan(argv[argc - 1], "%"SCNu32, &maxconns)) { @@ -1651,7 +1660,7 @@ dpctl_ct_get_maxconns(int argc, const char *argv[], struct dpctl_params *dpctl_p) { struct dpif *dpif; - int error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + int error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (!error) { uint32_t maxconns; error = ct_dpif_get_maxconns(dpif, &maxconns); @@ -1672,7 +1681,7 @@ dpctl_ct_get_nconns(int argc, const char *argv[], struct dpctl_params *dpctl_p) { struct dpif *dpif; - int error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif); + int error = opt_dpif_open(argc, argv, dpctl_p, 2, &dpif, NULL); if (!error) { uint32_t nconns; error = ct_dpif_get_nconns(dpif, &nconns); -- 2.7.4 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
