MAC Address Filtering#

API and Callbacks for the MAC Address Filtering Component.

This plugin artificially limits what the stack hears by filtering the packets just above the lower MAC. The plugin can be configured on the fly via CLI with the short or long address of devices whose packets will be dropped or allowed. There are two lists, a short address list (2-byte node ID) and a long address list (8-byte IEEE address). Each list may be configured as either an allow list or block list. The default is a block list with no addresses configured (accept all packets normally). A separate option allows or drops packets with no address information (e.g., Beacon Requests). NOTE: The radio will still generate and process MAC ACKs for packets. This plugin cannot be used to effect the behavior of MAC ACKs, which are handled by the RAIL library and radio hardware.

Modules#

sli_802154_mac_address_filter_option_description_t

sli_zigbee_long_addres_filter_match_struct_t

sli_zigbee_short_addres_filter_match_struct_t

sli_802154_pan_id_filter_match_struct_t

sli_802154_mac_address_filter_globals_t

MAC Address Filtering

API#

void

Clear all lists for MAC address filtering.

void

Clears all packet counts for all modes.

sl_zigbee_af_mac_address_filtering_get_stats_for_short_address(uint8_t index, uint32_t *matchCountForIndexPtr)

Get stats for a short address.

void
sl_zigbee_af_mac_address_filtering_get_stats(bool shortMode, uint32_t *allowedPacketCountPtr, uint32_t *droppedPacketCountPtr, uint32_t *totalPacketCountPtr)

Get MAC address filtering stats. Get the allowed, dropped and total packet counts.

void

Set the decision to manupulate the MAC address filtering tables.

void

Add the short address.

void

Add the long address.

void

Add the panID.

void

Set the short address list type.

void

Set the long address list type.

void

Set the list type of panId list.

Enumerations#

enum
MAC_ADDRESS_MODE_NONE = 0
MAC_ADDRESS_MODE_SHORT = 1
MAC_ADDRESS_MODE_LONG = 2
}
enum
MAC_FILTER_TYPE_NO_ADDRESS = 0
MAC_FILTER_TYPE_SHORT_ADDRESS = 1
MAC_FILTER_TYPE_LONG_ADDRESS = 2
MAC_FILTER_TYPE_PAN_ID = 3
}
enum
ALLOW_PACKET = 0
DROP_PACKET = 1
}

Typedefs#

Macros#

#define
#define
debug (...)
#define
MAC_FILTER_OPTIONS_NO_ADDRESS_MASK (1 << MAC_FILTER_TYPE_NO_ADDRESS)
#define
MAC_FILTER_OPTIONS_SHORT_ADDRESS_LIST_MASK (1 << MAC_FILTER_TYPE_SHORT_ADDRESS)
#define
MAC_FILTER_OPTIONS_LONG_ADDRESS_LIST_MASK (1 << MAC_FILTER_TYPE_LONG_ADDRESS)
#define
MAC_FILTER_OPTIONS_DEST_PAN_ID_LIST_MASK (1 << MAC_FILTER_TYPE_PAN_ID)
#define

API Documentation#

sl_zigbee_af_mac_address_filtering_clear_all#

void sl_zigbee_af_mac_address_filtering_clear_all (void )

Clear all lists for MAC address filtering.

Parameters
N/A

Definition at line 220 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_clear_stats#

void sl_zigbee_af_mac_address_filtering_clear_stats (void )

Clears all packet counts for all modes.

Parameters
N/A

Definition at line 223 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_get_stats_for_short_address#

sl_status_t sl_zigbee_af_mac_address_filtering_get_stats_for_short_address (uint8_t index, uint32_t * matchCountForIndexPtr)

Get stats for a short address.

Parameters
N/Aindex

Ver.: always

N/AmatchCountForIndexPtr

Ver.: always

Returns

  • sl_status_t status code


Definition at line 233 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_get_stats#

void sl_zigbee_af_mac_address_filtering_get_stats (bool shortMode, uint32_t * allowedPacketCountPtr, uint32_t * droppedPacketCountPtr, uint32_t * totalPacketCountPtr)

Get MAC address filtering stats. Get the allowed, dropped and total packet counts.

Parameters
N/AshortMode

Ver.: always

N/AallowedPacketCountPtr

Ver.: always

N/AdroppedPacketCountPtr

Ver.: always

N/AtotalPacketCountPtr

Ver.: always


Definition at line 243 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_filter_no_address#

void sl_zigbee_af_mac_address_filtering_filter_no_address (bool filterNoAddress)

Set the decision to manupulate the MAC address filtering tables.

Parameters
N/AfilterNoAddress

Ver.:always


Definition at line 252 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_add_short_address#

