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

30 Commits

Author SHA1 Message Date
Benjamin Valentin
bcd58bfd10 sys/net: add local to sock_ip_aux_tx_t 2022-05-10 09:24:56 +02:00
Karl Fessel
35107ec4ba sys/net: add missing includes 2022-02-28 14:53:07 +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
ebcf1c0ab4
net/sock_ip: 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
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 S. Lenders
9ba22083ee sock_ip: fix documenation referring to UDP sock 2019-06-19 14:18:45 +02:00
Martine Lenders
ce0d81c5c8
sock: specify invalid parameter error 2017-06-12 13:54:55 +02: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
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
ce205afc57 fixup! sock: Introduction of new application layer API
sock_ip: Provide proto parameter to send in case sock == NULL.
2016-08-25 16:02:47 +02:00
Martine Lenders
1f74eae424 fixup! sock: Introduction of new application layer API
Fix some typedefs
2016-08-22 17:03:52 +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
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