1 #ifndef BCM_PHS_DEFINES_H
2 #define BCM_PHS_DEFINES_H
4 #define PHS_INVALID_TABLE_INDEX 0xffffffff
6 /************************* MACROS **********************************************/
7 #define PHS_MEM_TAG "_SHP"
12 #define STATUS_PHS_COMPRESSED 0xa1
13 #define STATUS_PHS_NOCOMPRESSION 0xa2
18 #define SIZE_MULTIPLE_32 4
19 #define UNCOMPRESSED_PACKET 0
22 #define NO_CLASSIFIER_MATCH 0
23 #define SEND_PACKET_UNCOMPRESSED 0
24 #define PHSI_IS_ZERO 0
27 #define PHS_BUFFER_SIZE 1532
30 //#define MAX_PHS_LENGTHS 100
31 #define MAX_PHSRULE_PER_SF 20
32 #define MAX_SERVICEFLOWS 17
36 #define ERR_PHS_INVALID_DEVICE_EXETENSION 0x800
37 #define ERR_PHS_INVALID_PHS_RULE 0x801
38 #define ERR_PHS_RULE_ALREADY_EXISTS 0x802
39 #define ERR_SF_MATCH_FAIL 0x803
40 #define ERR_INVALID_CLASSIFIERTABLE_FOR_SF 0x804
41 #define ERR_SFTABLE_FULL 0x805
42 #define ERR_CLSASSIFIER_TABLE_FULL 0x806
43 #define ERR_PHSRULE_MEMALLOC_FAIL 0x807
44 #define ERR_CLSID_MATCH_FAIL 0x808
45 #define ERR_PHSRULE_MATCH_FAIL 0x809
47 typedef struct _S_PHS_RULE
49 /// brief 8bit PHSI Of The Service Flow
51 /// brief PHSF Of The Service Flow
53 B_UINT8 u8PHSF
[MAX_PHS_LENGTHS
];
54 /// brief PHSM Of The Service Flow
56 B_UINT8 u8PHSM
[MAX_PHS_LENGTHS
];
57 /// brief 8bit PHSS Of The Service Flow
59 /// brief 8bit PHSV Of The Service Flow
61 //Reference Count for this PHS Rule
63 //Flag to Store Unclassified PHS rules only in DL
64 B_UINT8 bUnclassifiedPHSRule
;
66 B_UINT8 u8Reserved
[3];
68 LONG PHSModifiedBytes
;
69 ULONG PHSModifiedNumPackets
;
70 ULONG PHSErrorNumPackets
;
74 typedef enum _E_CLASSIFIER_ENTRY_CONTEXT
76 eActiveClassifierRuleContext
,
77 eOldClassifierRuleContext
78 }E_CLASSIFIER_ENTRY_CONTEXT
;
80 typedef struct _S_CLASSIFIER_ENTRY
83 B_UINT16 uiClassifierRuleId
;
85 S_PHS_RULE
*pstPhsRule
;
86 B_UINT8 bUnclassifiedPHSRule
;
91 typedef struct _S_CLASSIFIER_TABLE
93 B_UINT16 uiTotalClassifiers
;
94 S_CLASSIFIER_ENTRY stActivePhsRulesList
[MAX_PHSRULE_PER_SF
];
95 S_CLASSIFIER_ENTRY stOldPhsRulesList
[MAX_PHSRULE_PER_SF
];
96 B_UINT16 uiOldestPhsRuleIndex
;
101 typedef struct _S_SERVICEFLOW_ENTRY
105 S_CLASSIFIER_TABLE
*pstClassifierTable
;
106 }S_SERVICEFLOW_ENTRY
;
108 typedef struct _S_SERVICEFLOW_TABLE
110 B_UINT16 uiTotalServiceFlows
;
111 S_SERVICEFLOW_ENTRY stSFList
[MAX_SERVICEFLOWS
];
113 }S_SERVICEFLOW_TABLE
;
116 typedef struct _PHS_DEVICE_EXTENSION
118 /* PHS Specific data*/
119 S_SERVICEFLOW_TABLE
*pstServiceFlowPhsRulesTable
;
120 void *CompressedTxBuffer
;
121 void *UnCompressedRxBuffer
;
122 }PHS_DEVICE_EXTENSION
,*PPHS_DEVICE_EXTENSION
;