EXTERNAL / PUBLIC. More...
Defines | |
| #define | DESSERT_MSG_NEEDNOSPARSE 1 |
| return code for dessert_meshrxcb_t - forces to copy the message and call again | |
| #define | DESSERT_MSG_NEEDMSGPROC 2 |
| return code for dessert_meshrxcb_t - forces to generate processing info and call again | |
| #define | DESSERT_MSG_KEEP 0 |
| return code for dessert_meshrxcb_t and dessert_sysrxcb_t | |
| #define | DESSERT_MSG_DROP -1 |
| return code for dessert_meshrxcb_t and dessert_sysrxcb_t | |
| #define | DESSERT_IF_PROMISC 0x0 |
| flag for dessert_meshif_add - set interface in promiscuous-mode (default) | |
| #define | DESSERT_IF_NOPROMISC 0x1 |
| flag for dessert_meshif_add - do not set interface in promiscuous-mode | |
| #define | DESSERT_IF_FILTER 0x0 |
| flag for dessert_meshif_add - filter out non-des-sert frames in libpcap (default) | |
| #define | DESSERT_IF_NOFILTER 0x2 |
| flag for dessert_meshif_add - do not filter out non-des-sert frames in libpcap | |
Functions | |
| int | dessert_meshsend (const dessert_msg_t *msgin, const dessert_meshif_t *iface) |
| Sends a dessert message via the specified interface or all interfaces. | |
| int | dessert_meshsend_allbutone (const dessert_msg_t *msgin, const dessert_meshif_t *iface) |
| Sends a dessert message via all interfaces, except via the specified interface. | |
| int | dessert_meshsend_hwaddr (const dessert_msg_t *msgin, const uint8_t hwaddr[ETHER_ADDR_LEN]) |
| Sends a dessert message via the interface which is identified by the given hardware address. | |
| int | dessert_meshsend_randomized (const dessert_msg_t *msgin) |
| Sends a dessert message via all interfaces in a randomized fashion. | |
| int | dessert_meshsend_fast (dessert_msg_t *msg, const dessert_meshif_t *iface) |
| Sends a dessert message fast via the specified interface or all interfaces. | |
| int | dessert_meshsend_fast_allbutone (dessert_msg_t *msg, const dessert_meshif_t *iface) |
| Sends a dessert message fast via all interfaces, except the specified interface. | |
| int | dessert_meshsend_fast_hwaddr (dessert_msg_t *msg, const uint8_t hwaddr[ETHER_ADDR_LEN]) |
| Sends a dessert message fast via the interface specified by the given hardware address. | |
| int | dessert_meshsend_fast_randomized (dessert_msg_t *msgin) |
| Sends a dessert message fast via all interfaces in a randomized fashion. | |
| int | dessert_meshsend_raw (dessert_msg_t *msg, const dessert_meshif_t *iface) |
| Sends a dessert message msg via the specified interface iface or all interfaces. | |
| int | dessert_meshrxcb_add (dessert_meshrxcb_t *c, int prio) |
| Adds a callback function to the meshrx pipeline. | |
| int | dessert_meshrxcb_del (dessert_meshrxcb_t *c) |
| Removes all occurrences of the given callback function c from the meshrx pipeline. | |
| int | dessert_meshif_add (const char *dev, uint8_t flags) |
| Initializes given mesh interface, starts up the packet processor thread. | |
| int | dessert_meshif_del (const char *dev) |
| Removes the corresponding dessert_meshif struct from _dessert_meshiflist and does some cleanup. | |
| dessert_meshif_t * | dessert_meshif_get_name (const char *dev) |
| Looks for mesh interface with name dev in the list of mesh interfaces and returns a pointer to it. | |
| dessert_meshif_t * | dessert_meshif_get_hwaddr (const uint8_t hwaddr[ETHER_ADDR_LEN]) |
| Looks for mesh interface with hardware address hwaddr in the list of mesh interfaces and returns a pointer to it. | |
| dessert_meshif_t * | dessert_meshiflist_get (void) |
| Returns the head of the list of mesh interfaces (_desert_meshiflist). | |
EXTERNAL / PUBLIC.
| int dessert_meshif_add | ( | const char * | dev, | |
| uint8_t | flags | |||
| ) |
Initializes given mesh interface, starts up the packet processor thread.
| [in] | *dev | interface name |
| [in] | flags |
| DESSERT_OK | on success | |
| DESSERT_ERR | on error |
DESCRIPTION:

