Commit graph

178 commits

Author SHA1 Message Date
Angus Gratton
04a2cefb26 lwip: Enable IPV6_ONLY option for UDP sockets (BSD & netconn)
* setsockopt(s, IPV6_ONLY, &one, sizeof(int)) will disable IPV6-only
  mode. Incoming/outgoing IPV4 packets are dropped.

* Otherwise, sockets bound to IPV6_ANY_ADDR can receive unicast packets
  for IPV4 or IPV6.

* sendto() a IPV6-mapped-IPV4 address on a UDP socket works correctly
  (not supported for RAW or TCP sockets.)

* getaddrinfo() option AI_V4MAPPED is implemented.

As well as extending support to TCP & RAW, there is some potential improvement
to dropping incoming packets - the drop happens a bit late in the process and
there is no "ICMP port unreachable" response sent.
2017-10-02 10:50:27 +11:00
Angus Gratton
961180617e lwip: Add IPV6 multicast group membership socket options
As described in RFC2133: IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS,
IPV6_MULTICAST_LOOP, IPV6_MULTICAST_LOOP, IPV6_DROP_MEMBERSHIP.
2017-10-02 10:50:27 +11:00
Ivan Grokhotkov
b7a79ab67e Merge branch 'bugfix/bind_dhcp_server_udp_to_ip_of_ap' into 'master'
Fix the bug that if one device is in station+softap mode, other device can not get IP address after connecting to the softap.

See merge request !1314
2017-09-26 16:06:55 +08:00
Liu Zhi Fu
05b0d567e5 example: add iperf example
Support iperf
2017-09-26 09:19:01 +08:00
XiaXiaotian
20064978ba Fix the bug that if one device is in station+softap mode, other device can not
get IP address after connecting to the softap.

    Now the default netif is station in station+softap mode. The UDP pcb of
DHCP server is binded to IP 0.0.0.0. When other device connects to softap, the
DHCP offer will be sent by softap.But because the destination IP of DHCP offer
is broadcast IP and the source IP of it is 0.0.0.0, it will be sent from default
netif, that is station interface. Other device can not receive the DHCP offer
sent from station interface. As a result, other device can not get IP address.
The resolution is that bind UDP pcb to the IP address of softap. So, the source
IP of DHCP offer is that of softap. DHCP offer can be sent from softap interface
by source IP route method.
2017-09-23 20:18:50 +08:00
zhangyanjiao
336c4b4a55 fix lwip tcp_oversize_dbgcheck assert 2017-09-15 10:28:51 +08:00
zhangyanjiao
164006509f optimize lwip route when loopback open and in "APSTA" mode 2017-09-14 16:19:05 +08:00
Ivan Grokhotkov
868b0ce228 Merge branch 'bugfix/list_node_naming' into 'master'
Fix "list_node" name conflict in bluedroid & dhcp_server

