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 &)
void Error ( TInt )
TInt GetConfig ( TBinderConfig &)
TInt GetName ( TDes &)
void IpFrameError ()
void IpKillProtocol ()
TBool MatchesUpperControl (const ESock::MUpperControl *)
CPppBinderIp4 * NewL ( CPppLcp *)
TInt Notification ( TAgentToNifEventType )
void RecvIp ( RMBufChain &)
void RecvVjCompTcp ( RMBufChain &)
void RecvVjUncompTcp ( RMBufChain &)
ESock::MLowerDataSender::TSendResult Send ( RMBufChain &)
void SendFlowOn ()
void UnBind ( ESock::MUpperDataReceiver &, ESock::MUpperControl &)
void VjCompTcpFrameError ()
void VjCompTcpKillProtocol ()
void VjUncompTcpFrameError ()
void VjUncompTcpKillProtocol ()
Protected Member Functions
void FsmApplyConfigRequest ( RPppOptionList &)
void FsmCheckConfigRequest ( RPppOptionList &, RPppOptionList &, RPppOptionList &, RPppOptionList &)
void FsmFillinConfigRequestL ( RPppOptionList &)
void FsmLayerDown ( TInt )
void FsmLayerFinished ( TInt )
TInt FsmLayerStarted ()
void FsmLayerUp ()
void FsmRecvConfigAck ( RPppOptionList &)
void FsmRecvConfigNak ( RPppOptionList &, RPppOptionList &)
void FsmRecvConfigReject ( RPppOptionList &, RPppOptionList &)
TBool FsmRecvUnknownCode ( TUint8 , TUint8 , TInt , RMBufChain &)
void FsmTerminationPhaseComplete ()
void KillProtocol ()
Private Member Functions
CPppBinderIp4 ( CPppLcp *)
void ConstructL ()
void DoSend ()
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()

void ConstructL ( ) [private]

Construct the Link Protocol Object

Control(TUint, TUint, TDes8 &)

TInt Control ( TUint aLevel,
TUint aName,
TDes8 & aOption
) [virtual]

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

Parameters

TUint aLevel Must be KSOLInterface
TUint aName Option name
TDes8 & aOption Data for the given option

DoSend()

void DoSend ( ) [private]

Dequeues packets and sends them out the link.

Error(TInt)

void Error ( TInt aError )

Parameters

TInt aError

Flow()

CPppLcp * Flow ( ) [private, inline]

FsmApplyConfigRequest(RPppOptionList &)

void FsmApplyConfigRequest ( RPppOptionList & aRequestList ) [protected, virtual]

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

Parameters

RPppOptionList & aRequestList NCPIP options to use

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

void FsmCheckConfigRequest ( 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 & aRequestList LCP options to check
RPppOptionList & aAckList Acked LCP options
RPppOptionList & aNakList Naked LCP options
RPppOptionList & aRejList Rejected LCP options

FsmFillinConfigRequestL(RPppOptionList &)

void FsmFillinConfigRequestL ( RPppOptionList & aRequestList ) [protected, virtual]

Fills in Config Request to be sent

Parameters

RPppOptionList & aRequestList

FsmLayerDown(TInt)

void FsmLayerDown ( TInt aReason =  KErrNone ) [protected, virtual]

Signals down event to next layer above

Parameters

TInt aReason =  KErrNone

FsmLayerFinished(TInt)

void FsmLayerFinished ( TInt aReason =  KErrNone ) [protected, virtual]

Closes the layer below

Parameters

TInt aReason =  KErrNone

FsmLayerStarted()

TInt FsmLayerStarted ( ) [protected, virtual]

Opens the layer below

FsmLayerUp()

void FsmLayerUp ( ) [protected, virtual]

Signals up event to next layer above

FsmRecvConfigAck(RPppOptionList &)

void FsmRecvConfigAck ( RPppOptionList & aReplyList ) [protected, virtual]

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

Parameters

RPppOptionList & aReplyList NCPIP options to use

FsmRecvConfigNak(RPppOptionList &, RPppOptionList &)

void FsmRecvConfigNak ( RPppOptionList & aReplyList,
RPppOptionList & aReqList
) [protected, virtual]

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

Parameters

RPppOptionList & aReplyList NAK'd NCPIP options
RPppOptionList & aReqList The associated original request to be modified

FsmRecvConfigReject(RPppOptionList &, RPppOptionList &)

void FsmRecvConfigReject ( RPppOptionList & aReplyList,
RPppOptionList & aReqList
) [protected, virtual]

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

Parameters

RPppOptionList & aReplyList NAK'd NCPIP options
RPppOptionList & aReqList The associated original request to be modified

FsmRecvUnknownCode(TUint8, TUint8, TInt, RMBufChain &)

TBool FsmRecvUnknownCode ( TUint8 aCode,
TUint8 aId,
TInt aLength,
RMBufChain & aPacket
) [protected, virtual]

Received an unrecognised opcode - has a default implementation

Parameters

TUint8 aCode
TUint8 aId
TInt aLength
RMBufChain & aPacket

FsmTerminationPhaseComplete()

void FsmTerminationPhaseComplete ( ) [protected, virtual]

GetConfig(TBinderConfig &)

TInt GetConfig ( TBinderConfig & aConfig ) [virtual]

Parameters

TBinderConfig & aConfig

GetName(TDes &)

TInt GetName ( TDes & aName ) [virtual]

Parameters

TDes & aName

IpFrameError()

void IpFrameError ( )

IpKillProtocol()

void IpKillProtocol ( )

KillProtocol()

void KillProtocol ( ) [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 * aUpperControl MUpperControl object to compare against this binder

NewL(CPppLcp *)

CPppBinderIp4 * NewL ( CPppLcp * aLcp ) [static]

Parameters

CPppLcp * aLcp

Notification(TAgentToNifEventType)

TInt Notification ( TAgentToNifEventType aEvent )

Parameters

TAgentToNifEventType aEvent

RecvIp(RMBufChain &)

void RecvIp ( RMBufChain & aPacket )

Receives an IP packet from the lower layer.

Parameters

RMBufChain & aPacket MBuf chain containing packet

RecvVjCompTcp(RMBufChain &)

void RecvVjCompTcp ( RMBufChain & aPacket )

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

Parameters

RMBufChain & aPacket MBuf chain containing packet

RecvVjUncompTcp(RMBufChain &)

void RecvVjUncompTcp ( RMBufChain & aPacket )

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

Parameters

RMBufChain & aPacket MBuf 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 & aPdu MBuf chain containing packet

SendCallBack(TAny *)

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

Static function called asynchronously to send packets out the link.

Parameters

TAny * aCProtocol Pointer to this NCPIP object

SendFlowOn()

void SendFlowOn ( )

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

SendProtFrame(RMBufChain &, TUint)

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

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

Parameters

RMBufChain & aPacket MBuf chain containing packet
TUint aProtocol PPP protocol number

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

void UnBind ( ESock::MUpperDataReceiver & aUpperReceiver,
ESock::MUpperControl & aControl
)

Parameters

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

VjCompTcpFrameError()

void VjCompTcpFrameError ( )

VjCompTcpKillProtocol()

void VjCompTcpKillProtocol ( )

VjUncompTcpFrameError()

void VjUncompTcpFrameError ( )

VjUncompTcpKillProtocol()

void VjUncompTcpKillProtocol ( )

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]