cmmanager/cmmgr/cmmplugins/cmpluginpacketdata/src/cmpluginpacketdata.cpp
branchRCL_3
changeset 58 83ca720e2b9a
parent 57 05bc53fe583b
child 62 bb1f80fb7db2
--- a/cmmanager/cmmgr/cmmplugins/cmpluginpacketdata/src/cmpluginpacketdata.cpp	Tue Aug 31 15:35:44 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2894 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-*      Implementation of packetdata Plugin interface.
-*
-*/
-
-
-#include <StringLoader.h>
-#include <featmgr.h>
-#include <centralrepository.h>
-#include <CoreApplicationUIsSDKCRKeys.h>
-
-#include "datamobilitycommsdattypes.h"
-#include "cmpluginpacketdata.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cmpluginpacketdataTraces.h"
-#endif
-
-using namespace CMManager;
-using namespace CommsDat;
-
-// ================= CONSTANTS =======================
-
-/// Modem bearer names for GPRS/WCDMA access points.
-_LIT( KModemBearerPacketData, "GPRS Modem" );
-_LIT( KDefaultQosDataRecordName, "PRIMARY1" );
-_LIT( KDefaultQosDataRecordNamewithSpace, "PRIMARY1 " );
-
-const TInt KQosRecordIndex = 0;
-
-// ======== MEMBER FUNCTIONS ========
-/**
-*  CCmPDCoverageCheck defines the functionality for packetdata service
-*  coverage checking.
-*/
-class CCmPDCoverageCheck : public CActive
-    {
-    public:
-        /**
-         * Constructor.
-         */
-        CCmPDCoverageCheck();
-
-        /**
-         * Destructor.
-         */
-        ~CCmPDCoverageCheck();
-
-        /**
-         * Checks if the packet service is available(status is
-         * ERegisteredOnHomeNetwork or ERegisteredRoaming or
-         * ENotRegisteredButAvailable)
-         * @return Return ETrue if the status is one mentioned above.
-         * Otherwise returns EFalse.
-         */
-        TBool IsThereCoverageL();
-
-    protected:  // from CActive
-        virtual void DoCancel();
-        virtual void RunL();
-
-    private:
-        /**
-         * Ckecks if the phode mode is offline.
-         * @return Returns ETrue if the phone is in offline mode.
-         * Otherwise returns EFalse.
-         */
-        TBool IsPhoneOfflineL() const;
-
-    private:
-        /** Boolean which has the latest coverage information  */
-        TBool                   iCoverage;
-
-        /** Controller for single scheduling loop */
-        CActiveSchedulerWait    iWait;
-
-        /** Handle to telephony server */
-        RTelServer              iServer;
-
-        /** Handle to phone(needed for packet service) */
-        RPhone                  iPhone;
-
-        /** Handle to packet service */
-        RPacketService          iService;
-
-        /** Network registration status information */
-        RPacketService::TRegistrationStatus iNwRegStatus;
-    };
-
-// ----------------------------------------------------------------------------
-// CCmPDCoverageCheck::CCmPDCoverageCheck()
-// ----------------------------------------------------------------------------
-//
-CCmPDCoverageCheck::CCmPDCoverageCheck() : CActive( EPriorityStandard )
-    {
-    OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_ENTRY );
-
-    CActiveScheduler::Add( this );
-
-    OstTraceFunctionExit0( CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPDCoverageCheck::~CCmPDCoverageCheck()
-// ----------------------------------------------------------------------------
-//
-CCmPDCoverageCheck::~CCmPDCoverageCheck()
-    {
-    OstTraceFunctionEntry0( DUP1_CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_ENTRY );
-
-    Cancel();
-
-    iService.Close();
-    iPhone.Close();
-    iServer.Close();
-
-    OstTraceFunctionExit0( DUP1_CCMPDCOVERAGECHECK_CCMPDCOVERAGECHECK_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPDCoverageCheck::DoCancel
-// ----------------------------------------------------------------------------
-//
-void CCmPDCoverageCheck::DoCancel()
-    {
-    OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_DOCANCEL_ENTRY );
-
-    iWait.AsyncStop();
-
-    OstTraceFunctionExit0( CCMPDCOVERAGECHECK_DOCANCEL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPDCoverageCheck::RunL
-// ----------------------------------------------------------------------------
-//
-void CCmPDCoverageCheck::RunL()
-    {
-    OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_RUNL_ENTRY );
-
-    if ( iStatus.Int() == KErrNone )
-        {
-        if ( iNwRegStatus == RPacketService::ERegisteredOnHomeNetwork ||
-             iNwRegStatus == RPacketService::ERegisteredRoaming ||
-             iNwRegStatus == RPacketService::ENotRegisteredButAvailable )
-            {
-            iCoverage = ETrue;
-            }
-        iWait.AsyncStop();
-        }
-    else
-        // something went wrong -> no coverage.
-        {
-        iWait.AsyncStop();
-        }
-
-    OstTraceFunctionExit0( CCMPDCOVERAGECHECK_RUNL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPDCoverageCheck::IsThereCoverageL
-// ----------------------------------------------------------------------------
-//
-TBool CCmPDCoverageCheck::IsThereCoverageL()
-    {
-    OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_ISTHERECOVERAGEL_ENTRY );
-
-    iCoverage = EFalse;
-
-    if ( !IsPhoneOfflineL() )
-        {
-        User::LeaveIfError( iServer.Connect() );
-
-        RTelServer::TPhoneInfo info;
-        User::LeaveIfError( iServer.GetPhoneInfo( 0, info ) );
-
-        User::LeaveIfError( iPhone.Open(iServer, info.iName ) );
-
-        User::LeaveIfError( iService.Open( iPhone ) );
-
-        iService.GetNtwkRegStatus( iStatus, iNwRegStatus );
-        SetActive();
-        iWait.Start();
-
-        User::LeaveIfError( iStatus.Int() );
-        }
-
-    OstTraceFunctionExit0( CCMPDCOVERAGECHECK_ISTHERECOVERAGEL_EXIT );
-    return iCoverage;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPDCoverageCheck::IsPhoneOfflineL
-// ----------------------------------------------------------------------------
-//
-TBool CCmPDCoverageCheck::IsPhoneOfflineL() const
-    {
-    OstTraceFunctionEntry0( CCMPDCOVERAGECHECK_ISPHONEOFFLINEL_ENTRY );
-
-    if ( FeatureManager::FeatureSupported( KFeatureIdOfflineMode ) )
-        {
-        CRepository* repository = CRepository::NewLC( KCRUidCoreApplicationUIs );
-        TInt connAllowed( ECoreAppUIsNetworkConnectionAllowed );
-
-        repository->Get( KCoreAppUIsNetworkConnectionAllowed, connAllowed );
-        CleanupStack::PopAndDestroy( repository );
-
-        if ( !connAllowed )
-            {
-            OstTraceFunctionExit0( CCMPDCOVERAGECHECK_ISPHONEOFFLINEL_EXIT );
-            return ETrue;
-            }
-        }
-
-    OstTraceFunctionExit0( DUP1_CCMPDCOVERAGECHECK_ISPHONEOFFLINEL_EXIT );
-    return EFalse;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::NewL
-// ----------------------------------------------------------------------------
-//
-CCmPluginPacketData* CCmPluginPacketData::NewL(
-        TCmPluginInitParam* aInitParam )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_NEWL_ENTRY );
-
-    CCmPluginPacketData* self = new( ELeave ) CCmPluginPacketData( aInitParam, ETrue );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_NEWL_EXIT );
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::~CCmPluginPacketData
-// ----------------------------------------------------------------------------
-//
-CCmPluginPacketData::~CCmPluginPacketData()
-    {
-    OstTraceFunctionEntry1( CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_ENTRY, this );
-
-    ResetBearerRecords();
-
-    OstTraceFunctionExit1( CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_EXIT, this );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::CreateInstanceL
-// ----------------------------------------------------------------------------
-//
-CCmPluginBaseEng* CCmPluginPacketData::CreateInstanceL( TCmPluginInitParam& aInitParam ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CREATEINSTANCEL_ENTRY );
-
-    CCmPluginPacketData* self = new( ELeave ) CCmPluginPacketData( &aInitParam, ETrue );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CREATEINSTANCEL_EXIT );
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::CCmPluginPacketData
-// ----------------------------------------------------------------------------
-//
-CCmPluginPacketData::CCmPluginPacketData(
-        TCmPluginInitParam* aInitParam,
-        TBool aOutgoing )
-        :
-        CCmPluginBaseEng( aInitParam ),
-        iOutgoing( aOutgoing )
-    {
-    OstTraceFunctionEntry0( DUP1_CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_ENTRY );
-
-    iBearerType = KUidPacketDataBearerType;
-    iBearerRecordId = 0;
-    iBearerRecordName = NULL;
-    iPacketDataQoSRecord = NULL;
-    iBearerPriorityTableId = 0;
-
-    OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_CCMPLUGINPACKETDATA_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::ConstructL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CONSTRUCTL_ENTRY );
-
-    // Feature Manager is initialized by the CmmServer, so no need to do it here.
-
-    CCmPluginBaseEng::ConstructL();
-
-    // Get bearer priority table ID.
-    TRAP_IGNORE( iBearerPriorityTableId =
-            CCDGlobalBearerTypePriorizationRecord::TableIdL( iSession ) );
-
-    if ( !iBearerPriorityTableId )
-        {
-        iBearerPriorityTableId =
-                CCDGlobalBearerTypePriorizationRecord::CreateTableL( iSession );
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CONSTRUCTL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::CanHandleIapIdL()
-// ----------------------------------------------------------------------------
-//
-TBool CCmPluginPacketData::CanHandleIapIdL( TUint32 aIapId ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_ENTRY );
-
-    TBool retVal( EFalse );
-
-    CCDIAPRecord *iapRecord = static_cast<CCDIAPRecord*>(
-            CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) );
-
-    CleanupStack::PushL( iapRecord );
-    iapRecord->SetRecordId( aIapId );
-
-    TRAPD( err, iapRecord->LoadL( iSession ));
-
-    if ( !err )
-        {
-        retVal = CanHandleIapIdL( iapRecord );
-        }
-
-    CleanupStack::PopAndDestroy( iapRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_EXIT );
-    return retVal;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::CanHandleIapIdL()
-// ----------------------------------------------------------------------------
-//
-TBool CCmPluginPacketData::CanHandleIapIdL( CCDIAPRecord *aIapRecord ) const
-    {
-    OstTraceFunctionEntry0( DUP1_CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_ENTRY );
-
-    TBool retVal( EFalse );
-
-    if ( ( TPtrC( aIapRecord->iServiceType ) == TPtrC( KCDTypeNameOutgoingWCDMA ) ||
-            TPtrC( aIapRecord->iServiceType ) == TPtrC( KCDTypeNameIncomingWCDMA )) &&
-            TPtrC( aIapRecord->iBearerType ) == TPtrC( KCDTypeNameModemBearer ) )
-        {
-        retVal = ETrue;
-        }
-
-
-    OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_CANHANDLEIAPIDL_EXIT );
-    return retVal;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::PreparePluginToLoadRecordsL()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::PreparePluginToLoadRecordsL()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::PreparePluginToUpdateRecordsL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::PreparePluginToUpdateRecordsL(
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_PREPAREPLUGINTOUPDATERECORDSL_ENTRY );
-
-    //TODO, Add null checks for mandatory specific record pointers.
-
-    CCDIAPRecord* iapRecord = static_cast<CCDIAPRecord*>(
-            aGenRecordArray[KIapRecordIndex] );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-            aGenRecordArray[KServiceRecordIndex] );
-
-    CheckIfNameModifiedL( iapRecord, serviceRecord );
-
-    CheckDNSServerAddressL( ETrue,
-            serviceRecord->iGPRSIP6NameServer1,
-            serviceRecord->iGPRSIP6NameServer2,
-            serviceRecord->iGPRSIP6DNSAddrFromServer );
-
-    CheckDNSServerAddressL( EFalse,
-            serviceRecord->iGPRSIPNameServer1,
-            serviceRecord->iGPRSIPNameServer2,
-            serviceRecord->iGPRSIPDNSAddrFromServer );
-
-    SetDaemonNameL( aGenRecordArray, aBearerSpecRecordArray );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_PREPAREPLUGINTOUPDATERECORDSL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetDaemonNameL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetDaemonNameL(
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETDAEMONNAMEL_ENTRY );
-
-    // Use DHCP if we can.
-    TBool ipfromSrv = GetBearerBoolAttributeL( EPacketDataIPAddrFromServer,
-                                               aGenRecordArray,
-                                               aBearerSpecRecordArray );
-    if ( ipfromSrv )
-        {
-        SetBearerStringAttributeL( ECmConfigDaemonManagerName,
-                                   KDaemonManagerName,
-                                   aGenRecordArray,
-                                   aBearerSpecRecordArray );
-        SetBearerStringAttributeL( ECmConfigDaemonName,
-                                   KConfigDaemonName,
-                                   aGenRecordArray,
-                                   aBearerSpecRecordArray );
-        }
-    else
-        {
-        if ( FeatureManager::FeatureSupported( KFeatureIdIPv6 ) )
-            {
-            SetBearerStringAttributeL( ECmConfigDaemonManagerName,
-                                       KDaemonManagerName,
-                                       aGenRecordArray,
-                                       aBearerSpecRecordArray );
-            SetBearerStringAttributeL( ECmConfigDaemonName,
-                                       KConfigDaemonName,
-                                       aGenRecordArray,
-                                       aBearerSpecRecordArray );
-            }
-        else
-            {
-            SetBearerStringAttributeL( ECmConfigDaemonManagerName,
-                                       KNullDesC(),
-                                       aGenRecordArray,
-                                       aBearerSpecRecordArray );
-            SetBearerStringAttributeL( ECmConfigDaemonName,
-                                       KNullDesC(),
-                                       aGenRecordArray,
-                                       aBearerSpecRecordArray );
-            }
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETDAEMONNAMEL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::LoadBearerRecordsL()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::LoadBearerRecordsL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_LOADBEARERRECORDSL_ENTRY );
-
-    if ( ServiceRecord().iUmtsR99QoSAndOnTable )
-        {
-        iPacketDataQoSRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
-
-        iPacketDataQoSRecord->SetRecordId( ServiceRecord().iUmtsR99QoSAndOnTable );
-        iPacketDataQoSRecord->LoadL( iSession );
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_LOADBEARERRECORDSL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::LoadServiceRecordL()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::LoadServiceRecordL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_LOADSERVICERECORDL_ENTRY );
-
-    if ( TPtrC( KCDTypeNameOutgoingWCDMA ) == iIapRecord->iServiceType )
-        {
-        iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        iOutgoing = ETrue;
-        }
-    else if ( TPtrC( KCDTypeNameIncomingWCDMA ) == iIapRecord->iServiceType )
-        {
-        iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
-        iOutgoing = EFalse;
-        }
-    else
-        // this IAP service is not supported by this plugin.
-        {
-        User::Leave( KErrNotSupported );
-        }
-
-    iServiceRecord->SetRecordId( iIapRecord->iService );
-    TRAPD( err, iServiceRecord->LoadL( iSession ) );
-    if ( err == KErrNotFound )
-        // record not found -> create a default one
-        {
-        CreateServiceRecordL();
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_LOADSERVICERECORDL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::ServiceRecord()
-// ----------------------------------------------------------------------------
-//
-CCDWCDMAPacketServiceRecord& CCmPluginPacketData::ServiceRecord() const
-    {
-    return *static_cast<CCDWCDMAPacketServiceRecord*>( iServiceRecord );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::CreateServiceRecordL()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::CreateServiceRecordL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CREATESERVICERECORDL_ENTRY );
-
-    delete iServiceRecord;
-    iServiceRecord = NULL;
-
-    if ( iOutgoing )
-        {
-        iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        }
-    else
-        {
-        iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
-        }
-
-    ServiceRecord().iGPRSAPN.SetL( KNullDesC );
-    ServiceRecord().iGPRSPDPType.SetL( RPacketContext::EPdpTypeIPv4 );
-    ServiceRecord().iGPRSReqPrecedence = 0;
-    ServiceRecord().iGPRSReqDelay = 0;
-    ServiceRecord().iGPRSReqReliability = 0;
-    ServiceRecord().iGPRSReqPeakThroughput = 0;
-    ServiceRecord().iGPRSReqMeanThroughput = 0;
-    ServiceRecord().iGPRSMinPrecedence = 0;
-    ServiceRecord().iGPRSMinDelay = 0;
-    ServiceRecord().iGPRSMinReliability = 0;
-    ServiceRecord().iGPRSMinPeakThroughput = 0;
-    ServiceRecord().iGPRSMinMeanThroughput = 0;
-    ServiceRecord().iGPRSDataCompression = 0;
-    ServiceRecord().iGPRSHeaderCompression = 0;
-    ServiceRecord().iGPRSAnonymousAccess = 0;
-    ServiceRecord().iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv4 );
-    ServiceRecord().iGPRSIfPromptForAuth = EFalse;
-    ServiceRecord().iGPRSIfAuthRetries = 0;
-    ServiceRecord().iGPRSIPGateway.SetL( KUnspecifiedIPv4 );
-    ServiceRecord().iGPRSIPAddrFromServer = ETrue;
-    ServiceRecord().iGPRSIPAddr.SetL( KUnspecifiedIPv4 );
-    ServiceRecord().iGPRSIPDNSAddrFromServer = ETrue;
-    ServiceRecord().iGPRSIPNameServer1.SetL( KUnspecifiedIPv4 );
-    ServiceRecord().iGPRSIPNameServer2.SetL( KUnspecifiedIPv4 );
-    ServiceRecord().iGPRSIP6DNSAddrFromServer = ETrue;
-    ServiceRecord().iGPRSIP6NameServer1.SetL( KDynamicIpv6Address );
-    ServiceRecord().iGPRSIP6NameServer2.SetL( KDynamicIpv6Address );
-    ServiceRecord().iGPRSEnableLCPExtension = EFalse;
-    ServiceRecord().iGPRSDisablePlainTextAuth = ETrue;
-    ServiceRecord().iGPRSAPType = EPacketDataBoth;
-    ServiceRecord().iGPRSQOSWarningTimeOut = TUint32(-1);
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CREATESERVICERECORDL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::ServiceRecordId
-// ----------------------------------------------------------------------------
-//
-TUint32 CCmPluginPacketData::ServiceRecordId() const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SERVICERECORDID_ENTRY );
-
-    return ServiceRecord().RecordId();
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::ServiceRecordIdLC
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::ServiceRecordNameLC( HBufC* &aName )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SERVICERECORDNAMELC_ENTRY );
-
-    if ( iOutgoing )
-        {
-        aName = TPtrC( KCDTypeNameOutgoingWCDMA ).AllocLC();
-        }
-    else
-        {
-        aName = TPtrC( KCDTypeNameIncomingWCDMA ).AllocLC();
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SERVICERECORDNAMELC_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::BearerRecordIdL()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::BearerRecordIdL( TUint32& aRecordId )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_BEARERRECORDIDL_ENTRY );
-
-    CMDBRecordSet<CCDModemBearerRecord>* bearerRS =
-            new( ELeave ) CMDBRecordSet<CCDModemBearerRecord>( KCDTIdModemBearerRecord );
-    CleanupStack::PushL( bearerRS );
-
-    CCDModemBearerRecord* bearerRecord = static_cast<CCDModemBearerRecord*>(
-            CCDRecordBase::RecordFactoryL( KCDTIdModemBearerRecord ) );
-
-    CleanupStack::PushL( bearerRecord );
-
-    bearerRecord->iRecordName.SetL( KModemBearerPacketData );
-    bearerRS->iRecords.AppendL( bearerRecord );
-    CleanupStack::Pop( bearerRecord );
-
-    if ( bearerRS->FindL( iSession ) )
-        {
-        bearerRecord = static_cast<CCDModemBearerRecord*>( bearerRS->iRecords[0] );
-        aRecordId = bearerRecord->RecordId();
-        }
-    else
-        // bearer not found -> create dummy values
-        {
-        bearerRecord->SetRecordId( KCDNewRecordRequest );
-        bearerRecord->StoreL( iSession );
-
-        aRecordId = bearerRecord->RecordId();
-        }
-
-    CleanupStack::PopAndDestroy( bearerRS );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_BEARERRECORDIDL_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::BearerRecordNameLC()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::BearerRecordNameLC( HBufC*& aBearerName )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_BEARERRECORDNAMELC_ENTRY );
-
-    aBearerName = TPtrC( KCDTypeNameModemBearer ).AllocLC();
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_BEARERRECORDNAMELC_EXIT );
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::CheckNetworkCoverageL()
-// ----------------------------------------------------------------------------
-//
-TBool CCmPluginPacketData::CheckNetworkCoverageL() const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CHECKNETWORKCOVERAGEL_ENTRY );
-
-    TBool retVal( EFalse );
-
-#ifdef __WINS__
-    retVal = ETrue;
-#else
-    CCmPDCoverageCheck* coverage = new( ELeave ) CCmPDCoverageCheck;
-    CleanupStack::PushL( coverage );
-
-    retVal = coverage->IsThereCoverageL();
-
-    CleanupStack::PopAndDestroy( coverage );
-
-#endif  // __WINS
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CHECKNETWORKCOVERAGEL_EXIT );
-    return retVal;
-    }
-
-// ----------------------------------------------------------------------------
-// CCmPluginPacketData::SetPDPTypeL()
-// ----------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetPDPTypeL(
-        RPacketContext::TProtocolType aPdpType,
-        CCDWCDMAPacketServiceRecord* aServiceRecord )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETPDPTYPEL_ENTRY );
-
-    if ( aPdpType == RPacketContext::EPdpTypeIPv6 )
-        {
-        aServiceRecord->iGPRSPDPType = RPacketContext::EPdpTypeIPv6;
-        aServiceRecord->iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv6 );
-        }
-    else if ( aPdpType == RPacketContext::EPdpTypeIPv4 )
-        {
-        aServiceRecord->iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv4 );
-        aServiceRecord->iGPRSPDPType = RPacketContext::EPdpTypeIPv4;
-        }
-    else
-        {
-        User::Leave( KErrArgument );
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETPDPTYPEL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::CreateBearerRecordsL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::CreateBearerRecordsL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_CREATEBEARERRECORDSL_ENTRY );
-
-    delete iPacketDataQoSRecord;
-    iPacketDataQoSRecord = NULL;
-
-    iPacketDataQoSRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-            CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
-
-    iPacketDataQoSRecord->iGPRSReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
-    iPacketDataQoSRecord->iGPRSMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
-    iPacketDataQoSRecord->iGPRSReqDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
-    iPacketDataQoSRecord->iGPRSMinDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
-    iPacketDataQoSRecord->iGPRSReqDeliverErroneousSDU =
-            RPacketQoS::EErroneousSDUDeliveryUnspecified;
-    iPacketDataQoSRecord->iGPRSMinDeliverErroneousSDU =
-            RPacketQoS::EErroneousSDUDeliveryUnspecified;
-    iPacketDataQoSRecord->iGPRSReqMaxSDUSize = 0;
-    iPacketDataQoSRecord->iGPRSMinAcceptableMaxSDUSize = 0;
-    iPacketDataQoSRecord->iGPRSReqMaxUplinkRate = 0;
-    iPacketDataQoSRecord->iGPRSReqMinUplinkRate = 0;
-    iPacketDataQoSRecord->iGPRSReqMaxDownlinkRate = 0;
-    iPacketDataQoSRecord->iGPRSReqMinDownlinkRate = 0;
-    iPacketDataQoSRecord->iGPRSReqBER = RPacketQoS::EBERUnspecified;
-    iPacketDataQoSRecord->iGPRSMaxBER = RPacketQoS::EBERUnspecified;
-    iPacketDataQoSRecord->iGPRSReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
-    iPacketDataQoSRecord->iGPRSMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
-    iPacketDataQoSRecord->iGPRSReqTrafficHandlingPriority =
-            RPacketQoS::ETrafficPriorityUnspecified;
-    iPacketDataQoSRecord->iGPRSMinTrafficHandlingPriority =
-            RPacketQoS::ETrafficPriorityUnspecified;
-    iPacketDataQoSRecord->iGPRSReqTransferDelay = 0;
-    iPacketDataQoSRecord->iGPRSMaxTransferDelay = 0;
-    iPacketDataQoSRecord->iGPRSReqGuaranteedUplinkRate = 0;
-    iPacketDataQoSRecord->iGPRSMinGuaranteedUplinkRate = 0;
-    iPacketDataQoSRecord->iGPRSReqGuaranteedDownlinkRate = 0;
-    iPacketDataQoSRecord->iGPRSMinGuaranteedDownlinkRate = 0;
-    iPacketDataQoSRecord->iGPRSSignallingIndication = EFalse;
-    iPacketDataQoSRecord->iGPRS_ImCnSignallingIndication = EFalse;
-    iPacketDataQoSRecord->iGPRSSourceStatisticsDescriptor =
-            RPacketQoS::ESourceStatisticsDescriptorUnknown;
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_CREATEBEARERRECORDSL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::UpdateServiceRecordL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::UpdateServiceRecordL(
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_UPDATESERVICERECORDL_ENTRY );
-
-    // Delete the original record and create a copy from the parameter.
-    delete iServiceRecord;
-    iServiceRecord = NULL;
-
-    if ( iOutgoing )
-        {
-        iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        }
-    else
-        {
-        iServiceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
-        }
-
-    CCDWCDMAPacketServiceRecord* origServiceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>( iServiceRecord );
-
-    // Client's copy of packet service record.
-    CCDWCDMAPacketServiceRecord* clientServiceRecordCopy =
-            static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] );
-
-    CopyRecordFieldsL( *clientServiceRecordCopy, *origServiceRecord );
-
-    if ( iPacketDataQoSRecord )
-        {
-        origServiceRecord->iUmtsR99QoSAndOnTable = iPacketDataQoSRecord->RecordId();
-        }
-
-    origServiceRecord->SetElementId( clientServiceRecordCopy->ElementId() );
-
-    if ( !origServiceRecord->RecordId() )
-        {
-        origServiceRecord->SetRecordId( KCDNewRecordRequest );
-        origServiceRecord->StoreL( iSession );
-        // Have to be "reloaded" to get possible default values from template records.
-        origServiceRecord->LoadL( iSession );
-
-        // Update received element ID to client's copy too.
-        clientServiceRecordCopy->SetElementId( origServiceRecord->ElementId() );
-        }
-    else
-        {
-        origServiceRecord->ModifyL( iSession );
-        }
-
-    CopyRecordFieldsL( *origServiceRecord, *clientServiceRecordCopy );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_UPDATESERVICERECORDL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::UpdateBearerRecordsL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::UpdateBearerRecordsL(
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_UPDATEBEARERRECORDSL_ENTRY );
-
-    CCDUmtsR99QoSAndOnTableRecord* packetDataQoSRecord =
-            static_cast<CCDUmtsR99QoSAndOnTableRecord*>( aBearerSpecRecordArray[KQosRecordIndex] );
-
-    delete iPacketDataQoSRecord;
-    iPacketDataQoSRecord = NULL;
-    iPacketDataQoSRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-            CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
-    CopyRecordFieldsL( *packetDataQoSRecord, *iPacketDataQoSRecord );
-    iPacketDataQoSRecord->SetElementId( aBearerSpecRecordArray[KQosRecordIndex]->ElementId() );
-
-    if ( !iPacketDataQoSRecord->RecordId() )
-        {
-        iPacketDataQoSRecord->SetRecordId( KCDNewRecordRequest );
-        iPacketDataQoSRecord->StoreL( iSession );
-        iPacketDataQoSRecord->LoadL( iSession );
-        packetDataQoSRecord->SetElementId( iPacketDataQoSRecord->ElementId() );
-
-        // Set service record to point to QoS record.
-        ServiceRecord().iUmtsR99QoSAndOnTable = iPacketDataQoSRecord->RecordId();
-        ServiceRecord().ModifyL( iSession );
-
-        CCDWCDMAPacketServiceRecord* serviceRecord =
-                static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
-        serviceRecord->iUmtsR99QoSAndOnTable = iPacketDataQoSRecord->RecordId();
-        }
-    else
-        {
-        iPacketDataQoSRecord->ModifyL( iSession );
-        }
-
-    CopyRecordFieldsL( *iPacketDataQoSRecord, *packetDataQoSRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_UPDATEBEARERRECORDSL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerSpecificRecordsL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::GetBearerSpecificRecordsL(
-        RPointerArray<CommsDat::CCDRecordBase>& aRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERSPECIFICRECORDSL_ENTRY );
-
-    if ( !iPacketDataQoSRecord )
-        {
-        // IAP not yet in CommDat.
-        GetDefaultQosRecordL( aRecordArray );
-        }
-    else
-        {
-        CCDUmtsR99QoSAndOnTableRecord* qosRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
-        CleanupStack::PushL( qosRecord );
-        CopyRecordFieldsL( *iPacketDataQoSRecord, *qosRecord );
-        qosRecord->SetElementId( iPacketDataQoSRecord->ElementId() );
-        aRecordArray.AppendL( static_cast<CommsDat::CCDRecordBase*>( qosRecord ) );
-        CleanupStack::Pop( qosRecord );
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERSPECIFICRECORDSL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetDefaultServiceRecordL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::GetDefaultServiceRecordL(
-        RPointerArray<CommsDat::CCDRecordBase>& aRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETDEFAULTSERVICERECORDL_ENTRY );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord( NULL );
-    if ( iOutgoing )
-        {
-        serviceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>(
-                    CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        }
-    else
-        {
-        serviceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>(
-                    CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        }
-
-    CleanupStack::PushL( serviceRecord );
-    serviceRecord->iGPRSAPN.SetL( KNullDesC );
-    serviceRecord->iGPRSPDPType.SetL( RPacketContext::EPdpTypeIPv4 );
-    serviceRecord->iGPRSReqPrecedence = 0;
-    serviceRecord->iGPRSReqDelay = 0;
-    serviceRecord->iGPRSReqReliability = 0;
-    serviceRecord->iGPRSReqPeakThroughput = 0;
-    serviceRecord->iGPRSReqMeanThroughput = 0;
-    serviceRecord->iGPRSMinPrecedence = 0;
-    serviceRecord->iGPRSMinDelay = 0;
-    serviceRecord->iGPRSMinReliability = 0;
-    serviceRecord->iGPRSMinPeakThroughput = 0;
-    serviceRecord->iGPRSMinMeanThroughput = 0;
-    serviceRecord->iGPRSDataCompression = EFalse;
-    serviceRecord->iGPRSHeaderCompression = EFalse;
-    serviceRecord->iGPRSAnonymousAccess = EFalse;
-    serviceRecord->iGPRSIfNetworks.SetL( KDefIspIfNetworksIPv4 );
-    serviceRecord->iGPRSIfPromptForAuth = EFalse;
-    serviceRecord->iGPRSIfAuthRetries = 0;
-    serviceRecord->iGPRSIPGateway.SetL( KUnspecifiedIPv4 );
-    serviceRecord->iGPRSIPAddrFromServer = ETrue;
-    serviceRecord->iGPRSIPAddr.SetL( KUnspecifiedIPv4 );
-    serviceRecord->iGPRSIPDNSAddrFromServer = ETrue;
-    serviceRecord->iGPRSIPNameServer1.SetL( KUnspecifiedIPv4 );
-    serviceRecord->iGPRSIPNameServer2.SetL( KUnspecifiedIPv4 );
-    serviceRecord->iGPRSIP6DNSAddrFromServer = ETrue;
-    serviceRecord->iGPRSIP6NameServer1.SetL( KDynamicIpv6Address );
-    serviceRecord->iGPRSIP6NameServer2.SetL( KDynamicIpv6Address );
-    serviceRecord->iGPRSEnableLCPExtension = EFalse;
-    serviceRecord->iGPRSDisablePlainTextAuth = ETrue;
-    serviceRecord->iGPRSAPType = EPacketDataBoth;
-    serviceRecord->iGPRSQOSWarningTimeOut = TUint32(-1);
-
-    aRecordArray.AppendL( static_cast<CommsDat::CCDRecordBase*>( serviceRecord ) );
-    CleanupStack::Pop( serviceRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETDEFAULTSERVICERECORDL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetDefaultQosRecordL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::GetDefaultQosRecordL(
-        RPointerArray<CommsDat::CCDRecordBase>& aRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETDEFAULTQOSRECORDL_ENTRY );
-
-    CCDUmtsR99QoSAndOnTableRecord* packetDataQoSRecord =
-            static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-                    CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
-    CleanupStack::PushL( packetDataQoSRecord );
-
-    packetDataQoSRecord->iGPRSReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
-    packetDataQoSRecord->iGPRSMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
-    packetDataQoSRecord->iGPRSReqDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
-    packetDataQoSRecord->iGPRSMinDeliveryOrder = RPacketQoS::EDeliveryOrderUnspecified;
-    packetDataQoSRecord->iGPRSReqDeliverErroneousSDU =
-            RPacketQoS::EErroneousSDUDeliveryUnspecified;
-    packetDataQoSRecord->iGPRSMinDeliverErroneousSDU =
-            RPacketQoS::EErroneousSDUDeliveryUnspecified;
-    packetDataQoSRecord->iGPRSReqMaxSDUSize = 0;
-    packetDataQoSRecord->iGPRSMinAcceptableMaxSDUSize = 0;
-    packetDataQoSRecord->iGPRSReqMaxUplinkRate = 0;
-    packetDataQoSRecord->iGPRSReqMinUplinkRate = 0;
-    packetDataQoSRecord->iGPRSReqMaxDownlinkRate = 0;
-    packetDataQoSRecord->iGPRSReqMinDownlinkRate = 0;
-    packetDataQoSRecord->iGPRSReqBER = RPacketQoS::EBERUnspecified;
-    packetDataQoSRecord->iGPRSMaxBER = RPacketQoS::EBERUnspecified;
-    packetDataQoSRecord->iGPRSReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
-    packetDataQoSRecord->iGPRSMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
-    packetDataQoSRecord->iGPRSReqTrafficHandlingPriority =
-            RPacketQoS::ETrafficPriorityUnspecified;
-    packetDataQoSRecord->iGPRSMinTrafficHandlingPriority =
-            RPacketQoS::ETrafficPriorityUnspecified;
-    packetDataQoSRecord->iGPRSReqTransferDelay = 0;
-    packetDataQoSRecord->iGPRSMaxTransferDelay = 0;
-    packetDataQoSRecord->iGPRSReqGuaranteedUplinkRate = 0;
-    packetDataQoSRecord->iGPRSMinGuaranteedUplinkRate = 0;
-    packetDataQoSRecord->iGPRSReqGuaranteedDownlinkRate = 0;
-    packetDataQoSRecord->iGPRSMinGuaranteedDownlinkRate = 0;
-    packetDataQoSRecord->iGPRSSignallingIndication = EFalse;
-    packetDataQoSRecord->iGPRS_ImCnSignallingIndication = EFalse;
-    packetDataQoSRecord->iGPRSSourceStatisticsDescriptor =
-            RPacketQoS::ESourceStatisticsDescriptorUnknown;
-
-    aRecordArray.AppendL( static_cast<CommsDat::CCDRecordBase*>( packetDataQoSRecord ) );
-    CleanupStack::Pop( packetDataQoSRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETDEFAULTQOSRECORDL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerIntAttributeL
-// ---------------------------------------------------------------------------
-//
-TUint32 CCmPluginPacketData::GetBearerIntAttributeL(
-        TUint32 aAttribute,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINTATTRIBUTEL_ENTRY );
-
-    TUint32 retVal( 0 );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
-
-    if ( aAttribute < ECmCommonAttributesEnd ||
-            ( aAttribute > ECmBearerCreationCommonAttributes &&
-              aAttribute < ECmBearerCreationCommonAttributesEnd ) )
-        {
-        switch ( aAttribute )
-            {
-            case ECmBearerType:
-                {
-                retVal = iBearerType;
-                }
-                break;
-            case ECmCommsDBBearerType:
-                {
-                retVal = KCommDbBearerWcdma;
-                }
-                break;
-            case ECmDefaultUiPriority:
-                {
-                retVal = GetDefPriorityL( aAttribute );
-                }
-                break;
-            case ECmDefaultPriority:
-                {
-                retVal = GetDefPriorityL( aAttribute );
-                }
-                break;
-            case ECmExtensionLevel:
-                {
-                retVal = KExtensionBaseLevel;
-                }
-                break;
-            case ECmInvalidAttribute:
-                {
-                // This attribute has been deprecated since Symbian^4.
-                User::Leave( KErrNotSupported );
-                }
-                break;
-            case ECmIFAuthRetries:
-                {
-                retVal = serviceRecord->iGPRSIfAuthRetries;
-                }
-                break;
-            default:
-                {
-                User::Leave( KErrNotFound ); //TODO, check leave code, should it be KErrNotSupported ?
-                }
-                break;
-            }
-
-        OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINTATTRIBUTEL_EXIT );
-        return retVal;
-        }
-
-    if ( aAttribute >= EPacketDataSpecificAttributes &&
-            aAttribute < EPacketDataServiceEnableLLMNR )
-        {
-        retVal = GetServiceIntAttributeL( aAttribute, aGenRecordArray );
-        }
-    else if ( aAttribute >= EGPRSReqTrafficClass &&
-            aAttribute <= EGPRSSourceStatisticsDescriptor )
-        {
-        retVal = GetQosIntAttributeL( aAttribute, aBearerSpecRecordArray );
-        }
-    else
-        {
-        User::Leave( KErrNotFound );
-        }
-
-    OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_GETBEARERINTATTRIBUTEL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetServiceIntAttributeL
-// ---------------------------------------------------------------------------
-//
-TUint32 CCmPluginPacketData::GetServiceIntAttributeL(
-        TUint32 aAttribute,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETSERVICEINTATTRIBUTEL_ENTRY );
-
-    TUint32 retVal( 0 );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
-
-    switch ( aAttribute )
-        {
-        case EPacketDataPDPType:
-            {
-            retVal = serviceRecord->iGPRSPDPType;
-            }
-            break;
-
-        case EPacketDataReqPrecedence:
-            {
-            retVal = serviceRecord->iGPRSReqPrecedence;
-            }
-            break;
-
-        case EPacketDataReqDelay:
-            {
-            retVal = serviceRecord->iGPRSReqDelay;
-            }
-            break;
-
-        case EPacketDataReliability:
-            {
-            retVal = serviceRecord->iGPRSReqReliability;
-            }
-            break;
-
-        case EPacketDataPeakThroughput:
-            {
-            retVal = serviceRecord->iGPRSReqPeakThroughput;
-            }
-            break;
-
-        case EPacketDataMeanThroughput:
-            {
-            retVal = serviceRecord->iGPRSMinMeanThroughput;
-            }
-            break;
-
-        case EPacketDataMinPrecedence:
-            {
-            retVal = serviceRecord->iGPRSMinPrecedence;
-            }
-            break;
-
-        case EPacketDataMinDelay:
-            {
-            retVal = serviceRecord->iGPRSMinDelay;
-            }
-            break;
-
-        case EPacketDataMinReliability:
-            {
-            retVal = serviceRecord->iGPRSMinReliability;
-            }
-            break;
-
-        case EPacketDataMinPeakThroughput:
-            {
-            retVal = serviceRecord->iGPRSMinPeakThroughput;
-            }
-            break;
-
-        case EPacketDataMinMeanThroughput:
-            {
-            retVal = serviceRecord->iGPRSMinMeanThroughput;
-            }
-            break;
-
-        case EPacketDataIFAuthRetries:
-            {
-            retVal = serviceRecord->iGPRSIfAuthRetries;
-            }
-            break;
-
-        case EPacketDataApType:
-            {
-            retVal = serviceRecord->iGPRSAPType;
-            }
-            break;
-
-        case EPacketDataQoSWarningTimeOut:
-            {
-            retVal = serviceRecord->iGPRSQOSWarningTimeOut;
-            }
-            break;
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETSERVICEINTATTRIBUTEL_EXIT );
-
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetQosIntAttributeL
-// ---------------------------------------------------------------------------
-//
-TUint32 CCmPluginPacketData::GetQosIntAttributeL(
-        TUint32 aAttribute,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETQOSINTATTRIBUTEL_ENTRY );
-
-    TUint32 retVal( 0 );
-
-    CCDUmtsR99QoSAndOnTableRecord* qosRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-            aBearerSpecRecordArray[KQosRecordIndex] );
-
-    switch ( aAttribute )
-        {
-        case EGPRSReqTrafficClass:
-            {
-            retVal = qosRecord->iGPRSReqTrafficClass;
-            }
-            break;
-
-        case EGPRSMinTrafficClass:
-            {
-            retVal = qosRecord->iGPRSMinTrafficClass;
-            }
-            break;
-
-        case EGPRSReqDeliveryOrder:
-            {
-            retVal = qosRecord->iGPRSReqDeliveryOrder;
-            }
-            break;
-
-        case GPRSMinDeliveryOrder:
-            {
-            retVal = qosRecord->iGPRSMinDeliveryOrder;
-            }
-            break;
-        case EGPRSReqDeliverErroneousSDU:
-            {
-            retVal = qosRecord->iGPRSReqDeliverErroneousSDU;
-            }
-            break;
-        case EGPRSMinDeliverErroneousSDU:
-            {
-            retVal = qosRecord->iGPRSMinDeliverErroneousSDU;
-            }
-            break;
-        case EGPRSReqMaxSDUSize:
-            {
-            retVal = qosRecord->iGPRSReqMaxSDUSize;
-            }
-            break;
-
-        case EGPRSMinAcceptableMaxSDUSize:
-            {
-            retVal = qosRecord->iGPRSMinAcceptableMaxSDUSize;
-            }
-            break;
-
-        case EGPRSReqMaxUplinkRate:
-            {
-            retVal = qosRecord->iGPRSReqMaxUplinkRate;
-            }
-            break;
-
-        case EGPRSReqMinUplinkRate:
-            {
-            retVal = qosRecord->iGPRSReqMinUplinkRate;
-            }
-            break;
-
-        case EGPRSReqMaxDownlinkRate:
-            {
-            retVal = qosRecord->iGPRSReqMaxDownlinkRate;
-            }
-            break;
-
-        case EGPRSReqMinDownlinkRate:
-            {
-            retVal = qosRecord->iGPRSReqMinDownlinkRate;
-            }
-            break;
-
-        case EGPRSReqBER:
-            {
-            retVal = qosRecord->iGPRSReqBER;
-            }
-            break;
-
-        case EGPRSMaxBER:
-            {
-            retVal = qosRecord->iGPRSMaxBER;
-            }
-            break;
-
-        case EGPRSReqSDUErrorRatio:
-            {
-            retVal = qosRecord->iGPRSReqSDUErrorRatio;
-            }
-            break;
-
-        case EGPRSMaxSDUErrorRatio:
-            {
-            retVal = qosRecord->iGPRSMaxSDUErrorRatio;
-            }
-            break;
-
-        case EGPRSReqTrafficHandlingPriority:
-            {
-            retVal = qosRecord->iGPRSReqTrafficHandlingPriority;
-            }
-            break;
-
-        case EGPRSMinTrafficHandlingPriority:
-            {
-            retVal = qosRecord->iGPRSMinTrafficHandlingPriority;
-            }
-            break;
-
-        case EGPRSReqTransferDelay:
-            {
-            retVal = qosRecord->iGPRSReqTransferDelay;
-            }
-            break;
-
-        case EGPRSMaxTransferDelay:
-            {
-            retVal = qosRecord->iGPRSMaxTransferDelay;
-            }
-            break;
-
-        case EGPRSReqGuaranteedUplinkRate:
-            {
-            retVal = qosRecord->iGPRSReqGuaranteedUplinkRate;
-            }
-            break;
-
-        case EGPRSMinGuaranteedUplinkRate:
-            {
-            retVal = qosRecord->iGPRSMinGuaranteedUplinkRate;
-            }
-            break;
-
-        case EGPRSReqGuaranteedDownlinkRate:
-            {
-            retVal = qosRecord->iGPRSReqGuaranteedDownlinkRate;
-            }
-            break;
-
-        case EGPRSMinGuaranteedDownlinkRate:
-            {
-            retVal = qosRecord->iGPRSMinGuaranteedDownlinkRate;
-            }
-            break;
-
-        case EGPRSSourceStatisticsDescriptor:
-            {
-            retVal = qosRecord->iGPRSSourceStatisticsDescriptor;
-            }
-            break;
-
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETQOSINTATTRIBUTEL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerBoolAttributeL
-// ---------------------------------------------------------------------------
-//
-TBool CCmPluginPacketData::GetBearerBoolAttributeL( TUint32 aAttribute,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERBOOLATTRIBUTEL_ENTRY );
-
-    TBool retVal( EFalse );
-
-    switch ( aAttribute )
-        {
-        case EPacketDataOutGoing:
-            {
-            retVal = iOutgoing;
-            }
-            break;
-        case ECmCoverage:
-            {
-#ifndef __WINS__
-            CCmPDCoverageCheck* coverage = new( ELeave ) CCmPDCoverageCheck;
-            CleanupStack::PushL( coverage );
-
-            retVal = coverage->IsThereCoverageL();
-
-            CleanupStack::PopAndDestroy( coverage );
-#else
-            retVal = ETrue;
-#endif
-            }
-            break;
-        case ECmDestination:
-            {
-            retVal = EFalse;
-            }
-            break;
-        case ECmBearerHasUi:
-            {
-            retVal = ETrue;
-            }
-            break;
-        case ECmIPv6Supported:
-            {
-            retVal = FeatureManager::FeatureSupported( KFeatureIdIPv6 );
-            }
-            break;
-        case EPacketDataDataCompression:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSDataCompression;
-            }
-            break;
-        case EPacketDataHeaderCompression:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSHeaderCompression;
-            }
-            break;
-        case EPacketDataUseEdge:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSUseEdge;
-            }
-            break;
-        case EPacketDataAnonymousAccess:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSAnonymousAccess;
-            }
-            break;
-        case ECmIFPromptForAuth:
-        case EPacketDataIFPromptForAuth:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSIfPromptForAuth;
-            }
-            break;
-        case ECmIPAddFromServer:
-        case EPacketDataIPAddrFromServer:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSIPAddrFromServer;
-            }
-            break;
-        case ECmIPDNSAddrFromServer:
-        case EPacketDataIPDNSAddrFromServer:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSIPDNSAddrFromServer;
-            }
-            break;
-        case ECmIP6DNSAddrFromServer:
-        case EPacketDataIPIP6DNSAddrFromServer:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSIP6DNSAddrFromServer;
-            }
-            break;
-        case ECmEnableLPCExtension:
-        case EPacketDataEnableLcpExtension:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSEnableLCPExtension;
-            }
-            break;
-        case EPacketDataServiceEnableLLMNR:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iServiceEnableLlmnr;
-            }
-            break;
-        case ECmDisablePlainTextAuth:
-        case EPacketDataDisablePlainTextAuth:
-            {
-            retVal = static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] )->iGPRSDisablePlainTextAuth;
-            }
-            break;
-        case EGPRSSignallingIndication:
-            {
-            retVal = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-                    aBearerSpecRecordArray[KQosRecordIndex] )->iGPRSSignallingIndication;
-            }
-            break;
-        case EGPRS_ImCnSignallingIndication:
-            {
-            retVal = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-                    aBearerSpecRecordArray[KQosRecordIndex] )->iGPRS_ImCnSignallingIndication;
-            }
-            break;
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERBOOLATTRIBUTEL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerStringAttributeL
-// ---------------------------------------------------------------------------
-//
-HBufC* CCmPluginPacketData::GetBearerStringAttributeL( TUint32 aAttribute,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERSTRINGATTRIBUTEL_ENTRY );
-
-    HBufC* retVal( NULL );
-    if ( ( aAttribute > EPacketDataSpecificAttributes && aAttribute < EGPRSReqTrafficClass ) ||
-            ( aAttribute > ECmCommonAttributesStart && aAttribute < ECmCommonAttributesEnd ) )
-        {
-        retVal = GetServiceStringAttributeL( aAttribute, aGenRecordArray );
-        }
-    else
-        {
-        User::Leave( KErrNotSupported );
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERSTRINGATTRIBUTEL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetServiceStringAttributeL
-// ---------------------------------------------------------------------------
-//
-HBufC* CCmPluginPacketData::GetServiceStringAttributeL(
-        TUint32 aAttribute,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETSERVICESTRINGATTRIBUTEL_ENTRY );
-
-    HBufC* retVal = NULL;
-
-    CCDWCDMAPacketServiceRecord* serviceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
-    switch ( aAttribute )
-        {
-        case ECmIFName:
-        case EPacketDataAPName:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSAPN ).AllocL();
-            }
-            break;
-        case EPacketDataPDPAddress:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSPDPAddress ).AllocL();
-            }
-            break;
-        case ECmIFParams:
-        case EPacketDataIFParams:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIfParams ).AllocL();
-            }
-            break;
-        case ECmIFNetworks:
-        case EPacketDataIFNetworks:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIfNetworks ).AllocL();
-            }
-            break;
-        case ECmIFAuthName:
-        case EPacketDataIFAuthName:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIfAuthName ).AllocL();
-            }
-            break;
-        case ECmIFAuthPass:
-        case EPacketDataIFAuthPass:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIfAuthPass ).AllocL();
-            }
-            break;
-        case ECmIPNetmask:
-        case EPacketDataIPNetmask:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPNetMask ).AllocL();
-            }
-            break;
-        case ECmIPGateway:
-        case EPacketDataIPGateway:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPGateway ).AllocL();
-            }
-            break;
-        case ECmIPAddress:
-        case EPacketDataIPAddr:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPAddr ).AllocL();
-            }
-            break;
-        case ECmIPNameServer1:
-        case EPacketDataIPNameServer1:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPNameServer1 ).AllocL();
-            }
-            break;
-        case ECmIPNameServer2:
-        case EPacketDataIPNameServer2:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPNameServer2 ).AllocL();
-            }
-            break;
-        case ECmIP6NameServer1:
-        case EPacketDataIPIP6NameServer1:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIP6NameServer1 ).AllocL();
-            }
-            break;
-        case ECmIP6NameServer2:
-        case EPacketDataIPIP6NameServer2:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIP6NameServer2 ).AllocL();
-            }
-            break;
-        case ECmIPAddrLeaseValidFrom:
-        case EPacketDataIPAddrLeaseValidFrom:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPAddrLeaseValidFrom ).AllocL();
-            }
-            break;
-        case ECmIPAddrLeaseValidTo:
-        case EPacketDataIPAddrLeaseValidTo:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSIPAddrLeaseValidTo ).AllocL();
-            }
-            break;
-        case ECmConfigDaemonManagerName:
-        case EPacketDataConfigDaemonManagerName:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSConfigDaemonManagerName ).AllocL();
-            }
-            break;
-        case ECmConfigDaemonName:
-        case EPacketDataConfigDaemonName:
-            {
-            retVal = TPtrC( serviceRecord->iGPRSConfigDaemonName ).AllocL();
-            }
-            break;
-
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETSERVICESTRINGATTRIBUTEL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerString8AttributeL
-// ---------------------------------------------------------------------------
-//
-HBufC8* CCmPluginPacketData::GetBearerString8AttributeL( TUint32 /*aAttribute*/,
-        RPointerArray<CommsDat::CCDRecordBase>& /*aGenRecordArray*/,
-        RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERSTRING8ATTRIBUTEL_ENTRY );
-
-    User::Leave( KErrNotSupported );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERSTRING8ATTRIBUTEL_EXIT );
-    return NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetBearerIntAttributeL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetBearerIntAttributeL(
-        TUint32 aAttribute,
-        TUint32 aValue,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERINTATTRIBUTEL_ENTRY );
-
-    if ( aAttribute >= EPacketDataSpecificAttributes && aAttribute < EPacketDataServiceEnableLLMNR )
-        {
-        SetServiceIntAttributeL( aAttribute, aValue, aGenRecordArray );
-        }
-    else if ( aAttribute >= EGPRSReqTrafficClass && aAttribute <= EGPRSSourceStatisticsDescriptor )
-        {
-        SetQosIntAttributeL( aAttribute, aValue, aBearerSpecRecordArray );
-        }
-    else
-        {
-        User::Leave( KErrNotFound );
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERINTATTRIBUTEL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetServiceIntAttributeL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetServiceIntAttributeL(
-        TUint32 aAttribute,
-        TUint32 aValue,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETSERVICEINTATTRIBUTEL_ENTRY );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-            aGenRecordArray[KServiceRecordIndex] );
-
-    switch ( aAttribute )
-        {
-        case EPacketDataPDPType:
-            {
-            SetPDPTypeL( static_cast<RPacketContext::TProtocolType>( aValue ),
-                         serviceRecord );
-            }
-            break;
-
-        case EPacketDataReqPrecedence:
-            {
-            serviceRecord->iGPRSReqPrecedence.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataReqDelay:
-            {
-            serviceRecord->iGPRSReqDelay.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataReliability:
-            {
-            serviceRecord->iGPRSReqReliability.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataPeakThroughput:
-            {
-            serviceRecord->iGPRSReqPeakThroughput.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataMeanThroughput:
-            {
-            serviceRecord->iGPRSMinMeanThroughput.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataMinPrecedence:
-            {
-            serviceRecord->iGPRSMinPrecedence.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataMinDelay:
-            {
-            serviceRecord->iGPRSMinDelay.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataMinReliability:
-            {
-            serviceRecord->iGPRSMinReliability.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataMinPeakThroughput:
-            {
-            serviceRecord->iGPRSMinPeakThroughput.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataMinMeanThroughput:
-            {
-            serviceRecord->iGPRSMinMeanThroughput.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataIFAuthRetries:
-            {
-            serviceRecord->iGPRSIfAuthRetries.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataApType:
-            {
-            serviceRecord->iGPRSAPType.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataQoSWarningTimeOut:
-            {
-            serviceRecord->iGPRSQOSWarningTimeOut.SetL( aValue );
-            }
-            break;
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-        }
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETSERVICEINTATTRIBUTEL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetQosIntAttributeL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetQosIntAttributeL(
-        TUint32 aAttribute,
-        TUint32 aValue,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETQOSINTATTRIBUTEL_ENTRY );
-
-    CCDUmtsR99QoSAndOnTableRecord* qosRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-            aBearerSpecRecordArray[KQosRecordIndex] );
-
-    switch ( aAttribute )
-        {
-        case EGPRSReqTrafficClass:
-            {
-            qosRecord->iGPRSReqTrafficClass.SetL(
-                    static_cast<RPacketQoS::TTrafficClass>( aValue ) );
-            }
-            break;
-
-        case EGPRSMinTrafficClass:
-            {
-            qosRecord->iGPRSMinTrafficClass.SetL(
-                    static_cast<RPacketQoS::TTrafficClass>( aValue ) );
-            }
-            break;
-
-        case EGPRSReqDeliveryOrder:
-            {
-            qosRecord->iGPRSReqDeliveryOrder.SetL(
-                    static_cast<RPacketQoS::TDeliveryOrder>( aValue ) );
-            }
-            break;
-
-        case GPRSMinDeliveryOrder:
-            {
-            qosRecord->iGPRSMinDeliveryOrder.SetL(
-                    static_cast<RPacketQoS::TDeliveryOrder>( aValue ) );
-            }
-            break;
-        case EGPRSReqDeliverErroneousSDU:
-            {
-            qosRecord->iGPRSReqDeliverErroneousSDU.SetL(
-                    static_cast<RPacketQoS::TErroneousSDUDelivery>( aValue ) );
-            }
-            break;
-        case EGPRSMinDeliverErroneousSDU:
-            {
-            qosRecord->iGPRSMinDeliverErroneousSDU.SetL(
-                    static_cast<RPacketQoS::TErroneousSDUDelivery>( aValue ) );
-            }
-            break;
-        case EGPRSReqMaxSDUSize:
-            {
-            qosRecord->iGPRSReqMaxSDUSize.SetL( aValue );
-            }
-            break;
-
-        case EGPRSMinAcceptableMaxSDUSize:
-            {
-            qosRecord->iGPRSMinAcceptableMaxSDUSize.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqMaxUplinkRate:
-            {
-            qosRecord->iGPRSReqMaxUplinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqMinUplinkRate:
-            {
-            qosRecord->iGPRSReqMinUplinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqMaxDownlinkRate:
-            {
-            qosRecord->iGPRSReqMaxDownlinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqMinDownlinkRate:
-            {
-            qosRecord->iGPRSReqMinDownlinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqBER:
-            {
-            qosRecord->iGPRSReqBER.SetL(
-                    static_cast<RPacketQoS::TBitErrorRatio>( aValue ) );
-            }
-            break;
-
-        case EGPRSMaxBER:
-            {
-            qosRecord->iGPRSMaxBER.SetL(
-                    static_cast<RPacketQoS::TBitErrorRatio>( aValue ) );
-            }
-            break;
-
-        case EGPRSReqSDUErrorRatio:
-            {
-            qosRecord->iGPRSReqSDUErrorRatio.SetL(
-                    static_cast<RPacketQoS::TSDUErrorRatio>( aValue ) );
-            }
-            break;
-
-        case EGPRSMaxSDUErrorRatio:
-            {
-            qosRecord->iGPRSMaxSDUErrorRatio.SetL(
-                    static_cast<RPacketQoS::TSDUErrorRatio>( aValue ) );
-            }
-            break;
-
-        case EGPRSReqTrafficHandlingPriority:
-            {
-            qosRecord->iGPRSReqTrafficHandlingPriority.SetL(
-                    static_cast<RPacketQoS::TTrafficHandlingPriority>( aValue ) );
-            }
-            break;
-
-        case EGPRSMinTrafficHandlingPriority:
-            {
-            qosRecord->iGPRSMinTrafficHandlingPriority.SetL(
-                    static_cast<RPacketQoS::TTrafficHandlingPriority>( aValue ) );
-            }
-            break;
-
-        case EGPRSReqTransferDelay:
-            {
-            qosRecord->iGPRSReqTransferDelay.SetL( aValue );
-            }
-            break;
-
-        case EGPRSMaxTransferDelay:
-            {
-            qosRecord->iGPRSMaxTransferDelay.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqGuaranteedUplinkRate:
-            {
-            qosRecord->iGPRSReqGuaranteedUplinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSMinGuaranteedUplinkRate:
-            {
-            qosRecord->iGPRSMinGuaranteedUplinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSReqGuaranteedDownlinkRate:
-            {
-            qosRecord->iGPRSReqGuaranteedDownlinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSMinGuaranteedDownlinkRate:
-            {
-            qosRecord->iGPRSMinGuaranteedDownlinkRate.SetL( aValue );
-            }
-            break;
-
-        case EGPRSSourceStatisticsDescriptor:
-            {
-            qosRecord->iGPRSSourceStatisticsDescriptor.SetL(
-                    static_cast<RPacketQoS::TSourceStatisticsDescriptor>( aValue ) );
-            }
-            break;
-
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETQOSINTATTRIBUTEL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetBearerBoolAttributeL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetBearerBoolAttributeL(
-        TUint32 aAttribute,
-        TBool aValue,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERBOOLATTRIBUTEL_ENTRY );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-            aGenRecordArray[KServiceRecordIndex] );
-
-    switch ( aAttribute )
-        {
-        case EPacketDataOutGoing:
-            {
-            iOutgoing = aValue;
-            }
-            break;
-        case EPacketDataDataCompression:
-            {
-            serviceRecord->iGPRSDataCompression.SetL( aValue );
-            }
-            break;
-        case EPacketDataHeaderCompression:
-            {
-            serviceRecord->iGPRSHeaderCompression.SetL( aValue );
-            }
-            break;
-        case EPacketDataUseEdge:
-            {
-            serviceRecord->iGPRSUseEdge.SetL( aValue );
-            }
-            break;
-        case EPacketDataAnonymousAccess:
-            {
-            serviceRecord->iGPRSAnonymousAccess.SetL( aValue );
-            }
-            break;
-        case ECmIFPromptForAuth:
-        case EPacketDataIFPromptForAuth:
-            {
-            serviceRecord->iGPRSIfPromptForAuth.SetL( aValue );
-            }
-            break;
-        case ECmIPAddFromServer:
-        case EPacketDataIPAddrFromServer:
-            {
-            serviceRecord->iGPRSIPAddrFromServer.SetL( aValue );
-            }
-            break;
-        case ECmIPDNSAddrFromServer:
-        case EPacketDataIPDNSAddrFromServer:
-            {
-            serviceRecord->iGPRSIPDNSAddrFromServer.SetL( aValue );
-            }
-            break;
-        case ECmIP6DNSAddrFromServer:
-        case EPacketDataIPIP6DNSAddrFromServer:
-            {
-            serviceRecord->iGPRSIP6DNSAddrFromServer.SetL( aValue );
-            }
-            break;
-        case ECmEnableLPCExtension:
-        case EPacketDataEnableLcpExtension:
-            {
-            serviceRecord->iGPRSEnableLCPExtension.SetL( aValue );
-            }
-            break;
-        case ECmDisablePlainTextAuth:
-        case EPacketDataDisablePlainTextAuth:
-            {
-            serviceRecord->iGPRSDisablePlainTextAuth.SetL( aValue );
-            }
-            break;
-        case EGPRSSignallingIndication:
-            {
-            static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-                    aBearerSpecRecordArray[KQosRecordIndex] )
-                    ->iGPRSSignallingIndication.SetL( aValue );
-            }
-            break;
-        case EGPRS_ImCnSignallingIndication:
-            {
-            static_cast<CCDUmtsR99QoSAndOnTableRecord*>
-                 ( aBearerSpecRecordArray[KQosRecordIndex] )
-                 ->iGPRS_ImCnSignallingIndication.SetL( aValue );
-            }
-            break;
-        case EPacketDataServiceEnableLLMNR:
-            {
-            serviceRecord->iServiceEnableLlmnr.SetL( aValue );
-            }
-            break;
-        default:
-            {
-            User::Leave( KErrNotFound );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERBOOLATTRIBUTEL_EXIT );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetBearerStringAttributeL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetBearerStringAttributeL(
-        TUint32 aAttribute,
-        const TDesC16& aValue,
-        RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
-        RPointerArray<CommsDat::CCDRecordBase>& aBearerSpecRecordArray )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERSTRINGATTRIBUTEL_ENTRY );
-
-    CCDWCDMAPacketServiceRecord* serviceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>(
-                    aGenRecordArray[KServiceRecordIndex] );
-
-    switch ( aAttribute )
-        {
-        case EPacketDataAPName:
-            {
-            serviceRecord->iGPRSAPN.SetL( aValue );
-            }
-            break;
-
-        case EPacketDataPDPAddress:
-            {
-            serviceRecord->iGPRSPDPAddress.SetL( aValue );
-            }
-            break;
-
-        case ECmIFParams:
-        case EPacketDataIFParams:
-            {
-            serviceRecord->iGPRSIfParams.SetL( aValue );
-            }
-            break;
-
-        case ECmIFNetworks:
-        case EPacketDataIFNetworks:
-            {
-            serviceRecord->iGPRSIfNetworks.SetL( aValue );
-            }
-            break;
-
-        case ECmIFAuthName:
-        case EPacketDataIFAuthName:
-            {
-            serviceRecord->iGPRSIfAuthName.SetL( aValue );
-            }
-            break;
-
-        case ECmIFAuthPass:
-        case EPacketDataIFAuthPass:
-            {
-            serviceRecord->iGPRSIfAuthPass.SetL( aValue );
-            }
-            break;
-
-        case ECmIPNetmask:
-        case EPacketDataIPNetmask:
-            {
-            serviceRecord->iGPRSIPNetMask.SetL( aValue );
-            }
-            break;
-
-        case ECmIPGateway:
-        case EPacketDataIPGateway:
-            {
-            serviceRecord->iGPRSIPGateway.SetL( aValue );
-            }
-            break;
-
-        case ECmIPAddress:
-        case EPacketDataIPAddr:
-            {
-            if ( ( aValue.Compare( KUnspecifiedIPv4 ) == 0 ) ||
-                    ( aValue.Compare( KNullDesC ) == 0 ) )
-                {
-                // If unspecified or NULL address is set dynamic
-                // IP must be enabled.
-                SetBearerBoolAttributeL( ECmIPAddFromServer,
-                                         ETrue,
-                                         aGenRecordArray,
-                                         aBearerSpecRecordArray );
-                }
-            else
-                {
-                // If valid address is set dynamic IP is disabled.
-                SetBearerBoolAttributeL( ECmIPAddFromServer,
-                                         EFalse,
-                                         aGenRecordArray,
-                                         aBearerSpecRecordArray );
-                }
-            serviceRecord->iGPRSIPAddr.SetL( aValue );
-            }
-            break;
-
-        case ECmIPNameServer1:
-        case EPacketDataIPNameServer1:
-            {
-            serviceRecord->iGPRSIPNameServer1.SetL( aValue );
-            }
-            break;
-
-        case ECmIPNameServer2:
-        case EPacketDataIPNameServer2:
-            {
-            serviceRecord->iGPRSIPNameServer2.SetL( aValue );
-            }
-            break;
-
-        case ECmIP6NameServer1:
-        case EPacketDataIPIP6NameServer1:
-            {
-            serviceRecord->iGPRSIP6NameServer1.SetL( aValue );
-            }
-            break;
-
-        case ECmIP6NameServer2:
-        case EPacketDataIPIP6NameServer2:
-            {
-            serviceRecord->iGPRSIP6NameServer2.SetL( aValue );
-            }
-            break;
-
-        case ECmIPAddrLeaseValidFrom:
-        case EPacketDataIPAddrLeaseValidFrom:
-            {
-            serviceRecord->iGPRSIPAddrLeaseValidFrom.SetL( aValue );
-            }
-            break;
-
-        case ECmIPAddrLeaseValidTo:
-        case EPacketDataIPAddrLeaseValidTo:
-            {
-            serviceRecord->iGPRSIPAddrLeaseValidTo.SetL( aValue );
-            }
-            break;
-
-        case ECmConfigDaemonManagerName:
-        case EPacketDataConfigDaemonManagerName:
-            {
-            serviceRecord->iGPRSConfigDaemonManagerName.SetL( aValue );
-            }
-            break;
-
-        case ECmConfigDaemonName:
-        case EPacketDataConfigDaemonName:
-            {
-            serviceRecord->iGPRSConfigDaemonName.SetL( aValue );
-            }
-            break;
-
-        default:
-            {
-            User::Leave( KErrNotSupported );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERSTRINGATTRIBUTEL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::SetBearerString8AttributeL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::SetBearerString8AttributeL(
-        TUint32 /*aAttribute*/,
-        const TDesC8& /*aValue*/,
-        RPointerArray<CommsDat::CCDRecordBase>& /*aGenRecordArray*/,
-        RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_SETBEARERSTRING8ATTRIBUTEL_ENTRY );
-
-    User::Leave( KErrNotSupported );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_SETBEARERSTRING8ATTRIBUTEL_EXIT );
-    return;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerInfoIntL
-// ---------------------------------------------------------------------------
-//
-TUint32 CCmPluginPacketData::GetBearerInfoIntL( TUint32 aAttribute ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOINTL_ENTRY );
-
-    TUint32 retVal( 0 );
-    switch ( aAttribute )
-        {
-        case ECmBearerType:
-            {
-            retVal = iBearerType;
-            }
-            break;
-        case ECmCommsDBBearerType:
-            {
-            retVal = KCommDbBearerWcdma;
-            }
-            break;
-        case ECmDefaultUiPriority:
-            {
-            retVal = GetDefPriorityL( aAttribute );
-            }
-            break;
-        case ECmDefaultPriority:
-            {
-            retVal = GetDefPriorityL( aAttribute );
-            }
-            break;
-        case ECmExtensionLevel:
-            {
-            retVal = KExtensionBaseLevel;
-            }
-            break;
-
-        default:
-            {
-            User::Leave( KErrNotSupported );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOINTL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerInfoBoolL
-// ---------------------------------------------------------------------------
-//
-TBool CCmPluginPacketData::GetBearerInfoBoolL( TUint32 aAttribute ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOBOOLL_ENTRY );
-
-    TBool retVal( EFalse );
-    switch ( aAttribute )
-        {
-        case ECmCoverage:
-            {
-#ifndef __WINS__
-            CCmPDCoverageCheck* coverage = new (ELeave) CCmPDCoverageCheck;
-            CleanupStack::PushL( coverage );
-
-            retVal = coverage->IsThereCoverageL();
-
-            CleanupStack::PopAndDestroy( coverage );
-#else
-            retVal = ETrue;
-#endif
-            }
-            break;
-        case ECmDestination:
-            {
-            retVal = EFalse;
-            }
-            break;
-        case ECmBearerHasUi:
-            {
-            retVal = EFalse;
-            }
-            break;
-        case ECmIPv6Supported:
-            {
-            retVal = FeatureManager::FeatureSupported( KFeatureIdIPv6 );
-            }
-            break;
-        case ECmVirtual:
-            {
-            retVal = EFalse;
-            }
-            break;
-
-        default:
-            {
-            User::Leave( KErrNotSupported );
-            }
-        break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOBOOLL_EXIT );
-    return retVal;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerInfoStringL
-// ---------------------------------------------------------------------------
-//
-HBufC* CCmPluginPacketData::GetBearerInfoStringL( TUint32 aAttribute ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRINGL_ENTRY );
-
-    HBufC* retVal( NULL );
-    switch ( aAttribute )
-        {
-        default:
-            {
-            User::Leave( KErrNotSupported );
-            }
-        break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRINGL_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerInfoString8L
-// ---------------------------------------------------------------------------
-//
-HBufC8* CCmPluginPacketData::GetBearerInfoString8L( TUint32 aAttribute ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRING8L_ENTRY );
-
-    HBufC8* retVal( NULL );
-    switch ( aAttribute )
-        {
-        default:
-            {
-            User::Leave( KErrNotSupported );
-            }
-            break;
-        }
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERINFOSTRING8L_EXIT );
-    return retVal;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::PrepareToCopyDataL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::PrepareToCopyDataL( CCmPluginBaseEng* aCopyInstance )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_PREPARETOCOPYDATAL_ENTRY );
-
-    CCmPluginPacketData* plugin = static_cast<CCmPluginPacketData*>( aCopyInstance );
-    plugin->iOutgoing = iOutgoing;
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_PREPARETOCOPYDATAL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::CopyServiceRecordL
-// ---------------------------------------------------------------------------
-//
-CommsDat::CCDRecordBase* CCmPluginPacketData::CopyServiceRecordL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_COPYSERVICERECORDL_ENTRY );
-
-    // New service record to be returned.
-    CCDRecordBase* serviceRecord = NULL;
-    if ( iOutgoing )
-        {
-        serviceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdOutgoingGprsRecord ) );
-        }
-    else
-        {
-        serviceRecord = static_cast<CCDWCDMAPacketServiceRecord*>(
-                CCDRecordBase::RecordFactoryL( KCDTIdIncomingGprsRecord ) );
-        }
-    CleanupStack::PushL( serviceRecord );
-
-    CCDWCDMAPacketServiceRecord* tempServiceRecordPtrToNew =
-            static_cast<CCDWCDMAPacketServiceRecord*>( serviceRecord );
-
-    // CommsDat version of service record.
-    CCDWCDMAPacketServiceRecord* origServiceRecord =
-            static_cast<CCDWCDMAPacketServiceRecord*>( iServiceRecord );
-
-    if ( !origServiceRecord->iRecordTag.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iRecordTag.SetL(
-                origServiceRecord->iRecordTag );
-        }
-    if ( !origServiceRecord->iRecordName.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iRecordName.SetL(
-                origServiceRecord->iRecordName );
-        }
-
-    if ( !origServiceRecord->iServiceEnableLlmnr.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iServiceEnableLlmnr.SetL(
-                origServiceRecord->iServiceEnableLlmnr );
-        }
-
-    if ( !origServiceRecord->iGPRSAPN.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSAPN.SetL(
-                origServiceRecord->iGPRSAPN );
-        }
-    if ( !origServiceRecord->iGPRSPDPType.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSPDPType.SetL(
-                origServiceRecord->iGPRSPDPType );
-        }
-    if ( !origServiceRecord->iGPRSPDPAddress.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSPDPAddress.SetL(
-                origServiceRecord->iGPRSPDPAddress );
-        }
-    if ( !origServiceRecord->iGPRSReqPrecedence.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSReqPrecedence.SetL(
-                origServiceRecord->iGPRSReqPrecedence );
-        }
-    if ( !origServiceRecord->iGPRSReqDelay.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSReqDelay.SetL(
-                origServiceRecord->iGPRSReqDelay );
-        }
-    if ( !origServiceRecord->iGPRSReqReliability.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSReqReliability.SetL(
-                origServiceRecord->iGPRSReqReliability );
-        }
-    if ( !origServiceRecord->iGPRSReqPeakThroughput.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSReqPeakThroughput.SetL(
-                origServiceRecord->iGPRSReqPeakThroughput );
-        }
-    if ( !origServiceRecord->iGPRSReqMeanThroughput.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSReqMeanThroughput.SetL(
-                origServiceRecord->iGPRSReqMeanThroughput );
-        }
-    if ( !origServiceRecord->iGPRSMinPrecedence.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSMinPrecedence.SetL(
-                origServiceRecord->iGPRSMinPrecedence );
-        }
-    if ( !origServiceRecord->iGPRSMinDelay.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSMinDelay.SetL(
-                origServiceRecord->iGPRSMinDelay );
-        }
-    if ( !origServiceRecord->iGPRSMinReliability.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSMinReliability.SetL(
-                origServiceRecord->iGPRSMinReliability );
-        }
-    if ( !origServiceRecord->iGPRSMinPeakThroughput.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSMinPeakThroughput.SetL(
-                origServiceRecord->iGPRSMinPeakThroughput );
-        }
-    if ( !origServiceRecord->iGPRSMinMeanThroughput.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSMinMeanThroughput.SetL(
-                origServiceRecord->iGPRSMinMeanThroughput );
-        }
-    if ( !origServiceRecord->iGPRSDataCompression.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSDataCompression.SetL(
-                origServiceRecord->iGPRSDataCompression );
-        }
-    if ( !origServiceRecord->iGPRSHeaderCompression.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSHeaderCompression.SetL(
-                origServiceRecord->iGPRSHeaderCompression );
-        }
-    if ( !origServiceRecord->iGPRSUseEdge.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSUseEdge.SetL(
-                origServiceRecord->iGPRSUseEdge );
-        }
-    if ( !origServiceRecord->iGPRSAnonymousAccess.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSAnonymousAccess.SetL(
-                origServiceRecord->iGPRSAnonymousAccess );
-        }
-    if ( !origServiceRecord->iGPRSIfParams.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIfParams.SetL(
-                origServiceRecord->iGPRSIfParams );
-        }
-    if ( !origServiceRecord->iGPRSIfNetworks.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIfNetworks.SetL(
-                origServiceRecord->iGPRSIfNetworks );
-        }
-    if ( !origServiceRecord->iGPRSIfPromptForAuth.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIfPromptForAuth.SetL(
-                origServiceRecord->iGPRSIfPromptForAuth );
-        }
-    if ( !origServiceRecord->iGPRSIfAuthName.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIfAuthName.SetL(
-                origServiceRecord->iGPRSIfAuthName );
-        }
-    if ( !origServiceRecord->iGPRSIfAuthPass.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIfAuthPass.SetL(
-                origServiceRecord->iGPRSIfAuthPass );
-        }
-    if ( !origServiceRecord->iGPRSIfAuthRetries.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIfAuthRetries.SetL(
-                origServiceRecord->iGPRSIfAuthRetries );
-        }
-    if ( !origServiceRecord->iGPRSIPNetMask.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPNetMask.SetL(
-                origServiceRecord->iGPRSIPNetMask );
-        }
-    if ( !origServiceRecord->iGPRSIPGateway.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPGateway.SetL(
-                origServiceRecord->iGPRSIPGateway );
-        }
-    if ( !origServiceRecord->iGPRSIPAddrFromServer.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPAddrFromServer.SetL(
-                origServiceRecord->iGPRSIPAddrFromServer );
-        }
-    if ( !origServiceRecord->iGPRSIPAddr.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPAddr.SetL(
-                origServiceRecord->iGPRSIPAddr );
-        }
-    if ( !origServiceRecord->iGPRSIPDNSAddrFromServer.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPDNSAddrFromServer.SetL(
-                origServiceRecord->iGPRSIPDNSAddrFromServer );
-        }
-    if ( !origServiceRecord->iGPRSIPNameServer1.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPNameServer1.SetL(
-                origServiceRecord->iGPRSIPNameServer1 );
-        }
-    if ( !origServiceRecord->iGPRSIPNameServer2.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPNameServer2.SetL(
-                origServiceRecord->iGPRSIPNameServer2 );
-        }
-    if ( !origServiceRecord->iGPRSIP6DNSAddrFromServer.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIP6DNSAddrFromServer.SetL(
-                origServiceRecord->iGPRSIP6DNSAddrFromServer );
-        }
-    if ( !origServiceRecord->iGPRSIP6NameServer1.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIP6NameServer1.SetL(
-                origServiceRecord->iGPRSIP6NameServer1 );
-        }
-    if ( !origServiceRecord->iGPRSIP6NameServer2.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIP6NameServer2.SetL(
-                origServiceRecord->iGPRSIP6NameServer2 );
-        }
-    if ( !origServiceRecord->iGPRSIPAddrLeaseValidFrom.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPAddrLeaseValidFrom.SetL(
-                origServiceRecord->iGPRSIPAddrLeaseValidFrom );
-        }
-    if ( !origServiceRecord->iGPRSIPAddrLeaseValidTo.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSIPAddrLeaseValidTo.SetL(
-                origServiceRecord->iGPRSIPAddrLeaseValidTo );
-        }
-    if ( !origServiceRecord->iGPRSConfigDaemonManagerName.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSConfigDaemonManagerName.SetL(
-                origServiceRecord->iGPRSConfigDaemonManagerName );
-        }
-    if ( !origServiceRecord->iGPRSConfigDaemonName.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSConfigDaemonName.SetL(
-                origServiceRecord->iGPRSConfigDaemonName );
-        }
-    if ( !origServiceRecord->iGPRSEnableLCPExtension.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSEnableLCPExtension.SetL(
-                origServiceRecord->iGPRSEnableLCPExtension );
-        }
-    if ( !origServiceRecord->iGPRSDisablePlainTextAuth.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSDisablePlainTextAuth.SetL(
-                origServiceRecord->iGPRSDisablePlainTextAuth );
-        }
-    if ( !origServiceRecord->iGPRSAPType.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSAPType.SetL(
-                origServiceRecord->iGPRSAPType );
-        }
-    if ( !origServiceRecord->iGPRSQOSWarningTimeOut.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSQOSWarningTimeOut.SetL(
-                origServiceRecord->iGPRSQOSWarningTimeOut );
-        }
-    if ( !origServiceRecord->iUmtsR99QoSAndOnTable.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iUmtsR99QoSAndOnTable.SetL(
-                origServiceRecord->iUmtsR99QoSAndOnTable );
-        }
-    if ( !origServiceRecord->iGPRSR5DataCompression.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSR5DataCompression.SetL(
-                origServiceRecord->iGPRSR5DataCompression );
-        }
-    if ( !origServiceRecord->iGPRSR5HeaderCompression.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSR5HeaderCompression.SetL(
-                origServiceRecord->iGPRSR5HeaderCompression );
-        }
-    if ( !origServiceRecord->iGPRSPacketFlowIdentifier.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSPacketFlowIdentifier.SetL(
-                origServiceRecord->iGPRSPacketFlowIdentifier );
-        }
-    if ( !origServiceRecord->iGPRSUmtsGprsRelease.IsNull() )
-        {
-        tempServiceRecordPtrToNew->iGPRSUmtsGprsRelease.SetL(
-                origServiceRecord->iGPRSUmtsGprsRelease );
-        }
-
-    CleanupStack::Pop( serviceRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_COPYSERVICERECORDL_EXIT );
-    return serviceRecord;
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::ResetBearerRecords
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::ResetBearerRecords()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_RESETBEARERRECORDS_ENTRY );
-
-    delete iPacketDataQoSRecord;
-    iPacketDataQoSRecord = NULL;
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_RESETBEARERRECORDS_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::DeleteBearerRecordsL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::DeleteBearerRecordsL()
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_DELETEBEARERRECORDSL_ENTRY );
-
-    if ( !TPtrC(iPacketDataQoSRecord->iRecordName).CompareF( KDefaultQosDataRecordName ) ||
-            !TPtrC(iPacketDataQoSRecord->iRecordName).CompareF( KDefaultQosDataRecordNamewithSpace ) )
-        {
-        OstTraceFunctionExit0( CCMPLUGINPACKETDATA_DELETEBEARERRECORDSL_EXIT );
-        return;
-        }
-
-    iPacketDataQoSRecord->DeleteL( iSession );
-
-    OstTraceFunctionExit0( DUP1_CCMPLUGINPACKETDATA_DELETEBEARERRECORDSL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::CopyBearerRecordsL
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::CopyBearerRecordsL( CCmPluginBaseEng* aCopyInstance )
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_COPYBEARERRECORDSL_ENTRY );
-
-    CCmPluginPacketData* plugin = static_cast<CCmPluginPacketData*>( aCopyInstance );
-
-    CCDUmtsR99QoSAndOnTableRecord* qosRecord = static_cast<CCDUmtsR99QoSAndOnTableRecord*>(
-            CCDRecordBase::RecordFactoryL( KCDTIdUmtsR99QoSAndOnTableRecord ) );
-    CleanupStack::PushL( qosRecord );
-    CopyRecordFieldsL( *iPacketDataQoSRecord, *qosRecord );
-    CleanupStack::Pop( qosRecord );
-    plugin->iPacketDataQoSRecord = qosRecord;
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_COPYBEARERRECORDSL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetBearerTableIdsToBeObserved
-// ---------------------------------------------------------------------------
-//
-void CCmPluginPacketData::GetBearerTableIdsToBeObservedL(
-        RArray<TUint32>& aTableIdArray ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETBEARERTABLEIDSTOBEOBSERVEDL_ENTRY );
-
-    aTableIdArray.AppendL( KCDTIdOutgoingGprsRecord );
-    aTableIdArray.AppendL( KCDTIdUmtsR99QoSAndOnTableRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETBEARERTABLEIDSTOBEOBSERVEDL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// CCmPluginPacketData::GetDefPriorityL
-// ---------------------------------------------------------------------------
-//
-TUint32 CCmPluginPacketData::GetDefPriorityL( const TUint32 aAttribute ) const
-    {
-    OstTraceFunctionEntry0( CCMPLUGINPACKETDATA_GETDEFPRIORITYL_ENTRY );
-
-    TUint32 retVal( KDataMobilitySelectionPolicyPriorityWildCard );
-
-    CCDGlobalBearerTypePriorizationRecord* priorityRecord =
-            new( ELeave ) CCDGlobalBearerTypePriorizationRecord( iBearerPriorityTableId );
-    CleanupStack::PushL( priorityRecord );
-
-    priorityRecord->iServiceType.SetL( TPtrC( KCDTypeNameOutgoingWCDMA ) );
-
-    if ( priorityRecord->FindL( iSession ) )
-        {
-        priorityRecord->LoadL( iSession );
-
-        switch ( aAttribute )
-            {
-            case ECmDefaultPriority:
-                {
-                retVal = priorityRecord->iPriority;
-                }
-                break;
-            case ECmDefaultUiPriority:
-                {
-                retVal = priorityRecord->iUIPriority;
-                }
-                break;
-            default:
-                break;
-            }
-        }
-    CleanupStack::PopAndDestroy( priorityRecord );
-
-    OstTraceFunctionExit0( CCMPLUGINPACKETDATA_GETDEFPRIORITYL_EXIT );
-    return retVal;
-    }
-
-// End of file