CPppBinderIp4 Class Reference

class CPppBinderIp4 : public CBase

Implements IPCP and support for IP datagrams (RFC 1332)

Inherits from

Public Member Functions
~CPppBinderIp4()
MLowerDataSender *BindL(ESock::MUpperDataReceiver &, ESock::MUpperControl &)
TInt BlockFlow(ESock::MLowerControl::TBlockOption)
TInt Control(TUint, TUint, TDes8 &)
voidError(TInt)
TInt GetConfig(TBinderConfig &)
TInt GetName(TDes &)
voidIpFrameError()
voidIpKillProtocol()
TBool MatchesUpperControl(const ESock::MUpperControl *)
CPppBinderIp4 *NewL(CPppLcp *)
TInt Notification(TAgentToNifEventType)
voidRecvIp(RMBufChain &)
voidRecvVjCompTcp(RMBufChain &)
voidRecvVjUncompTcp(RMBufChain &)
ESock::MLowerDataSender::TSendResult Send(RMBufChain &)
voidSendFlowOn()
voidUnBind(ESock::MUpperDataReceiver &, ESock::MUpperControl &)
voidVjCompTcpFrameError()
voidVjCompTcpKillProtocol()
voidVjUncompTcpFrameError()
voidVjUncompTcpKillProtocol()
Protected Member Functions
voidFsmApplyConfigRequest(RPppOptionList &)
voidFsmCheckConfigRequest(RPppOptionList &, RPppOptionList &, RPppOptionList &, RPppOptionList &)
voidFsmFillinConfigRequestL(RPppOptionList &)
voidFsmLayerDown(TInt)
voidFsmLayerFinished(TInt)
TInt FsmLayerStarted()
voidFsmLayerUp()
voidFsmRecvConfigAck(RPppOptionList &)
voidFsmRecvConfigNak(RPppOptionList &, RPppOptionList &)
voidFsmRecvConfigReject(RPppOptionList &, RPppOptionList &)
TBool FsmRecvUnknownCode(TUint8, TUint8, TInt, RMBufChain &)
voidFsmTerminationPhaseComplete()
voidKillProtocol()
Private Member Functions
CPppBinderIp4(CPppLcp *)
voidConstructL()
voidDoSend()
CPppLcp *Flow()
CVJCompressorIf *LoadVJCompressorL()
CVJDeCompressorIf *LoadVJDeCompressorL()
TInt SendCallBack(TAny *)
MLowerDataSender::TSendResult SendProtFrame(RMBufChain &, TUint)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Attributes
__FLOG_DECLARATION_MEMBER
TBool iAuthenticated
TBool iCompressConnId
TInterfaceName iIfName
TPppExtraRecvr< CPppBinderIp4 >iIpRecvr
TUint32 iLocalAddr
ESock::MLowerDataSender::TSendResult iLowerFlowOn
TUint iMaxVJSlots
TUint32 iNetworkMask
CPppLcp *iPppNifSubConnectionFlow
TUint32 iPrimaryDns
TUint32 iPrimaryNbns
TUint32 iRemoteAddr
TUint32 iSecondaryDns
TUint32 iSecondaryNbns
CAsyncCallBack *iSendCallBack
RMBufPktQ iSendQ
ESock::MUpperControl *iUpperControl
ESock::MLowerDataSender::TSendResult iUpperFlowOn
ESock::MUpperDataReceiver *iUpperReceiver
TBool iVJCompressionOn
CVJCompressorIf *iVJCompressor
CObjectCon *iVJCompressorCon
CObjectCon *iVJDeCompressorCon
CVJDeCompressorIf *iVJDecompressor
TPppExtraRecvr< CPppBinderIp4 >iVjCompTcpRecvr
TPppExtraRecvr< CPppBinderIp4 >iVjUncompTcpRecvr

Constructor & Destructor Documentation

CPppBinderIp4(CPppLcp *)

CPppBinderIp4(CPppLcp *aLcp)[private]

Parameters

CPppLcp * aLcp

~CPppBinderIp4()

~CPppBinderIp4()

Member Functions Documentation

BindL(ESock::MUpperDataReceiver &, ESock::MUpperControl &)

MLowerDataSender *BindL(ESock::MUpperDataReceiver &aUpperReceiver,
ESock::MUpperControl &aControl
)

Binds NCPIP to the TCP/IP stack.

Parameters

ESock::MUpperDataReceiver & aUpperReceiver
ESock::MUpperControl & aControl

BlockFlow(ESock::MLowerControl::TBlockOption)

TInt BlockFlow(ESock::MLowerControl::TBlockOption)[virtual]

ConstructL()

voidConstructL()[private]

Construct the Link Protocol Object

Control(TUint, TUint, TDes8 &)

TInt Control(TUintaLevel,
TUintaName,
TDes8 &aOption
)[virtual]

Called by the TCP/IP stack to get/set PPP NIF parameters.

Parameters

TUint aLevelMust be KSOLInterface
TUint aNameOption name
TDes8 & aOptionData for the given option

DoSend()

voidDoSend()[private]

