at v3.6 124 lines 3.3 kB view raw
1#ifndef BCM_PHS_DEFINES_H 2#define BCM_PHS_DEFINES_H 3 4#define PHS_INVALID_TABLE_INDEX 0xffffffff 5 6/************************* MACROS **********************************************/ 7#define PHS_MEM_TAG "_SHP" 8 9 10 11//PHS Defines 12#define STATUS_PHS_COMPRESSED 0xa1 13#define STATUS_PHS_NOCOMPRESSION 0xa2 14#define APPLY_PHS 1 15#define MAX_NO_BIT 7 16#define ZERO_PHSI 0 17#define VERIFY 0 18#define SIZE_MULTIPLE_32 4 19#define UNCOMPRESSED_PACKET 0 20#define DYNAMIC 0 21#define SUPPRESS 0x80 22#define NO_CLASSIFIER_MATCH 0 23#define SEND_PACKET_UNCOMPRESSED 0 24#define PHSI_IS_ZERO 0 25#define PHSI_LEN 1 26#define ERROR_LEN 0 27#define PHS_BUFFER_SIZE 1532 28 29 30#define MAX_PHSRULE_PER_SF 20 31#define MAX_SERVICEFLOWS 17 32 33//PHS Error Defines 34#define PHS_SUCCESS 0 35#define ERR_PHS_INVALID_DEVICE_EXETENSION 0x800 36#define ERR_PHS_INVALID_PHS_RULE 0x801 37#define ERR_PHS_RULE_ALREADY_EXISTS 0x802 38#define ERR_SF_MATCH_FAIL 0x803 39#define ERR_INVALID_CLASSIFIERTABLE_FOR_SF 0x804 40#define ERR_SFTABLE_FULL 0x805 41#define ERR_CLSASSIFIER_TABLE_FULL 0x806 42#define ERR_PHSRULE_MEMALLOC_FAIL 0x807 43#define ERR_CLSID_MATCH_FAIL 0x808 44#define ERR_PHSRULE_MATCH_FAIL 0x809 45 46typedef struct _S_PHS_RULE 47{ 48 /// brief 8bit PHSI Of The Service Flow 49 B_UINT8 u8PHSI; 50 /// brief PHSF Of The Service Flow 51 B_UINT8 u8PHSFLength; 52 B_UINT8 u8PHSF[MAX_PHS_LENGTHS]; 53 /// brief PHSM Of The Service Flow 54 B_UINT8 u8PHSMLength; 55 B_UINT8 u8PHSM[MAX_PHS_LENGTHS]; 56 /// brief 8bit PHSS Of The Service Flow 57 B_UINT8 u8PHSS; 58 /// brief 8bit PHSV Of The Service Flow 59 B_UINT8 u8PHSV; 60 //Reference Count for this PHS Rule 61 B_UINT8 u8RefCnt; 62 //Flag to Store Unclassified PHS rules only in DL 63 B_UINT8 bUnclassifiedPHSRule; 64 65 B_UINT8 u8Reserved[3]; 66 67 LONG PHSModifiedBytes; 68 ULONG PHSModifiedNumPackets; 69 ULONG PHSErrorNumPackets; 70}S_PHS_RULE; 71 72 73typedef enum _E_CLASSIFIER_ENTRY_CONTEXT 74{ 75 eActiveClassifierRuleContext, 76 eOldClassifierRuleContext 77}E_CLASSIFIER_ENTRY_CONTEXT; 78 79typedef struct _S_CLASSIFIER_ENTRY 80{ 81 B_UINT8 bUsed; 82 B_UINT16 uiClassifierRuleId; 83 B_UINT8 u8PHSI; 84 S_PHS_RULE *pstPhsRule; 85 B_UINT8 bUnclassifiedPHSRule; 86 87}S_CLASSIFIER_ENTRY; 88 89 90typedef struct _S_CLASSIFIER_TABLE 91{ 92 B_UINT16 uiTotalClassifiers; 93 S_CLASSIFIER_ENTRY stActivePhsRulesList[MAX_PHSRULE_PER_SF]; 94 S_CLASSIFIER_ENTRY stOldPhsRulesList[MAX_PHSRULE_PER_SF]; 95 B_UINT16 uiOldestPhsRuleIndex; 96 97}S_CLASSIFIER_TABLE; 98 99 100typedef struct _S_SERVICEFLOW_ENTRY 101{ 102 B_UINT8 bUsed; 103 B_UINT16 uiVcid; 104 S_CLASSIFIER_TABLE *pstClassifierTable; 105}S_SERVICEFLOW_ENTRY; 106 107typedef struct _S_SERVICEFLOW_TABLE 108{ 109 B_UINT16 uiTotalServiceFlows; 110 S_SERVICEFLOW_ENTRY stSFList[MAX_SERVICEFLOWS]; 111 112}S_SERVICEFLOW_TABLE; 113 114 115typedef struct _PHS_DEVICE_EXTENSION 116{ 117 /* PHS Specific data*/ 118 S_SERVICEFLOW_TABLE *pstServiceFlowPhsRulesTable; 119 void *CompressedTxBuffer; 120 void *UnCompressedRxBuffer; 121}PHS_DEVICE_EXTENSION,*PPHS_DEVICE_EXTENSION; 122 123 124#endif