Rtos API example
API to allow filtering of packets based upon link quality and received power levels. More...
Go to the source code of this file.
Typedefs | |
typedef int_fast8_t( | mac_filter_map_extented_to_short_cb )(int8_t interface_id, uint8_t mac64[8], uint16_t *mac16) |
Map the extended address to the short address. | |
typedef int_fast8_t( | mac_filter_map_short_to_extended_cb )(int8_t interface_id, uint8_t mac64[8], uint16_t mac16) |
Map short address to extended address. | |
Functions | |
int_fast8_t | mac_filter_start (int8_t interface_id, int16_t lqi_m, int16_t lqi_add, int16_t dbm_m, int16_t dbm_add) |
Start MAC level filter. | |
void | mac_filter_stop (int8_t interface_id) |
Stop MAC level filter. | |
int_fast8_t | mac_filter_clear (int8_t interface_id) |
Delete all filters. | |
int_fast8_t | mac_filter_set_address_mapping (int8_t interface_id, mac_filter_map_short_to_extended_cb *long_cb, mac_filter_map_extented_to_short_cb *short_cb) |
Register address mapping functions. | |
int_fast8_t | mac_filter_delete_short (int8_t interface_id, uint16_t mac16) |
Delete filter for device. | |
int_fast8_t | mac_filter_delete_long (int8_t interface_id, uint8_t mac64[8]) |
Delete filter for device. | |
int_fast8_t | mac_filter_add_short (int8_t interface_id, uint16_t mac16, int16_t lqi_m, int16_t lqi_add, int16_t dbm_m, int16_t dbm_add) |
Add MAC short address filter. | |
int_fast8_t | mac_filter_add_long (int8_t interface_id, uint8_t mac64[8], int16_t lqi_m, int16_t lqi_add, int16_t dbm_m, int16_t dbm_add) |
Add MAC long address filter. |
Detailed Description
API to allow filtering of packets based upon link quality and received power levels.
Applying a MAC filter
- mac_filter_start(), Starts a MAC level filter.
- mac_filter_add_short(), Adds a filter using short MAC address.
- mac_filter_add_long(), Adds a filter using long MAC address.
Removing a MAC filter
- mac_filter_stop(), Stops MAC level filter and clears all defaults.
- mac_filter_clear(), Stops MAC level filter and leaves the default link configuration.
- mac_filter_delete_short(), Deletes filter for a device specified by short MAC address.
- mac_filter_delete_long(), Deletes filter for a device specified by long MAC address.
Setting up address mapping for filter
- mac_filter_set_address_mapping(), Registers address mapping functions.
Helper macros
- mac_filter_start(interface_id, MAC_FILTER_BLOCKED), Black list filter.
- mac_filter_start(interface_id, MAC_FILTER_ALLOWED), White list filter not modifying the qualities.
- mac_filter_start(interface_id, MAC_FILTER_FIXED(0x01, -80)), Fixed value for default link quality (poor quality).
- mac_filter_start(interface_id, MAC_FILTER_FIXED(0xff, -20)), Fixed value for default link quality (good quality).
- mac_filter_add_short(interface_id, 0x0001, MAC_FILTER_BLOCKED)
- mac_filter_add_short(interface_id, 0x0001, MAC_FILTER_ALLOWED)
- mac_filter_add_short(interface_id, 0x0001, MAC_FILTER_FIXED(0xff,-30))
- mac_filter_add_long(interface_id, mac64, MAC_FILTER_BLOCKED)
- mac_filter_add_long(interface_id, mac64, MAC_FILTER_ALLOWED)
- mac_filter_add_long(interface_id, mac64, MAC_FILTER_FIXED(0x7f, -60))
Definition in file mac_filter_api.h.
Typedef Documentation
typedef int_fast8_t( mac_filter_map_extented_to_short_cb)(int8_t interface_id, uint8_t mac64[8], uint16_t *mac16) |
Map the extended address to the short address.
- Parameters:
-
interface_id Network Interface. mac64 Extended address. mac16 Return the short address.
- Returns:
- 0, address resolved.
- <0 No mapping found.
Definition at line 115 of file mac_filter_api.h.
typedef int_fast8_t( mac_filter_map_short_to_extended_cb)(int8_t interface_id, uint8_t mac64[8], uint16_t mac16) |
Map short address to extended address.
- Parameters:
-
interface_id Network interface ID. mac64[out] Return buffer for the extended address. mac16 Short address.
return 0, address resolved. return <0 no mapping found.
Definition at line 127 of file mac_filter_api.h.
Function Documentation
int_fast8_t mac_filter_add_long | ( | int8_t | interface_id, |
uint8_t | mac64[8], | ||
int16_t | lqi_m, | ||
int16_t | lqi_add, | ||
int16_t | dbm_m, | ||
int16_t | dbm_add | ||
) |
Add MAC long address filter.
- Parameters:
-
interface_id Network interface ID. mac64 Long address. lqi_m LQI multiplier (8.8 Fixed point multiplier). lqi_add Value added to LQI. dbm_m DBM multiplier (8.8 Fixed point multiplier). dbm_add Value added to DBM.
- Returns:
- 0, OK.
- <0 Not OK.
int_fast8_t mac_filter_add_short | ( | int8_t | interface_id, |
uint16_t | mac16, | ||
int16_t | lqi_m, | ||
int16_t | lqi_add, | ||
int16_t | dbm_m, | ||
int16_t | dbm_add | ||
) |
Add MAC short address filter.
- Parameters:
-
interface_id Network interface ID. mac16 Short address. lqi_m LQI multiplier (8.8 Fixed point multiplier). lqi_add Value added to LQI. dbm_m DBM multiplier (8.8 Fixed point multiplier). dbm_add Value added to DBM.
- Returns:
- 0, OK.
- <0 Not OK.
int_fast8_t mac_filter_clear | ( | int8_t | interface_id ) |
Delete all filters.
Leaves the default link configuration.
- Parameters:
-
interface_id Network interface ID.
- Returns:
- 0, OK.
- <0 Not OK.
int_fast8_t mac_filter_delete_long | ( | int8_t | interface_id, |
uint8_t | mac64[8] | ||
) |
Delete filter for device.
- Parameters:
-
interface_id Network interface ID. mac64 Long address.
- Returns:
- 0, OK
- <0 Not OK
int_fast8_t mac_filter_delete_short | ( | int8_t | interface_id, |
uint16_t | mac16 | ||
) |
Delete filter for device.
- Parameters:
-
interface_id Network interface ID. mac16 Short address.
- Returns:
- 0, OK.
- <0 Not OK.
int_fast8_t mac_filter_set_address_mapping | ( | int8_t | interface_id, |
mac_filter_map_short_to_extended_cb * | long_cb, | ||
mac_filter_map_extented_to_short_cb * | short_cb | ||
) |
Register address mapping functions.
This function should be added for layer in stack that keeps up the list of address mapping functions. If filters are enabled these functions are called if no match from filters was found.
When this service is no longer provided call this function with NULL pointers.
- Parameters:
-
interface_id Network interface ID. long_cb Address mapping to resolve long address from short address. short_cb Address mapping to resolve short address from long address.
- Returns:
- 0, OK.
- <0 Not OK.
int_fast8_t mac_filter_start | ( | int8_t | interface_id, |
int16_t | lqi_m, | ||
int16_t | lqi_add, | ||
int16_t | dbm_m, | ||
int16_t | dbm_add | ||
) |
Start MAC level filter.
This function can be called again if default values are modified.
- Parameters:
-
interface_id Network interface ID. lqi_m LQI multiplier (8.8 Fixed point multiplier). lqi_add Value added to LQI. dbm_m DBM multiplier (8.8 Fixed point multiplier). dbm_add Value added to DBM.
- Returns:
- 0, OK.
- <0 Not OK.
void mac_filter_stop | ( | int8_t | interface_id ) |
Stop MAC level filter.
Stops the filtering module and clears the default settings and all the filterings made.
- Parameters:
-
interface_id Network interface ID.
- Returns:
- 0, OK.
- <0 Not OK.
Generated on Sun Jul 17 2022 08:25:35 by 1.7.2