zephyr/subsys/net/ip
Florian Grandel a4cd5cee40 drivers: ieee802154: consistent high res timestamps
The IEEE 802.15.4 API and networking subsystem were using several
inconsistent timestamp resolutions and types. This change defines all
timestamps with nanosecond resolution and reduces the number of
available types to represent timestamps to two:
* `struct net_ptp_time` for PTP timestamps
* `net_time_t` for all other high resolution timestamps

All timestamps (including PTP timestamps) are now referred to a
"virtual" local network subsystem clock source based on the well-defined
types above. It is the responsibility of network subsystem L2/driver
implementations (notably Ethernet and IEEE 802.15.4 L2 stacks) to ensure
consistency of all timestamps and radio timer values exposed by the
driver API to such a network subsystem uptime reference clock
independent of internal implementation details.

The "virtual" network clock source may be implemented based on arbitrary
hardware peripherals (e.g. a coarse low power RTC counter during sleep
time plus a high resolution/high precision radio timer while receiving
or sending). Such implementation details must be hidden from API
clients, as if the driver used a single high resolution clock source
instead.

For IEEE 802.15.4, whenever timestamps refer to packet send or receive
times, they are measured when the end of the IEEE 802.15.4 SFD (message
timestamp point) is present at the local antenna (reference plane).

Due to its limited range of ~290 years, net_time_t timestamps (and
therefore net_pkt timestamps and times) must not be used to represent
absolute points in time referred to an external epoch independent of
system uptime (e.g.  UTC, TAI, PTP, NTP, ...).

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-28 09:06:35 +00:00
..
6lo_private.h
6lo.c
6lo.h
canbus_socket.c
canbus_socket.h
CMakeLists.txt net: syscalls: use zephyr_syscall_header 2023-06-17 07:57:45 -04:00
connection.c net: pkt_filter: Introduce additional hooks for pkt_filter 2023-07-10 09:27:47 +02:00
connection.h
dhcpv4.c net: dhcpv4: Accept unicast replies 2023-07-25 14:15:45 +02:00
dhcpv4.h net: dhcpv4: Accept unicast replies 2023-07-25 14:15:45 +02:00
icmpv4.c
icmpv4.h
icmpv6.c
icmpv6.h
igmp.c net: iface: Improve thread safety of net_if_ipv*_maddr_* functions 2023-05-10 11:06:15 +02:00
ipv4_autoconf_internal.h
ipv4_autoconf.c
ipv4_fragment.c net: ipv4: Fix fragmented packet NULL dereference possible 2023-04-26 14:34:23 +02:00
ipv4.c net: dhcpv4: Accept unicast replies 2023-07-25 14:15:45 +02:00
ipv4.h net: context: Set priority based on DSCP 2023-05-16 13:21:25 +02:00
ipv6_fragment.c
ipv6_mld.c net: iface: Improve thread safety of net_if_ipv*_maddr_* functions 2023-05-10 11:06:15 +02:00
ipv6_nbr.c net: if: Add possibility to disable ND per interface 2023-04-29 12:24:49 +02:00
ipv6.c net: pkt_filter: Introduce additional hooks for pkt_filter 2023-07-10 09:27:47 +02:00
ipv6.h net: context: Set priority based on DSCP 2023-05-16 13:21:25 +02:00
Kconfig doc: drivers: ieee802154: radio API 2023-07-28 09:06:35 +00:00
Kconfig.debug
Kconfig.ipv4 net: dhcpv4: Accept unicast replies 2023-07-25 14:15:45 +02:00
Kconfig.ipv6
Kconfig.mgmt kernel/timeout: introduce the timepoint API 2023-07-25 09:12:26 +02:00
Kconfig.stack
Kconfig.stats
nbr.c
nbr.h
net_context.c drivers: ieee802154: consistent high res timestamps 2023-07-28 09:06:35 +00:00
net_core.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
net_if.c net: if: Add functions to loop over IPv4/IPv6 addresses 2023-07-25 14:18:54 +02:00
net_mgmt.c net: Make net_mgmt queue timeout configurable 2023-04-28 10:35:27 -05:00
net_pkt.c subsys/net: move to timepoint API 2023-07-25 09:12:26 +02:00
net_private.h net: wifi_mgmt: Support to provide raw scan data 2023-05-12 10:50:21 +00:00
net_shell.c net: l2: ieee802154: standardize RSSI value 2023-06-17 07:16:32 -04:00
net_shell.h
net_stats.c
net_stats.h
net_tc_mapping.h
net_tc.c
net_timeout.c
packet_socket.c
packet_socket.h
promiscuous.c
route.c
route.h
tcp_internal.h net: socket: asynchronous connect 2023-04-17 11:35:20 +02:00
tcp_private.h net: socket: asynchronous connect 2023-04-17 11:35:20 +02:00
tcp.c net: tcp: Fix possible double TCP context dereferencing 2023-06-06 11:11:22 -04:00
tcp.h
tp_priv.h
tp.c
tp.h
trickle.c
udp_internal.h
udp.c
utils.c net: utils: fix offset used before range check 2023-06-16 05:46:05 -04:00