1 #ifndef BCM_PHS_DEFINES_H
2 #define BCM_PHS_DEFINES_H
4 #define PHS_INVALID_TABLE_INDEX 0xffffffff
5 #define PHS_MEM_TAG "_SHP"
8 #define STATUS_PHS_COMPRESSED 0xa1
9 #define STATUS_PHS_NOCOMPRESSION 0xa2
14 #define SIZE_MULTIPLE_32 4
15 #define UNCOMPRESSED_PACKET 0
18 #define NO_CLASSIFIER_MATCH 0
19 #define SEND_PACKET_UNCOMPRESSED 0
20 #define PHSI_IS_ZERO 0
23 #define PHS_BUFFER_SIZE 1532
24 #define MAX_PHSRULE_PER_SF 20
25 #define MAX_SERVICEFLOWS 17
27 /* PHS Error Defines */
29 #define ERR_PHS_INVALID_DEVICE_EXETENSION 0x800
30 #define ERR_PHS_INVALID_PHS_RULE 0x801
31 #define ERR_PHS_RULE_ALREADY_EXISTS 0x802
32 #define ERR_SF_MATCH_FAIL 0x803
33 #define ERR_INVALID_CLASSIFIERTABLE_FOR_SF 0x804
34 #define ERR_SFTABLE_FULL 0x805
35 #define ERR_CLSASSIFIER_TABLE_FULL 0x806
36 #define ERR_PHSRULE_MEMALLOC_FAIL 0x807
37 #define ERR_CLSID_MATCH_FAIL 0x808
38 #define ERR_PHSRULE_MATCH_FAIL 0x809
40 typedef struct _S_PHS_RULE {
43 u8 u8PHSF[MAX_PHS_LENGTHS];
45 u8 u8PHSM[MAX_PHS_LENGTHS];
49 u8 bUnclassifiedPHSRule;
51 LONG PHSModifiedBytes;
52 ULONG PHSModifiedNumPackets;
53 ULONG PHSErrorNumPackets;
56 typedef enum _E_CLASSIFIER_ENTRY_CONTEXT {
57 eActiveClassifierRuleContext,
58 eOldClassifierRuleContext
59 } E_CLASSIFIER_ENTRY_CONTEXT;
61 typedef struct _S_CLASSIFIER_ENTRY {
63 u16 uiClassifierRuleId;
65 S_PHS_RULE *pstPhsRule;
66 u8 bUnclassifiedPHSRule;
69 typedef struct _S_CLASSIFIER_TABLE {
70 u16 uiTotalClassifiers;
71 S_CLASSIFIER_ENTRY stActivePhsRulesList[MAX_PHSRULE_PER_SF];
72 S_CLASSIFIER_ENTRY stOldPhsRulesList[MAX_PHSRULE_PER_SF];
73 u16 uiOldestPhsRuleIndex;
76 typedef struct _S_SERVICEFLOW_ENTRY {
79 S_CLASSIFIER_TABLE *pstClassifierTable;
80 } S_SERVICEFLOW_ENTRY;
82 typedef struct _S_SERVICEFLOW_TABLE {
83 u16 uiTotalServiceFlows;
84 S_SERVICEFLOW_ENTRY stSFList[MAX_SERVICEFLOWS];
85 } S_SERVICEFLOW_TABLE;
87 typedef struct _PHS_DEVICE_EXTENSION {
88 /* PHS Specific data */
89 S_SERVICEFLOW_TABLE *pstServiceFlowPhsRulesTable;
90 void *CompressedTxBuffer;
91 void *UnCompressedRxBuffer;
92 } PHS_DEVICE_EXTENSION, *PPHS_DEVICE_EXTENSION;