See merge request !1216
2017-09-12 12:10:54 +08:00
Angus Gratton
73b3ae8a2d lwip: Use hardware RNG for LWIP_RAND(), use LWIP_RAND() for random port assignment 2017-09-07 16:32:05 +10:00
Angus Gratton
74d5f85c53 Merge branch 'feature/build_warn_undefined_vars' into 'master'
Add --warn-undefined-variables to MAKEFLAGS (github #138)

See merge request !1214
2017-09-05 15:39:48 +08:00
Angus Gratton
9471ce9135 dhcpserver: Move DHCP option names to a separate header
Avoids naming conflicts. Resolves TW13826.
2017-09-05 17:28:40 +10:00
Angus Gratton
1be6bf6790 dhcpserver: Move list_node to implementation not public interface
Was unused in the public interface.

Closes https://github.com/espressif/esp-idf/issues/948
2017-09-05 17:14:23 +10:00
Angus Gratton
f17bbff4b5 Merge branch 'feature/tcp_msl_menuconfig' into 'master'
components/lwip: Expose TCP_MSL in menuconfig. (github #783)

See merge request !1175
2017-09-05 14:18:36 +08:00
Angus Gratton
8670844acf build system: Restore ifdef/ifndef in Makefiles, clean up examples build 2017-09-05 16:11:03 +10:00
Deomid Ryabkov
9903ea1c11 Add --warn-undefined-variables to MAKEFLAGS
Fix warnings where undefined vars are used.

Make Kconfig emit "FOO=" for unset bool options
To ensure make variables are always defined, even if empty.

When writing auto.conf, include symbols disabled by dependency to make sure all make variables are always defined.

Fixes espressif/esp-idf#137

Cherry-picked from https://github.com/espressif/esp-idf/pull/138
2017-09-05 16:10:46 +10:00
Ivan Grokhotkov
9da1bf1a45 Merge branch 'bugfix/lwip_send_timeout' into 'master'
match sys tick with lwip_send_timeout

See merge request !1203
2017-09-04 18:19:59 +08:00
zhangyanjiao
547b7b0246 match sys tick with lwip_send_timeout 2017-09-04 14:52:16 +08:00
Stephen Casner
1e3dd2a4fa Add missing debug log message for out-of-sockets case
Merges https://github.com/espressif/esp-idf/pull/903
2017-08-30 17:55:00 +10:00
devsaurus
92535158e7 components/lwip: Expose TCP_MSL in menuconfig.
Merges https://github.com/espressif/esp-idf/pull/783
2017-08-30 16:44:53 +10:00
Jiang Jiang Jian
72a6b26244 Merge branch 'bugfix/tw14823_lwip_assert_err' into 'master'
assert when close a connecting socket

See merge request !1136
2017-08-24 11:29:32 +08:00
zhangyanjiao
61f64e38d9 assert when close a connecting socket 2017-08-22 20:36:35 +08:00
Liu Zhi Fu
b45433110f tcpip_adapter/lwip: optimize wifi/ip event 2017-08-21 14:36:44 +08:00
Liu Zhi Fu
4ad1f2b272 lwip: optimize TCP close
Optimize TCP close:
1. Not remove TCP pcb when IP address is changed since the lwip netconn still need the pcb
2. If the TCP connection is in TCP_FIN_WAIT_1 for too long time, remove it
2017-07-27 12:44:39 +08:00
Jiang Jiang Jian
460ab2e33b Merge branch 'feature/make_tcp_udp_receive_mbox_configurable' into 'master'
lwip: Make UDP/TCP receive mail box configurable

See merge request !1051
2017-07-25 20:45:38 +08:00
Liu Zhi Fu
7b2f388abc lwip: Make UDP/TCP receive mail box configurable
Different application may require different TCP/UDP receiv mail box size,
so make them configurable.
2017-07-25 13:56:32 +08:00
Liu Zhi Fu
9ae5c6700b lwip/ethernet: fix emac rx buf err
1. Lwip not free the ethernet buf in lwip layer
2. Fix emac counter error
2017-07-25 11:19:31 +08:00
Jiang Jiang Jian
4ec2abbf23 Merge branch 'feature/some_refactor_for_tcpip_adapter' into 'master'
tcpip_adapter: not remove netif when tcpip adapter is stopped

See merge request !943
2017-07-13 22:16:00 +08:00
Liu Zhi Fu
d724cc23d2 tcpip_adapter: not free netif when tcpip adapter is stopped
When tcpip adapter is stop, don't free the netif
2017-07-13 18:42:45 +08:00
XiaXiaotian
7a64e19ba8 Broadcast IP route based on source IP address.
If destination IP address of the packet is broadcast address, firstly compare
    source IP address with the that of each network interface. If it matches,
    packet is forwarded from the interface.
2017-06-30 16:18:29 +08:00
Angus Gratton
857a7f186e lwip: Make LWIP_ERROR behave as if assertions were off, even if they are on 2017-06-27 18:36:54 +10:00
Angus Gratton
f5e7f2bb8f lwip: Remove port-specific sys_arch_assert(), use libc __assert_func() instead 2017-06-27 17:32:17 +10:00
Angus Gratton
0c301206cf lwip debug: fix typo 2017-06-23 16:28:38 +10:00
Angus Gratton
8f4fc209a1 lwip: Enable LWIP assertions unless they are disabled globally 2017-06-23 16:26:11 +10:00
Angus Gratton
1c6510ed96 lwip: Allow configuring/disabling some TCP options to save RAM
RAM savings are small, but may add up when running large numbers of sockets.
2017-06-23 16:26:11 +10:00
Angus Gratton
1ea0ddb025 lwip: Expose broadcast/multicast ping enable options in menuconfig 2017-06-23 16:15:00 +10:00
Angus Gratton
ae05787a51 Merge branch 'bugfix/make_srcdirs_order' into 'master'
build system: Fix bug where component src subdirs needed listing before parent source dirs

See merge request !778
2017-06-06 14:37:21 +08:00
Liu Zhi Fu
cd58f089c2 lwip: fix dhcp server crash issue
Fix long dhcp request packet cause dhcp server crash issue
2017-06-02 14:02:33 +08:00
jack
fc130fba86 fix bug that files missing commit in MR 773 2017-05-31 19:37:39 +08:00
Angus Gratton
99771a255f build system: Fix bug where component src subdirs needed listing before parent source dirs
Triggered on make 3.81, happens sometimes on Linux and always(?) on macOS. May depend on the order the OS' filesystem
resolves wildcards in.

Includes a revert to the LWIP component to verify this is properly fixed.

See also https://github.com/espressif/esp-idf/issues/632
2017-05-22 11:45:55 +10:00
Jiang Jiang Jian
195358ddb7 Merge branch 'bugfix/lwip_loopback' into 'master'
fix(lwip): fix tcp connect fail when enable LOOPIF

when enable the LOOPIF, because of use the loopnetif, the TCP connect will fail. see TW12029

See merge request !711
2017-05-05 15:45:14 +08:00
Liu Zhi Fu
5cf3b1c201 esp32/lwip: adjust some lwip options and update wifi lib
1. Modify TCP TX window from 2 to 4
2. Modify TCPIP task stack default size from 2048 to 2560
3. Update wifi lib for TCP performance optimization
2017-04-28 15:25:33 +08:00
Liu Han
aeecbcc7ee fix(lwip): fix tcp connect fail when enable LOOPIF 2017-04-27 18:59:47 +08:00
Ivan Grokhotkov
8d6a03820a lwip: fix error when building on OS X, only build ppp if enabled
- reorder directories listed in COMPONENT_SRCDIRS so that
  subdirectories precede parent directories

- don’t include PPP source directories if PPP support is not enabled
2017-04-25 17:22:09 +08:00
Jiang Jiang Jian
3f4e917ad6 Merge branch 'feature/ppp_over_serial' into 'master'
Enable experimental/unsupported PPP over Serial driver

From PR #272 https://github.com/espressif/esp-idf/pull/272

See merge request !690
2017-04-25 14:02:55 +08:00
Angus Gratton
f3a567b65d PPPoS: Rearrange config items (move TCP/IP stack size to LWIP), mark as experimental/unsupported
Ref #272
2017-04-21 14:23:34 +10:00
Adrian Muzyka
47c722d674 Enable lwip PPPoS support
* Fix some lwip api bugs
 * Added PPP_SUPPORT parameter to lwip Kconfig
 * Added example pppos_client

Merges #272 https://github.com/espressif/esp-idf/pull/272
2017-04-21 14:23:34 +10:00
Liu Zhi Fu
ab37f89f55 lwip: fix tcp stable test abort issue
1. Modify dhcp server timer to 1 seconds
2. Enable ETHARP_TRUST_IP_MAC

modify according to review
2017-04-19 17:39:32 +08:00
Ivan Grokhotkov
378884660a Merge branch 'feature/tw11250_add_tcp_delay_statistics' into 'master'
lwip: refactor to esp specific counter

1. Add tcp debug counter
2. Refactor other ESP specific counter

See merge request !635
2017-04-13 15:29:36 +08:00
Edmund Huber
eab6d483a5 give the AP and STA netifs different names for ease of debugging lwip 2017-04-11 20:40:36 +08:00
Liu Zhi Fu
ece61944f4 lwip: refractor to esp specific counter
1. Add tcp debug counter
2. Refractor other ESP specific counter
2017-04-10 14:46:48 +08:00