Commit graph

60 commits

Author SHA1 Message Date
Wu Jian Gang 0b79a108b8 Merge branch 'feature/add_ip_frag_option' into 'master'
lwip: add ip frag and reassembly option in menuconfig

add ip frag and reassembly option in menuconfig

See merge request !348
2016-12-29 11:26:06 +08:00
XiaXiaotian 15651b5923 lwip: add ip frag and reassembly option in menuconfig 2016-12-26 15:47:20 +08:00
shangke 5ddf6daa98 feature/ethernet_driver: update ethernet driver
1. The transmitting mode of the packets from LWIP to MAC is changed from synchronous to asynchronous.
2. The receive buf mode : support pointer mode and copy mode.
3. Add get phy status func used to config mac register.
2016-12-26 14:50:49 +08:00
shangke e0040af7e5 ethernet: add first version of ethernet driver 2016-12-01 19:17:48 +08:00
Xia Xiaotian ad555d68d3 esp32/lwip: add check sleep
1. fix tw8911 sleep in scan leads to auth frame malloc fail.

2. fix tw8913 pm state transfer wrong leads to wdt.

3. make some comments for modem sleep and wpa2 enterprise.

4. removd duplicated debug option ESP_THREAD_SAFE_DEBUG
2016-12-01 13:34:36 +08:00
Liu Zhi Fu fc2883a59a lwip: modify according code review
1. Modify tcp window size/send buffer back to 4/2
2. Disable lwip statistics by default
2016-11-28 19:54:22 +08:00
Liu Zhi Fu 9a3f9af2db esp32/lwip: some misc changes
1. Update phy to fix HT40 rx issue
2. Add code about RX_DONE/TX_DONE/Lock-free optimization
3. Fix wifi ioctl return value error
4. Add lwip statistics debug code
5. Modify TCP window size to 10 and send buffer size to 5
2016-11-28 18:36:14 +08:00
Wu Jian Gang 7f2c6a9d80 Merge branch 'bugfix/tw8770_fix_socket_memory_leak' into 'master'
lwip: fix socket memory leak issue

1. Add socket memory leak debug counter
2. Fix TCP PCB leak issue
    Currently ESP32 support maximum 16 TCP PCBs and all TCP PCB are allocated from heap memory. In some scenario, we may
    have memory leak issue,  for example, the application already created 16 TCP PCB, then it close 5 of them, because the TCP
    state machine, the LWIP core may not free all the 5 TCP PCB immediately, maybe some is in TIME_WAIT status, some is in 
    FIN_WAIT_1 etc. Then the application try to malloc 17th TCP PCB (the application think they just create 12 because they already
    close 5), memp_malloc() will return true because the heap is not out of memory, but actually we got 17 TCP PCB. When the 
    scenario repeat again and again (in our Audio application, it repeat more than 10000 times), more and more TCP PCB will be
    created in the system, each TCP PCB require 200B, then memory leak happen (In Audio application, I saw more than 26 TCP PCB
    are created, and 10*200=2K memory are leaked).

See merge request !223
2016-11-25 13:44:02 +08:00
Wu Jian Gang e05fe28574 Merge branch 'bugfix/arp_queue_failed' into 'master'
report the arp queue fail result



