int n, m, o;
if (elem == 1) {
+ printf(" vlan [show|enable|show|add|del|assign|revoke] \n");
+ return;
+ }
+ if (strncmp(argv[1], "enable", 6) == 0) {
+ password();
+ printError(gs105e_vlanEnable());
return;
}
+
+ if (settings.vlanType != 4) {
+ printf("Type vlan enable once to configure vlan\n");
+ return;
+ }
+
if (strncmp(argv[1], "show", 4) == 0) {
struct vlan * vl = settings.vlans;
while (vl != NULL) {
printf("%u\t", vl->id);
for (n = 0; n < 5; n++)
- printf("%s\t", vl->members & (0x80 >> n) ? (vl->tag & (0x80 >> n) ? "\033[93mT\033[0m" : "\033[92mU\033[0m") : "\033[91m-\033[0m", (unsigned int) vl->members);
+ printf("%s\t", vl->members & (0x80 >> n) ? (vl->tag & (0x80 >> n) ? "\033[93mT\033[0m" : "\033[92mU\033[0m") : "\033[91m-\033[0m" /*, (unsigned int) vl->members*/);
printf("\n");
vl = vl->next;
}
m = atoi(argv[3]);
- if (m < 1 | m > 5) {
+ if ((m < 1) | (m > 5)) {
printf("Invalid Port ID\n");
return;
}
-
+ o = m;
m = (0x80 >> ((m & 0xFF) - 1)) | (int)vl->members;
-
+ printf("%i %i\n", (int)vl->tag, (unsigned int)(~((unsigned char)m)));
if (strncmp(argv[4], "T", 1) == 0) {
- o = (int)vl->tag | m;
+ o = (int)vl->tag | (0x80 >> ((o & 0xFF) - 1));
}else if (strncmp(argv[4], "U", 1) == 0) {
- o = (int)vl->tag &(~((char)m));
+ o = (int)vl->tag &(~((0x80 >> ((o & 0xFF) - 1))));
}
password();
printError(gs105e_setVlanMembers(n, m, o));
m = atoi(argv[3]);
- if (m < 1 | m > 5) {
+ if ((m < 1) | (m > 5)) {
printf("Invalid Port ID\n");
return;
}