37 #ifndef RX_FILTERS_PREPROCESSOR_CLI_IF_H_
38 #define RX_FILTERS_PREPROCESSOR_CLI_IF_H_
44 #include "simplelink.h"
59 #define SL_RX_FILTER_MAX_FILTERS 64
65 #define SL_RX_FILTER_MAX_PRE_PREPARED_FILTERS_SETS (32)
70 #define SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS (2)
75 #define SL_RX_FILTER_NUM_OF_FILTER_PAYLOAD_ARGS (2)
80 #define SL_RX_FILTER_NUM_OF_COMBINATION_TYPE_ARGS (2)
85 #define SL_RX_FILTER_LENGTH_OF_REGX_PATTERN_LENGTH (32)
90 #define RXFL_OUTPUT_OR_INPUT_BUFFER_LENGTH_TOO_SMALL (76)
91 #define RXFL_DEPENDENT_FILTER_SOFTWARE_FILTER_NOT_FIT (75)
92 #define RXFL_DEPENDENCY_IS_NOT_PERSISTENT (74)
93 #define RXFL_SYSTEM_STATE_NOT_SUPPORTED_FOR_THIS_FILTER (72)
94 #define RXFL_TRIGGER_USE_REG5_TO_REG8 (71)
95 #define RXFL_TRIGGER_USE_REG1_TO_REG4 (70)
96 #define RXFL_ACTION_USE_REG5_TO_REG8 (69)
97 #define RXFL_ACTION_USE_REG1_TO_REG4 (68)
98 #define RXFL_FIELD_SUPPORT_ONLY_EQUAL_AND_NOTEQUAL (67)
99 #define RXFL_WRONG_MULTICAST_BROADCAST_ADDRESS (66)
100 #define RXFL_THE_FILTER_IS_NOT_OF_HEADER_TYPE (65)
101 #define RXFL_WRONG_COMPARE_FUNC_FOR_BROADCAST_ADDRESS (64)
102 #define RXFL_WRONG_MULTICAST_ADDRESS (63)
103 #define RXFL_DEPENDENT_FILTER_IS_NOT_PERSISTENT (62)
104 #define RXFL_DEPENDENT_FILTER_IS_NOT_ENABLED (61)
105 #define RXFL_FILTER_HAS_CHILDS (60)
106 #define RXFL_CHILD_IS_ENABLED (59)
107 #define RXFL_DEPENDENCY_IS_DISABLED (58)
108 #define RXFL_NUMBER_OF_CONNECTION_POINTS_EXCEEDED (52)
109 #define RXFL_DEPENDENT_FILTER_DEPENDENCY_ACTION_IS_DROP (51)
110 #define RXFL_FILTER_DO_NOT_EXISTS (50)
111 #define RXFL_DEPEDENCY_NOT_ON_THE_SAME_LAYER (49)
112 #define RXFL_NUMBER_OF_ARGS_EXCEEDED (48)
113 #define RXFL_ACTION_NO_REG_NUMBER (47)
114 #define RXFL_DEPENDENT_FILTER_LAYER_DO_NOT_FIT (46)
115 #define RXFL_DEPENDENT_FILTER_SYSTEM_STATE_DO_NOT_FIT (45)
116 #define RXFL_DEPENDENT_FILTER_DO_NOT_EXIST_2 (44)
117 #define RXFL_DEPENDENT_FILTER_DO_NOT_EXIST_1 (43)
118 #define RXFL_RULE_HEADER_ACTION_TYPE_NOT_SUPPORTED (42)
119 #define RXFL_RULE_HEADER_TRIGGER_COMPARE_FUNC_OUT_OF_RANGE (41)
120 #define RXFL_RULE_HEADER_TRIGGER_OUT_OF_RANGE (40)
121 #define RXFL_RULE_HEADER_COMPARE_FUNC_OUT_OF_RANGE (39)
122 #define RXFL_FRAME_TYPE_NOT_SUPPORTED (38)
123 #define RXFL_RULE_FIELD_ID_NOT_SUPPORTED (37)
124 #define RXFL_RULE_HEADER_FIELD_ID_ASCII_NOT_SUPPORTED (36)
125 #define RXFL_RULE_HEADER_NOT_SUPPORTED (35)
126 #define RXFL_RULE_HEADER_OUT_OF_RANGE (34)
127 #define RXFL_RULE_HEADER_COMBINATION_OPERATOR_OUT_OF_RANGE (33)
128 #define RXFL_RULE_HEADER_FIELD_ID_OUT_OF_RANGE (32)
129 #define RXFL_UPDATE_NOT_SUPPORTED (31)
130 #define RXFL_NO_FILTERS_ARE_DEFINED (24)
131 #define RXFL_NUMBER_OF_FILTER_EXCEEDED (23)
144 typedef _i8 SlrxFilterID_t;
151 typedef _u8 SlrxFilterCompareMask_t;
160 typedef _u8 SlrxFilterIdMask_t[128/8];
166 typedef _u8 SlrxFilterPrePreparedFilters_t;
167 #define SL_ARP_AUTO_REPLY_PRE_PREPARED_FILTERS (0)
168 #define SL_MULTICASTSIPV4_DROP_PREPREPARED_FILTERS (1)
169 #define SL_MULTICASTSIPV6_DROP_PREPREPARED_FILTERS (2)
170 #define SL_MULTICASTSWIFI_DROP_PREPREPARED_FILTERS (3)
180 typedef _u8 SlrxFilterPrePreparedFiltersMask_t[SL_RX_FILTER_MAX_PRE_PREPARED_FILTERS_SETS/8];
189 _u8 x[SL_RX_FILTER_LENGTH_OF_REGX_PATTERN_LENGTH];
197 typedef _u8 SlrxFilterAsciiArg_t;
203 typedef _u8 SlrxFilterBinaryArg_t ;
212 typedef _u8 SlrxFilterActionArg_t ;
220 typedef _u32 SlrxFilterOffset_t;
228 typedef _u8 SlrxFilterRuleType_t;
231 #define COMBINATION (1)
232 #define EXACT_PATTERN (2)
233 #define LIKELIHOOD_PATTERN (3)
234 #define ALWAYS_TRUE (4)
235 #define NUM_OF_FILTER_TYPES (5)
243 #define RX_FILTER_BINARY (0x1)
244 #define RX_FILTER_PERSISTENT (0x8)
245 #define RX_FILTER_ENABLE (0x10)
281 typedef _u8 SlrxFilterCompareFunction_t;
283 #define COMPARE_FUNC_IN_BETWEEN (0)
284 #define COMPARE_FUNC_EQUAL (1)
285 #define COMPARE_FUNC_NOT_EQUAL_TO (2)
286 #define COMPARE_FUNC_NOT_IN_BETWEEN (3)
287 #define COMPARE_FUNC_NUM_OF_FILTER_COMPARE_FUNC (4)
293 typedef _u8 SlrxTriggerCompareFunction_t;
295 #define TRIGGER_COMPARE_FUNC_EQUAL (0)
297 #define TRIGGER_COMPARE_FUNC_NOT_EQUAL_TO (1)
299 #define TRIGGER_COMPARE_FUNC_SMALLER_THAN (2)
301 #define TRIGGER_COMPARE_FUNC_BIGGER_THAN (3)
303 #define TRIGGER_COMPARE_FUNC_NUM_OF_FILTER_COMPARE_FUNC (4)
310 typedef _u8 SlrxFilterHdrField_t;
312 #define NULL_FIELD_ID_TYPE (0)
314 #define FRAME_TYPE_FIELD (1)
316 #define FRAME_SUBTYPE_FIELD (2)
318 #define BSSID_FIELD (3)
320 #define MAC_SRC_ADDRESS_FIELD (4)
322 #define MAC_DST_ADDRESS_FIELD (5)
324 #define FRAME_LENGTH_FIELD (6)
326 #define PROTOCOL_TYPE_FIELD (7)
328 #define IP_VERSION_FIELD (8)
330 #define IP_PROTOCOL_FIELD (9)
332 #define IPV4_SRC_ADRRESS_FIELD (10)
334 #define IPV4_DST_ADDRESS_FIELD (11)
336 #define IPV6_SRC_ADRRESS_FIELD (12)
338 #define IPV6_DST_ADDRESS_FIELD (13)
340 #define SRC_PORT_FIELD (14)
342 #define DST_PORT_FIELD (15)
344 #define NUM_OF_FIELD_NAME_FIELD (16)
462 typedef _u8 SlrxFilterCombinationTypeOperator_t;
465 #define COMBINED_FUNC_NOT (0)
467 #define COMBINED_FUNC_AND (1)
469 #define COMBINED_FUNC_OR (2)
482 SlrxFilterCombinationTypeOperator_t CombinationTypeOperator;
485 SlrxFilterID_t CombinationFilterId[SL_RX_FILTER_NUM_OF_COMBINATION_TYPE_ARGS];
514 #define RX_FILTER_ROLE_AP (1)
515 #define RX_FILTER_ROLE_STA (2)
516 #define RX_FILTER_ROLE_PROMISCUOUS (4)
517 #define RX_FILTER_ROLE_NULL (0)
530 _u8 IntRepresentation;
538 #define RX_FILTER_CONNECTION_STATE_STA_CONNECTED (1)
539 #define RX_FILTER_CONNECTION_STATE_STA_NOT_CONNECTED (2)
540 #define RX_FILTER_CONNECTION_STATE_STA_HAS_IP (4)
541 #define RX_FILTER_CONNECTION_STATE_STA_HAS_NO_IP (8)
556 _u8 IntRepresentation;
567 typedef _u32 SlrxFilterDBTriggerArg_t;
574 typedef _u8 SlrxFilterCounterId_t;
576 #define NO_TRIGGER (0)
577 #define RX_FILTER_COUNTER1 (1)
578 #define RX_FILTER_COUNTER2 (2)
579 #define RX_FILTER_COUNTER3 (3)
580 #define RX_FILTER_COUNTER4 (4)
581 #define RX_FILTER_COUNTER5 (5)
582 #define RX_FILTER_COUNTER6 (6)
583 #define RX_FILTER_COUNTER7 (7)
584 #define RX_FILTER_COUNTER8 (8)
585 #define MAX_RX_FILTER_COUNTER (9)
594 typedef _u8 SlrxFilterActionArgs_t;
596 #define ACTION_ARG_REG_1_4 (0)
598 #define ACTION_ARG_TEMPLATE (1)
600 #define ACTION_ARG_EVENT (2)
603 #define ACTION_ARG_GPIO (4)
608 #define SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS (5)
631 SlrxFilterCounterId_t Trigger;
640 SlrxFilterDBTriggerArg_t TriggerArg;
660 #define RX_FILTER_ACTION_NULL (0x0)
661 #define RX_FILTER_ACTION_DROP (0x1)
662 #define RX_FILTER_ACTION_GPIO (0x2)
663 #define RX_FILTER_ACTION_ON_REG_INCREASE (0x4)
664 #define RX_FILTER_ACTION_ON_REG_DECREASE (0x8)
665 #define RX_FILTER_ACTION_ON_REG_RESET (0x10)
666 #define RX_FILTER_ACTION_SEND_TEMPLATE (0x20)
667 #define RX_FILTER_ACTION_EVENT_TO_HOST (0x40)
718 SlrxFilterActionArg_t
ActionArg[SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS];
738 SlrxFilterIdMask_t FilterIdMask;
753 _u8 BinaryRepresentation;
773 SlrxFilterIdMask_t FilterIdMask;
786 SlrxFilterPrePreparedFiltersMask_t FilterPrePreparedFiltersMask;
799 SlrxFilterPrePreparedFiltersMask_t FilterPrePreparedFiltersMask;
805 typedef _u8 SLrxFilterOperation_t;
806 #define SL_ENABLE_DISABLE_RX_FILTER (0)
807 #define SL_REMOVE_RX_FILTER (1)
808 #define SL_STORE_RX_FILTERS (2)
809 #define SL_UPDATE_RX_FILTER_ARGS (3)
810 #define SL_FILTER_RETRIEVE_ENABLE_STATE (4)
811 #define SL_FILTER_PRE_PREPARED_RETRIEVE_CREATE_REMOVE_STATE (5)
812 #define SL_FILTER_PRE_PREPARED_SET_CREATE_REMOVE_STATE (6)
816 #define ISBITSET8(x,i) ((x[i>>3] & (0x80>>(i&7)))!=0)
817 #define SETBIT8(x,i) x[i>>3]|=(0x80>>(i&7));
818 #define CLEARBIT8(x,i) x[i>>3]&=(0x80>>(i&7))^0xFF;
845 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterAdd)
846 SlrxFilterID_t sl_WlanRxFilterAdd( SlrxFilterRuleType_t RuleType,
851 SlrxFilterID_t* pFilterId);
885 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterSet)
886 _i16 sl_WlanRxFilterSet(
const SLrxFilterOperation_t RxFilterOperation,
887 const _u8*
const pInputBuffer,
888 _u16 InputbufferLength);
910 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterGet)
911 _i16 sl_WlanRxFilterGet(
const SLrxFilterOperation_t RxFilterOperation,
913 _u16 OutputbufferLength);
Definition: wlan_rx_filters.h:397
SlrxFilterRegxPattern_t RegxPattern
Definition: wlan_rx_filters.h:449
Definition: wlan_rx_filters.h:497
Definition: wlan_rx_filters.h:795
SlrxFilterHeaderArg_t RuleHeaderArgs
Definition: wlan_rx_filters.h:401
Definition: wlan_rx_filters.h:782
Definition: wlan_rx_filters.h:519
SlrxFilterActionArg_t ActionArg[SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS]
Definition: wlan_rx_filters.h:718
Definition: wlan_rx_filters.h:247
_u8 IntRepresentation
Definition: wlan_rx_filters.h:694
SlrxFilterOffset_t LowerOffset
Definition: wlan_rx_filters.h:452
Definition: wlan_rx_filters.h:669
Definition: wlan_rx_filters.h:735
SlrxFilterCompareMask_t RuleHeaderArgsMask[16]
Definition: wlan_rx_filters.h:407
Definition: wlan_rx_filters.h:746
SlrxTriggerCompareFunction_t TriggerCompareFunction
Definition: wlan_rx_filters.h:646
_u8 IntRepresentation
Definition: wlan_rx_filters.h:273
Definition: wlan_rx_filters.h:478
Definition: wlan_rx_filters.h:445
Definition: wlan_rx_filters.h:703
Definition: wlan_rx_filters.h:187
Definition: wlan_rx_filters.h:768
Definition: wlan_rx_filters.h:543
SlrxFilterOffset_t UpperOffset
Definition: wlan_rx_filters.h:455
Definition: wlan_rx_filters.h:622
SlrxFilterID_t ParentFilterID
Definition: wlan_rx_filters.h:628