]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/staging/bcm/PHSDefines.h
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[mirror_ubuntu-bionic-kernel.git] / drivers / staging / bcm / PHSDefines.h
CommitLineData
f8942e07
SH
1#ifndef BCM_PHS_DEFINES_H
2#define BCM_PHS_DEFINES_H
3
4#define PHS_INVALID_TABLE_INDEX 0xffffffff
5
6/************************* MACROS **********************************************/
9f1c75ac 7#define PHS_MEM_TAG "_SHP"
f8942e07
SH
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
f8942e07
SH
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