static void explain(void)
{
- fprintf(stderr, "Usage: ... mqprio [num_tc NUMBER] [map P0 P1 ...]\n");
- fprintf(stderr, " [queues count1@offset1 count2@offset2 ...] ");
- fprintf(stderr, "[hw 1|0]\n");
- fprintf(stderr, " [mode dcb|channel]\n");
- fprintf(stderr, " [shaper bw_rlimit SHAPER_PARAMS]\n"
+ fprintf(stderr,
+ "Usage: ... mqprio [num_tc NUMBER] [map P0 P1 ...]\n"
+ " [queues count1@offset1 count2@offset2 ...] "
+ "[hw 1|0]\n"
+ " [mode dcb|channel]\n"
+ " [shaper bw_rlimit SHAPER_PARAMS]\n"
"Where: SHAPER_PARAMS := { min_rate MIN_RATE1 MIN_RATE2 ...|\n"
- " max_rate MAX_RATE1 MAX_RATE2 ... }\n");
+ " max_rate MAX_RATE1 MAX_RATE2 ... }\n");
}
static int mqprio_parse_opt(struct qdisc_util *qu, int argc,
explain();
return -1;
} else {
- fprintf(stderr, "Unknown argument\n");
- return -1;
+ invarg("unknown argument", *argv);
}
argc--; argv++;
}
- tail = addattr_nest_compat(n, 1024, TCA_OPTIONS, &opt, sizeof(opt));
+ tail = NLMSG_TAIL(n);
+ addattr_l(n, 1024, TCA_OPTIONS, &opt, sizeof(opt));
if (flags & TC_MQPRIO_F_MODE)
addattr_l(n, 1024, TCA_MQPRIO_MODE,
addattr_nest_end(n, start);
}
- addattr_nest_compat_end(n, tail);
+ tail->rta_len = (void *)NLMSG_TAIL(n) - (void *)tail;
return 0;
}