diff --git a/include/netutils/netlib.h b/include/netutils/netlib.h index a751ed60b..5be9747b2 100644 --- a/include/netutils/netlib.h +++ b/include/netutils/netlib.h @@ -330,7 +330,7 @@ int netlib_setessid(FAR const char *ifname, FAR const char *essid); #endif #ifdef CONFIG_NET_VLAN -int netlib_add_vlan(FAR const char *ifname, int vlanid); +int netlib_add_vlan(FAR const char *ifname, int vlanid, int prio); int netlib_del_vlan(FAR const char *vlanif); #endif diff --git a/nshlib/nsh_command.c b/nshlib/nsh_command.c index 1474b824c..03a14ace9 100644 --- a/nshlib/nsh_command.c +++ b/nshlib/nsh_command.c @@ -287,8 +287,8 @@ static const struct cmdmap_s g_cmdmap[] = "[dns ] [hw ]"), # endif # if defined(CONFIG_NET_VLAN) && !defined(CONFIG_NSH_DISABLE_VCONFIG) - CMD_MAP("vconfig", cmd_vconfig, 3, 4, - "[add iface-name vlan-id]|[rem vlan-name]"), + CMD_MAP("vconfig", cmd_vconfig, 3, 5, + "[add iface-name vlan-id [pcp]]|[rem vlan-name]"), # endif # ifndef CONFIG_NSH_DISABLE_IFUPDOWN CMD_MAP("ifdown", cmd_ifdown, 2, 2, ""), diff --git a/nshlib/nsh_netcmds.c b/nshlib/nsh_netcmds.c index 233231a95..6010e1084 100644 --- a/nshlib/nsh_netcmds.c +++ b/nshlib/nsh_netcmds.c @@ -1108,13 +1108,20 @@ int cmd_vconfig(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv) if (!strcmp(argv[1], "add")) { - if (argc != 4) + int prio = 0; + + if (argc != 4 && argc != 5) { nsh_error(vtbl, g_fmtargrequired, argv[0]); return ERROR; } - if (netlib_add_vlan(argv[2], atoi(argv[3])) < 0) + if (argc == 5) + { + prio = atoi(argv[4]); + } + + if (netlib_add_vlan(argv[2], atoi(argv[3]), prio) < 0) { perror("Failed to add VLAN"); return ERROR;