www.pudn.com > PPPOE.rar > pppoepkt.h


 
//******************************************************************** 
//	ÈÕÆÚ:	2004/08/24 - 24:8:2004   22:23 
//	Ãûǰ:	tiamo 
//	ÃèÊö:	pppoe 
//********************************************************************* 
 
#pragma once 
 
// public 
extern "C" 
{ 
	// insert tag in packet <= DISPATCH_LEVEL 
	VOID PacketInsertTag(USHORT ucTag,PPACKET pPacket,PUCHAR pBuffer,USHORT usLen,PUCHAR *ppOutBuffer); 
 
	// prepare packet for send <= DISPATCH_LEVEL 
	VOID PreparePacketForSend(PPACKET pPacket); 
 
	// build packet for send <= DISPATCH_LEVEL 
	PPACKET BuildPacketForSend(PCHANNEL pChannel,PNDIS_PACKET pOrgPacket); 
 
	// initialize packet member pointers <= DISPATCH_LEVEL 
	BOOLEAN InitializePacketForRecved(PPACKET pPacket); 
 
	// ndis recved ndis packet to our packet <= DISPATCH_LEVEL 
	PPACKET ConvertRecvedNdisPacket(PBIND_CONTEXT pBind,PNDIS_PACKET pNdisPacket,PBOOLEAN pNeedCallReturn); 
 
	// fast check frame 
	BOOLEAN FastCheckIsPPPoEFrame(PPPPOE_FRAME pFrame,ULONG ulSize); 
 
	// full check packet 
	BOOLEAN CheckIsPPPoEPacket(PPACKET pPacket); 
 
	// create packet from recved 
	PPACKET ReuseRecvedPacketBuffer(PBIND_CONTEXT pBind,PNDIS_PACKET pNdisPacket,PPPPOE_FRAME pFrame,UINT uLen); 
 
	// get tag from buffer 
	VOID RetrieveTag(USHORT usTag,PPACKET pPacket,PUCHAR *ppBuffer,PUSHORT pBufferLen,BOOLEAN bSaveToPacket); 
 
	// get error tags 
	VOID RetrieveErrorTag(PPACKET pPacket); 
 
	// get service name from buffer 
	VOID RetrieveServiceName(PPACKET pPacket,PUCHAR *ppBuffer,PUSHORT pBufferLen,PUCHAR pStart,USHORT usTotalLen); 
 
	// verify ac cookie 
	BOOLEAN VerifyACCookie(PPACKET pPacket); 
 
	// verify service name 
	BOOLEAN VerifyServiceName(PUCHAR pServiceName,USHORT usServiceNameLen,PPACKET pPacket,BOOLEAN bStrict); 
 
	// build a PADI to send 
	PPACKET InitializePADIToSend(PUCHAR pServiceName,USHORT usServiceName,PUCHAR pHostUnique,USHORT usHostUnique); 
 
	// build a PADO to send 
	PPACKET InitializePADOToSend(PPACKET pRecvedPacket,PUCHAR pSelfMac,PUCHAR pServiceName,USHORT usServiceName,PUCHAR pACName,USHORT usACNameLen,BOOLEAN bSetACCookie); 
 
	// build PADR to send 
	PPACKET InitializePADRToSend(PPACKET pRecvedPacket,PUCHAR pServiceName,USHORT usServiceName,PUCHAR pHostUnique,USHORT usHostUnique); 
 
	// build PADS to send 
	PPACKET InitializePADSToSend(PPACKET pRecvedPacket,USHORT usSessionId); 
 
	// build PADT to send 
	PPACKET InitializePADTToSend(PUCHAR pDstAddr,PUCHAR pSrcAddr,USHORT usSession); 
 
	// send error PADS 
	VOID SendPADSWithError(USHORT usTag,PBIND_CONTEXT pBind,PPACKET pRecvedPacket); 
}