5 bool do_qos_mode (int nb, const char **com, 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(com[0], "port") == 0) {
25 } else if (strcasecmp(com[0], "802.1p") == 0) {
28 printf("Unknown QOS mode\n");
33 i = ngadmin_setQOSMode(nga, s);
42 bool do_qos_set (int nb, const char **com, struct ngadmin *nga)
45 const struct swi_attr *sa;
47 char d = PRIO_UNSPEC, *ports = NULL;
51 printf("Usage: qos set (all <prio0>)|(<port1> <prio1> [<port2> <prio2> ...])\n");
56 sa = ngadmin_getCurrentSwitch(nga);
58 printf("must be logged\n");
63 ports = malloc(sa->ports * sizeof(char));
65 if (strcmp(com[0], "all") == 0) {
66 d = parsePrio(com[1]);
71 for (i = 0; i < sa->ports; i++)
74 for (i = 0; i < nb; i += 2) {
75 p = strtol(com[i], NULL, 0);
76 if (p < 1 || p > sa->ports)
78 ports[p - 1] = parsePrio(com[i + 1]);
81 i = ngadmin_setQOSValues(nga, ports);
91 bool do_qos_show (int nb UNUSED, const char **com UNUSED, struct ngadmin *nga)
93 int i, s = 0, ret = true;
94 const struct swi_attr *sa;
98 sa = ngadmin_getCurrentSwitch(nga);
100 printf("must be logged\n");
105 i = ngadmin_getQOSMode(nga, &s);
112 printf("QoS mode: ");
120 printf("port based\n");
124 printf("unknown (%i)\n", s);
128 ports = malloc(sa->ports * sizeof(char));
129 i = ngadmin_getQOSValues(nga, ports);
136 for (i = 0; i < sa->ports; i++)
137 printf("port %i: %s\n", i + 1, prio[(int)ports[i]]);