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.
N/A | * arguments Ver.: always |
225
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringGetStatsForShortAddress#
EmberStatus emberAfPluginMacAddressFilteringGetStatsForShortAddress (uint8_t index, uint32_t * matchCountForIndexPtr)
Get stats for a short address.
N/A | index | Ver.: always |
N/A | matchCountForIndexPtr | Ver.: always |
Returns
EmberStatus status code
235
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
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.
N/A | shortMode | Ver.: always |
N/A | allowedPacketCountPtr | Ver.: always |
N/A | droppedPacketCountPtr | Ver.: always |
N/A | totalPacketCountPtr | Ver.: always |
245
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringFilterNoAddress#
void emberAfPluginMacAddressFilteringFilterNoAddress (bool filterNoAddress)
Set the decision to manupulate the MAC address filtering tables.
N/A | filterNoAddress | Ver.:always |
254
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringAddShortAddress#
void emberAfPluginMacAddressFilteringAddShortAddress (EmberNodeId nodeId)
Add the short address.
N/A | nodeId | Ver.:always |
260
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringAddLongAddress#
void emberAfPluginMacAddressFilteringAddLongAddress (EmberEUI64 eui64)
Add the long address.
N/A | eui64 | Ver.:always |
266
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringAddPanId#
void emberAfPluginMacAddressFilteringAddPanId (EmberPanId panId)
Add the panID.
N/A | panId | Ver.:always |
272
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringSetShortAddressListType#
void emberAfPluginMacAddressFilteringSetShortAddressListType (uint8_t * listType)
Set the short address list type.
N/A | listType | Ver.:always, listType can be "set-whitelist" or "set-blacklist". |
278
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringSetLongAddressListType#
void emberAfPluginMacAddressFilteringSetLongAddressListType (uint8_t * listType)
Set the long address list type.
N/A | listType | Ver.:always, listType can be "set-whitelist" or "set-blacklist". |
284
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
emberAfPluginMacAddressFilteringSetPanIdListType#
void emberAfPluginMacAddressFilteringSetPanIdListType (uint8_t * listType)
Set the list type of panId list.
N/A | listType | Ver.:always, listType can be "set-whitelist" or "set-blacklist". |
290
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
Enumeration Documentation#
MacAddressMode#
MacAddressMode
Enumerator | |
---|---|
MAC_ADDRESS_MODE_NONE | |
MAC_ADDRESS_MODE_SHORT | |
MAC_ADDRESS_MODE_LONG |
133
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MacFilterType#
MacFilterType
Enumerator | |
---|---|
MAC_FILTER_TYPE_NO_ADDRESS | |
MAC_FILTER_TYPE_SHORT_ADDRESS | |
MAC_FILTER_TYPE_LONG_ADDRESS | |
MAC_FILTER_TYPE_PAN_ID |
145
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
FilterResult#
FilterResult
Enumerator | |
---|---|
ALLOW_PACKET | |
DROP_PACKET |
204
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
Typedef Documentation#
MacAddressFilterOptions#
typedef uint8_t MacAddressFilterOptions
151
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
Variable Documentation#
macAddressFilterData#
MacAddressFilterGlobals macAddressFilterData
211
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
zeroEui64#
const EmberEUI64 zeroEui64
213
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
Macro Definition Documentation#
expectCheckpoint#
#define expectCheckpoint
52
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
debug#
#define debug
53
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
EMBER_TEST_ASSERT#
#define EMBER_TEST_ASSERT
70
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_MASKValue:
(1 << MAC_FILTER_TYPE_NO_ADDRESS)
73
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_MASKValue:
(1 << MAC_FILTER_TYPE_SHORT_ADDRESS)
75
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_MASKValue:
(1 << MAC_FILTER_TYPE_LONG_ADDRESS)
77
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_MASKValue:
(1 << MAC_FILTER_TYPE_PAN_ID)
79
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FILTER_OPTIONS_COUNT#
#define MAC_FILTER_OPTIONS_COUNTValue:
4
83
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_ADDRESSValue:
0x00
85
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_BLACKLISTValue:
0x00
86
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_BLACKLISTValue:
0x00
87
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_ADDRESSValue:
0x01
89
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_WHITELISTValue:
0x02
90
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_WHITELISTValue:
0x04
91
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_WHITELISTValue:
0x08
93
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_BLACKLISTValue:
0x00
94
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
BROADCAST_PAN_ID#
#define BROADCAST_PAN_IDValue:
0xFFFF
96
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FILTER_OPTIONS_DEFAULTS#
#define MAC_FILTER_OPTIONS_DEFAULTSValue:
100
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_MASKValue:
0x0007
105
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_BEACONValue:
0x0000
106
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_DATAValue:
0x0001
107
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_ACKValue:
0x0002
108
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_COMMANDValue:
0x0003
109
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FRAME_CONTROL_VERSION_MASK#
#define MAC_FRAME_CONTROL_VERSION_MASKValue:
0x3000
111
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FRAME_CONTROL_VERSION_SHIFT#
#define MAC_FRAME_CONTROL_VERSION_SHIFTValue:
12
112
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FRAME_CONTROL_VERSION_2003#
#define MAC_FRAME_CONTROL_VERSION_2003Value:
0x0000
113
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FRAME_CONTROL_VERSION_2012#
#define MAC_FRAME_CONTROL_VERSION_2012Value:
0x0002
114
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_SHIFTValue:
14
116
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_MASKValue:
0x0003
118
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_NONEValue:
0x0000
119
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_RESERVEDValue:
0x0001
120
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_SHORTValue:
0x0002
121
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_LONGValue:
0x0003
122
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_SHIFTValue:
10
124
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_NONEValue:
0x0000
126
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
MAC_FRAME_CONTROL_PANID_COMPRESSION#
#define MAC_FRAME_CONTROL_PANID_COMPRESSIONValue:
0x0040
128
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h
WHITELIST_CHARACTER_INDEX#
#define WHITELIST_CHARACTER_INDEXValue:
4
130
of file app/framework/plugin-soc/mac-address-filtering/mac-address-filtering.h