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#
MacAddressFilterOptionsDescription
API#
Clear all lists for MAC address filtering.
Get stats for a short address.
Get MAC address filtering stats. Get the allowed, dropped and total packet counts.
Set the decision to manupulate the MAC address filtering tables.
Add the short address.
Add the long address.
Add the panID.
Set the short address list type.
Set the long address list type.
Set the list type of panId list.
Enumerations#
Typedefs#
Macros#
API Documentation#
emberAfPluginMacAddressFilteringClearAll#
void emberAfPluginMacAddressFilteringClearAll (void )
Clear all lists for MAC address filtering.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| void | N/A | * arguments Ver.: always |
emberAfPluginMacAddressFilteringGetStatsForShortAddress#
EmberStatus emberAfPluginMacAddressFilteringGetStatsForShortAddress (uint8_t index, uint32_t * matchCountForIndexPtr)
Get stats for a short address.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint8_t | N/A | index | Ver.: always |
| uint32_t * | N/A | matchCountForIndexPtr | Ver.: always |
Returns
EmberStatus status code
emberAfPluginMacAddressFilteringGetStats#
void emberAfPluginMacAddressFilteringGetStats (bool shortMode, uint32_t * allowedPacketCountPtr, uint32_t * droppedPacketCountPtr, uint32_t * totalPacketCountPtr)
Get MAC address filtering stats. Get the allowed, dropped and total packet counts.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| bool | N/A | shortMode | Ver.: always |
| uint32_t * | N/A | allowedPacketCountPtr | Ver.: always |
| uint32_t * | N/A | droppedPacketCountPtr | Ver.: always |
| uint32_t * | N/A | totalPacketCountPtr | Ver.: always |
emberAfPluginMacAddressFilteringFilterNoAddress#
void emberAfPluginMacAddressFilteringFilterNoAddress (bool filterNoAddress)
Set the decision to manupulate the MAC address filtering tables.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| bool | N/A | filterNoAddress | Ver.:always |
emberAfPluginMacAddressFilteringAddShortAddress#
void emberAfPluginMacAddressFilteringAddShortAddress (EmberNodeId nodeId)
Add the short address.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberNodeId | N/A | nodeId | Ver.:always |
emberAfPluginMacAddressFilteringAddLongAddress#
void emberAfPluginMacAddressFilteringAddLongAddress (EmberEUI64 eui64)
Add the long address.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberEUI64 | N/A | eui64 | Ver.:always |
emberAfPluginMacAddressFilteringAddPanId#
void emberAfPluginMacAddressFilteringAddPanId (EmberPanId panId)
Add the panID.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberPanId | N/A | panId | Ver.:always |
emberAfPluginMacAddressFilteringSetShortAddressListType#
void emberAfPluginMacAddressFilteringSetShortAddressListType (uint8_t * listType)
Set the short address list type.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint8_t * | N/A | listType | Ver.:always, listType can be "set-whitelist" or "set-blacklist". |
emberAfPluginMacAddressFilteringSetLongAddressListType#
void emberAfPluginMacAddressFilteringSetLongAddressListType (uint8_t * listType)
Set the long address list type.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint8_t * | N/A | listType | Ver.:always, listType can be "set-whitelist" or "set-blacklist". |
emberAfPluginMacAddressFilteringSetPanIdListType#
void emberAfPluginMacAddressFilteringSetPanIdListType (uint8_t * listType)
Set the list type of panId list.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint8_t * | N/A | listType | Ver.:always, listType can be "set-whitelist" or "set-blacklist". |
Enumeration Documentation#
MacAddressMode#
MacAddressMode
| Enumerator | |
|---|---|
| MAC_ADDRESS_MODE_NONE | |
| MAC_ADDRESS_MODE_SHORT | |
| MAC_ADDRESS_MODE_LONG | |
MacFilterType#
MacFilterType
| Enumerator | |
|---|---|
| MAC_FILTER_TYPE_NO_ADDRESS | |
| MAC_FILTER_TYPE_SHORT_ADDRESS | |
| MAC_FILTER_TYPE_LONG_ADDRESS | |
| MAC_FILTER_TYPE_PAN_ID | |
Variable Documentation#
Macro Definition Documentation#
MAC_FILTER_OPTIONS_NO_ADDRESS_MASK#
#define MAC_FILTER_OPTIONS_NO_ADDRESS_MASKValue:
(1 << MAC_FILTER_TYPE_NO_ADDRESS)
MAC_FILTER_OPTIONS_SHORT_ADDRESS_LIST_MASK#
#define MAC_FILTER_OPTIONS_SHORT_ADDRESS_LIST_MASKValue:
(1 << MAC_FILTER_TYPE_SHORT_ADDRESS)
MAC_FILTER_OPTIONS_LONG_ADDRESS_LIST_MASK#
#define MAC_FILTER_OPTIONS_LONG_ADDRESS_LIST_MASKValue:
(1 << MAC_FILTER_TYPE_LONG_ADDRESS)
MAC_FILTER_OPTIONS_DEST_PAN_ID_LIST_MASK#
#define MAC_FILTER_OPTIONS_DEST_PAN_ID_LIST_MASKValue:
(1 << MAC_FILTER_TYPE_PAN_ID)
MAC_FILTER_OPTIONS_SHORT_ADDRESS_BLACKLIST#
#define MAC_FILTER_OPTIONS_SHORT_ADDRESS_BLACKLISTValue:
0x00
MAC_FILTER_OPTIONS_LONG_ADDRESS_BLACKLIST#
#define MAC_FILTER_OPTIONS_LONG_ADDRESS_BLACKLISTValue:
0x00
MAC_FILTER_OPTIONS_SHORT_ADDRESS_WHITELIST#
#define MAC_FILTER_OPTIONS_SHORT_ADDRESS_WHITELISTValue:
0x02
MAC_FILTER_OPTIONS_LONG_ADDRESS_WHITELIST#
#define MAC_FILTER_OPTIONS_LONG_ADDRESS_WHITELISTValue:
0x04
MAC_FILTER_OPTIONS_DEFAULTS#
#define MAC_FILTER_OPTIONS_DEFAULTSValue:
MAC_FRAME_CONTROL_SOURCE_ADDRESS_MODE_SHIFT#
#define MAC_FRAME_CONTROL_SOURCE_ADDRESS_MODE_SHIFTValue:
14
MAC_FRAME_CONTROL_DEST_ADDRESS_MODE_NONE#
#define MAC_FRAME_CONTROL_DEST_ADDRESS_MODE_NONEValue:
0x0000