Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions nshlib/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions nshlib/nsh.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions nshlib/nsh_command.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>"),
Expand Down
47 changes: 47 additions & 0 deletions nshlib/nsh_netcmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
****************************************************************************/
Expand Down
Loading