37 #ifndef RX_FILTERS_PREPROCESSOR_CLI_IF_H_
38 #define RX_FILTERS_PREPROCESSOR_CLI_IF_H_
40 #include "simplelink.h"
56 #define SL_RX_FILTER_MAX_FILTERS 64
62 #define SL_RX_FILTER_MAX_PRE_PREPARED_FILTERS_SETS 32
67 #define SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS 2
72 #define SL_RX_FILTER_NUM_OF_FILTER_PAYLOAD_ARGS 2
77 #define SL_RX_FILTER_NUM_OF_COMBINATION_TYPE_ARGS 2
82 #define SL_RX_FILTER_LENGTH_OF_REGX_PATTERN_LENGTH 32
96 typedef signed char SlrxFilterID_t;
103 typedef unsigned char SlrxFilterCompareMask_t;
112 typedef unsigned char SlrxFilterIdMask_t[128/3];
118 typedef unsigned char SlrxFilterPrePreparedFilters_t;
119 #define SL_ARP_AUTO_REPLY_PRE_PREPARED_FILTERS 0
120 #define SL_MULTICASTSIPV4_DROP_PREPREPARED_FILTERS 1
121 #define SL_MULTICASTSIPV6_DROP_PREPREPARED_FILTERS 2
122 #define SL_MULTICASTSWIFI_DROP_PREPREPARED_FILTERS 3
132 typedef unsigned char SlrxFilterPrePreparedFiltersMask_t[SL_RX_FILTER_MAX_PRE_PREPARED_FILTERS_SETS/8];
141 unsigned char x[SL_RX_FILTER_LENGTH_OF_REGX_PATTERN_LENGTH];
149 typedef unsigned char SlrxFilterAsciiArg_t;
155 typedef unsigned char SlrxFilterBinaryArg_t ;
164 typedef unsigned char SlrxFilterActionArg_t ;
172 typedef unsigned long SlrxFilterOffset_t;
180 typedef unsigned char SlrxFilterRuleType_t;
183 #define COMBINATION 1
184 #define EXACT_PATTERN 2
185 #define LIKELIHOOD_PATTERN 3
186 #define ALWAYS_TRUE 4
187 #define NUM_OF_FILTER_TYPES 5
195 #define RX_FILTER_BINARY 0x1
196 #define RX_FILTER_PERSISTENT 0x8
197 #define RX_FILTER_ENABLE 0x10
233 typedef unsigned char SlrxFilterCompareFunction_t;
235 #define COMPARE_FUNC_IN_BETWEEN 0
236 #define COMPARE_FUNC_EQUAL 1
237 #define COMPARE_FUNC_NOT_EQUAL_TO 2
238 #define COMPARE_FUNC_NOT_IN_BETWEEN 3
239 #define COMPARE_FUNC_NUM_OF_FILTER_COMPARE_FUNC 4
245 typedef unsigned char SlrxTriggerCompareFunction_t;
247 #define TRIGGER_COMPARE_FUNC_EQUAL 0
249 #define TRIGGER_COMPARE_FUNC_NOT_EQUAL_TO 1
251 #define TRIGGER_COMPARE_FUNC_SMALLER_THAN 2
253 #define TRIGGER_COMPARE_FUNC_BIGGER_THAN 3
255 #define TRIGGER_COMPARE_FUNC_NUM_OF_FILTER_COMPARE_FUNC 4
262 typedef unsigned char SlrxFilterHdrField_t;
264 #define NULL_FIELD_ID_TYPE 0
266 #define FRAME_TYPE_FIELD 1
268 #define FRAME_SUBTYPE_FIELD 2
270 #define BSSID_FIELD 3
272 #define MAC_SRC_ADDRESS_FIELD 4
274 #define MAC_DST_ADDRESS_FIELD 5
276 #define FRAME_LENGTH_FIELD 6
278 #define PROTOCOL_TYPE_FIELD 7
280 #define IP_VERSION_FIELD 8
282 #define IP_PROTOCOL_FIELD 9
284 #define IPV4_SRC_ADRRESS_FIELD 10
286 #define IPV4_DST_ADDRESS_FIELD 11
288 #define IPV6_SRC_ADRRESS_FIELD 12
290 #define IPV6_DST_ADDRESS_FIELD 13
292 #define SRC_PORT_FIELD 14
294 #define DST_PORT_FIELD 15
296 #define NUM_OF_FIELD_NAME_FIELD 16
414 typedef unsigned char SlrxFilterCombinationTypeOperator_t;
417 #define COMBINED_FUNC_NOT 0
419 #define COMBINED_FUNC_AND 1
421 #define COMBINED_FUNC_OR 2
434 SlrxFilterCombinationTypeOperator_t CombinationTypeOperator;
437 SlrxFilterID_t CombinationFilterId[SL_RX_FILTER_NUM_OF_COMBINATION_TYPE_ARGS];
440 unsigned char Padding;
466 #define RX_FILTER_ROLE_AP 1
467 #define RX_FILTER_ROLE_STA 2
468 #define RX_FILTER_ROLE_PROMISCUOUS 4
469 #define RX_FILTER_ROLE_NULL 0
482 unsigned char IntRepresentation;
490 #define RX_FILTER_CONNECTION_STATE_STA_CONNECTED 1
491 #define RX_FILTER_CONNECTION_STATE_STA_NOT_CONNECTED 2
492 #define RX_FILTER_CONNECTION_STATE_STA_HAS_IP 4
493 #define RX_FILTER_CONNECTION_STATE_STA_HAS_NO_IP 8
508 unsigned char IntRepresentation;
519 typedef unsigned long SlrxFilterDBTriggerArg_t;
526 typedef unsigned char SlrxFilterCounterId_t;
529 #define RX_FILTER_COUNTER1 1
530 #define RX_FILTER_COUNTER2 2
531 #define RX_FILTER_COUNTER3 3
532 #define RX_FILTER_COUNTER4 4
533 #define RX_FILTER_COUNTER5 5
534 #define RX_FILTER_COUNTER6 6
535 #define RX_FILTER_COUNTER7 7
536 #define RX_FILTER_COUNTER8 8
537 #define MAX_RX_FILTER_COUNTER 9
546 typedef unsigned char SlrxFilterActionArgs_t;
548 #define ACTION_ARG_REG_1_4 0
550 #define ACTION_ARG_TEMPLATE 1
552 #define ACTION_ARG_EVENT 2
555 #define ACTION_ARG_GPIO 4
560 #define SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS 5
583 SlrxFilterCounterId_t Trigger;
592 SlrxFilterDBTriggerArg_t TriggerArg;
602 unsigned char Padding[3];
612 #define RX_FILTER_ACTION_NULL 0x0
613 #define RX_FILTER_ACTION_DROP 0x1
614 #define RX_FILTER_ACTION_GPIO 0x2
615 #define RX_FILTER_ACTION_ON_REG_INCREASE 0x4
616 #define RX_FILTER_ACTION_ON_REG_DECREASE 0x8
617 #define RX_FILTER_ACTION_ON_REG_RESET 0x10
618 #define RX_FILTER_ACTION_SEND_TEMPLATE 0x20
619 #define RX_FILTER_ACTION_EVENT_TO_HOST 0x40
670 SlrxFilterActionArg_t
ActionArg[SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS];
674 unsigned char Padding[2];
690 SlrxFilterIdMask_t FilterIdMask;
705 UINT8 BinaryRepresentation;
725 SlrxFilterIdMask_t FilterIdMask;
738 SlrxFilterPrePreparedFiltersMask_t FilterPrePreparedFiltersMask;
751 SlrxFilterPrePreparedFiltersMask_t FilterPrePreparedFiltersMask;
757 typedef unsigned char SLrxFilterOperation_t;
758 #define SL_ENABLE_DISABLE_RX_FILTER 0
759 #define SL_REMOVE_RX_FILTER 1
760 #define SL_STORE_RX_FILTERS 2
761 #define SL_UPDATE_RX_FILTER_ARGS 3
762 #define SL_FILTER_RETRIEVE_ENABLE_STATE 4
763 #define SL_FILTER_PRE_PREPARED_RETRIEVE_CREATE_REMOVE_STATE 5
764 #define SL_FILTER_PRE_PREPARED_SET_CREATE_REMOVE_STATE 6
768 #define ISBITSET8(x,i) ((x[i>>3] & (0x80>>(i&7)))!=0)
769 #define SETBIT8(x,i) x[i>>3]|=(0x80>>(i&7));
770 #define CLEARBIT8(x,i) x[i>>3]&=(0x80>>(i&7))^0xFF;
797 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterAdd)
803 SlrxFilterID_t* pFilterId);
837 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterSet)
839 const unsigned char*
const pInputBuffer,
840 unsigned short InputbufferLength);
862 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterGet)
864 unsigned char* pOutputBuffer,
865 unsigned short OutputbufferLength);
878 #define RXFL_OUTPUT_OR_INPUT_BUFFER_LENGTH_TOO_SMALL 76
879 #define RXFL_DEPENDENT_FILTER_SOFTWARE_FILTER_NOT_FIT 75
880 #define RXFL_DEPENDENCY_IS_NOT_PERSISTENT 74
881 #define RXFL_SYSTEM_STATE_NOT_SUPPORTED_FOR_THIS_FILTER 72
882 #define RXFL_TRIGGER_USE_REG5_TO_REG8 71
883 #define RXFL_TRIGGER_USE_REG1_TO_REG4 70
884 #define RXFL_ACTION_USE_REG5_TO_REG8 69
885 #define RXFL_ACTION_USE_REG1_TO_REG4 68
886 #define RXFL_FIELD_SUPPORT_ONLY_EQUAL_AND_NOTEQUAL 67
887 #define RXFL_WRONG_MULTICAST_BROADCAST_ADDRESS 66
888 #define RXFL_THE_FILTER_IS_NOT_OF_HEADER_TYPE 65
889 #define RXFL_WRONG_COMPARE_FUNC_FOR_BROADCAST_ADDRESS 64
890 #define RXFL_WRONG_MULTICAST_ADDRESS 63
891 #define RXFL_DEPENDENT_FILTER_IS_NOT_PERSISTENT 62
892 #define RXFL_DEPENDENT_FILTER_IS_NOT_ENABLED 61
893 #define RXFL_FILTER_HAS_CHILDS 60
894 #define RXFL_CHILD_IS_ENABLED 59
895 #define RXFL_DEPENDENCY_IS_DISABLED 58
896 #define RXFL_NUMBER_OF_CONNECTION_POINTS_EXCEEDED 52
897 #define RXFL_DEPENDENT_FILTER_DEPENDENCY_ACTION_IS_DROP 51
898 #define RXFL_FILTER_DO_NOT_EXISTS 50
899 #define RXFL_DEPEDENCY_NOT_ON_THE_SAME_LAYER 49
900 #define RXFL_NUMBER_OF_ARGS_EXCEEDED 48
901 #define RXFL_ACTION_NO_REG_NUMBER 47
902 #define RXFL_DEPENDENT_FILTER_LAYER_DO_NOT_FIT 46
903 #define RXFL_DEPENDENT_FILTER_SYSTEM_STATE_DO_NOT_FIT 45
904 #define RXFL_DEPENDENT_FILTER_DO_NOT_EXIST_2 44
905 #define RXFL_DEPENDENT_FILTER_DO_NOT_EXIST_1 43
906 #define RXFL_RULE_HEADER_ACTION_TYPE_NOT_SUPPORTED 42
907 #define RXFL_RULE_HEADER_TRIGGER_COMPARE_FUNC_OUT_OF_RANGE 41
908 #define RXFL_RULE_HEADER_TRIGGER_OUT_OF_RANGE 40
909 #define RXFL_RULE_HEADER_COMPARE_FUNC_OUT_OF_RANGE 39
910 #define RXFL_FRAME_TYPE_NOT_SUPPORTED 38
911 #define RXFL_RULE_FIELD_ID_NOT_SUPPORTED 37
912 #define RXFL_RULE_HEADER_FIELD_ID_ASCII_NOT_SUPPORTED 36
913 #define RXFL_RULE_HEADER_NOT_SUPPORTED 35
914 #define RXFL_RULE_HEADER_OUT_OF_RANGE 34
915 #define RXFL_RULE_HEADER_COMBINATION_OPERATOR_OUT_OF_RANGE 33
916 #define RXFL_RULE_HEADER_FIELD_ID_OUT_OF_RANGE 32
917 #define RXFL_UPDATE_NOT_SUPPORTED 31
918 #define RXFL_NO_FILTERS_ARE_DEFINED 24
919 #define RXFL_NUMBER_OF_FILTER_EXCEEDED 23
Definition: wlan_rx_filters.h:349
SlrxFilterRegxPattern_t RegxPattern
Definition: wlan_rx_filters.h:401
Definition: wlan_rx_filters.h:449
Definition: wlan_rx_filters.h:747
SlrxFilterHeaderArg_t RuleHeaderArgs
Definition: wlan_rx_filters.h:353
Definition: wlan_rx_filters.h:734
Definition: wlan_rx_filters.h:471
SlrxFilterActionArg_t ActionArg[SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS]
Definition: wlan_rx_filters.h:670
Definition: wlan_rx_filters.h:199
SlrxFilterOffset_t LowerOffset
Definition: wlan_rx_filters.h:404
SlrxFilterID_t sl_WlanRxFilterAdd(SlrxFilterRuleType_t RuleType, SlrxFilterFlags_t FilterFlags, const SlrxFilterRule_t *const Rule, const SlrxFilterTrigger_t *const Trigger, const SlrxFilterAction_t *const Action, SlrxFilterID_t *pFilterId)
Adds new filter rule to the system.
Definition: wlan_rx_filters.h:621
unsigned char IntRepresentation
Definition: wlan_rx_filters.h:646
Definition: wlan_rx_filters.h:687
SlrxFilterCompareMask_t RuleHeaderArgsMask[16]
Definition: wlan_rx_filters.h:359
Definition: wlan_rx_filters.h:698
SlrxTriggerCompareFunction_t TriggerCompareFunction
Definition: wlan_rx_filters.h:598
int sl_WlanRxFilterSet(const SLrxFilterOperation_t RxFilterOperation, const unsigned char *const pInputBuffer, unsigned short InputbufferLength)
Sets parameters to Rx filters.
Definition: wlan_rx_filters.h:430
Definition: wlan_rx_filters.h:397
int sl_WlanRxFilterGet(const SLrxFilterOperation_t RxFilterOperation, unsigned char *pOutputBuffer, unsigned short OutputbufferLength)
Gets parameters of Rx filters.
Definition: wlan_rx_filters.h:655
Definition: wlan_rx_filters.h:139
unsigned char IntRepresentation
Definition: wlan_rx_filters.h:225
Definition: wlan_rx_filters.h:720
Definition: wlan_rx_filters.h:495
SlrxFilterOffset_t UpperOffset
Definition: wlan_rx_filters.h:407
Definition: wlan_rx_filters.h:574
SlrxFilterID_t ParentFilterID
Definition: wlan_rx_filters.h:580