SimpleLink Host Driver  0.0.5.1
 All Data Structures Functions Variables Groups
wlan_rx_filters.h
1 /*
2  * wlan_rx_filters.h - CC31xx/CC32xx Host Driver Implementation
3  *
4  * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
5  *
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in the
16  * documentation and/or other materials provided with the
17  * distribution.
18  *
19  * Neither the name of Texas Instruments Incorporated nor the names of
20  * its contributors may be used to endorse or promote products derived
21  * from this software without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34  *
35 */
36 
37 #ifndef RX_FILTERS_PREPROCESSOR_CLI_IF_H_
38 #define RX_FILTERS_PREPROCESSOR_CLI_IF_H_
39 
40 #include "simplelink.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 
47 
48 /*********************************************************************************************/
49 /* Macro declarations */
50 /*********************************************************************************************/
51 
56 #define SL_RX_FILTER_MAX_FILTERS 64
57 
62 #define SL_RX_FILTER_MAX_PRE_PREPARED_FILTERS_SETS 32
63 
67 #define SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS 2
68 
72 #define SL_RX_FILTER_NUM_OF_FILTER_PAYLOAD_ARGS 2
73 
77 #define SL_RX_FILTER_NUM_OF_COMBINATION_TYPE_ARGS 2
78 
82 #define SL_RX_FILTER_LENGTH_OF_REGX_PATTERN_LENGTH 32
83 
84 
85 
86 /*********************************************************************************************/
87 /* Type declarations */
88 /*********************************************************************************************/
89 
96 typedef signed char SlrxFilterID_t;
97 
98 
103 typedef unsigned char SlrxFilterCompareMask_t;
104 
112 typedef unsigned char SlrxFilterIdMask_t[128/3];
113 
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
123 
124 
125 
132 typedef unsigned char SlrxFilterPrePreparedFiltersMask_t[SL_RX_FILTER_MAX_PRE_PREPARED_FILTERS_SETS/8];
133 
134 
140 {
141  unsigned char x[SL_RX_FILTER_LENGTH_OF_REGX_PATTERN_LENGTH];
143 
144 
149 typedef unsigned char SlrxFilterAsciiArg_t;
150 
151 
155 typedef unsigned char SlrxFilterBinaryArg_t ;
156 
157 
164 typedef unsigned char SlrxFilterActionArg_t ;
165 
166 
167 
172 typedef unsigned long SlrxFilterOffset_t;
173 
174 
175 
180 typedef unsigned char SlrxFilterRuleType_t;
181 /* possible values for SlrxFilterRuleType_t */
182 #define HEADER 0
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
188 
189 
195 #define RX_FILTER_BINARY 0x1
196 #define RX_FILTER_PERSISTENT 0x8
197 #define RX_FILTER_ENABLE 0x10
198 
199 typedef union SlrxFilterFlags_t
200 {
201 
202  /* struct
203  { */
208  /* unsigned char Binary: 1; */
212  /* unsigned char AutoSort : 1; */
216  /* unsigned char AutoFaultDetect : 1; */
220  /* unsigned char Enabled : 1; */
221  /* unsigned char padding : 3; */
222  /*
223  };*/
224 
225  unsigned char IntRepresentation;
226 
228 
233 typedef unsigned char SlrxFilterCompareFunction_t;
234 /* Possible values for 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
240 
245 typedef unsigned char SlrxTriggerCompareFunction_t;
246 /* Possible values for SlrxTriggerCompareFunction_t */
247 #define TRIGGER_COMPARE_FUNC_EQUAL 0
248 /* arg1 == protocolVal ,not supported in current release */
249 #define TRIGGER_COMPARE_FUNC_NOT_EQUAL_TO 1
250 /* arg1 == protocolVal */
251 #define TRIGGER_COMPARE_FUNC_SMALLER_THAN 2
252 /* arg1 == protocolVal */
253 #define TRIGGER_COMPARE_FUNC_BIGGER_THAN 3
254 /* definition */
255 #define TRIGGER_COMPARE_FUNC_NUM_OF_FILTER_COMPARE_FUNC 4
256 
257 
262 typedef unsigned char SlrxFilterHdrField_t;
263 /* Possible values for SlrxFilterHdrField_t */
264 #define NULL_FIELD_ID_TYPE 0
265 /* 802.11 control\data\management */
266 #define FRAME_TYPE_FIELD 1
267 /* 802.11 beacon\probe\.. */
268 #define FRAME_SUBTYPE_FIELD 2
269  /* 802.11 bssid type */
270 #define BSSID_FIELD 3
271  /* */
272 #define MAC_SRC_ADDRESS_FIELD 4
273  /* */
274 #define MAC_DST_ADDRESS_FIELD 5
275 /* */
276 #define FRAME_LENGTH_FIELD 6
277 /* */
278 #define PROTOCOL_TYPE_FIELD 7
279  /* */
280 #define IP_VERSION_FIELD 8
281  /* TCP / UDP */
282 #define IP_PROTOCOL_FIELD 9
283  /* */
284 #define IPV4_SRC_ADRRESS_FIELD 10
285 /* */
286 #define IPV4_DST_ADDRESS_FIELD 11
287 /* */
288 #define IPV6_SRC_ADRRESS_FIELD 12
289 /* */
290 #define IPV6_DST_ADDRESS_FIELD 13
291  /* */
292 #define SRC_PORT_FIELD 14
293  /* */
294 #define DST_PORT_FIELD 15
295  /* Definition */
296 #define NUM_OF_FIELD_NAME_FIELD 16
297 
301 /* -- 36 bytes */
303 {
304  /*----------------------------- Large size ---------------------------------*/
310  SlrxFilterBinaryArg_t RxFilterDB16BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][16 ]; /* Binary Values for comparition */
316  /*----------------------------- Medium size ---------------------------------*/
320  SlrxFilterBinaryArg_t RxFilterDB6BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][6]; /* Binary Values for comparition */
326  SlrxFilterAsciiArg_t RxFilterDB18BytesAsciiRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][18]; /* Ascii Values for comparition */
327  /*----------------------------- Small size ---------------------------------*/
332  SlrxFilterBinaryArg_t RxFilterDB4BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][4]; /* Binary Values for comparition */
336  SlrxFilterAsciiArg_t RxFilterDB5BytesRuleAsciiArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][5]; /* Ascii Values for comparition */
337  /*----------------------------- 1 byte size ---------------------------------*/
340  SlrxFilterBinaryArg_t RxFilterDB1BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][1]; /* Binary Values for comparition */
342 
343 
344 
348 /* -- 52 bytes */
350 {
352  /* -- 36 byte */
354 
358  /* -- 16 bytes */
359  SlrxFilterCompareMask_t RuleHeaderArgsMask[16];
360 
362 
369 /* -- 56 byte */
371 {
373  /* -- 52 bytes */
375 
377  /* -- 1 byte */
378  SlrxFilterHdrField_t RuleHeaderfield;
379 
380  /* -- 1 byte */
384  SlrxFilterCompareFunction_t RuleCompareFunc;
385 
387  /* -- 2 bytes */
388  unsigned char RulePadding[2];
389 
391 
396 /* -- 40 byte */
398 {
400  /* -- 32 byte */
403  /* -- 4 byte */
404  SlrxFilterOffset_t LowerOffset;
406  /* -- 4 byte */
407  SlrxFilterOffset_t UpperOffset;
409 
414 typedef unsigned char SlrxFilterCombinationTypeOperator_t;
415 /* Possible values for SlrxFilterCombinationTypeOperator_t */
417 #define COMBINED_FUNC_NOT 0
418 
419 #define COMBINED_FUNC_AND 1
420 
421 #define COMBINED_FUNC_OR 2
422 
429 /* -- 4 byte */
431 {
432  /* ! combination operator */
433  /* -- 1 byte */
434  SlrxFilterCombinationTypeOperator_t CombinationTypeOperator;
435  /* ! filterID, may be one or two depends on the combination operator type */
436  /* -- 2 byte */
437  SlrxFilterID_t CombinationFilterId[SL_RX_FILTER_NUM_OF_COMBINATION_TYPE_ARGS];
438  /* ! Padding */
439  /* -- 1 byte */
440  unsigned char Padding;
442 
443 
448 /* -- 56 byte */
449 typedef union SlrxFilterRule_t
450 {
451  /* ! Header type rule , see explanation on the ::SlrxFilterHeaderType_t structure */
452  /* -- 56 byte */
453  SlrxFilterHeaderType_t HeaderType;
454  /* ! Payload rule, not supported in current release */
455  /* -- 40 byte */
456  SlrxFilterPayloadType_t PayLoadHeaderType; /* future for exact pattern or like hood pattern */
457  /* ! Combined type rule , see explanation in ::SlrxFilterCombinationType_t structure */
458  /* -- 4 byte */
459  SlrxFilterCombinationType_t CombinationType;
461 
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
470 
472 {
473 /* struct */
474 /* { */
475 /* unsigned char RoleAP :1; */
476 /* unsigned char RoleStation :1; */
477  /* The filter is activated only in Promiscuous mode */
478 /* unsigned char PromiscuousMode :1; */
479 /* unsigned char RoleReserved :5; */
480 /* }; */
481  /* ! Bit fiels of the Filter role */
482  unsigned char IntRepresentation;
483 
485 
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
494 
496 {
497 /* struct */
498 /* { */
499 /* unsigned char RoleStationWiFiConnected :1; */
500 /* unsigned char RoleStationWiFiDisconneted:1; */
501 /* unsigned char RoleStationWiFiHasIp:1; */
502 /* unsigned char RoleStationWiFiHasNoIp:1; */
503 /* unsigned char RoleStationWiFiSocketOpened:1; */
504 /* unsigned char RoleStationWiFiSocketclosed:1; */
505 /* }; */
506 /* */
507  /* ! */
508  unsigned char IntRepresentation;
509 
511 
519 typedef unsigned long SlrxFilterDBTriggerArg_t;
520 
521 
522 
526 typedef unsigned char SlrxFilterCounterId_t;
527 /* Possible values for SlrxFilterCounterId_t */
528 #define NO_TRIGGER 0
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
538 
539 
540 
546 typedef unsigned char SlrxFilterActionArgs_t;
547 /* Possible values for SlrxFilterActionArgs_t */
548 #define ACTION_ARG_REG_1_4 0
549  /* ! Can be use as counter */
550 #define ACTION_ARG_TEMPLATE 1
551  /* ! Can be use as counter */
552 #define ACTION_ARG_EVENT 2
553 
554 /* ! GPIO number */
555 #define ACTION_ARG_GPIO 4
556 
560 #define SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS 5
561 
562 
563 
564 
573 /* -- 12 byte */
574 typedef struct SlrxFilterTrigger_t
575 {
577  /* NULL value means tree root.
578  */
579  /* -- 1 byte */
580  SlrxFilterID_t ParentFilterID;
581  /* ! See ::SlrxFilterCounterId_t explanation */
582  /* -- 1 byte */
583  SlrxFilterCounterId_t Trigger;
584  /* ! See :: SlrxFilterTriggerConnectionStates_t */
585  /* -- 1 byte */
586  SlrxFilterTriggerConnectionStates_t TriggerArgConnectionState;
587  /* ! See ::SlrxFilterTriggerRoles_t */
588  /* -- 1 byte */
589  SlrxFilterTriggerRoles_t TriggerArgRoleStatus;
590  /* ! The Trigger arguments are in the same order as the Trigger bit field order. */
591  /* -- 4 byte */
592  SlrxFilterDBTriggerArg_t TriggerArg;
597  /* -- 1 byte */
598  SlrxTriggerCompareFunction_t TriggerCompareFunction;
599 
600  /* ! padding */
601  /* -- 3 byte */
602  unsigned char Padding[3];
604 
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 /* unsupported */
619 #define RX_FILTER_ACTION_EVENT_TO_HOST 0x40 /* unsupported */
620 
622 {
623 /* struct */
624 /* { */
625  /* ! No action to execute the packet is dropped,drop is always on leaf. */
626  /* ! If not dropped ,The packet is passed to the next filter or in case it is the last filter to the host */
627 /* unsigned char ActionDrop : 1; */
628  /* ! Not Supported in the current release */
629 /* unsigned char ActionGpio : 1; */
635 /* unsigned char ActionOnREGIncrease : 1; */
636 /* unsigned char ActionOnREGDecrease : 1; */
637 /* unsigned char ActionOnREGReset : 1; */
638 
639  /* ! Not Supported in the current release */
640 /* unsigned char ActionSendTemplate : 1; */
641  /* ! Not Supported in the current release */
642 /* unsigned char ActionEventToHost: 1; */
643 /* unsigned char padding: 1; */
644 /* }; */
645 
646  unsigned char IntRepresentation;
647 
649 
654 /* -- 8 byte */
655 typedef struct SlrxFilterAction_t
656 {
657  /* -- 1 byte */
658  /* ! Determine which actions are supported */
659  SlrxFilterActionType_t ActionType;
660  /* ! Buffer for the action arguments */
669  /* -- 5 byte */
670  SlrxFilterActionArg_t ActionArg[SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS];
671 
672  /* ! Padding */
673  /* - 2 Bytes */
674  unsigned char Padding[2];
675 
677 
678 
686 /* 20 bytes */
688 {
689  /* -- 16 bytes */
690  SlrxFilterIdMask_t FilterIdMask;
691  /* 4 bytes */
692  UINT8 Padding[4];
694 
695 
696 
697 /* -- 56 bytes */
699 {
700  /* -- 1 bytes */
701  UINT8 FilterId;
702 
703  /* -- 1 bytes */
704  /* ! the args representation */
705  UINT8 BinaryRepresentation;
706 
707  /* -- 52 byte */
708  SlrxFilterRuleHeaderArgsAndMask_t FilterRuleHeaderArgsAndMask;
709 
710  /* -- 2 bytes */
711  UINT8 Padding[2];
713 
714 
719 /* -- 16 bytes */
721 {
722 
723  /* ! the filter set bit map */
724  /* -- 16 bytes */
725  SlrxFilterIdMask_t FilterIdMask;
726 
728 
729 
735 {
736  /* ! the filter set bit map */
737  /* -- 4 bytes */
738  SlrxFilterPrePreparedFiltersMask_t FilterPrePreparedFiltersMask;
739 
741 
742 
746 /*-- 4 bytes */
748 {
749  /* -- 4 bytes */
750  /* ! the filter set bit map */
751  SlrxFilterPrePreparedFiltersMask_t FilterPrePreparedFiltersMask;
752 
754 
755 
756 
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
765 
766 
767 /* Bit manipulation for 8 bit */
768 #define ISBITSET8(x,i) ((x[i>>3] & (0x80>>(i&7)))!=0) /* < Is bit set, 8 bit unsigned numbers = x , location = i */
769 #define SETBIT8(x,i) x[i>>3]|=(0x80>>(i&7)); /* < Set bit,8 bit unsigned numbers = x , location = i */
770 #define CLEARBIT8(x,i) x[i>>3]&=(0x80>>(i&7))^0xFF; /* < Clear bit,8 bit unsigned numbers = x , location = i */
771 
772 
773 /*********************************************************************************************/
774 /* Function prototypes */
775 /*********************************************************************************************/
776 
797 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterAdd)
798 SlrxFilterID_t sl_WlanRxFilterAdd( SlrxFilterRuleType_t RuleType,
799  SlrxFilterFlags_t FilterFlags,
800  const SlrxFilterRule_t* const Rule,
801  const SlrxFilterTrigger_t* const Trigger,
802  const SlrxFilterAction_t* const Action,
803  SlrxFilterID_t* pFilterId);
804 
805 #endif
806 
807 
808 
809 
810 
837 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterSet)
838 int sl_WlanRxFilterSet( const SLrxFilterOperation_t RxFilterOperation,
839  const unsigned char* const pInputBuffer,
840  unsigned short InputbufferLength);
841 #endif
842 
862 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterGet)
863 int sl_WlanRxFilterGet(const SLrxFilterOperation_t RxFilterOperation,
864  unsigned char* pOutputBuffer,
865  unsigned short OutputbufferLength);
866 #endif
867 
868 
876 /* List of possible error numbers */
877 #define RXFL_OK 0 /* O.K */
878 #define RXFL_OUTPUT_OR_INPUT_BUFFER_LENGTH_TOO_SMALL 76 /* ! The output buffer length is smaller than required for that operation */
879 #define RXFL_DEPENDENT_FILTER_SOFTWARE_FILTER_NOT_FIT 75 /* Node filter can't be child of software filter and vice_versa */
880 #define RXFL_DEPENDENCY_IS_NOT_PERSISTENT 74 /* Dependency filter is not persistent */
881 #define RXFL_SYSTEM_STATE_NOT_SUPPORTED_FOR_THIS_FILTER 72 /* System state is not supported */
882 #define RXFL_TRIGGER_USE_REG5_TO_REG8 71 /* Only counters 5 - 8 are allowed, for Tigger */
883 #define RXFL_TRIGGER_USE_REG1_TO_REG4 70 /* Only counters 1 - 4 are allowed, for trigger */
884 #define RXFL_ACTION_USE_REG5_TO_REG8 69 /* Only counters 5 - 8 are allowed, for action */
885 #define RXFL_ACTION_USE_REG1_TO_REG4 68 /* Only counters 1 - 4 are allowed, for action */
886 #define RXFL_FIELD_SUPPORT_ONLY_EQUAL_AND_NOTEQUAL 67 /* Rule compare function Id is out of range */
887 #define RXFL_WRONG_MULTICAST_BROADCAST_ADDRESS 66 /* The address should be of type mutlicast or broadcast */
888 #define RXFL_THE_FILTER_IS_NOT_OF_HEADER_TYPE 65 /* The filter should be of header type */
889 #define RXFL_WRONG_COMPARE_FUNC_FOR_BROADCAST_ADDRESS 64 /* The compare funcion is not suitable for broadcast address */
890 #define RXFL_WRONG_MULTICAST_ADDRESS 63 /* The address should be of muticast type */
891 #define RXFL_DEPENDENT_FILTER_IS_NOT_PERSISTENT 62 /* The dependency filter is not persistent */
892 #define RXFL_DEPENDENT_FILTER_IS_NOT_ENABLED 61 /* The dependency filter is not enabled */
893 #define RXFL_FILTER_HAS_CHILDS 60 /* The filter has childs and can't be removed */
894 #define RXFL_CHILD_IS_ENABLED 59 /* Can't disable filter while the child is enabled */
895 #define RXFL_DEPENDENCY_IS_DISABLED 58 /* Can't enable filetr in case its depndency filter is disabled */
896 #define RXFL_NUMBER_OF_CONNECTION_POINTS_EXCEEDED 52 /* Number of connection points exceeded */
897 #define RXFL_DEPENDENT_FILTER_DEPENDENCY_ACTION_IS_DROP 51 /* The dependent filter has Drop action, thus the filter can't be created */
898 #define RXFL_FILTER_DO_NOT_EXISTS 50 /* The filter doesn't exists */
899 #define RXFL_DEPEDENCY_NOT_ON_THE_SAME_LAYER 49 /* The filter and its dependency must be on the same layer */
900 #define RXFL_NUMBER_OF_ARGS_EXCEEDED 48 /* Number of arguments excceded */
901 #define RXFL_ACTION_NO_REG_NUMBER 47 /* Action require counter number */
902 #define RXFL_DEPENDENT_FILTER_LAYER_DO_NOT_FIT 46 /* the filter and its dependency should be from the same layer */
903 #define RXFL_DEPENDENT_FILTER_SYSTEM_STATE_DO_NOT_FIT 45 /* The filter and its dependency system state don't fit */
904 #define RXFL_DEPENDENT_FILTER_DO_NOT_EXIST_2 44 /* The parent filter don't exist */
905 #define RXFL_DEPENDENT_FILTER_DO_NOT_EXIST_1 43 /* The parent filter is null */
906 #define RXFL_RULE_HEADER_ACTION_TYPE_NOT_SUPPORTED 42 /* The action type is not supported */
907 #define RXFL_RULE_HEADER_TRIGGER_COMPARE_FUNC_OUT_OF_RANGE 41 /* The Trigger comparision function is out of range */
908 #define RXFL_RULE_HEADER_TRIGGER_OUT_OF_RANGE 40 /* The Trigger is out of range */
909 #define RXFL_RULE_HEADER_COMPARE_FUNC_OUT_OF_RANGE 39 /* The rule compare function is out of range */
910 #define RXFL_FRAME_TYPE_NOT_SUPPORTED 38 /* ASCII frame type string is illegal */
911 #define RXFL_RULE_FIELD_ID_NOT_SUPPORTED 37 /* Rule field ID is out of range */
912 #define RXFL_RULE_HEADER_FIELD_ID_ASCII_NOT_SUPPORTED 36 /* This ASCII field ID is not supported */
913 #define RXFL_RULE_HEADER_NOT_SUPPORTED 35 /* The header rule is not supported on current release */
914 #define RXFL_RULE_HEADER_OUT_OF_RANGE 34 /* The header rule is out of range */
915 #define RXFL_RULE_HEADER_COMBINATION_OPERATOR_OUT_OF_RANGE 33 /* Combination function Id is out of ramge */
916 #define RXFL_RULE_HEADER_FIELD_ID_OUT_OF_RANGE 32 /* rule field Id is out of range */
917 #define RXFL_UPDATE_NOT_SUPPORTED 31 /* Update not supported */
918 #define RXFL_NO_FILTERS_ARE_DEFINED 24 /* No filters are defined in the system */
919 #define RXFL_NUMBER_OF_FILTER_EXCEEDED 23 /* Number of max filters excceded */
920 
921 
922 
923 #ifdef __cplusplus
924 }
925 #endif /* __cplusplus */
926 
927 #endif /* RX_FILTERS_PREPROCESSOR_CLI_IF_H_ */
Definition: wlan_rx_filters.h:349
SlrxFilterRegxPattern_t RegxPattern
Definition: wlan_rx_filters.h:401
Definition: wlan_rx_filters.h:449
SlrxFilterHeaderArg_t RuleHeaderArgs
Definition: wlan_rx_filters.h:353
Definition: wlan_rx_filters.h:734
SlrxFilterCompareFunction_t RuleCompareFunc
Definition: wlan_rx_filters.h:384
Definition: wlan_rx_filters.h:471
SlrxFilterActionArg_t ActionArg[SL_RX_FILTER_NUM_OF_BYTES_FOR_ACTIONS_ARGS]
Definition: wlan_rx_filters.h:670
SlrxFilterBinaryArg_t RxFilterDB1BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][1]
Definition: wlan_rx_filters.h:340
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:370
Definition: wlan_rx_filters.h:621
unsigned char IntRepresentation
Definition: wlan_rx_filters.h:646
Definition: wlan_rx_filters.h:687
SlrxFilterBinaryArg_t RxFilterDB4BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][4]
Definition: wlan_rx_filters.h:332
SlrxFilterAsciiArg_t RxFilterDB18BytesAsciiRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][18]
Definition: wlan_rx_filters.h:326
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
SlrxFilterRuleHeaderArgsAndMask_t RuleHeaderArgsAndMask
Definition: wlan_rx_filters.h:374
Definition: wlan_rx_filters.h:302
SlrxFilterHdrField_t RuleHeaderfield
Definition: wlan_rx_filters.h:378
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:495
SlrxFilterOffset_t UpperOffset
Definition: wlan_rx_filters.h:407
unsigned char RulePadding[2]
Definition: wlan_rx_filters.h:388
SlrxFilterBinaryArg_t RxFilterDB6BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][6]
Definition: wlan_rx_filters.h:320
Definition: wlan_rx_filters.h:574
SlrxFilterID_t ParentFilterID
Definition: wlan_rx_filters.h:580
SlrxFilterAsciiArg_t RxFilterDB5BytesRuleAsciiArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][5]
Definition: wlan_rx_filters.h:336
SlrxFilterBinaryArg_t RxFilterDB16BytesRuleArgs[SL_RX_FILTER_NUM_OF_FILTER_HEADER_ARGS][16]
Definition: wlan_rx_filters.h:310