zephyr/include/net
Robert Lubos df152ab59f net: coap: Add initial tx time to coap_pending structure
So far, coap_pending structure kept track only of the timeout interval
between two consecutive retransmissions. Calculations inside
`coap_pending_next_to_expire` relied only on this value. This approach
gives incorrect results though, in case multiple messages are pending
for retransmission.

For instance, assuming initial retransmission timeout is set to 2
seconds. If some message had been retransmitted already, its timeout
would be increased to 4 seconds. Any new message added to the pending
list would have a retransmission timeout set to 2 seconds, and will be
returned as a first message to expire, no matter how long the initial
message was already on the list.

To resolve this, add a `t0` field to the coap_pending structure. This
field is initialized to the initial transmission time, and is increased
on each retransmission by the retransmission timeout.
`coap_pending_next_to_expire` uses this value to calculate absolute
time, when the next retransmission should take place, and based on this
information returns correctly first pending message to expire.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2020-04-28 09:50:45 +03:00
..
bt.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
buf.h kernel: rename initializers to be internal 2020-04-24 22:27:08 +02:00
can.h treewide: use full path to can.h header 2020-01-26 17:52:12 +01:00
coap.h net: coap: Add initial tx time to coap_pending structure 2020-04-28 09:50:45 +03:00
coap_link_format.h net: coap: Remove legacy CoAP implementation 2019-02-04 16:49:59 -05:00
dhcpv4.h net: Move include files outside of extern "C" block 2019-08-06 14:46:36 +03:00
dns_resolve.h net: dns: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
dummy.h net: Verify correctness of iface_api inside L2 driver API 2019-12-09 12:55:29 -05:00
ethernet.h net: Enable PM settings on network devices 2020-03-27 14:48:30 +02:00
ethernet_mgmt.h net: ethernet_mgmt: Add missing documentation 2019-02-15 16:39:06 -05:00
ethernet_vlan.h net: ethernet: vlan: Add missing function documentation 2019-02-15 16:39:06 -05:00
gptp.h net: gptp: Rename z_gptp_pow2() to gptp_pow2() 2019-03-25 14:43:23 -04:00
hostname.h net: Fix the function API documentation generation 2019-02-15 16:39:06 -05:00
http_client.h net: http_client: Fix payload issue on HTTP upload 2020-04-21 00:05:04 +03:00
http_parser.h net: Move include files outside of extern "C" block 2019-08-06 14:46:36 +03:00
http_parser_state.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
http_parser_url.h net: Move include files outside of extern "C" block 2019-08-06 14:46:36 +03:00
ieee802154.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
ieee802154_mgmt.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
ieee802154_radio.h net: ieee802154_radio: Extend frame pending bit handling configuration 2020-04-17 09:17:38 +03:00
ipv4_autoconf.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
lldp.h net/lldp: Simplify Kconfig file 2019-07-10 15:24:32 +03:00
lwm2m.h net: lwm2m: Publicize firmware block context 2020-04-09 16:48:45 +02:00
mii.h net: ethernet: Place MII defines into separate doxygen group 2019-02-26 02:07:36 +01:00
mqtt.h net: mqtt: Refactor because of timeout overhaul 2020-04-09 21:58:42 +03:00
net_config.h net: config: Document the flags options 2019-02-20 19:41:59 -05:00
net_conn_mgr.h net: Add a connection manager preliminary logic 2019-07-12 12:33:19 +03:00
net_context.h net: context: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
net_core.h net: Add NET_WAIT_FOREVER symbol to be used as timeout in network APIs 2020-04-09 16:07:03 +03:00
net_event.h net: Move include files outside of extern "C" block 2019-08-06 14:46:36 +03:00
net_if.h net: Expose a way to know if the network interface is suspended or not 2020-03-27 14:48:30 +02:00
net_ip.h net: Add IPPROTO_RAW as it was missing 2019-09-12 11:22:45 +03:00
net_l2.h net: l2: 6LoCAN implementation 2019-08-08 13:25:01 +03:00
net_linkaddr.h net: l2: 6LoCAN implementation 2019-08-08 13:25:01 +03:00
net_mgmt.h net: mgmt: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
net_offload.h net: context: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
net_pkt.h net: pkt: Move TCP 1st sent flag out of union 2020-04-17 12:44:49 +03:00
net_stats.h net/iface: Add PM suspend state statistics 2020-04-02 11:07:45 +03:00
net_timeout.h net: Add NET_WAIT_FOREVER symbol to be used as timeout in network APIs 2020-04-09 16:07:03 +03:00
openthread.h net: openthread: Update OpenThread version 2019-10-28 13:00:56 +02:00
ppp.h net: ppp: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
promiscuous.h net: promisc: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
ptp_time.h net: Explicitly include toolchain.h to check for endianness definitions. 2019-09-09 21:40:54 +02:00
sntp.h net: sntp: Allow to build for CONFIG_POSIX_API. 2019-09-12 17:30:29 +03:00
socket.h net: sockets: Remove socket offloading interface 2020-01-31 11:36:02 -05:00
socket_can.h net: Verify correctness of iface_api inside L2 driver API 2019-12-09 12:55:29 -05:00
socket_net_mgmt.h net: Move include files outside of extern "C" block 2019-08-06 14:46:36 +03:00
socket_offload.h net: sockets: Remove socket offloading interface 2020-01-31 11:36:02 -05:00
socket_select.h doc: use @rst/@endrst for ReST in headers 2019-06-25 23:33:55 -04:00
socketutils.h include: net: socketutils: Allow to build for CONFIG_POSIX_API 2019-09-12 17:30:29 +03:00
tls_credentials.h net: tls: Add credential type documentation 2019-03-26 07:30:57 -05:00
trickle.h all: Add 'U' suffix when using unsigned variables 2019-03-28 17:15:58 -05:00
udp.h doc: net: Hide UDP API documentation 2019-02-21 16:37:43 -05:00
websocket.h net: websocket: Refactor because of timeout overhaul 2020-04-09 16:07:03 +03:00
wifi.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
wifi_mgmt.h net: Verify correctness of iface_api inside L2 driver API 2019-12-09 12:55:29 -05:00