| int dessert_meshif_del | ( | const char * | dev | ) |
Removes the corresponding dessert_meshif struct from _dessert_meshiflist and does some cleanup.
| [in] | dev | interface name to remove from list |
| DESSERT_OK | on success | |
| -errno | on error |
DESCRIPTION:
| dessert_meshif_t* dessert_meshif_get_hwaddr | ( | const uint8_t | hwaddr[ETHER_ADDR_LEN] | ) |
Looks for mesh interface with hardware address hwaddr in the list of mesh interfaces and returns a pointer to it.
| [in] | *hwaddr | interface hardware address |
| pointer | if the interface is found | |
| NULL | otherwise |
DESCRIPTION:
| dessert_meshif_t* dessert_meshif_get_name | ( | const char * | dev | ) |
Looks for mesh interface with name dev in the list of mesh interfaces and returns a pointer to it.
| [in] | *dev | interface name |
| pointer | if the interface is found | |
| NULL | otherwise |
DESCRIPTION:
| dessert_meshif_t* dessert_meshiflist_get | ( | void | ) |
Returns the head of the list of mesh interfaces (_desert_meshiflist).
| pointer | if list is not empty | |
| NULL | otherwise |
DESCRIPTION:

| int dessert_meshrxcb_add | ( | dessert_meshrxcb_t * | c, | |
| int | prio | |||
| ) |
Adds a callback function to the meshrx pipeline.
The callback going to get called if a packet is received via a dessert interface.
| [in] | c | callback function |
| [in] | prio | priority of the function - lower first! |
| DESSERT_OK | on success | |
| -errno | on error |
DESCRIPTION:
| int dessert_meshrxcb_del | ( | dessert_meshrxcb_t * | c | ) |
Removes all occurrences of the given callback function c from the meshrx pipeline.
| [in] | c | callback function pointer |
| DESSERT_OK | on success | |
| DESSERT_ERR | otherwise |
DESCRIPTION:
| int dessert_meshsend | ( | const dessert_msg_t * | msgin, | |
| const dessert_meshif_t * | iface | |||
| ) |
Sends a dessert message via the specified interface or all interfaces.
The original message buffer will not be altered, and the ethernet src address will be set correctly
| [in] | *msgin | message to send |
| [in] | *iface | interface to send from - use NULL for all interfaces |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:
| int dessert_meshsend_allbutone | ( | const dessert_msg_t * | msgin, | |
| const dessert_meshif_t * | iface | |||
| ) |
Sends a dessert message via all interfaces, except via the specified interface.
The original message buffer will not be altered, and the ethernet src address will be set correctly.
| [in] | *msgin | message to send |
| [in] | *iface | interface NOT to send from - use NULL for all interfaces |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:
| int dessert_meshsend_fast | ( | dessert_msg_t * | msg, | |
| const dessert_meshif_t * | iface | |||
| ) |
Sends a dessert message fast via the specified interface or all interfaces.
This method is faster than dessert_meshsend(), but does not check the message and may alter the message buffer.
| [in] | *msg | message to send |
| [in] | *iface | interface to send from |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:

| int dessert_meshsend_fast_allbutone | ( | dessert_msg_t * | msg, | |
| const dessert_meshif_t * | iface | |||
| ) |
Sends a dessert message fast via all interfaces, except the specified interface.
This method is faster than dessert_meshsend_allbutone(), but does not check the message and may alter the message buffer.
| [in] | *msg | message to send |
| [in] | *iface | interface to NOT send from - use NULL for all interfaces |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:

| int dessert_meshsend_fast_hwaddr | ( | dessert_msg_t * | msg, | |
| const uint8_t | hwaddr[ETHER_ADDR_LEN] | |||
| ) |
Sends a dessert message fast via the interface specified by the given hardware address.
This method is faster than dessert_meshsend_hwaddr(), but does not check the message and may alter the message buffer.
| [in] | *msg | message to send |
| [in] | *hwaddr | hardware address of the interface to send from |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:

| int dessert_meshsend_fast_randomized | ( | dessert_msg_t * | msgin | ) |
Sends a dessert message fast via all interfaces in a randomized fashion.
This method is faster than dessert_meshsend_randomized(), but does not check the message and may alter the message buffer.
| [in] | *msgin | message to send |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:

| int dessert_meshsend_hwaddr | ( | const dessert_msg_t * | msgin, | |
| const uint8_t | hwaddr[ETHER_ADDR_LEN] | |||
| ) |
Sends a dessert message via the interface which is identified by the given hardware address.
The original message buffer will not be altered, and the ethernet src address will be set correctly.
| [in] | *msgin | message to send |
| [in] | *hwaddr | hardware address of the interface to send from |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:
| int dessert_meshsend_randomized | ( | const dessert_msg_t * | msgin | ) |
Sends a dessert message via all interfaces in a randomized fashion.
The original message buffer will not be altered, and the ethernet src address will be set correctly.
| [in] | *msgin | message to send |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:
| int dessert_meshsend_raw | ( | dessert_msg_t * | msg, | |
| const dessert_meshif_t * | iface | |||
| ) |
Sends a dessert message msg via the specified interface iface or all interfaces.
This method is faster than dessert_meshsend(), but does not check the message and may alter the message buffer. In contrast to dessert_meshsend_fast() it does not write the ether_shost address.
| [in] | *msg | message to send |
| [in] | *iface | interface to send from |
| DESSERT_OK | on success | |
| EINVAL | if message is broken | |
| EIO | if message was not sent successfully |
DESCRIPTION:
1.6.2