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

36 Commits

Author SHA1 Message Date
a17ff53ecf
Merge pull request #17485 from benpicco/sock_udp_sendv
sys/net/sock: add sock_udp_sendv() API
2022-03-01 14:05:21 +01:00
Karl Fessel
35107ec4ba sys/net: add missing includes 2022-02-28 14:53:07 +01:00
Benjamin Valentin
2a129fc327 sys/net/sock: add sock_udp_sendv() API 2022-02-22 10:05:41 +01:00
Marian Buschsieweke
f0ba796e5d
sys/net/sock: add sock_aux_rssi
Allow accessing the RSSI value of received UDP datagrams / IP packets with the
sock API.
2021-01-13 13:29:13 +01:00
Marian Buschsieweke
893bfd13d0
net/sock_udp: Extend API for auxiliary data 2020-12-02 17:56:13 +01:00
Bas Stottelaar
ffb929d811 sys/*: remove unused assert.h include 2020-10-22 11:29:27 +02:00
Martine S. Lenders
58685af8a6
sock: sock_*_recv_buf: mark as experimental 2020-04-01 15:50:51 +02:00
Martine S. Lenders
f9e17ac025
sock: amend API to iterate over stack-internal chunks
With lwIP we have a chunked UDP payload, so just providing the
stack-internal buffer is not possible. To be able to iterate over such
a chunked payload, this change allows the `sock_*_recv_buf()` functions
to use the internal buffer context as an iteration state.

As the internal buffer space can be released when the function would
return 0, `sock_recv_buf_free()` becomes unnecessary.
2020-04-01 15:50:46 +02:00
Martine S. Lenders
2ed7a7345f
sock_udp: fix doc of sock objects 2020-03-24 14:02:36 +01:00
Martine S. Lenders
a7d468988d
sock: amend with zero-copy receive functions
This change amends the `sock` API by a set of functions to `sock` that
allow provisioning of stack-internal buffers to the caller on receive.

This allows to cover two use-cases

1. Zero-copy systems: if the stacks supported the buffer space provided
   by these functions can be the same that was filled in the link-layer
2. asynchronous receive within a wrapping sock layer (e.g. `sock_dtls`
   wrapping `sock_udp`): to receive packets of the lower level protocol
   asynchronously, the wrapping implementation layer would currently
   need to allocate its own buffer space, introducing a third buffer
   space in addition to the one of the application and the network
   stack. For a wrapping layer this is undesirable.

While there are security considerations exposing stack internal memory
space to the caller, I believe they are minor, as in the end the
application developer is the person in control of the node.
2020-03-24 14:02:36 +01:00
Martine S. Lenders
3896145c31
sock: ignore -Wtypedef-redefinition for LLVM where needed
net/sock/async/types.h included by net/sock.h needs to re-typedef the
the sock types to prevent cyclic includes.
2020-01-07 10:13:02 +01:00
Martine Lenders
a20639074a sock_udp: define send error-state for full port pool 2018-06-20 14:51:17 +02:00
Martine Lenders
9e7cebae93 sock_udp: allow creation with ephemeral ports
This change allows the port for local endpoint to be zero 0. If this is
the case the `sock_udp_create()` function binds the object to an
ephemeral port.
2018-06-20 14:51:17 +02:00
Martine Lenders
2e93ba1c50
doc: Fix 'must not'/'may not' wording
I applied the following terminology and changed the wording in the doc
accordingly:

* must not: If the parameter is of the value it *must not* be it either
  hits an assert or crashes the system.
* may not: The value can be that value, but the function will return an
  error.
2017-12-19 09:00:12 +01:00
Martine Lenders
ce0d81c5c8
sock: specify invalid parameter error 2017-06-12 13:54:55 +02:00
Raul Fuentes
808b56c07f sock/udp.h: Changed wiki syntax to doxygen 2017-05-30 20:48:41 +02:00
Raul Fuentes
c169d66120 Adding missing variable to one example 2017-03-07 15:35:05 +01:00
Oleg Hahm
7ee7801c10 *: remove trailing underscores from header guards 2017-01-19 18:30:53 +01:00
Oleg Hahm
4f4214235b timex: unambiguous time conversion macros 2017-01-19 13:18:08 +01:00
Emmanuel Baccelli
cab947b05a fixed insconsistencies in the doc for sock
fixed insconsistency concerning headers needed

fixed insconsistency concerning headers needed

fixed insconsistency concerning headers needed
2016-11-29 21:28:49 +01:00
Martine Lenders
bd533dd785 gnrc_sock: move net/af.h include to sock_types.h 2016-11-18 12:33:01 +01:00
Martine Lenders
b9330d462b sock: Some formatting fixes
Follow-up on #5929
2016-10-12 17:55:48 +02:00
Martine Lenders
8c56c9031b Merge pull request #5929 from kaspar030/sock_change_no_timeout_value
sock: change "no timeout" value from 0 to UINT32_MAX
2016-10-12 16:08:03 +02:00
aace13624b sock: change "no timeout" value from 0 to UINT32_MAX 2016-10-12 15:19:16 +02:00
Martine Lenders
d4ba3bd184 sock: doc fixes 2016-10-11 10:24:45 +02:00
Martine Lenders
6c1e805f9e sock: define behavior on invalid addresses 2016-10-06 21:56:19 +02:00
Martine Lenders
f4d39274fb sock: doc fixes 2016-10-04 17:22:54 +02:00
Martine Lenders
09703e1fdf fixup! sock: Introduction of new application layer API
Add more error classes
2016-09-02 19:02:33 +02:00
Martine Lenders
73861e2c15 fixup! sock: Introduction of new application layer API
Fix some typos
2016-08-25 17:55:11 +02:00
Martine Lenders
a41bc13767 fixup! sock: Introduction of new application layer API
Reword confusing out-parameter doc in create functions
2016-08-20 02:39:58 +02:00
Martine Lenders
a4fd05c6f6 fixup! sock: Introduction of new application layer API
Fix wrongly typedef'd endpoint
2016-08-20 02:33:32 +02:00
Martine Lenders
b24d9de9ae fixup! sock: Introduction of new application layer API 2016-08-19 17:36:58 +02:00
Martine Lenders
01b0975072 fixup! sock: Introduction of new application layer API 2016-08-19 16:52:06 +02:00
Martine Lenders
6f06deff40 fixup! sock: Introduction of new application layer API 2016-08-19 16:17:35 +02:00
Martine Lenders
b71c2f334a fixup! sock: Introduction of new application layer API 2016-08-19 15:27:15 +02:00
Martine Lenders
7ef177a8cb sock: Introduction of new application layer API
This introduces a new alternative and better API to `conn`. It differs in the
following aspects:

* a common address type for both IPv4 and IPv6 addresses is introduced
* communication end-points are abstracted as end-point types `sock_x_ep_t`,
  containing the address, its family, its port (if required for protocol) and
  the interface identifier.
* All functions require some kind of state. Sending of datagrams to the same
  source or replying to incoming datagrams is thus simplified
* TCP connection establishment was overall reworked: connected sockets and
  listening sockets are now two distinct types. An accept on a listening socket
  than yields a connected socket
2016-08-18 12:25:41 +02:00