• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef BCM_PHS_DEFINES_H
2 #define BCM_PHS_DEFINES_H
3 
4 #define PHS_INVALID_TABLE_INDEX	0xffffffff
5 #define PHS_MEM_TAG "_SHP"
6 
7 /* PHS Defines */
8 #define STATUS_PHS_COMPRESSED		0xa1
9 #define STATUS_PHS_NOCOMPRESSION	0xa2
10 #define APPLY_PHS			1
11 #define MAX_NO_BIT			7
12 #define ZERO_PHSI			0
13 #define VERIFY				0
14 #define SIZE_MULTIPLE_32		4
15 #define UNCOMPRESSED_PACKET		0
16 #define DYNAMIC				0
17 #define SUPPRESS			0x80
18 #define NO_CLASSIFIER_MATCH		0
19 #define SEND_PACKET_UNCOMPRESSED	0
20 #define PHSI_IS_ZERO			0
21 #define PHSI_LEN			1
22 #define ERROR_LEN			0
23 #define PHS_BUFFER_SIZE			1532
24 #define MAX_PHSRULE_PER_SF		20
25 #define MAX_SERVICEFLOWS		17
26 
27 /* PHS Error Defines */
28 #define PHS_SUCCESS				0
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
39 
40 struct bcm_phs_rule {
41 	u8 u8PHSI;
42 	u8 u8PHSFLength;
43 	u8 u8PHSF[MAX_PHS_LENGTHS];
44 	u8 u8PHSMLength;
45 	u8 u8PHSM[MAX_PHS_LENGTHS];
46 	u8 u8PHSS;
47 	u8 u8PHSV;
48 	u8 u8RefCnt;
49 	u8 bUnclassifiedPHSRule;
50 	u8 u8Reserved[3];
51 	long PHSModifiedBytes;
52 	unsigned long PHSModifiedNumPackets;
53 	unsigned long PHSErrorNumPackets;
54 };
55 
56 enum bcm_phs_classifier_context {
57 	eActiveClassifierRuleContext,
58 	eOldClassifierRuleContext
59 };
60 
61 struct bcm_phs_classifier_entry {
62 	u8  bUsed;
63 	u16 uiClassifierRuleId;
64 	u8  u8PHSI;
65 	struct bcm_phs_rule *pstPhsRule;
66 	u8  bUnclassifiedPHSRule;
67 };
68 
69 struct bcm_phs_classifier_table {
70 	u16 uiTotalClassifiers;
71 	struct bcm_phs_classifier_entry stActivePhsRulesList[MAX_PHSRULE_PER_SF];
72 	struct bcm_phs_classifier_entry stOldPhsRulesList[MAX_PHSRULE_PER_SF];
73 	u16 uiOldestPhsRuleIndex;
74 };
75 
76 struct bcm_phs_entry {
77 	u8  bUsed;
78 	u16 uiVcid;
79 	struct bcm_phs_classifier_table *pstClassifierTable;
80 };
81 
82 struct bcm_phs_table {
83 	u16 uiTotalServiceFlows;
84 	struct bcm_phs_entry stSFList[MAX_SERVICEFLOWS];
85 };
86 
87 struct bcm_phs_extension {
88 	/* PHS Specific data */
89 	struct bcm_phs_table *pstServiceFlowPhsRulesTable;
90 	void *CompressedTxBuffer;
91 	void *UnCompressedRxBuffer;
92 };
93 
94 #endif
95