1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

110 Commits

Author SHA1 Message Date
Jose Alamos
4e6f299af0
lwip: avoid explicit cast to netdev 2021-07-09 11:35:16 +02:00
iosabi
e469f2dea4 lwip_sock: Make sock_tcp_read return data if available
When reading from the socket with `sock_tcp_read()` it would only return
data from at most one internal connection buffer, even if the buffer
passed to `sock_tcp_read()` is larger and there is more data available
in the connection. This patch makes `sock_tcp_read` process all the
available data so long as there's more data to read available
immediately.
2021-04-10 18:45:57 +02:00
iosabi
afddb46c51 lwip_sock: Fix computation of last_offset on partial reads.
lwip receives network buffers that are made available to lwip_sock_tcp
calling `netconn_recv_tcp_pbuf`. The size of these buffers depends on
the size of the network packets. An application calling `sock_tcp_read`
can pass any arbitrary buffer size to read (copy) from these internal
network buffers, which may be smaller. lwip_sock_tcp keeps around the
last network buffer (`struct pbuf last_buf`) and the offset into this
buffer already consumed by the application (`last_offset`).

However, when multiple application reads from the same `pbuf` buffer
occur, the `last_offset` must be updated incrementing it. The code had
a bug that would work only when `last_offset` was either 0 (no previous
partial read) or when the current read was consuming all the remaining
data (when `buf_len == copylen`).

This patch fixes the issue an allows multiple reads from the same
buffer.
2021-04-04 12:45:54 +02:00
Erik Ekman
6b89f4f34b pkg/lwip: Start DHCP early for all Ethernet netifs
Netifs without link status support will keep sending discover
messages with increasing time between.

Netifs that support link status will wait for the link to be up,
and then start sending.

Netifs that support link status but send no link status events
will continue to not work (unless link status is up from the
first check when setting it up).
2021-03-25 16:01:27 +01:00
benpicco
9cad382dc8
Merge pull request #16153 from yarrick/netif_add
pkg/lwip: Add netifs with netif_add_noaddr
2021-03-25 13:36:17 +01:00
benpicco
b0364941b5
Merge pull request #16082 from yarrick/link_state
pkg/lwip: Set netif link state properly when supported
2021-03-25 13:36:07 +01:00
Erik Ekman
d3ba3117f2 pkg/lwip: Use NETIF_FOREACH macro in sock implementation
Decreases dependency on lwIP internals, and will handle LWIP_SINGLE_NETIF.
2021-03-06 11:27:14 +01:00
Erik Ekman
9b03b79a85 pkg/lwip: Add netifs with netif_add_noaddr
Makes 6lowpan netifs work even if dual stack is enabled,
and one less static method needed.
2021-03-05 00:17:17 +01:00
Erik Ekman
60d5d1aa74 pkg/lwip: Set link state properly when supported
Set link state correctly in lwIP for interfaces that support
the NETOPT_LINK option. Interfaces that do not support it
(like tap for native arch) remain up all the time.

Netdevs that support NETOPT_LINK but do not send NETDEV_EVENT_LINK_UP/DOWN
events will end up with a mismatched link state - but DHCP would
already not start for them either.