See merge request !227
2016-11-22 14:45:44 +08:00
tianzhongxing cc39b7b286 components/lwip/arp: change the arp dropping packet function
LWIP will drop the oldest package at the arp packet cache queue and return "ERR_OK"
We change it that ARP level will drop the current packet and return "ERR_MEM" to tell user that you should send the packet again latter.
2016-11-22 10:11:52 +08:00
Liu Zhi Fu 9cc9710a27 lwip: update according to review comments
1. Define memp_malloc/memp_free as static inline function
2. When TCP pcb is out of memory, try to kill PCB in FIN_WAIT_1 when necessary
2016-11-21 15:02:36 +08:00
tzx a8fb9f2b84 ipv6 interface: add branch for ipv6 interface 2016-11-21 11:06:51 +08:00
Liu Zhi Fu ab92d43bc6 lwip: fix socket memory leak issue
1. Add socket memory leak debug counter
2. Fix TCP PCB leak issue
2016-11-19 14:57:42 +08:00
Liu Zhi Fu 5e428f21b6 lwip: default ESP_L2_TO_L3_COPY to 0 2016-11-17 10:53:00 +08:00
Liu Zhi Fu 69dbc36a1c lwip: add option to memcopy packet from L2 to L3
Menuconfig add an option to copy the packet from layer2 (WIFI driver) to layer3 (LWIP), default not copy
2016-11-16 16:24:41 +08:00
Ivan Grokhotkov 3f8d9d71e2 lwip: fix duplicate definition of O_NONBLOCK
LwIP will define O_NONBLOCK in sockets.h if it isn't defined yet.
If sys/fcntl.h is included after socket.h, there will be duplicate definition.
Work around by including sys/fcntl.h into lwipopts.h.

https://github.com/espressif/esp-idf/issues/75
2016-11-08 20:17:08 +08:00
Ivan Grokhotkov eb2c633cbf newlib: implement settimeofday, integrate LwIP SNTP, add SNTP example 2016-11-03 12:46:46 +08:00
Liu Zhi Fu f0cd38a079 lwip: remove tx flow control code 2016-11-01 15:25:46 +08:00
Liu Zhi Fu 2b722ea468 turn on per socket tcp window by default 2016-10-31 19:43:18 +08:00
Liu Zhi Fu 19f61332a9 make build pass when disable per soc tcp window 2016-10-31 19:38:47 +08:00
Liu Zhi Fu a5552b1e21 lwip: fix tcp rx abnormal issue(tw8242)
In tcp_alloc(), initialize per_soc_tcp_wnd before initializing recv_wnd because recv_wnd depends on per_soc_tcp_wnd.
2016-10-31 17:50:09 +08:00
Liu Zhi Fu 9e7bc900c5 lwip: rework comments according to review 2016-10-28 13:35:06 +08:00
Liu Zhi Fu 305b63209e lwip: support max 16 sockets
Since the customers need more sockets in their application, support max 16 sockets,
in other words, the total socket number of UDP/TCP/RAW sockets should not exceed 16.
2016-10-28 12:03:51 +08:00
Liu Zhi Fu 6e6e51426f lwip: refractor for lwip
1. All espressif specific code are prefix with ESP_
2. Define all ESP_ options in lwipopts.h
3. Remove useless code added in 8266
2016-10-27 14:11:01 +08:00
Jeroen Domburg 5642a8061e Merge branch 'feature/add_per_socket_tcp_window' into 'master'
components/lwip - add per socket tcp window

Add code to support per socket tcp window and tcp send buffer size configuration.

See merge request !145
2016-10-26 23:39:36 +08:00
liuzhifu 612aaa69e4 lwip/esp32: move the extern wifi calls into esp_wifi_internal.h
1. Add esp_wifi_internal.h
2. Rename system_pp_recycle_rx_pkt to esp_wifi_internal_free_rx_buffer
3. rename esp_wifi_tx_is_stop to esp_wifi_internal_tx_is_stop
4. rename ieee80211_output to esp_wifi_internal_tx
2016-10-26 13:23:35 +08:00
liuzhifu 60fb9a8c81 components/lwip - add per socket tcp window
Add code to support per socket tcp window and tcp send buffer size configuration.
2016-10-23 00:49:41 +08:00
Ivan Grokhotkov b190dc3e9f components/lwip,esp32: fixes for C++
- put contents of a few headers into c++ guard blocks
- fix off-by-one error in do_global_ctors
- remove system_init from startup code (should be called from main)
2016-09-26 03:05:25 +08:00
Ivan Grokhotkov 9a1bf32274 Merge branch 'feature/lwip_add_debug_code' into 'master'
lwip: add debug code to show udp/tcp pcbs

Add code to show all tcp/udp pcbs, these kind of debug info is helpful for lwip issue debugging.

