linklayerprotocols/pppnif/INC/PPPSOCK.H
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/INC/PPPSOCK.H	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,129 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent 
+*/
+
+#if !defined(__PPPSOCK_H__)
+#define __PPPSOCK_H__
+
+#include <es_prot.h>
+
+//
+// PPP Socket address - used by link protocols
+//
+
+enum TPppPhase
+	{
+	EPppPhaseTerminate,
+	EPppPhaseEstablish,
+	EPppPhaseEarlyCallback,
+	EPppPhaseAuthenticate,
+	EPppPhaseLateCallback,
+	EPppPhaseNetwork,
+	EPppPhaseAll = EPppPhaseTerminate
+	};
+
+struct SPppLinkAddr
+	{
+	TPppPhase iPhase;
+	TUint iProtocol;
+	TUint iAddress;
+	TUint iControl;
+	TBool iCRCError;  // Need to propagate CRC errors for VJ Compression
+	};
+
+class TPppAddr : public TSockAddr
+	{
+public:
+	IMPORT_C TPppAddr();
+	IMPORT_C TPppAddr& operator = (const TSockAddr& aAddr);
+	inline static TPppAddr& Cast(const TSockAddr& aAddr);
+	inline static TPppAddr& Cast(const TSockAddr* aAddr);
+	inline TPppPhase GetPhase();
+	inline void SetPhase(TPppPhase aPhase);
+	inline TUint GetProtocol();
+	inline void SetProtocol(TUint aProtocol);
+	inline TUint GetAddress();
+	inline void SetAddress(TUint aAddress);
+	inline TUint GetControl();
+	inline void SetControl(TUint aControl);
+	inline void  SetCRCError(TBool anError);
+	inline TBool CRCError();
+
+
+protected:
+	inline SPppLinkAddr *InfoPtr() const;
+	};
+
+//
+// PPP Constants
+//
+
+const TUint KAfPpp = 0xc021;
+const TUint KSOLPpp = 0xc021;
+
+// Protocol IDs
+const TUint KPppIdEsock = 0x10000;	// Normally 0
+const TUint KPppIdLcp = 0xc021;
+const TUint KPppIdPap = 0xc023;
+const TUint KPppIdChap = 0xc223;
+const TUint KPppIdCompressedData = 0x00fd;
+
+const TUint KPppIdMsCbcp = 0xc029;	// CSW
+
+// LCP Codes
+const TUint8 KPppLcpConfigRequest = 1;
+const TUint8 KPppLcpConfigAck = 2;
+const TUint8 KPppLcpConfigNak = 3;
+const TUint8 KPppLcpConfigReject = 4;
+const TUint8 KPppLcpTerminateRequest = 5;
+const TUint8 KPppLcpTerminateAck = 6;
+const TUint8 KPppLcpCodeReject = 7;
+const TUint8 KPppLcpProtocolReject = 8;
+const TUint8 KPppLcpEchoRequest = 9;
+const TUint8 KPppLcpEchoReply = 10;
+const TUint8 KPppLcpDiscardRequest = 11;
+
+// LCP Extended Codes
+const TUint8 KPppLcpIdentification = 12;
+const TUint8 KPppLcpTimeRemaining = 13;
+
+// LCP Options
+const TUint8 KPppLcpOptMaxRecvUnit = 1;
+const TUint8 KPppLcpOptEscapeCharMap = 2;
+const TUint8 KPppLcpOptAuthenticationProtocol = 3;
+const TUint8 KPppLcpOptQualityProtocol = 4;
+const TUint8 KPppLcpOptMagicNumber = 5;
+const TUint8 KPppLcpOptProtocolCompress = 7;
+const TUint8 KPppLcpOptAddrCtrlCompress = 8;
+const TUint8 KPppLcpOptMRRU = 17;
+const TUint8 KPppLcpOptMultiLinkEndPointDescriminator = 19; // RFC1717
+
+// LCP Extended Options
+const TUint8 KPppLcpOptFcsType = 9;
+const TUint8 KPppLcpOptPadding = 10;
+const TUint8 KPppLcpOptCallback = 13;
+const TUint8 KPppLcpOptCompoundFrames = 15;
+
+const TUint KPppIdUnknown = 0x80000000;
+const TUint KPppIdCopyAll = 0x80000001;
+const TUint KPppIdAsIs = 0x80000002;
+
+#include <networking/pppsock.inl>
+
+#endif