Dequeues packets and sends them out the link.

Error(TInt)

voidError(TIntaError)

Parameters

TInt aError

Flow()

CPppLcp *Flow()[private, inline]

FsmApplyConfigRequest(RPppOptionList &)

voidFsmApplyConfigRequest(RPppOptionList &aRequestList)[protected, virtual]

Applies options in a received config request (that was ACK'd). Upcall from the FSM.

Parameters

RPppOptionList & aRequestListNCPIP options to use

FsmCheckConfigRequest(RPppOptionList &, RPppOptionList &, RPppOptionList &, RPppOptionList &)

voidFsmCheckConfigRequest(RPppOptionList &aRequestList,
RPppOptionList &aAckList,
RPppOptionList &aNakList,
RPppOptionList &aRejList
)[protected, virtual]

Checks options in a received config request. Each option is added to the appropriate Ack, Nak or Rej list. Upcall from the FSM.

Parameters

RPppOptionList & aRequestListLCP options to check
RPppOptionList & aAckListAcked LCP options
RPppOptionList & aNakListNaked LCP options
RPppOptionList & aRejListRejected LCP options

FsmFillinConfigRequestL(RPppOptionList &)

voidFsmFillinConfigRequestL(RPppOptionList &aRequestList)[protected, virtual]

Fills in Config Request to be sent

Parameters

RPppOptionList & aRequestList

FsmLayerDown(TInt)

voidFsmLayerDown(TIntaReason =  KErrNone )[protected, virtual]

Signals down event to next layer above

Parameters

TInt aReason =  KErrNone

FsmLayerFinished(TInt)

voidFsmLayerFinished(TIntaReason =  KErrNone )[protected, virtual]

Closes the layer below

Parameters

TInt aReason =  KErrNone

FsmLayerStarted()

TInt FsmLayerStarted()[protected, virtual]

Opens the layer below

FsmLayerUp()

voidFsmLayerUp()[protected, virtual]

Signals up event to next layer above

FsmRecvConfigAck(RPppOptionList &)

voidFsmRecvConfigAck(RPppOptionList &aReplyList)[protected, virtual]

Applies the options received in a Config Ack Upcall from the FSM.

Parameters

RPppOptionList & aReplyListNCPIP options to use

FsmRecvConfigNak(RPppOptionList &, RPppOptionList &)

voidFsmRecvConfigNak(RPppOptionList &aReplyList,
RPppOptionList &aReqList
)[protected, virtual]

Modifies request after receiving a Config Nak Upcall from the FSM.

Parameters

RPppOptionList & aReplyListNAK'd NCPIP options
RPppOptionList & aReqListThe associated original request to be modified

FsmRecvConfigReject(RPppOptionList &, RPppOptionList &)

voidFsmRecvConfigReject(RPppOptionList &aReplyList,
RPppOptionList &aReqList
)[protected, virtual]

Modifies request after receiving a Config Reject Upcall from the FSM.

Parameters

RPppOptionList & aReplyListNAK'd NCPIP options
RPppOptionList & aReqListThe associated original request to be modified

FsmRecvUnknownCode(TUint8, TUint8, TInt, RMBufChain &)

TBool FsmRecvUnknownCode(TUint8aCode,
TUint8aId,
TIntaLength,
RMBufChain &aPacket
)[protected, virtual]

Received an unrecognised opcode - has a default implementation

Parameters

TUint8 aCode
TUint8 aId
TInt aLength
RMBufChain & aPacket

FsmTerminationPhaseComplete()

voidFsmTerminationPhaseComplete()[protected, virtual]

GetConfig(TBinderConfig &)

TInt GetConfig(TBinderConfig &aConfig)[virtual]

Parameters

TBinderConfig & aConfig

GetName(TDes &)

TInt GetName(TDes &aName)[virtual]

Parameters

TDes & aName

IpFrameError()

voidIpFrameError()

IpKillProtocol()

voidIpKillProtocol()

KillProtocol()

voidKillProtocol()[protected, virtual]

LoadVJCompressorL()

CVJCompressorIf *LoadVJCompressorL()[private]

Loads the VJ compressor DLL and creates a compressor object.

LoadVJDeCompressorL()

CVJDeCompressorIf *LoadVJDeCompressorL()[private]

Loads the VJ decompressor DLL and creates a decompressor object.

MatchesUpperControl(const ESock::MUpperControl *)

TBool MatchesUpperControl(const ESock::MUpperControl *aUpperControl)const

Comparison routine used by Flow to determine which binder is being referred to in an MFlowBinderControl::Unbind() call.

Parameters

const ESock::MUpperControl * aUpperControlMUpperControl object to compare against this binder

NewL(CPppLcp *)

CPppBinderIp4 *NewL(CPppLcp *aLcp)[static]

Parameters

CPppLcp * aLcp

Notification(TAgentToNifEventType)

TInt Notification(TAgentToNifEventTypeaEvent)

Parameters

TAgentToNifEventType aEvent

RecvIp(RMBufChain &)

voidRecvIp(RMBufChain &aPacket)

Receives an IP packet from the lower layer.

Parameters

RMBufChain & aPacketMBuf chain containing packet

RecvVjCompTcp(RMBufChain &)

voidRecvVjCompTcp(RMBufChain &aPacket)

Receives a VJ-compressed IP packet from the lower layer.

Parameters

RMBufChain & aPacketMBuf chain containing packet

RecvVjUncompTcp(RMBufChain &)

voidRecvVjUncompTcp(RMBufChain &aPacket)

Receives a VJ-uncompressed IP packet from the lower layer.

Parameters

RMBufChain & aPacketMBuf chain containing packet

Send(RMBufChain &)

ESock::MLowerDataSender::TSendResult Send(RMBufChain &aPdu)[virtual]

Called by the IP stack to send a packet. The packet is first VJ compressed if compression was negotiated.

Parameters

RMBufChain & aPduMBuf chain containing packet

SendCallBack(TAny *)

TInt SendCallBack(TAny *aCProtocol)[private, static]

Static function called asynchronously to send packets out the link.

Parameters

TAny * aCProtocolPointer to this NCPIP object

SendFlowOn()

voidSendFlowOn()

Notifies the TCP/IP stack that it may start sending data.

SendProtFrame(RMBufChain &, TUint)

MLowerDataSender::TSendResult SendProtFrame(RMBufChain &aPacket,
TUintaProtocol
)[private]

Queues a packet as-is onto the send queue and sends it out the link via an asynchronous callback function.

Parameters

RMBufChain & aPacketMBuf chain containing packet
TUint aProtocolPPP protocol number

UnBind(ESock::MUpperDataReceiver &, ESock::MUpperControl &)

voidUnBind(ESock::MUpperDataReceiver &aUpperReceiver,
ESock::MUpperControl &aControl
)

Parameters

ESock::MUpperDataReceiver & aUpperReceiver
ESock::MUpperControl & aControl

VjCompTcpFrameError()

voidVjCompTcpFrameError()

VjCompTcpKillProtocol()

voidVjCompTcpKillProtocol()

VjUncompTcpFrameError()

voidVjUncompTcpFrameError()

VjUncompTcpKillProtocol()

voidVjUncompTcpKillProtocol()

Member Data Documentation

__FLOG_DECLARATION_MEMBER

__FLOG_DECLARATION_MEMBER[private]

TBool iAuthenticated

TBool iAuthenticated[private]

TBool iCompressConnId

TBool iCompressConnId[private]

TInterfaceName iIfName

TInterfaceName iIfName[private]

TPppExtraRecvr< CPppBinderIp4 > iIpRecvr

TPppExtraRecvr< CPppBinderIp4 >iIpRecvr[private]

TUint32 iLocalAddr

TUint32 iLocalAddr[private]

ESock::MLowerDataSender::TSendResult iLowerFlowOn

ESock::MLowerDataSender::TSendResult iLowerFlowOn[private]

TUint iMaxVJSlots

TUint iMaxVJSlots[private]

TUint32 iNetworkMask

TUint32 iNetworkMask[private]

CPppLcp * iPppNifSubConnectionFlow

CPppLcp *iPppNifSubConnectionFlow[private]

TUint32 iPrimaryDns

TUint32 iPrimaryDns[private]

TUint32 iPrimaryNbns

TUint32 iPrimaryNbns[private]

Held in case of a future NetBios protocol

TUint32 iRemoteAddr

TUint32 iRemoteAddr[private]

TUint32 iSecondaryDns

TUint32 iSecondaryDns[private]

TUint32 iSecondaryNbns

TUint32 iSecondaryNbns[private]

Held in case of a future NetBios protocol

CAsyncCallBack * iSendCallBack

CAsyncCallBack *iSendCallBack[private]

RMBufPktQ iSendQ

RMBufPktQ iSendQ[private]

ESock::MUpperControl * iUpperControl

ESock::MUpperControl *iUpperControl[private]

ESock::MLowerDataSender::TSendResult iUpperFlowOn

ESock::MLowerDataSender::TSendResult iUpperFlowOn[private]

ESock::MUpperDataReceiver * iUpperReceiver

ESock::MUpperDataReceiver *iUpperReceiver[private]

TBool iVJCompressionOn

TBool iVJCompressionOn[private]

ETrue if the user enabled VJ compression

CVJCompressorIf * iVJCompressor

CVJCompressorIf *iVJCompressor[private]

CObjectCon * iVJCompressorCon

CObjectCon *iVJCompressorCon[private]

CObjectCon * iVJDeCompressorCon

CObjectCon *iVJDeCompressorCon[private]

CVJDeCompressorIf * iVJDecompressor

CVJDeCompressorIf *iVJDecompressor[private]

TPppExtraRecvr< CPppBinderIp4 > iVjCompTcpRecvr

TPppExtraRecvr< CPppBinderIp4 >iVjCompTcpRecvr[private]

TPppExtraRecvr< CPppBinderIp4 > iVjUncompTcpRecvr

TPppExtraRecvr< CPppBinderIp4 >iVjUncompTcpRecvr[private]