1# Copyright (c) 2018 Intel Corporation.
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig NET_L2_ETHERNET
5	bool "Ethernet support"
6	help
7	  Add support for Ethernet, enabling selecting relevant hardware drivers.
8	  If NET_SLIP_TAP is selected, NET_L2_ETHERNET will enable to fully
9	  simulate Ethernet through SLIP.
10
11if NET_L2_ETHERNET
12
13module = NET_L2_ETHERNET
14module-dep = NET_LOG
15module-str = Log level for Ethernet L2 layer
16module-help = Enables Ethernet L2 to output debug messages.
17source "subsys/net/Kconfig.template.log_config.net"
18
19config NET_L2_ETHERNET_MGMT
20	bool "Ethernet network management interface"
21	select NET_MGMT
22	select NET_MGMT_EVENT
23	help
24	  Enable support net_mgmt Ethernet interface which can be used to
25	  configure at run-time Ethernet drivers and L2 settings.
26
27config NET_VLAN
28	bool "Virtual LAN support"
29	select NET_L2_VIRTUAL
30	help
31	  Enables virtual lan (VLAN) support for Ethernet.
32
33config NET_VLAN_COUNT
34	int "Max VLAN tags supported in the system"
35	default 1
36	range 1 $(UINT8_MAX)
37	depends on NET_VLAN
38	help
39	  How many VLAN tags can be configured.
40
41config NET_VLAN_TXRX_DEBUG
42	bool "Debug received and sent packets in VLAN"
43	depends on NET_L2_ETHERNET_LOG_LEVEL_DBG && NET_VLAN
44	help
45	  Enables printing of received and sent network packets.
46	  This can produce lot of output so it is disabled by default.
47
48config NET_ARP
49	bool "ARP"
50	default y
51	depends on NET_IPV4
52	help
53	  Enable ARP support. This is necessary on hardware that requires it to
54	  get IPv4 working (like Ethernet devices).
55
56config NET_ARP_TABLE_SIZE
57	int "Number of entries in ARP table."
58	depends on NET_ARP
59	default 2
60	help
61	  Each entry in the ARP table consumes 48 bytes of memory.
62
63config NET_ARP_GRATUITOUS
64	bool "Support gratuitous ARP requests/replies."
65	depends on NET_ARP
66	default y
67	help
68	  Gratuitous in this case means a ARP request or reply that is not
69	  normally needed according to the ARP specification but could be used
70	  in some cases. A gratuitous ARP request is a ARP request packet where
71	  the source and destination IP are both set to the IP of the machine
72	  issuing the packet and the destination MAC is the broadcast address
73	  ff:ff:ff:ff:ff:ff. Ordinarily, no reply packet will occur.
74	  A gratuitous ARP reply is a reply to which no request has been made.
75
76config NET_ARP_GRATUITOUS_TRANSMISSION
77	bool "Transmit gratuitous ARP requests"
78	depends on NET_ARP_GRATUITOUS
79	depends on NET_MGMT_EVENT
80	depends on NET_MGMT_EVENT_INFO
81	help
82	  Transmit gratuitous ARP requests, as defined in RFC 5227.
83
84config NET_ARP_GRATUITOUS_INTERVAL
85	int "Time interval (in seconds) between sending gratuitous ARP requests"
86	depends on NET_ARP_GRATUITOUS_TRANSMISSION
87	default 60
88
89if NET_ARP
90module = NET_ARP
91module-dep = NET_LOG
92module-str = Log level for IPv4 ARP
93module-help = Enables core ARP code to output debug messages.
94source "subsys/net/Kconfig.template.log_config.net"
95endif # NET_ARP
96
97source "subsys/net/l2/ethernet/gptp/Kconfig"
98source "subsys/net/l2/ethernet/lldp/Kconfig"
99
100config NET_ETHERNET_BRIDGE
101	bool "Ethernet Bridging support"
102	select NET_PROMISCUOUS_MODE
103	help
104	  Enables Ethernet bridging where packets can be transparently
105	  forwarded across interfaces registered to a bridge.
106
107if NET_ETHERNET_BRIDGE
108module = NET_ETHERNET_BRIDGE
109module-dep = NET_LOG
110module-str = Log level for Ethernet Bridging
111module-help = Enables Ethernet Bridge code to output debug messages.
112source "subsys/net/Kconfig.template.log_config.net"
113endif # NET_ETHERNET_BRIDGE
114
115config NET_ETHERNET_BRIDGE_SHELL
116	bool "Ethernet Bridging management shell"
117	depends on NET_ETHERNET_BRIDGE
118	select SHELL
119	help
120	  Enables shell utility to manage bridge configuration interactively.
121
122config NET_ETHERNET_BRIDGE_DEFAULT
123	bool "Declare one bridge instance for shell usage"
124	depends on NET_ETHERNET_BRIDGE_SHELL
125	default y
126	help
127	  If the bridge shell is the sole user of the bridge code then
128	  it needs at least one bridge instance to be useful.
129	  Say y if this is the case. If you only want to inspect
130	  existing bridge instances then say n.
131
132config NET_ETHERNET_FORWARD_UNRECOGNISED_ETHERTYPE
133	bool "Forward unrecognized EtherType frames further into net stack"
134	default y if NET_SOCKETS_PACKET
135	help
136	  When enabled, the Ethernet L2 will forward even those frames for which
137	  it does not recognize the EtherType in the header. By default, such
138	  frames are dropped at the L2 processing.
139
140endif # NET_L2_ETHERNET
141