1 #ifndef BCM_MINIPORT_PHSMODULE_H
2 #define BCM_MINIPORT_PHSMODULE_H
4 int PHSTransmit(PMINI_ADAPTER Adapter,
5 struct sk_buff **pPacket,
7 B_UINT16 uiClassifierRuleID,
8 BOOLEAN bHeaderSuppressionEnabled,
12 int PHSRecieve(PMINI_ADAPTER Adapter,
14 struct sk_buff *packet,
16 UCHAR *pucEthernetHdr,
21 void DumpDataPacketHeader(PUCHAR pPkt);
23 void DumpFullPacket(UCHAR *pBuf,UINT nPktLen);
25 void DumpPhsRules(PPHS_DEVICE_EXTENSION pDeviceExtension);
28 int phs_init(PPHS_DEVICE_EXTENSION pPhsdeviceExtension,PMINI_ADAPTER Adapter);
30 void free_phs_serviceflow_rules(S_SERVICEFLOW_TABLE *psServiceFlowRulesTable);
32 int phs_compress(S_PHS_RULE *phs_members,unsigned char *in_buf,
33 unsigned char *out_buf,unsigned int *header_size,UINT *new_header_size );
36 int 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 );
39 int phs_decompress(unsigned char *in_buf,unsigned char *out_buf,\
40 S_PHS_RULE *phs_rules,UINT *header_size);
43 int PhsCleanup(PPHS_DEVICE_EXTENSION pPHSDeviceExt);
46 ULONG PhsUpdateClassifierRule(void* pvContext,B_UINT16 uiVcid,B_UINT16 uiClsId,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI );
48 ULONG PhsDeletePHSRule(void* pvContext,B_UINT16 uiVcid,B_UINT8 u8PHSI);
50 ULONG PhsDeleteClassifierRule(void* pvContext, B_UINT16 uiVcid ,B_UINT16 uiClsId);
52 ULONG PhsDeleteSFRules(void* pvContext,B_UINT16 uiVcid) ;
55 ULONG PhsCompress(void* pvContext,
61 UINT *pNewHeaderSize );
63 ULONG PhsDeCompress(void* pvContext,
68 UINT *pOutHeaderSize);
71 BOOLEAN ValidatePHSRule(S_PHS_RULE *psPhsRule);
73 BOOLEAN ValidatePHSRuleComplete(S_PHS_RULE *psPhsRule);
75 UINT GetServiceFlowEntry(S_SERVICEFLOW_TABLE *psServiceFlowTable,B_UINT16 uiVcid,S_SERVICEFLOW_ENTRY **ppstServiceFlowEntry);
77 UINT GetClassifierEntry(S_CLASSIFIER_TABLE *pstClassifierTable,B_UINT32 uiClsid,E_CLASSIFIER_ENTRY_CONTEXT eClsContext, S_CLASSIFIER_ENTRY **ppstClassifierEntry);
79 UINT GetPhsRuleEntry(S_CLASSIFIER_TABLE *pstClassifierTable,B_UINT32 uiPHSI,E_CLASSIFIER_ENTRY_CONTEXT eClsContext,S_PHS_RULE **ppstPhsRule);
82 UINT CreateSFToClassifierRuleMapping(B_UINT16 uiVcid,B_UINT16 uiClsId,S_SERVICEFLOW_TABLE *psServiceFlowTable,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI);
84 UINT CreateClassiferToPHSRuleMapping(B_UINT16 uiVcid,B_UINT16 uiClsId,S_SERVICEFLOW_ENTRY *pstServiceFlowEntry,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI);
86 UINT CreateClassifierPHSRule(B_UINT16 uiClsId,S_CLASSIFIER_TABLE *psaClassifiertable ,S_PHS_RULE *psPhsRule,E_CLASSIFIER_ENTRY_CONTEXT eClsContext,B_UINT8 u8AssociatedPHSI);
88 UINT UpdateClassifierPHSRule(B_UINT16 uiClsId,S_CLASSIFIER_ENTRY *pstClassifierEntry,S_CLASSIFIER_TABLE *psaClassifiertable ,S_PHS_RULE *psPhsRule,B_UINT8 u8AssociatedPHSI);
90 BOOLEAN DerefPhsRule(B_UINT16 uiClsId,S_CLASSIFIER_TABLE *psaClassifiertable,S_PHS_RULE *pstPhsRule);
92 void DumpPhsRules(PPHS_DEVICE_EXTENSION pDeviceExtension);