void sl_zigbee_af_mac_address_filtering_add_short_address (sl_802154_short_addr_t nodeId)

Add the short address.

Parameters
N/AnodeId

Ver.:always


Definition at line 258 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_add_long_address#

void sl_zigbee_af_mac_address_filtering_add_long_address (sl_802154_long_addr_t eui64)

Add the long address.

Parameters
N/Aeui64

Ver.:always


Definition at line 264 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_add_pan_id#

void sl_zigbee_af_mac_address_filtering_add_pan_id (sl_802154_pan_id_t panId)

Add the panID.

Parameters
N/ApanId

Ver.:always


Definition at line 270 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_set_short_address_list_type#

void sl_zigbee_af_mac_address_filtering_set_short_address_list_type (uint8_t * listType)

Set the short address list type.

Parameters
N/AlistType

Ver.:always, listType can be "set-whitelist" or "set-blacklist".


Definition at line 276 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_set_long_address_list_type#

void sl_zigbee_af_mac_address_filtering_set_long_address_list_type (uint8_t * listType)

Set the long address list type.

Parameters
N/AlistType

Ver.:always, listType can be "set-whitelist" or "set-blacklist".


Definition at line 282 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sl_zigbee_af_mac_address_filtering_set_pan_id_list_type#

void sl_zigbee_af_mac_address_filtering_set_pan_id_list_type (uint8_t * listType)

Set the list type of panId list.

Parameters
N/AlistType

Ver.:always, listType can be "set-whitelist" or "set-blacklist".


Definition at line 288 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

Enumeration Documentation#

sli_802154_mac_address_mode_t#

sli_802154_mac_address_mode_t
Enumerator
MAC_ADDRESS_MODE_NONE
MAC_ADDRESS_MODE_SHORT
MAC_ADDRESS_MODE_LONG

Definition at line 132 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sli_802154_mac_filter_type_t#

sli_802154_mac_filter_type_t
Enumerator
MAC_FILTER_TYPE_NO_ADDRESS
MAC_FILTER_TYPE_SHORT_ADDRESS
MAC_FILTER_TYPE_LONG_ADDRESS
MAC_FILTER_TYPE_PAN_ID

Definition at line 144 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

sli_zigbee_filter_result_t#

sli_zigbee_filter_result_t
Enumerator
ALLOW_PACKET
DROP_PACKET

Definition at line 203 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

Typedef Documentation#

MacAddressFilterOptions#

typedef uint8_t MacAddressFilterOptions

Definition at line 150 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

Variable Documentation#

macAddressFilterData#

sli_802154_mac_address_filter_globals_t macAddressFilterData

Definition at line 210 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

zeroEui64#

const sl_802154_long_addr_t zeroEui64

Definition at line 212 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

Macro Definition Documentation#

expectCheckpoint#

#define expectCheckpoint

Definition at line 51 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

debug#

#define debug

Definition at line 52 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

SL_ZIGBEE_TEST_ASSERT#

#define SL_ZIGBEE_TEST_ASSERT

Definition at line 69 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_NO_ADDRESS_MASK#

#define MAC_FILTER_OPTIONS_NO_ADDRESS_MASK
Value:
  (1 << MAC_FILTER_TYPE_NO_ADDRESS)

Definition at line 72 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_SHORT_ADDRESS_LIST_MASK#

#define MAC_FILTER_OPTIONS_SHORT_ADDRESS_LIST_MASK
Value:
  (1 << MAC_FILTER_TYPE_SHORT_ADDRESS)

Definition at line 74 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_LONG_ADDRESS_LIST_MASK#

#define MAC_FILTER_OPTIONS_LONG_ADDRESS_LIST_MASK
Value:
  (1 << MAC_FILTER_TYPE_LONG_ADDRESS)

Definition at line 76 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_DEST_PAN_ID_LIST_MASK#

#define MAC_FILTER_OPTIONS_DEST_PAN_ID_LIST_MASK
Value:
  (1 << MAC_FILTER_TYPE_PAN_ID)

Definition at line 78 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_COUNT#

#define MAC_FILTER_OPTIONS_COUNT
Value:
4

Definition at line 82 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_DROP_NO_ADDRESS#

#define MAC_FILTER_OPTIONS_DROP_NO_ADDRESS
Value:
0x00

Definition at line 84 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_SHORT_ADDRESS_BLACKLIST#

#define MAC_FILTER_OPTIONS_SHORT_ADDRESS_BLACKLIST
Value:
0x00

Definition at line 85 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_LONG_ADDRESS_BLACKLIST#

#define MAC_FILTER_OPTIONS_LONG_ADDRESS_BLACKLIST
Value:
0x00

Definition at line 86 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_ALLOW_NO_ADDRESS#

