vconfig: Support setting default PCP when creating VLAN

Now we allow setting a default PCP when creating VLAN like:
`vconfig add iface-name vlan-id [pcp]`
e.g.
`vconfig add eth0 10` will create eth0.10 with VID=10 and no PCP(0)
`vconfig add eth0 10 3` will create eth0.10 with VID=10 and PCP=3

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
This commit is contained in:
Zhe Weng 2025-02-07 14:46:46 +08:00 committed by Xiang Xiao
parent ae7c168bf6
commit 10eae1dc6b
3 changed files with 12 additions and 5 deletions

View file

@ -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

View file

@ -287,8 +287,8 @@ static const struct cmdmap_s g_cmdmap[] =
"[dns <dns-address>] [hw <hw-mac>]"),
# 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, "<interface>"),

View file

@ -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;