diff -r 000000000000 -r af10295192d8 linklayerprotocols/pppnif/INC/PPPSOCK.H --- /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 + +// +// 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 + +#endif