1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/sys/include/net
Marian Buschsieweke 973b6f69bf
sys/net/netopt: change NETOPT_STATS semantics
Instead of retrieving a pointer with NETOPT_STATS, retrieve the current
data. This avoids data corruptions when reading from one thread (e.g.
the thread running the shell (ifconfig command)) while another thread
is updating it (e.g. the netif thread).

The issue affects all boards, as users typically expect the count of
TX packets and the number of TX bytes to refer to the same state. For
16 bit and 8 bit platforms even a single netstat entry can read back
corrupted.

This fixes the issue by just copying the whole netstat_t struct over
without requiring explicit locking on the user side. A multi-threaded
network stack still needs to synchronize the thread responding to
netopt_get with the thread writing to the netstat_t structure, but that
is an implementation detail no relevant to the user of the API.
2022-06-28 16:57:43 +02:00
..
bluetil bluetil/addr: fix byte ordering in addr_from_str() 2019-08-28 16:48:42 +02:00
cord net/cord doc: Expand CONFIG_CORD_EXTRAARGS documentation 2022-01-27 09:50:08 +01:00
dhcpv6 sys/net/dhcpv6: enhance doc of CONFIG_DHCPV6_CLIENT_PFX_LEASE_MAX 2022-02-17 18:46:28 +01:00
dns sys/net/dns: mark dns_hdr_t as packed 2021-11-06 20:16:56 +01:00
ethernet treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
fib all: adapt to moved sched defines 2020-11-23 16:56:34 +01:00
gcoap gcoap_fileserver: New module to serve VFS via CoAP 2022-05-22 16:36:21 +02:00
gnrc Merge pull request #17678 from miri64/gnrc_netif/enh/optional-comp-ctx 2022-05-25 00:51:36 +02:00
iana
ieee802154 ieee802154/hal: remove RX continuous cap 2022-01-10 13:57:03 +01:00
ipv4 sys/net/ipv4: ipv4_addr_t pointer should be const 2022-03-05 14:39:50 +01:00
ipv6 sys/net: add ipv6_addrs_print() 2022-06-06 20:46:48 +02:00
lorawan sys/net/lorawan: fix cpp namespace 2020-11-23 11:36:05 +01:00
nanocoap nanocoap_cache: add helper function to check if entry is stale 2022-05-13 12:14:55 +02:00
netstats sys/include/net/netstats: move xtimer header where it is needed 2021-02-16 18:18:21 +01:00
ppp treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
rpl
sixlowpan sixlowpan|gnrc_sixlowpan: change SFR draft to RFC in doc 2020-12-14 09:00:26 +01:00
skald net/ble/skald: let itvl be configured per context 2022-05-24 13:02:10 +02:00
sock sys/net/sock: add a word of warning to sock_udp_create() 2022-05-30 20:21:13 +02:00
af.h sys/include/net/af: fix doc comment 2022-04-14 09:23:27 +02:00
arp.h gnrc_dhcpv6_client: fix for SLIP link-layer 2020-04-07 22:08:57 +02:00
asymcute.h sys/asymcute: remove deprecated CONFIG_ASYMCUTE_BUFSIZE_EXP 2022-01-07 11:28:11 +01:00
ble.h net/ble.h: add custom NDN support service UUID 2019-11-13 11:28:01 +01:00
coap.h nanocoap_cache, forward_proxy: add ETag validation support 2022-05-12 13:22:41 +02:00
credman.h sys/net/credman: add key loading functions 2021-09-20 08:10:59 +02:00
csma_sender.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
dhcpv6.h sys/net/dhcpv6: Implement stateless DHCPv6 2021-10-04 17:40:56 +02:00
dns_mock.h sys/net/application_layer/sock_dns_mock: add module for mocking sock_dns 2022-04-03 17:29:10 +02:00
dns.h dns: move message parsing and composition to own module 2021-08-11 11:55:29 +02:00
dsm.h dsm: make CONFIG_DSM_PEER_MAX depend on CONFIG_DTLS_PEER_MAX 2021-10-08 12:15:53 +02:00
dtls.h dtls: set CONFIG_DTLS_PEER_MAX in dtls.h header 2021-10-08 12:10:28 +02:00
eddystone.h
emcute.h net/emcute: add doc that QoS -1 is not supported 2020-12-18 10:41:52 +01:00
ethernet.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
ethertype.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
eui48.h net/eui48: add eui64_to_eui48() 2020-09-30 11:18:36 +02:00
eui64.h sys/net/eui64: fix broken links 2020-03-24 10:39:49 +01:00
eui_provider.h net/eui_provider: prohibit use of NETDEV_ANY for EUI device type 2021-06-08 14:30:40 +02:00
fib.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
gcoap.h gcoap_fileserver: New module to serve VFS via CoAP 2022-05-22 16:36:21 +02:00
gnrc.h net/gnrc: Fixing whitespace in the documentation 2022-04-29 14:19:25 +02:00
icmp.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
icmpv6.h
ieee802154_security.h net/ieee802154 doc: Group security with existing 802154 2022-01-16 11:24:22 +01:00
ieee802154.h net/iee802154 doc: Add overview / introduction documentation 2022-01-16 11:29:32 +01:00
inet_csum.h
ipv4.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
ipv6.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
l2filter.h net/l2filter : Update documentation 2020-07-22 00:26:09 +05:30
l2util.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
lora.h sys/include/net/lora: add 2.4Ghz BW definitions 2022-05-17 15:30:01 +02:00
loramac.h net/loramac: use enum type in lora_time_on_air() 2022-04-12 12:16:44 +02:00
mqttsn.h net/mqttsn: add flag definition for QoS -1 2020-12-18 10:22:25 +01:00
nanocoap_sock.h nanocoap_sock: add nanocoap_sock_block_request() 2022-05-17 23:07:23 +02:00
nanocoap_vfs.h nanocoap_vfs: add nanocoap_vfs_put() 2022-06-08 17:19:03 +02:00
nanocoap.h nanocoap: add coap_size2szx() 2022-06-08 17:19:03 +02:00
ndp.h gnrc_ndp: add route information option 2021-06-18 00:13:08 +02:00
netdev_test.h netdev_test: avoid explicit cast to netdev 2021-07-09 11:35:19 +02:00
netif.h sys/net/netif: add helpers for IPv6 addresses 2022-06-06 20:46:48 +02:00
netopt.h sys/net/netopt: change NETOPT_STATS semantics 2022-06-28 16:57:43 +02:00
netstats.h netstats: add missing cib.h include 2021-07-05 10:32:50 +02:00
ntp_packet.h
packet.h
ppptype.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
protnum.h treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
sixlowpan.h sixlowpan|gnrc_sixlowpan: change SFR draft to RFC in doc 2020-12-14 09:00:26 +01:00
skald.h net/ble/skald: let itvl be configured per context 2022-05-24 13:02:10 +02:00
sntp.h
sock.h sys/net/sock: introduce SOCK_AUX_SET_LOCAL 2022-05-10 09:24:56 +02:00
someip.h sys/include/net: Add suggested changes 2020-07-16 14:44:47 +02:00
tcp.h gnrc_tcp: add listen/accept 2021-07-08 09:40:02 +02:00
telnet.h sys/net/telnet: add telnet_server_disconnect() 2022-06-08 13:01:23 +02:00
udp.h
uhcp.h uhcp: improve documentation 2020-11-09 11:45:28 +01:00
utils.h sys/net/netutils: add netutils_get_ipv4() 2022-03-08 13:35:32 +01:00
zep.h