Use netifapi to signal lwIP to do the work in its own thread.
2021-03-01 23:55:08 +01:00
Benjamin Valentin
a57e58d6ef lwip: hook up sam0_eth support 2021-02-26 12:54:40 +01:00
Martine Lenders
afb027852d
Merge pull request #15992 from yarrick/more_lwip
Add lwIP ifconfig shell command
2021-02-23 16:59:41 +01:00
Erik Ekman
9da7ea2dec pkg/lwip: Name sixlowpan netifs 2021-02-23 11:47:33 +01:00
Martine Lenders
de4ee0f934
Merge pull request #15562 from benpicco/socket_zep_register
socket_zep: register with netdev, provide EUI-64 as command line parameter
2021-02-20 20:32:01 +01:00
Erik Ekman
a29c835b2e lwip/esp: Support adding both netifs (eth/wifi) 2021-02-13 15:42:33 +01:00
Benjamin Valentin
d8918c24fa socket_zep: register with netdev 2021-01-25 22:59:01 +01:00
f4523140f1
pkg/lwip: fix typo (semaphor => semaphore) 2021-01-08 10:15:33 +01:00
Marian Buschsieweke
77b39c5550
pkg/lwip: Implement sock_aux_local
Provide address the IP packet / UDP datagram was received on in the auxiliary
data, if module sock_aux_local is used.
2020-12-04 12:51:48 +01:00
Marian Buschsieweke
9d46bc7d7f
Merge pull request #14703 from maribu/sock-aux-api
net/sock: Add access to auxiliary data (API only)
2020-12-03 12:08:49 +01:00
Marian Buschsieweke
893bfd13d0
net/sock_udp: Extend API for auxiliary data 2020-12-02 17:56:13 +01:00
Marian Buschsieweke
ebcf1c0ab4
net/sock_ip: Extend API for auxiliary data 2020-12-02 17:56:13 +01:00
Martine Lenders
71224b4b1e
lwip_sock: use new mbox_avail() function 2020-11-20 13:09:42 +01:00
Bas Stottelaar
38a5ff7d4b pkg/*: realign ENABLE_DEBUG 2020-10-23 02:43:10 +02:00
Bas Stottelaar
970c72a0cb pkg/*: add missing include of assert.h 2020-10-22 11:13:08 +02:00
Jose Alamos
246acb311f lwip: adapt bootstrap for nrf802154 2020-10-19 15:18:35 +02:00
Benjamin Valentin
1afe72a5e5 drivers/enc28j60: register with netdev 2020-10-08 10:36:56 +02:00
Benjamin Valentin
988ee1648f drivers/mrf24j40: register with netdev 2020-10-07 16:39:39 +02:00
Benjamin Valentin
53eedc283b drivers/at86rf2xx: register driver with netdev 2020-08-17 22:53:51 +02:00
Marian Buschsieweke
00c44b0924
pkg/lwip: Use IS_ACTIVE() & NETCONNTYPE_ISIPV6()
This also fixes an issue detected by `tests/lwip_sock_udp` when both IPv4 and
IPv6 are enabled.
2020-07-31 13:27:09 +02:00
Gunar Schorcht
b64ce62a8f pkg/lwip: fixes the netif handling for atwinc15x0
With PR #14349 the double stack mode for lwIP was activated. The ATWINC15x0 driver was provided before the changes in PR #14349 but merged after that. Therefore, the changes for the driver were not taken into account anymore and have to be applied accordingly.
2020-06-27 11:09:50 +02:00
Gunar Schorcht
f92d2acb0a pkg/lwip: support of ATWINC15x0 WiFi netdev 2020-06-26 12:33:38 +02:00
Martine S. Lenders
e80c473830
pkg/lwip: only use ip4_addr_t component of IP4_ADDR_ANY at bootstrap
IP4_ADDR_ANY is a generic address of type IPv4 when lwIP is compiled
with both IPv4 and IPv6, so we need to extract the `ip4_addr_t`
component when using with `netif_add()` as that is the expected type.
2020-06-25 12:45:37 +02:00
Martine S. Lenders
c0b7560dde
pkg/lwip: remove code duplication for IPv4-based netif initialization 2020-06-25 12:45:37 +02:00
Martine S. Lenders
035acc2e53
pkg/lwip: remove ipv6only clause for AF_INET6 sockets 2020-06-24 18:44:06 +02:00
2778e037fe
Merge pull request #14220 from aabadie/pr/pkg/lwip_nrf802154
pkg/lwip: add support for nrf802154
2020-06-16 11:13:33 +02:00
MichelRottleuthner
bd44f63557
Merge pull request #14150 from miri64/lwip/enh/netdev_tap_ipv4
lwip: add IPv4 support for `netdev_tap`
2020-06-09 14:30:02 +02:00
Martine S. Lenders
f5c4a05281
lwip: add IPv4 support for netdev_tap 2020-06-09 12:12:54 +02:00
b3620b35b8
pkg/lwip: add support for nrf802154 2020-06-07 21:24:14 +02:00
Martine Lenders
a38428b8f2
Merge pull request #13701 from miri64/lwip_sock/enh/recv_buf
lwip_sock: provide implementation for `sock_*_recv_buf()`
2020-05-26 21:33:09 +02:00
Martine S. Lenders
ef1d458089
lwip_sock: re-issue receive events if there are still received messages
... after `*_recv()` or `*_accept()` was called.

This prevents a client from needing to call `*_recv()` or `*_accept()`
in a loop.
2020-05-12 14:19:34 +02:00
Martine S. Lenders
77b89bb968
lwip_sock: provide implementation for sock_*_recv_buf() 2020-04-28 09:46:07 +02:00
Martine S. Lenders
29651da8f4
lwip_sock: update implementation for async callback argument 2020-03-11 16:54:12 +01:00
Martine S. Lenders
612e782b3c
sock_async: supply optional callback argument with callback setter 2020-03-11 16:54:11 +01:00
Martine S. Lenders
6e6e435c65
sock_async: add optional callback argument 2020-03-11 16:54:11 +01:00
Martine Lenders
1a4e6e9cdb
lwip_sock_tcp: close accepted connection if queue is full 2020-03-06 11:29:45 +01:00
Martine S. Lenders
e98e2f6143
lwip: fix style errors found by Vera++ 2020-03-06 11:29:45 +01:00
Martine S. Lenders
fc67e6143a
lwip: provide sock_async support 2020-03-06 11:28:16 +01:00
Martine S. Lenders
20805548b3 lwip: introduce sock base-type 2020-02-21 19:07:47 +01:00
Giuseppe Tipaldi
c8426ce8f5 pkg/lwip: add auto-init support for transciever ENC28J60 2020-01-31 22:01:49 +01:00
Martine Lenders
87d00ab294
Merge pull request #12932 from miri64/lwip_sock/fix/sock-cleanup
lwip_sock: clean-up connection handling without a sock.
2020-01-09 15:00:55 +01:00
benpicco
4f4e7cde16
Merge pull request #12965 from gschorcht/pkg/lwip/ipv4_dhcp
pkg/lwip: start DHCP for a netif with lwip_dhcp
2019-12-18 09:21:29 +01:00