mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
nshlib: Add vconfig command
Add vconfig command Signed-off-by: gaohedong <gaohedong@xiaomi.com>
This commit is contained in:
parent
9c4103d496
commit
ae7c168bf6
4 changed files with 58 additions and 0 deletions
|
|
@ -423,6 +423,10 @@ config NSH_DISABLE_IFCONFIG
|
|||
bool "Disable ifconfig"
|
||||
default DEFAULT_SMALL || !FS_PROCFS || FS_PROCFS_EXCLUDE_NET
|
||||
|
||||
config NSH_DISABLE_VCONFIG
|
||||
bool "Disable vconfig"
|
||||
default DEFAULT_SMALL || !FS_PROCFS || FS_PROCFS_EXCLUDE_NET
|
||||
|
||||
config NSH_DISABLE_IFUPDOWN
|
||||
bool "Disable ifup/down"
|
||||
default DEFAULT_SMALL || !FS_PROCFS || FS_PROCFS_EXCLUDE_NET
|
||||
|
|
|
|||
|
|
@ -1093,6 +1093,9 @@ int cmd_irqinfo(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv);
|
|||
# ifndef CONFIG_NSH_DISABLE_IFCONFIG
|
||||
int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv);
|
||||
# endif
|
||||
# ifndef CONFIG_NSH_DISABLE_VCONFIG
|
||||
int cmd_vconfig(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv);
|
||||
# endif
|
||||
# ifndef CONFIG_NSH_DISABLE_IFUPDOWN
|
||||
int cmd_ifup(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv);
|
||||
int cmd_ifdown(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv);
|
||||
|
|
|
|||
|
|
@ -286,6 +286,10 @@ static const struct cmdmap_s g_cmdmap[] =
|
|||
"[dr|gw|gateway <dr-address>] [netmask <net-mask>|prefixlen <len>] "
|
||||
"[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]"),
|
||||
# endif
|
||||
# ifndef CONFIG_NSH_DISABLE_IFUPDOWN
|
||||
CMD_MAP("ifdown", cmd_ifdown, 2, 2, "<interface>"),
|
||||
CMD_MAP("ifup", cmd_ifup, 2, 2, "<interface>"),
|
||||
|
|
|
|||
|
|
@ -1097,6 +1097,53 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
|||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_vconfig
|
||||
****************************************************************************/
|
||||
|
||||
#if defined(CONFIG_NET_VLAN) && !defined(CONFIG_NSH_DISABLE_VCONFIG)
|
||||
int cmd_vconfig(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
|
||||
{
|
||||
DEBUGASSERT(argc >= 2);
|
||||
|
||||
if (!strcmp(argv[1], "add"))
|
||||
{
|
||||
if (argc != 4)
|
||||
{
|
||||
nsh_error(vtbl, g_fmtargrequired, argv[0]);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
if (netlib_add_vlan(argv[2], atoi(argv[3])) < 0)
|
||||
{
|
||||
perror("Failed to add VLAN");
|
||||
return ERROR;
|
||||
}
|
||||
}
|
||||
else if (!strcmp(argv[1], "rem") || !strcmp(argv[1], "del"))
|
||||
{
|
||||
if (argc != 3)
|
||||
{
|
||||
nsh_error(vtbl, g_fmtargrequired, argv[0]);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
if (netlib_del_vlan(argv[2]) < 0)
|
||||
{
|
||||
perror("Failed to remove VLAN");
|
||||
return ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
nsh_error(vtbl, g_fmtarginvalid, argv[1]);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cmd_nslookup
|
||||
****************************************************************************/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue