mesh Callbacks
[Callbacks]
mesh Callbacks More...
![]() |
Functions | |
int | dessert_mesh_ping (dessert_msg_t *msg, size_t len, dessert_msg_proc_t *proc, const dessert_meshif_t *iface, dessert_frameid_t id) |
Handle ping packets. | |
int | dessert_mesh_pong (dessert_msg_t *msg, size_t len, dessert_msg_proc_t *proc, const dessert_meshif_t *iface, dessert_frameid_t id) |
Handle pong packets. | |
int | dessert_mesh_trace (dessert_msg_t *msg, size_t len, dessert_msg_proc_t *proc, const dessert_meshif_t *iface, dessert_frameid_t id) |
Handle trace packets. | |
int | dessert_mesh_ipttl (dessert_msg_t *msg, size_t len, dessert_msg_proc_t *proc, const dessert_meshif_t *iface, dessert_frameid_t id) |
Enable IP-based tracing. | |
int | dessert_mesh_drop_ethernet (dessert_msg_t *msg, size_t len, dessert_msg_proc_t *proc, const dessert_meshif_t *iface, dessert_frameid_t id) |
Drop messages with Ethernet extension. | |
int | dessert_mesh_drop_ip (dessert_msg_t *msg, size_t len, dessert_msg_proc_t *proc, const dessert_meshif_t *iface, dessert_frameid_t id) |
Drop messages without Ethernet extension. |
Detailed Description
mesh Callbacks
Function Documentation
int dessert_mesh_drop_ethernet | ( | dessert_msg_t * | msg, | |
size_t | len, | |||
dessert_msg_proc_t * | proc, | |||
const dessert_meshif_t * | meshif, | |||
dessert_frameid_t | id | |||
) |
Drop messages with Ethernet extension.
Drop all DES-SERT messages with an Ethernet extension.
- Parameters:
-
*msg dessert_msg_t frame received len length of the buffer pointed to from dessert_msg_t *proc local processing buffer passed along the callback pipeline - may be NULL *meshif interface received packet on - may be NULL id unique internal frame id of the packet
- Return values:
-
DESSERT_MSG_DROP if Ethernet extension is available DESSERT_MSG_KEEP if Ethernet extension is missing
int dessert_mesh_drop_ip | ( | dessert_msg_t * | msg, | |
size_t | len, | |||
dessert_msg_proc_t * | proc, | |||
const dessert_meshif_t * | meshif, | |||
dessert_frameid_t | id | |||
) |
Drop messages without Ethernet extension.
Drop all DES-SERT messages with an Ethernet extension.
- Parameters:
-
*msg dessert_msg_t frame received len length of the buffer pointed to from dessert_msg_t *proc local processing buffer passed along the callback pipeline - may be NULL *meshif interface received packet on - may be NULL id unique internal frame id of the packet
- Return values:
-
DESSERT_MSG_KEEP if Ethernet extension is available DESSERT_MSG_DROP if Ethernet extension is missing
int dessert_mesh_ipttl | ( | dessert_msg_t * | msg, | |
size_t | len, | |||
dessert_msg_proc_t * | proc, | |||
const dessert_meshif_t * | meshif, | |||
dessert_frameid_t | id | |||
) |
Enable IP-based tracing.
This extension decrements the TTL in IPv4 or the Hop-Limit field in IPv6 datagrams. If the value drops to 1, the datagram in the DES-SERT message is decapsulated and handed to the IP implementation of the operating system. Depending on the configuration, the IP implementation will send an ICMP time-exceeded message. This enables tracing despite the transparent underlay routing applied in DES-SERT.
- Parameters:
-
*msg dessert_msg_t frame received len length of the buffer pointed to from dessert_msg_t *proc local processing buffer passed along the callback pipeline - may be NULL *meshif interface received packet on - may be NULL id unique internal frame id of the packet
- Return values:
-
DESSERT_MSG_KEEP if TTL or Hop Limit > 1 DESSERT_MSG_DROP if TTL or Hop Limit <= 1
int dessert_mesh_ping | ( | dessert_msg_t * | msg, | |
size_t | len, | |||
dessert_msg_proc_t * | proc, | |||
const dessert_meshif_t * | meshif, | |||
dessert_frameid_t | id | |||
) |
Handle ping packets.
- Parameters:
-
*msg dessert_msg_t frame received len length of the buffer pointed to from dessert_msg_t *proc local processing buffer passed along the callback pipeline - may be NULL *meshif interface received packet on - may be NULL id unique internal frame id of the packet
- Return values:
-
DESSERT_MSG_DROP if the ping is destined to this host DESSERT_MSG_KEEP if some other host is the destination
int dessert_mesh_pong | ( | dessert_msg_t * | msg, | |
size_t | len, | |||
dessert_msg_proc_t * | proc, | |||
const dessert_meshif_t * | meshif, | |||
dessert_frameid_t | id | |||
) |
Handle pong packets.
- Parameters:
-
*msg dessert_msg_t frame received len length of the buffer pointed to from dessert_msg_t *proc local processing buffer passed along the callback pipeline - may be NULL *meshif interface received packet on - may be NULL id unique internal frame id of the packet
- Return values:
-
DESSERT_MSG_DROP if the pong is destined to this host DESSERT_MSG_KEEP if some other host is the destination
int dessert_mesh_trace | ( | dessert_msg_t * | msg, | |
size_t | len, | |||
dessert_msg_proc_t * | proc, | |||
const dessert_meshif_t * | meshif, | |||
dessert_frameid_t | id | |||
) |
Handle trace packets.
Prints the content of a trace request packet and sends the same packet with an appended trace reply extension back if no trace reply is yet present. If there is a trace request and a trace reply extension, both are printed but no packet is send. The whole trace mechanism is basically a ping/pong with additional tracing.
- Parameters:
-
*msg dessert_msg_t frame received len length of the buffer pointed to from dessert_msg_t *proc local processing buffer passed along the callback pipeline - may be NULL *meshif interface received packet on - may be NULL id unique internal frame id of the packet
- Return values:
-
DESSERT_MSG_DROP if this host is the destination of the trace request DESSERT_MSG_KEEP if this host is not the destination of the trace request