Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#ifndef BCM_MINIPORT_PHSMODULE_H
2#define BCM_MINIPORT_PHSMODULE_H
3
4int PHSTransmit(PMINI_ADAPTER Adapter,
5 struct sk_buff **pPacket,
6 USHORT Vcid,
7 B_UINT16 uiClassifierRuleID,
8 BOOLEAN bHeaderSuppressionEnabled,
9 PUINT PacketLen,
10 UCHAR bEthCSSupport);
11
12int PHSRecieve(PMINI_ADAPTER Adapter,
13 USHORT usVcid,
14 struct sk_buff *packet,
15 UINT *punPacketLen,
16 UCHAR *pucEthernetHdr,
17 UINT
18 );
19
20
21void DumpDataPacketHeader(PUCHAR pPkt);
22
23void DumpFullPacket(UCHAR *pBuf,UINT nPktLen);
24
25void DumpPhsRules(PPHS_DEVICE_EXTENSION pDeviceExtension);
26
27
28int phs_init(PPHS_DEVICE_EXTENSION pPhsdeviceExtension,PMINI_ADAPTER Adapter);
29
30void free_phs_serviceflow_rules(S_SERVICEFLOW_TABLE *psServiceFlowRulesTable);
31
32int phs_compress(S_PHS_RULE *phs_members,unsigned char *in_buf,
33 unsigned char *out_buf,unsigned int *header_size,UINT *new_header_size );
34
35
36int verify_suppress_phsf(unsigned char *in_buffer,unsigned char *out_buffer,
37 unsigned char *phsf,unsigned char *phsm,unsigned int phss,unsigned int phsv,UINT *new_header_size );
38
39int phs_decompress(unsigned char *in_buf,unsigned char *out_buf,\
40 S_PHS_RULE *phs_rules,UINT *header_size);
41
42
43int PhsCleanup(PPHS_DEVICE_EXTENSION pPHSDeviceExt);
44
45//Utility Functions
46ULONG PhsUpdateClassifierRule(void* pvContext,B_UINT16 uiVcid,B_UINT16 uiClsId,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI );
47
48ULONG PhsDeletePHSRule(void* pvContext,B_UINT16 uiVcid,B_UINT8 u8PHSI);
49
50ULONG PhsDeleteClassifierRule(void* pvContext, B_UINT16 uiVcid ,B_UINT16 uiClsId);
51
52ULONG PhsDeleteSFRules(void* pvContext,B_UINT16 uiVcid) ;
53
54
55ULONG PhsCompress(void* pvContext,
56 B_UINT16 uiVcid,
57 B_UINT16 uiClsId,
58 void *pvInputBuffer,
59 void *pvOutputBuffer,
60 UINT *pOldHeaderSize,
61 UINT *pNewHeaderSize );
62
63ULONG PhsDeCompress(void* pvContext,
64 B_UINT16 uiVcid,
65 void *pvInputBuffer,
66 void *pvOutputBuffer,
67 UINT *pInHeaderSize,
68 UINT *pOutHeaderSize);
69
70
71BOOLEAN ValidatePHSRule(S_PHS_RULE *psPhsRule);
72
73BOOLEAN ValidatePHSRuleComplete(S_PHS_RULE *psPhsRule);
74
75UINT GetServiceFlowEntry(S_SERVICEFLOW_TABLE *psServiceFlowTable,B_UINT16 uiVcid,S_SERVICEFLOW_ENTRY **ppstServiceFlowEntry);
76
77UINT GetClassifierEntry(S_CLASSIFIER_TABLE *pstClassifierTable,B_UINT32 uiClsid,E_CLASSIFIER_ENTRY_CONTEXT eClsContext, S_CLASSIFIER_ENTRY **ppstClassifierEntry);
78
79UINT GetPhsRuleEntry(S_CLASSIFIER_TABLE *pstClassifierTable,B_UINT32 uiPHSI,E_CLASSIFIER_ENTRY_CONTEXT eClsContext,S_PHS_RULE **ppstPhsRule);
80
81
82UINT CreateSFToClassifierRuleMapping(B_UINT16 uiVcid,B_UINT16 uiClsId,S_SERVICEFLOW_TABLE *psServiceFlowTable,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI);
83
84UINT CreateClassiferToPHSRuleMapping(B_UINT16 uiVcid,B_UINT16 uiClsId,S_SERVICEFLOW_ENTRY *pstServiceFlowEntry,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI);
85
86UINT CreateClassifierPHSRule(B_UINT16 uiClsId,S_CLASSIFIER_TABLE *psaClassifiertable ,S_PHS_RULE *psPhsRule,E_CLASSIFIER_ENTRY_CONTEXT eClsContext,B_UINT8 u8AssociatedPHSI);
87
88UINT UpdateClassifierPHSRule(B_UINT16 uiClsId,S_CLASSIFIER_ENTRY *pstClassifierEntry,S_CLASSIFIER_TABLE *psaClassifiertable ,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI);
89
90BOOLEAN DerefPhsRule(B_UINT16 uiClsId,S_CLASSIFIER_TABLE *psaClassifiertable,S_PHS_RULE *pstPhsRule);
91
92void DumpPhsRules(PPHS_DEVICE_EXTENSION pDeviceExtension);
93
94
95#endif