Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
dplpmtud.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
37
38#ifndef ZEPHYR_INCLUDE_NET_DPLPMTUD_H_
39#define ZEPHYR_INCLUDE_NET_DPLPMTUD_H_
40
41#include <zephyr/net/net_ip.h>
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
48#define NET_DPLPMTUD_BASE_PLPMTU 1200U
49
57
61 struct net_sockaddr_storage dst;
62
65
67 bool in_use;
68};
69
82 const struct net_sockaddr *dst,
83 uint16_t max_plpmtu);
84
92 uint16_t max_plpmtu);
93
105
117
129
142 uint16_t probe_size);
143
154 uint16_t probe_size);
155
166 uint16_t probe_size);
167
178
179#ifdef __cplusplus
180}
181#endif
182
184
185#endif /* ZEPHYR_INCLUDE_NET_DPLPMTUD_H_ */
int net_dplpmtud_on_path_probe_acked(struct net_dplpmtud_path *path, uint16_t probe_size)
Report that a probe was acknowledged for a path.
int net_dplpmtud_on_path_probe_sent(struct net_dplpmtud_path *path, uint16_t probe_size)
Report that a probe has been sent for a path.
void net_dplpmtud_set_path_max_plpmtu(struct net_dplpmtud_path *path, uint16_t max_plpmtu)
Update the transport-local maximum PLPMTU for a path.
bool net_dplpmtud_path_probe_in_flight(struct net_dplpmtud_path *path)
Check whether a probe is currently in flight for a path.
net_dplpmtud_state
DPLPMTUD search state.
Definition dplpmtud.h:51
int net_dplpmtud_on_path_probe_lost(struct net_dplpmtud_path *path, uint16_t probe_size)
Report that a probe was lost for a path.
int net_dplpmtud_init_path(struct net_dplpmtud_path *path, const struct net_sockaddr *dst, uint16_t max_plpmtu)
Initialize a DPLPMTUD path handle for a remote destination.
void net_dplpmtud_note_path_blackhole(struct net_dplpmtud_path *path)
Report black-hole fallback for a path.
int net_dplpmtud_get_path_probe_size(struct net_dplpmtud_path *path)
Get the next probe size a transport may transmit for a path.
int net_dplpmtud_get_path_mtu(struct net_dplpmtud_path *path)
Get the currently validated PLPMTU for a path.
@ NET_DPLPMTUD_STATE_SEARCH_COMPLETE
Path has no larger probe candidate.
Definition dplpmtud.h:54
@ NET_DPLPMTUD_STATE_BASE
Path is using the base PLPMTU.
Definition dplpmtud.h:52
@ NET_DPLPMTUD_STATE_SEARCHING
Path is actively probing for a larger PLPMTU.
Definition dplpmtud.h:53
@ NET_DPLPMTUD_STATE_ERROR
Path fell back after black-hole detection.
Definition dplpmtud.h:55
IPv6 and IPv4 definitions.
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Transport-owned DPLPMTUD path handle.
Definition dplpmtud.h:59
struct net_sockaddr_storage dst
Remote destination for this path.
Definition dplpmtud.h:61
bool in_use
Path handle is initialized.
Definition dplpmtud.h:67
uint16_t max_plpmtu
Transport-local maximum PLPMTU, or UINT16_MAX if uncapped.
Definition dplpmtud.h:64
Generic sockaddr struct.
Definition net_ip.h:455