See merge request !98
2016-09-20 17:22:22 +08:00
Ivan Grokhotkov 316d3f9c4a components/lwip: make SO_REUSE configurable via menuconfig
Not all environments need or can work with SO_REUSE enabled, so making this option configurable.
2016-09-20 15:36:55 +08:00
liuzhifu f64e1c54b7 lwip: add license and add lwip_debug.h 2016-09-20 15:36:49 +08:00
Jeroen Domburg 4d4c6a3694 Enable SO_REUSEADDR in LWIP 2016-09-18 16:43:48 +08:00
liuzhifu d2d231de29 define lwip task priority in esp_task.h 2016-09-14 12:00:46 +08:00
liuzhifu 4a98027242 components: lwip - Modify lwip task priority and stack definition method
lwip task priority and stack size defintion should not depends on esp_task.h, define it
in lwipopts.h directly
2016-09-14 12:00:46 +08:00
liuzhifu 9cf997a6fc components: esp32/lwip
Add esp_task.h for placing all task priority/stack size macro definition
2016-09-14 12:00:46 +08:00
liuzhifu 56a684d9eb task priority: modify lwip/wifi/event task priority
1. Modify lwip core task priority to configMAX_PRIORITIES-7
2. Modify wifi startup task priority to configMAX_PRIORITIES-7
3. Modify event task priority to configMAX_PRIORITIES-4
2016-09-14 11:59:25 +08:00
liuzhifu 32f01c61a2 add comments about current tx flow control 2016-09-09 17:58:21 +08:00
liuzhifu e38c4b0365 modify esp32_tx_flow_ctrl to static function and move extern api to header file 2016-09-09 17:58:21 +08:00
Angus Gratton 1d355b93df lwip: Define LWIP_ESP8266 in port lwipopts.h not gcc command line 2016-09-09 13:53:38 +10:00
Wu Jian Gang df53d1588a tcpip_adapter: typedef clean up 2016-09-06 19:36:03 +08:00
Wu Jian Gang 3cf377b06e dhcp: add dhcp callback
The callback has no parameter now.
TODO: add a parameter to show dhcp status if needed.
2016-09-06 19:32:33 +08:00
Angus Gratton fe53b96634 Merge feature/lwip_sntp into feature/lwip_sntp_master 2016-09-06 11:49:06 +10:00
Angus Gratton 587f90929c Minor comment cleanup 2016-09-05 11:50:53 +10:00
Angus Gratton cb6bd109f2 Merge wifi commit '87977b92f3e12cfca74cf2e4dea87dc8d60b26fc' into feature/wifi-stage-two 2016-09-05 10:42:17 +10:00
Wu Jian Gang 25e1a7bf1a sntp: fix author name 2016-09-02 16:26:06 +08:00
Angus Gratton 314dbc0b61 Minor comment cleanup
Remove old commented code, etc.
2016-09-02 11:33:53 +10:00
liuhan 37d817b6f9 components/lwip: modify sntp function
delete sntp_time.c file, move sntp head file.
2016-09-01 19:56:51 +08:00
liuhan 1e3f9fbda3 components/lwip/apps/sntp: modify SNTP function feature
modify makefile for compile SNTP function in lwip, see sntp file.
2016-09-01 19:22:36 +08:00
liuhan 380f5635b6 components/lwip: add SNTP function feature
Develop and Compile SNTP function based on LWIP core code, see lwip/apps/sntp file.
2016-09-01 19:22:36 +08:00
liuzhifu 1e9fc9f8f1 components: lwip - modify HEAP_HIGHWAT from 6K to 20K
Since esp32 has much more memory than esp31B, modify the HEAP_HIGHWAT from
6K to 20K.
Notes: HEAP_HIGHWAT is used for tcp/udp tx flow control, if socket task detects
that the free heap memory is less than HEAP_HIGHWAT, it stops to trasmitting until
the free heap memory is greater than HEAP_HIGHWAT
2016-09-01 15:17:50 +08:00