5 int do_qos_mode (int argc, const char **argv, struct ngadmin *nga)
8 const struct swi_attr *sa;
12 printf("usage: qos mode port|802.1p\n");
16 sa = ngadmin_getCurrentSwitch(nga);
18 printf("must be logged\n");
23 if (strcasecmp(argv[0], "port") == 0) {
25 } else if (strcasecmp(argv[0], "802.1p") == 0) {
28 printf("Unknown QOS mode\n");
33 i = ngadmin_setQOSMode(nga, s);
42 int do_qos_set (int argc, const char **argv, struct ngadmin *nga)
45 const struct swi_attr *sa;
46 char d = PRIO_UNSPEC, *ports = NULL;
50 printf("usage: qos set (all <prio0>)|(<port1> <prio1> [<port2> <prio2> ...])\n");
55 sa = ngadmin_getCurrentSwitch(nga);
57 printf("must be logged\n");
62 ports = malloc(sa->ports * sizeof(char));
65 if (strcmp(argv[0], "all") == 0) {
66 d = parsePrio(argv[1]);
72 for (i = 0; i < sa->ports; i++)
75 /* read and apply port specifics */
76 for (i = 0; i < argc; i += 2) {
77 p = strtol(argv[i], NULL, 0);
78 if (p < 1 || p > sa->ports)
80 ports[p - 1] = parsePrio(argv[i + 1]);
83 /* send the new configuration to the switch */
84 i = ngadmin_setQOSValues(nga, ports);
94 int do_qos_show (int argc, const char **argv UNUSED, struct ngadmin *nga)
96 int i, s = 0, ret = 0;
97 const struct swi_attr *sa;
102 printf("this command takes no argument\n");
107 sa = ngadmin_getCurrentSwitch(nga);
109 printf("must be logged\n");
114 i = ngadmin_getQOSMode(nga, &s);
121 printf("QoS mode: ");
129 printf("port based\n");
133 printf("unknown (%i)\n", s);
137 ports = malloc(sa->ports * sizeof(char));
138 i = ngadmin_getQOSValues(nga, ports);
145 for (i = 0; i < sa->ports; i++)
146 printf("port %i: %s\n", i + 1, prio[(int)ports[i]]);