1# Copyright (c) 2016 Intel Corporation.
2# Copyright (c) 2021 Nordic Semiconductor
3# Copyright (c) 2023 Arm Limited (or its affiliates). All rights reserved.
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig NET_SHELL
7	bool "Network shell utilities"
8	select SHELL
9	select NET_IPV4_IGMP if NET_NATIVE_IPV4
10	select REQUIRES_FLOAT_PRINTF
11	help
12	  Activate shell module that provides network commands like
13	  ping to the console.
14
15if NET_SHELL
16
17config NET_SHELL_SHOW_DISABLED_COMMANDS
18	bool "Show disabled command information"
19	default y
20	help
21	  By default all the network shell commands are there and the
22	  command itself will print out that it is disabled and how to
23	  enable it. If you do not need this and only want to see the
24	  commands that you can actively use, then you can save a little
25	  bit of flash by not showing commands that cannot be used with
26	  current configuration.
27
28config NET_SHELL_ETHERNET_SUPPORTED
29	bool "Ethernet related configuration"
30	default y
31	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_L2_ETHERNET
32
33config NET_SHELL_CAPTURE_SUPPORTED
34	bool "Packet capture configuration"
35	default y
36	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_CAPTURE
37
38config NET_SHELL_DHCPV4_SUPPORTED
39	bool "DHCPv4 start / stop"
40	default y
41	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_DHCPV4_SERVER || NET_DHCPV4
42
43config NET_SHELL_DHCPV6_SUPPORTED
44	bool "DHCPv6 start / stop"
45	default y
46	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_DHCPV6
47
48config NET_SHELL_DNS_RESOLVER_SUPPORTED
49	bool "DNS resolver"
50	default y
51	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || DNS_RESOLVER
52
53config NET_SHELL_EVENT_MONITOR_SUPPORTED
54	bool "Network management event monitoring configuration"
55	default y
56	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_MGMT_EVENT_MONITOR
57
58config NET_SHELL_GPTP_SUPPORTED
59	bool "gPTP monitoring"
60	default y
61	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_GPTP
62
63config NET_SHELL_HTTP_SERVER_SUPPORTED
64	bool "HTTP server status"
65	default y
66	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || HTTP_SERVER
67
68config NET_SHELL_CONNECTION_MANAGER_SUPPORTED
69	bool "Connection manager status"
70	default y
71	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_CONNECTION_MANAGER
72
73config NET_SHELL_IPV4_SUPPORTED
74	bool "IPv4 config"
75	default y
76	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || (NET_NATIVE_IPV4 && NET_IPV4)
77
78config NET_SHELL_IPV6_SUPPORTED
79	bool "IPv6 config"
80	default y
81	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || (NET_NATIVE_IPV6 && NET_IPV6)
82
83config NET_SHELL_IP_SUPPORTED
84	bool "Generic IP utilities"
85	default y
86	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_IP
87
88config NET_SHELL_PKT_ALLOC_SUPPORTED
89	bool "Packet allocation monitoring"
90	default y
91	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_DEBUG_NET_PKT_ALLOC
92
93config NET_SHELL_PKT_FILTER_SUPPORTED
94	bool "Network packet filter related configuration"
95	default y
96	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_PKT_FILTER
97
98config NET_SHELL_PMTU_SUPPORTED
99	bool "PMTU config"
100	default y
101	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_PMTU
102
103config NET_SHELL_PPP_SUPPORTED
104	bool "PPP config"
105	default y
106	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_L2_PPP
107
108config NET_SHELL_POWER_MANAGEMENT_SUPPORTED
109	bool "Network power management resume / suspend"
110	default y
111	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_POWER_MANAGEMENT
112
113config NET_SHELL_ROUTE_SUPPORTED
114	bool "IP routing config"
115	default y
116	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || (NET_ROUTE && NET_NATIVE)
117
118config NET_SHELL_SOCKETS_SERVICE_SUPPORTED
119	bool "Socket service status"
120	default y
121	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_SOCKETS_SERVICE
122
123config NET_SHELL_STATISTICS_SUPPORTED
124	bool "Network statistics monitoring"
125	default y
126	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_STATISTICS
127
128config NET_SHELL_TCP_SUPPORTED
129	bool "Send / receive TCP data"
130	default y
131	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || (NET_NATIVE_TCP && NET_TCP)
132
133config NET_SHELL_UDP_SUPPORTED
134	bool "Send / receive UDP data"
135	default y
136	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || (NET_NATIVE_UDP && NET_UDP)
137
138config NET_SHELL_VIRTUAL_SUPPORTED
139	bool "Virtual network interface management"
140	default y
141	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_L2_VIRTUAL
142
143config NET_SHELL_VLAN_SUPPORTED
144	bool "Virtual LAN config"
145	default y
146	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || NET_VLAN
147
148config NET_SHELL_WEBSOCKET_SUPPORTED
149	bool "Websocket client status"
150	default y
151	depends on NET_SHELL_SHOW_DISABLED_COMMANDS || WEBSOCKET_CLIENT
152
153config NET_SHELL_DYN_CMD_COMPLETION
154	bool "Network shell dynamic command completion"
155	default y
156	help
157	  Enable various net-shell command to support dynamic command
158	  completion. This means that for example the nbr command can
159	  automatically complete the neighboring IPv6 address and user
160	  does not need to type it manually.
161	  Please note that this uses more memory in order to save the
162	  dynamic command strings. For example for nbr command the
163	  increase is 320 bytes (8 neighbors * 40 bytes for IPv6 address
164	  length) by default. Other dynamic completion commands in
165	  net-shell require also some smaller amount of memory.
166
167config NET_SHELL_REQUIRE_TX_THREAD
168	bool
169	depends on SHELL_BACKEND_TELNET || SHELL_BACKEND_MQTT
170	default y if NET_ARP
171	help
172	  Hidden symbol indicating that network shell requires separate TX
173	  thread due to possible deadlocks during shell/net stack operations.
174
175endif # NET_SHELL
176