*
* 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 {
}
}
- 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;
}
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;
}
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;
}
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;
}
{
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;
}
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;
}
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;
}
}
}
- 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;
}
}
}
- 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;
}
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)) {
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);
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);