zephyr/subsys/net/ip
Jukka Rissanen ca8b00a3cc net: if: Make interface IP configuration more flexible
Instead of always allocating both IPv6 and IPv4 address information
to every network interface, allow more fine grained address
configuration. So it is possible to have IPv6 or IPv4 only network
interfaces.

This commit introduces two new config options:
CONFIG_NET_IF_MAX_IPV4_COUNT and CONFIG_NET_IF_MAX_IPV6_COUNT
which tell how many IP address information structs are allocated
statically. At runtime when network interface is setup, it is then
possible to attach this IP address info struct to a specific
network interface. This can save considerable amount of memory
as the IP address information struct can be quite large (depends
on how many IP addresses user configures in the system).

Note that the value of CONFIG_NET_IF_MAX_IPV4_COUNT and
CONFIG_NET_IF_MAX_IPV6_COUNT should reflect the estimated number of
network interfaces in the system. So if if CONFIG_NET_IF_MAX_IPV6_COUNT
is set to 1 and there are two network interfaces that need IPv6
addresses, then the system will not be able to setup IPv6 addresses to
the second network interface in this case. This scenario might be
just fine if the second network interface is IPv4 only. The net_if.c
will print a warning during startup if mismatch about the counts and
the actual number of network interface is detected.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2018-03-27 10:06:54 -04:00
..
l2 net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
6lo_private.h net/net_pkt: Fully separate struct net_pkt from struct net_buf 2017-04-21 14:19:50 +03:00
6lo.c net: 6lo: Do not try compressing IPHC header if not set 2018-03-02 07:11:46 +01:00
6lo.h net/net_pkt: Fully separate struct net_pkt from struct net_buf 2017-04-21 14:19:50 +03:00
CMakeLists.txt subsys/net/ip: Clear up content in CMakeLists.txt 2017-12-11 09:34:16 -05:00
connection.c net: Support network packet checksum calc offloading 2018-03-23 08:37:01 +02:00
connection.h net: convert to using newly introduced integer sized types 2017-04-21 09:30:38 -05:00
dhcpv4.c net: if: Separate IP address configuration from net_if 2018-03-27 10:06:54 -04:00
dhcpv4.h
icmpv4.c net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
icmpv4.h net: icmpv4: Calculate start of ICMPv4 echo-req properly 2017-08-07 21:32:03 -04:00
icmpv6.c net: icmpv6: Drop malformed ICMPv6 echo request 2018-03-16 14:03:49 +02:00
icmpv6.h net: icmp: Remove NET_ICMP_HDR() macro and direct access to net_buf 2017-07-07 15:24:00 +03:00
ipv4.c net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
ipv4.h net: convert to using newly introduced integer sized types 2017-04-21 09:30:38 -05:00
ipv6.c net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
ipv6.h net: ipv6: Remove unused net_ipv6_get_nbr_by_index() 2018-03-02 07:11:46 +01:00
Kconfig kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
Kconfig.debug kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
Kconfig.ipv4 net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
Kconfig.ipv6 net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
Kconfig.mgmt net/mgmt: Ensure that event order is kept as FIFO 2018-03-26 15:07:00 +03:00
Kconfig.rpl kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
Kconfig.stack net: ip: Increase RX stack size 2017-04-07 13:33:55 +03:00
Kconfig.stats kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
nbr.c net: nbr: Use the real size of the neighbor pool 2017-08-14 11:06:34 +03:00
nbr.h net: nbr: Use the real size of the neighbor pool 2017-08-14 11:06:34 +03:00
net_context.c net: context: fix semaphore for offload in in net_context_put() 2018-03-03 20:40:25 +01:00
net_core.c net: if: Separate IP address configuration from net_if 2018-03-27 10:06:54 -04:00
net_if.c net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
net_mgmt.c net/mgmt: Remove spurious k_sem_give() 2018-03-26 15:07:00 +03:00
net_pkt.c net: Exit early on zero length packet append 2018-03-02 07:33:26 +01:00
net_private.h net: Introduce net_if_carrier_down 2018-02-19 14:46:33 +02:00
net_shell.c net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
net_shell.h net: shell: Remove net_shell_init() as it is not needed 2017-08-01 14:45:06 +03:00
net_stats.c net: stats: IPv6 multicast listener daemon stats not printed 2017-05-17 13:55:21 +03:00
net_stats.h net: stats: Add UDP checksum stats update function 2017-05-17 13:55:21 +03:00
route.c net: route: Do not dereference NULL pointer while getting next hop 2018-03-02 07:11:46 +01:00
route.h net: convert to using newly introduced integer sized types 2017-04-21 09:30:38 -05:00
rpl-mrhof.c net: Fix indentation issues 2017-08-09 16:01:28 +03:00
rpl-of0.c net: Fix indentation issues 2017-08-09 16:01:28 +03:00
rpl.c net: if: Make interface IP configuration more flexible 2018-03-27 10:06:54 -04:00
rpl.h net: rpl: Do not do neighbor discovery for RPL network 2018-02-02 16:50:07 +02:00
tcp.c net: if: Separate IP address configuration from net_if 2018-03-27 10:06:54 -04:00
tcp.h net: tcp: Provide local address in TCP reset message preparation 2018-02-13 13:37:20 +02:00
trickle.c net: trickle: Do clock wrap check properly 2017-08-07 21:32:03 -04:00
udp_internal.h net: udp: Remove NET_UDP_HDR() macro and direct access to net_buf 2017-07-07 15:24:00 +03:00
udp.c net: udp: Remove NET_UDP_HDR() macro and direct access to net_buf 2017-07-07 15:24:00 +03:00
utils.c net: Create helper to convert MAC strings to array of bytes 2018-03-18 20:47:36 -04:00