1#ifndef BCM_MINIPORT_PHSMODULE_H
2#define BCM_MINIPORT_PHSMODULE_H
3
4int PHSTransmit(struct bcm_mini_adapter *Adapter,
5					struct sk_buff **pPacket,
6					 USHORT Vcid,
7					 B_UINT16 uiClassifierRuleID,
8					 bool bHeaderSuppressionEnabled,
9					 PUINT PacketLen,
10					 UCHAR bEthCSSupport);
11
12int PHSReceive(struct bcm_mini_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(struct bcm_phs_extension *pDeviceExtension);
26
27
28int phs_init(struct bcm_phs_extension *pPhsdeviceExtension,
29	     struct bcm_mini_adapter *Adapter);
30
31int PhsCleanup(struct bcm_phs_extension *pPHSDeviceExt);
32
33/* Utility Functions */
34ULONG PhsUpdateClassifierRule(void *pvContext,
35			      B_UINT16 uiVcid,
36			      B_UINT16 uiClsId,
37			      struct bcm_phs_rule *psPhsRule,
38			      B_UINT8  u8AssociatedPHSI);
39
40ULONG PhsDeletePHSRule(void *pvContext, B_UINT16 uiVcid, B_UINT8 u8PHSI);
41
42ULONG PhsDeleteClassifierRule(void *pvContext,
43			      B_UINT16 uiVcid,
44			      B_UINT16  uiClsId);
45
46ULONG PhsDeleteSFRules(void *pvContext, B_UINT16 uiVcid);
47
48
49bool ValidatePHSRule(struct bcm_phs_rule *psPhsRule);
50
51UINT GetServiceFlowEntry(struct bcm_phs_table *psServiceFlowTable,
52			 B_UINT16 uiVcid,
53			 struct bcm_phs_entry **ppstServiceFlowEntry);
54
55
56void DumpPhsRules(struct bcm_phs_extension *pDeviceExtension);
57
58
59#endif
60