STM32F7 Ethernet interface for nucleo STM32F767

Embed: (wiki syntax)

« Back to documentation index

mac_filter_api.h File Reference

mac_filter_api.h File Reference

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

Removing a MAC filter

Setting up address mapping for filter

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_idNetwork Interface.
mac64Extended address.
mac16Return 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_idNetwork interface ID.
mac64[out]Return buffer for the extended address.
mac16Short 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_idNetwork interface ID.
mac64Long address.
lqi_mLQI multiplier (8.8 Fixed point multiplier).
lqi_addValue added to LQI.
dbm_mDBM multiplier (8.8 Fixed point multiplier).
dbm_addValue 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_idNetwork interface ID.
mac16Short address.
lqi_mLQI multiplier (8.8 Fixed point multiplier).
lqi_addValue added to LQI.
dbm_mDBM multiplier (8.8 Fixed point multiplier).
dbm_addValue 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_idNetwork 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_idNetwork interface ID.
mac64Long 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_idNetwork interface ID.
mac16Short 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_idNetwork interface ID.
long_cbAddress mapping to resolve long address from short address.
short_cbAddress 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_idNetwork interface ID.
lqi_mLQI multiplier (8.8 Fixed point multiplier).
lqi_addValue added to LQI.
dbm_mDBM multiplier (8.8 Fixed point multiplier).
dbm_addValue 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_idNetwork interface ID.
Returns:
0, OK.
<0 Not OK.