#define MAC_FILTER_OPTIONS_ALLOW_NO_ADDRESS
Value:
0x01

Definition at line 88 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_SHORT_ADDRESS_WHITELIST#

#define MAC_FILTER_OPTIONS_SHORT_ADDRESS_WHITELIST
Value:
0x02

Definition at line 89 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_LONG_ADDRESS_WHITELIST#

#define MAC_FILTER_OPTIONS_LONG_ADDRESS_WHITELIST
Value:
0x04

Definition at line 90 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_DEST_PAN_ID_WHITELIST#

#define MAC_FILTER_OPTIONS_DEST_PAN_ID_WHITELIST
Value:
0x08

Definition at line 92 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_DEST_PAN_ID_BLACKLIST#

#define MAC_FILTER_OPTIONS_DEST_PAN_ID_BLACKLIST
Value:
0x00

Definition at line 93 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

BROADCAST_PAN_ID#

#define BROADCAST_PAN_ID
Value:
0xFFFF

Definition at line 95 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FILTER_OPTIONS_DEFAULTS#

#define MAC_FILTER_OPTIONS_DEFAULTS
Value:
(MAC_FILTER_OPTIONS_SHORT_ADDRESS_BLACKLIST \
| MAC_FILTER_OPTIONS_LONG_ADDRESS_BLACKLIST \
| MAC_FILTER_OPTIONS_ALLOW_NO_ADDRESS \
| MAC_FILTER_OPTIONS_DEST_PAN_ID_BLACKLIST)

Definition at line 99 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_FRAME_TYPE_MASK#

#define MAC_FRAME_CONTROL_FRAME_TYPE_MASK
Value:
0x0007

Definition at line 104 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_FRAME_TYPE_BEACON#

#define MAC_FRAME_CONTROL_FRAME_TYPE_BEACON
Value:
0x0000

Definition at line 105 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_FRAME_TYPE_DATA#

#define MAC_FRAME_CONTROL_FRAME_TYPE_DATA
Value:
0x0001

Definition at line 106 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_FRAME_TYPE_ACK#

#define MAC_FRAME_CONTROL_FRAME_TYPE_ACK
Value:
0x0002

Definition at line 107 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_FRAME_TYPE_COMMAND#

#define MAC_FRAME_CONTROL_FRAME_TYPE_COMMAND
Value:
0x0003

Definition at line 108 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_VERSION_MASK#

#define MAC_FRAME_CONTROL_VERSION_MASK
Value:
0x3000

Definition at line 110 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_VERSION_SHIFT#

#define MAC_FRAME_CONTROL_VERSION_SHIFT
Value:
12

Definition at line 111 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_VERSION_2003#

#define MAC_FRAME_CONTROL_VERSION_2003
Value:
0x0000

Definition at line 112 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_VERSION_2012#

#define MAC_FRAME_CONTROL_VERSION_2012
Value:
0x0002

Definition at line 113 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_SOURCE_ADDRESS_MODE_SHIFT#

#define MAC_FRAME_CONTROL_SOURCE_ADDRESS_MODE_SHIFT
Value:
14

Definition at line 115 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_ADDRESS_MODE_MASK#

#define MAC_FRAME_CONTROL_ADDRESS_MODE_MASK
Value:
0x0003

Definition at line 117 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_ADDRESS_MODE_NONE#

#define MAC_FRAME_CONTROL_ADDRESS_MODE_NONE
Value:
0x0000

Definition at line 118 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_ADDRESS_MODE_RESERVED#

#define MAC_FRAME_CONTROL_ADDRESS_MODE_RESERVED
Value:
0x0001

Definition at line 119 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_ADDRESS_MODE_SHORT#

#define MAC_FRAME_CONTROL_ADDRESS_MODE_SHORT
Value:
0x0002

Definition at line 120 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_ADDRESS_MODE_LONG#

#define MAC_FRAME_CONTROL_ADDRESS_MODE_LONG
Value:
0x0003

Definition at line 121 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_DEST_ADDRESS_MODE_SHIFT#

#define MAC_FRAME_CONTROL_DEST_ADDRESS_MODE_SHIFT
Value:
10

Definition at line 123 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_DEST_ADDRESS_MODE_NONE#

#define MAC_FRAME_CONTROL_DEST_ADDRESS_MODE_NONE
Value:
0x0000

Definition at line 125 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

MAC_FRAME_CONTROL_PANID_COMPRESSION#

#define MAC_FRAME_CONTROL_PANID_COMPRESSION
Value:
0x0040

Definition at line 127 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h

WHITELIST_CHARACTER_INDEX#

#define WHITELIST_CHARACTER_INDEX
Value:
4

Definition at line 129 of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h