at v3.1 125 lines 3.4 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_PHS_LENGTHS 100 31#define MAX_PHSRULE_PER_SF 20 32#define MAX_SERVICEFLOWS 17 33 34//PHS Error Defines 35#define PHS_SUCCESS 0 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 46 47typedef struct _S_PHS_RULE 48{ 49 /// brief 8bit PHSI Of The Service Flow 50 B_UINT8 u8PHSI; 51 /// brief PHSF Of The Service Flow 52 B_UINT8 u8PHSFLength; 53 B_UINT8 u8PHSF[MAX_PHS_LENGTHS]; 54 /// brief PHSM Of The Service Flow 55 B_UINT8 u8PHSMLength; 56 B_UINT8 u8PHSM[MAX_PHS_LENGTHS]; 57 /// brief 8bit PHSS Of The Service Flow 58 B_UINT8 u8PHSS; 59 /// brief 8bit PHSV Of The Service Flow 60 B_UINT8 u8PHSV; 61 //Reference Count for this PHS Rule 62 B_UINT8 u8RefCnt; 63 //Flag to Store Unclassified PHS rules only in DL 64 B_UINT8 bUnclassifiedPHSRule; 65 66 B_UINT8 u8Reserved[3]; 67 68 LONG PHSModifiedBytes; 69 ULONG PHSModifiedNumPackets; 70 ULONG PHSErrorNumPackets; 71}S_PHS_RULE; 72 73 74typedef enum _E_CLASSIFIER_ENTRY_CONTEXT 75{ 76 eActiveClassifierRuleContext, 77 eOldClassifierRuleContext 78}E_CLASSIFIER_ENTRY_CONTEXT; 79 80typedef struct _S_CLASSIFIER_ENTRY 81{ 82 B_UINT8 bUsed; 83 B_UINT16 uiClassifierRuleId; 84 B_UINT8 u8PHSI; 85 S_PHS_RULE *pstPhsRule; 86 B_UINT8 bUnclassifiedPHSRule; 87 88}S_CLASSIFIER_ENTRY; 89 90 91typedef struct _S_CLASSIFIER_TABLE 92{ 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; 97 98}S_CLASSIFIER_TABLE; 99 100 101typedef struct _S_SERVICEFLOW_ENTRY 102{ 103 B_UINT8 bUsed; 104 B_UINT16 uiVcid; 105 S_CLASSIFIER_TABLE *pstClassifierTable; 106}S_SERVICEFLOW_ENTRY; 107 108typedef struct _S_SERVICEFLOW_TABLE 109{ 110 B_UINT16 uiTotalServiceFlows; 111 S_SERVICEFLOW_ENTRY stSFList[MAX_SERVICEFLOWS]; 112 113}S_SERVICEFLOW_TABLE; 114 115 116typedef struct _PHS_DEVICE_EXTENSION 117{ 118 /* PHS Specific data*/ 119 S_SERVICEFLOW_TABLE *pstServiceFlowPhsRulesTable; 120 void *CompressedTxBuffer; 121 void *UnCompressedRxBuffer; 122}PHS_DEVICE_EXTENSION,*PPHS_DEVICE_EXTENSION; 123 124 125#endif