Revision: 201021
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 14:05:07 +0300
changeset 31 8ab6687fb94c
parent 26 8767c6acf334
child 42 3adadc800673
Revision: 201021 Kit: 2010121
basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs/TE_C32BcaUnit.ini
basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts/TE_C32BcaUnit.script
basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src/te_C32BcaUnitSteps.cpp
hwpluginsimulation/mocksy/bwins/distribution.policy
hwpluginsimulation/mocksy/eabi/distribution.policy
hwpluginsimulation/mocksy/group/distribution.policy
hwpluginsimulation/mocksy/inc/distribution.policy
hwpluginsimulation/mocksy/src/distribution.policy
telephonyprotocols/csdagt/src/ND_DIRCT.CPP
telephonyprotocols/csdagt/src/Nd_Bases.cpp
telephonyprotocols/pdplayer/inc/PDPSCPR.h
telephonyprotocols/pdplayer/inc/PDPSCPRStates.h
telephonyprotocols/pdplayer/src/PDPDeftSCPR.cpp
telephonyprotocols/pdplayer/src/PDPSCPR.cpp
telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp
telephonyprotocols/pdplayer/test/controlplane/group/BLD.INF
telephonyprotocols/pdplayer/umts/test/Te_UmtsGprsSCPR/scripts/te_cap_umtsgprsscpr_noqostestnif.script
telephonyprotocols/qos3gppcpr/group/bld.inf
telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h
telephonyprotocols/rawipnif/group/BLD.INF
telephonyprotocols/rawipnif/inc/Receiver.h
telephonyprotocols/rawipnif/src/Receiver.cpp
telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group/BLD.INF
telephonyserverplugins/common_tsy/commontsy/inc/tflogger.h
telephonyserverplugins/common_tsy/group/bld.inf
telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group/bld.inf
telephonyserverplugins/common_tsy/test/integration/group/bld.inf
telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestairtimeduration.cpp
telephonyserverplugins/common_tsy/test/integration/src/comparisonfunctions.cpp
telephonyserverplugins/common_tsy/test/integration/testdata/ctsyintegration_ntn_data.ini
telephonyserverplugins/ctsydispatchlayer/src/cphonebookdispatcher.cpp
telephonyserverplugins/simtsy/inc/CSimMbmsPacketContext.h
telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp
--- a/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs/TE_C32BcaUnit.ini	Fri May 14 17:02:16 2010 +0300
+++ b/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs/TE_C32BcaUnit.ini	Thu May 27 14:05:07 2010 +0300
@@ -135,14 +135,19 @@
 ExpectedCommRole = DCE
 
 [ValidChannelId]
+PDD_Name = ECDRV
+LDD_Name = ECOMM
+CSY_Name = PKTLOOPBACK
+Port_Name = PKTLOOPBACK::501
+BcaCSY_Name = PKTLOOPBACK
 UUT_Name = UUT
 Peer_Name = Peer
 UUT_PortName = BOGUS
 Peer_PortName = BOGUS
-UUT_IapId = 4
+UUT_IapId = 1
 Peer_IapId = 2
-Port_Name1 = ECUART::COMM::0
-Port_Name2 = COMM::0
+Port_Name1 = PKTLOOPBACK::PKTLOOPBACK::501
+Port_Name2 = PKTLOOPBACK::501
 
 [HiddenIAPRecord]
 PDD_Name = ECDRV
--- a/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts/TE_C32BcaUnit.script	Fri May 14 17:02:16 2010 +0300
+++ b/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts/TE_C32BcaUnit.script	Thu May 27 14:05:07 2010 +0300
@@ -520,42 +520,42 @@
 
 START_TESTCASE          NET-BasebandAdaptation-c32bca-0133
 //! @SYMTestCaseID      NET-BasebandAdaptation-c32bca-0133
-//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port.
+//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port (using packetloopback.csy as current phone hardware does not support a serial driver).
 //! @SYMFssID NETWORKING/BCA
 //! @SYMTestActions Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc
 //! @SYMTestExpectedResults Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc.
 //! @SYMTestPriority High 
 //! @SYMTestStatus Implemented
 //! @SYMTestType UT
-RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort1 z:\TestData\Configs\TE_C32BcaUnit.ini SerialPortConfig0
+RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort1 z:\TestData\Configs\TE_C32BcaUnit.ini CommRoleDTE
 DELAY 1000
 
 END_TESTCASE            NET-BasebandAdaptation-c32bca-0133
 
 START_TESTCASE          NET-BasebandAdaptation-c32bca-0134
 //! @SYMTestCaseID      NET-BasebandAdaptation-c32bca-0134
-//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port.
+//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port (using packetloopback.csy as current phone hardware does not support a serial driver).
 //! @SYMFssID NETWORKING/BCA
 //! @SYMTestActions Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc
 //! @SYMTestExpectedResults Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc.
 //! @SYMTestPriority Critical 
 //! @SYMTestStatus Implemented
 //! @SYMTestType UT
-RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort2 z:\TestData\Configs\TE_C32BcaUnit.ini SerialPortConfig0
+RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort2 z:\TestData\Configs\TE_C32BcaUnit.ini CommRoleDTE
 DELAY 1000
 
 END_TESTCASE            NET-BasebandAdaptation-c32bca-0134
 
 START_TESTCASE          NET-BasebandAdaptation-c32bca-0135
 //! @SYMTestCaseID      NET-BasebandAdaptation-c32bca-0135
-//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port.
+//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port (using packetloopback.csy as current phone hardware does not support a serial driver).
 //! @SYMFssID NETWORKING/BCA
 //! @SYMTestActions Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc
 //! @SYMTestExpectedResults Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc.
 //! @SYMTestPriority High 
 //! @SYMTestStatus Implemented
 //! @SYMTestType UT
-RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort3 z:\TestData\Configs\TE_C32BcaUnit.ini SerialPortConfig0
+RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort3 z:\TestData\Configs\TE_C32BcaUnit.ini CommRoleDTE
 DELAY 1000
 
 END_TESTCASE            NET-BasebandAdaptation-c32bca-0135
--- a/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src/te_C32BcaUnitSteps.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src/te_C32BcaUnitSteps.cpp	Thu May 27 14:05:07 2010 +0300
@@ -1540,30 +1540,31 @@
 TVerdict CIoctlSerialPort1::RunTestStepL()
 	{
 	LoadC32SettingsFromConfigFileL();
-	
+    
 	LoadCsyNameFromConfigFileL();
 	OpenRealCommPortL(iCommPort, iC32CsyName, iC32PortName);
-	
+    
 	LoadUutL();
 	SetProxyCsyL(*iUut, iC32CsyName);
-	
+    
 	iUut->Open(iC32PortName);
 	iUut->WaitForOpenL(KErrNone);
-	
+    
 	TCommConfig actualCommConfig;
 	iCommPort.Config(actualCommConfig);
 	actualCommConfig().iTerminatorCount = 1;
 	actualCommConfig().iTerminator[0] = 0x7E;
-	LogAndLeaveIfErrorL(iCommPort.SetConfig(actualCommConfig), _L("Setting COMM Config on RComm"));
-	
+
+	LogAndLeaveIfErrorL(iCommPort.SetConfig(actualCommConfig), _L("Setting COMM Config on RComm"));    
+    
 	TCommConfig balCommConfig;
 	// sanity check
 	TRAPD(err, CheckBuffersEqualL(balCommConfig, actualCommConfig));
 	if(KErrNone == err)
-		{
-		INFO_PRINTF1(_L("Santify Check Failure: buffers were equal before TCommConfig was retrieved from BCA."));
-		return EInconclusive;
-		}
+	{
+	INFO_PRINTF1(_L("Santify Check Failure: buffers were equal before TCommConfig was retrieved from BCA."));
+	return EInconclusive;
+	}
 
 	TPckgBuf<TCommConfig> argPckg(balCommConfig);
 	iUut->Ioctl(KBcaOptLevelExtSerial, KSerialConfig, argPckg);
@@ -1571,15 +1572,33 @@
 	balCommConfig = argPckg();
 
 	CheckBuffersEqualL(balCommConfig, actualCommConfig);
-	
+
+	// Now check that we can accept a V2 structure, although only the V1 attributes are configured for use.
+	TCommConfig2 actualCommConfig2;
+	actualCommConfig2.FillZ();
+	actualCommConfig2().iTerminatorCount = 2;
+	actualCommConfig2().iTerminator[0] = 0x7E;    
+	LogAndLeaveIfErrorL(iCommPort.SetConfig(actualCommConfig2), _L("Setting COMM Config using V2 on RComm"));
+
+	// Now check that we can retrieve a V1 structure correctly.
+	TCommConfig balCommConfig1;
+	balCommConfig1.FillZ();
+	TPckgBuf<TCommConfig> argPckg1(balCommConfig1);
+	iUut->Ioctl(KBcaOptLevelExtSerial, KSerialConfig, argPckg1);
+	iUut->WaitForIoctlL(KErrNone);
+	balCommConfig1 = argPckg1();
+
+	actualCommConfig().iTerminatorCount = 2;    //Modify Comparison Structure to be aligned to balCommConfig1          
+	CheckBuffersEqualL(balCommConfig1, actualCommConfig);
+    
 	iCommPort.Close();
-	
+    
 	iUut->Shutdown();
 	iUut->WaitForShutdownL(KErrNone);
-	
+    
 	UnloadUut();
-	
-	return EPass;
+    
+	return EPass;    
 	}
 
 /**
@@ -1777,7 +1796,7 @@
 /** Test C32 BCA open functionality with the different combinations of ChannelId*/
 TVerdict CValidChannelId::RunTestStepL()
 	{
-	TPtrC channelId;
+    TPtrC channelId;
 		
 	if(!GetStringFromConfig(ConfigSection(), _L("Port_Name1"), channelId))
 		{
@@ -1785,10 +1804,19 @@
 		return EAbort;
 		}
 		
-	// Pass channelId in the form of csyname::portname (ECUART::COMM::0) to the BCA
+	// Pass channelId in the form of:
+	// csyname::portname (ECUART::COMM::0) to the BCA
+	// where csyname  = ECUART
+	//       portname = COMM::0
+	// OR alternatively
+	// csyname::portname (PKTLOOPBACK::PKTLOOPBACK::501) 
+	// where csyname   = PKTLOOPBACK
+	//       portname  = PKTLOOPBACK::501
+	//       (PKTLOOPBACK port names contain a seemingly redundant PKTLOOPBACK in their specification).
+	LoadUutL();
+
+	// Scenario 1 - the CSY name is specified in the descriptor argument passed to the Open()
 	
-	LoadUutL();
-			
 	iUut->Open(channelId);
 	iUut->WaitForOpenL(KErrNone);
 	
@@ -1800,10 +1828,16 @@
 		return EAbort;
 		}
 		
-	// Pass channelId in the form of portname (COMM::0) to the BCA	
-		
+	// Pass channelId in the form of portname (COMM::0) to the BCA
+	//     OR
+	//                                         (PKTLOOPBACK::501) 
+
+	// Scenario 2 - the CSY name is not specified in the descriptor argument passed to the Open()
+	// In this case, the CSY name is retrieved from CommsDat, based on the IAP.
+	// The client specifies the IAP by call SetProxyIapIdL();
+	
 	LoadUutL();
-	
+
 	SetProxyIapIdL(*iUut, iUutIapId);
 	
 	iUut->Open(channelId);
--- a/hwpluginsimulation/mocksy/bwins/distribution.policy	Fri May 14 17:02:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Category T
-OSD:	Reference/Test	Tools
--- a/hwpluginsimulation/mocksy/eabi/distribution.policy	Fri May 14 17:02:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Category T
-OSD:	Reference/Test	Tools
--- a/hwpluginsimulation/mocksy/group/distribution.policy	Fri May 14 17:02:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Category T
-OSD:	Reference/Test	Tools
--- a/hwpluginsimulation/mocksy/inc/distribution.policy	Fri May 14 17:02:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Category T
-OSD:	Reference/Test	Tools
--- a/hwpluginsimulation/mocksy/src/distribution.policy	Fri May 14 17:02:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Category T
-OSD:	Reference/Test	Tools
--- a/telephonyprotocols/csdagt/src/ND_DIRCT.CPP	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/csdagt/src/ND_DIRCT.CPP	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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"
@@ -90,10 +90,18 @@
 	iDbAccess->GetCommPortRoleL(role);
 	TInt len;
 	iDbAccess->GetScriptDetailsL(iUseScript,len);
+	
 	if (!iUseScript || len==0)	
 		{		// set them consistently
 		iUseScript=EFalse;
 		}
+	
+	if (iNdScript != NULL)
+	    {
+        delete iNdScript;
+        iNdScript = NULL;
+	    }
+	
 	iNdScript=CNetDialScript::NewL(iDbAccess,iDlgPrc,commPort,role,len);	// create it whatever because we need other stuff
 	}
 
--- a/telephonyprotocols/csdagt/src/Nd_Bases.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/csdagt/src/Nd_Bases.cpp	Thu May 27 14:05:07 2010 +0300
@@ -29,7 +29,8 @@
 // Netdial SM base class 
 
 CNetdialSM::CNetdialSM(MAgentNotify& aControllerObserver, CDialogProcessor* aDlgPrc, CCommsDbAccess& aDbAccess)
-	: CAgentSMBase(aControllerObserver,aDlgPrc,aDbAccess)
+	: CAgentSMBase(aControllerObserver,aDlgPrc,aDbAccess),
+	  iNdScript(NULL)
 /**
 Constructor.
 
--- a/telephonyprotocols/pdplayer/inc/PDPSCPR.h	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/inc/PDPSCPR.h	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-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"
@@ -58,6 +58,7 @@
     class TRetrieveSipAddr;
     class TModifyActivePDPContext;
 	class TSetMbmsParameters;
+	class TCleanupFSM;
     }
 
 namespace PDPSCprActivities
@@ -93,6 +94,7 @@
     friend class PDPSCprStates::TRetrieveSipAddr;
 	friend class PDPSCprStates::TSetMbmsParameters;
     friend class PDPSCprStates::TModifyActivePDPContext;
+    friend class PDPSCprStates::TCleanupFSM;
 
 
 public:
--- a/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h	Thu May 27 14:05:07 2010 +0300
@@ -377,6 +377,16 @@
   	virtual TInt TransitionTag();
 DECLARE_SMELEMENT_FOOTER( TNoTagOrProviderStopped )
 
+DECLARE_SMELEMENT_HEADER( TCleanupFSM, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, PDPSCprStates::TContext)
+    virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TCleanupFSM)
+
+DECLARE_AGGREGATED_TRANSITION2(
+   TCleanupFSMAndDataClients,
+   PDPSCprStates::TCleanupFSM,
+   PRStates::TDestroyOrphanedDataClients
+   )    
+
 
 //===========================================================
 //   Sip Address retrieval
--- a/telephonyprotocols/pdplayer/src/PDPDeftSCPR.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/src/PDPDeftSCPR.cpp	Thu May 27 14:05:07 2010 +0300
@@ -65,7 +65,7 @@
     NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag<CoreNetStates::KNoDataClientsToStop>)
     THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KNoDataClientsToStop, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrProviderStopped)
     NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TDestroyPDPContext, PDPSCprStates::TAwaitingPDPContextDestroyed, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
-    THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PRStates::TDestroyOrphanedDataClients, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
+    THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TCleanupFSMAndDataClients, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
     LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, MeshMachine::TRaiseActivityError)
 NODEACTIVITY_END()
 }
@@ -103,21 +103,21 @@
 //           to TRejoin, whereas TRejoin doesn't mean swap - suggesting to
 //           introduce PDP level msg: TRejoinAndSwap.
 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityGoneDown, PDPDeftSCprGoneDown, TPDPMessages::TPDPFSMMessage, PDPSCprStates::CPrimaryPDPGoneDownActivity::NewL)
-	FIRST_NODEACTIVITY_ENTRY(PDPSCprStates::TAwaitingPDPContextGoneDown, MeshMachine::TActiveOrNoTag<ECFActivityStartDataClient>)
-	THROUGH_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, PDPSCprStates::CPrimaryPDPGoneDownActivity::TNoTagOrProviderStopped)
+    FIRST_NODEACTIVITY_ENTRY(PDPSCprStates::TAwaitingPDPContextGoneDown, MeshMachine::TActiveOrNoTag<ECFActivityStartDataClient>)
+    THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TCleanupFSM, PDPSCprStates::CPrimaryPDPGoneDownActivity::TNoTagOrProviderStopped)
     THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TStoreOriginalDataClient, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TRejoinDataClient, CoreNetStates::TAwaitingRejoinDataClientComplete, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TApplyNewDefault, TAwaitingApplyResponseOrError, MeshMachine::TNoTag)
-	THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TSwitchToNewDefault, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TStopOriginalDataClient, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TNoTag)
-
-	LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TClearError)
-	THROUGH_NODEACTIVITY_ENTRY(KActiveTag, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrContentionTag)
-	//Awaiting for contention result, do not stop the start activity.
-	LAST_NODEACTIVITY_ENTRY(PDPSCprStates::KContentionTag, MeshMachine::TDoNothing)
-
-	LAST_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TCancelDataClientStartInPDP)
-
+    NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TRejoinDataClient, CoreNetStates::TAwaitingRejoinDataClientComplete, MeshMachine::TNoTag)
+    NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TApplyNewDefault, TAwaitingApplyResponseOrError, MeshMachine::TNoTag)
+    THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TSwitchToNewDefault, MeshMachine::TNoTag)
+    NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TStopOriginalDataClient, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TNoTag)
+    
+    LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TClearError)
+    THROUGH_NODEACTIVITY_ENTRY(KActiveTag, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrContentionTag)
+    //Awaiting for contention result, do not stop the start activity.
+    LAST_NODEACTIVITY_ENTRY(PDPSCprStates::KContentionTag, MeshMachine::TDoNothing)
+    
+    LAST_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TCancelDataClientStartInPDP)
+    
     NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, CoreNetStates::TStopSelf, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
     LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TSendGoneDown)
 NODEACTIVITY_END()
--- a/telephonyprotocols/pdplayer/src/PDPSCPR.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/src/PDPSCPR.cpp	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-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"
@@ -91,7 +91,7 @@
     NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag<CoreNetStates::KNoDataClientsToStop>)
     THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KNoDataClientsToStop, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrProviderStopped)
     NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TDestroyPDPContext, PDPSCprStates::TAwaitingPDPContextDestroyed, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
-    THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PRStates::TDestroyOrphanedDataClients, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
+    THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TCleanupFSMAndDataClients, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
     LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, MeshMachine::TRaiseActivityError)
 NODEACTIVITY_END()
 }
@@ -106,7 +106,7 @@
     NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
 	THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrProviderStopped)
 	NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TDestroyPDPContext, PDPSCprStates::TAwaitingPDPContextDestroyed, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
-	THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PRStates::TDestroyOrphanedDataClients, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
+	THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TCleanupFSMAndDataClients, MeshMachine::TTag<CoreNetStates::KProviderStopped>)
 	LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TSendDataClientStopped)
 NODEACTIVITY_END()
 }
--- a/telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp	Thu May 27 14:05:07 2010 +0300
@@ -226,7 +226,9 @@
     
     //It's not legal for the qos defaults to be absent.
     CDefaultPacketQoSProvision* defaultQoS = NULL;
+    
     TRAPD(ret, defaultQoS = CDefaultPacketQoSProvision::NewL(aIapView));   
+    
     if ((KErrNone == ret) && defaultQoS)           
         {
         CleanupStack::PushL(defaultQoS);
@@ -658,115 +660,192 @@
     User::LeaveIfError(tNode.iProvisionFailure);
     
     ASSERT(tNode.iPdpFsmInterface);
-
-    iContext.Node().PostToClients<TDefaultClientMatchPolicy>(
+    
+    tNode.PostToClients<TDefaultClientMatchPolicy>(
             iContext.NodeId(),
             TCFMessage::TStateChange(
                     Elements::TStateChange(KPsdStartingConfiguration, KErrNone)).CRef(),
             TClientType(TCFClientType::ECtrlProvider));
-
-	CGPRSProvision* gprsProvision = const_cast<CGPRSProvision*>(static_cast<const CGPRSProvision*>(
-	    iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CGPRSProvision::EUid,CGPRSProvision::ETypeId))));
-
-	//retrieve QoS (should be provisioned, but can also be overriden with SetParams).
-	RPacketQoS::TQoSR5Requested qosOverridenParams;
-	const RPacketQoS::TQoSR5Requested* qosParams = NULL;
-	if (! iContext.Node().iParameterBundle.IsNull() && ! iContext.Node().iParameterBundle.FindFamily(KSubConQoSFamily).IsNull())
-    	{
-    	MPDPParamMapper::MapQosParamBundleToEtelL(iContext.Node().iParameterBundle, qosOverridenParams);
-    	qosParams = &qosOverridenParams;
-    	}
-	else
-    	{
-    	const CDefaultPacketQoSProvision* defaultQoSProvision = static_cast<const CDefaultPacketQoSProvision*>(
-    	    iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CDefaultPacketQoSProvision::EUid,CDefaultPacketQoSProvision::ETypeId)));
-    	qosParams = defaultQoSProvision ? &defaultQoSProvision->iParams : NULL;
-
+    
+    CGPRSProvision* gprsProvision = const_cast<CGPRSProvision*>(static_cast<const CGPRSProvision*>(
+        tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CGPRSProvision::EUid,CGPRSProvision::ETypeId))));
+    
+    if (gprsProvision == NULL)
+        {
+        User::Leave(KErrCorrupt);
+        }
+    
+    //retrieve QoS (should be provisioned, but can also be overriden with SetParams).
+    RPacketQoS::TQoSR5Requested qosOverridenParams;
+    
+    const RPacketQoS::TQoSR5Requested* qosParams = NULL;
+    
+    if ((!tNode.iParameterBundle.IsNull()) &&\
+            (!tNode.iParameterBundle.FindFamily(KSubConQoSFamily).IsNull()))
+        {
+        MPDPParamMapper::MapQosParamBundleToEtelL(tNode.iParameterBundle, qosOverridenParams);
+        qosParams = &qosOverridenParams;
+        }
+    else
+        {
+        const CDefaultPacketQoSProvision* defaultQoSProvision = static_cast<const CDefaultPacketQoSProvision*>(
+            tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CDefaultPacketQoSProvision::EUid,CDefaultPacketQoSProvision::ETypeId)));
+        
+        if (defaultQoSProvision)
+            {
+            qosParams = &defaultQoSProvision->iParams;
+            }
+        else
+            {
+            User::Leave(KErrCorrupt);
+            }
+    
         //Here we're taking the qos defaults from the provision info, hence skipping the iParameterBundle.
         //The lack of iParameterBundle however and the respective ERequested params is badly tolerated by the rest
         //of the code (e.g.: when subsequently raising granted params it is assumed something has been requested).
-        //Let's create a phoney requested params.
-        //iContext.Node().CreateParameterBundleL();
-		//RParameterFamily family = iContext.Node().iParameterBundle.CreateFamilyL(KSubConQoSFamily); //PJLEFT
-
-		RCFParameterFamilyBundle newBundle;
-		newBundle.CreateL();
-		iContext.Node().iParameterBundle.Open(newBundle);
-		RParameterFamily family = newBundle.CreateFamilyL(KSubConQoSFamily);
-		CSubConQosGenericParamSet::NewL(family, RParameterFamily::ERequested);
-    	}
-	TTFTInfo tft; //We'll use empty/thus default TFT
-	if (gprsProvision == NULL || qosParams == NULL)
-    	{
-    	User::Leave(KErrCorrupt);
-    	}
-
-	const CImsExtProvision* imsprov = static_cast<const CImsExtProvision*>(
-		iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CImsExtProvision::EUid, CImsExtProvision::ETypeId)));
-
-	TRAP_IGNORE(iContext.Node().iIsModeGsm = IsModeGsmL());
-
-	switch (gprsProvision->UmtsGprsRelease())
-			{
-	    	case TPacketDataConfigBase::KConfigGPRS:
-				{
-				SetImsSignallingFlagL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigGPRS>().iProtocolConfigOption, imsprov->iImsSignalIndicator);
+ 
+        // These parameter bundles are also used in a situation when a context has failed to create because of a lack
+        // of modem / network resources, as the SCPR isn't torn down, the parameter bundles need to hold the 
+        // information of the default QoS otherwise bad things happen [bad QoS].
+        
+        RCFParameterFamilyBundle newBundle;
+        newBundle.CreateL();
+        tNode.iParameterBundle.Open(newBundle);
+        RParameterFamily family = newBundle.CreateFamilyL(KSubConQoSFamily);
+       
+        TInt tRelease = gprsProvision->UmtsGprsRelease();
+     
+        CSubConQosR99ParamSet* extRequestedR99  = NULL;
+        CSubConQosR99ParamSet* extAcceptableR99 = NULL;
+        CSubConQosR5ParamSet* extRequestedR5    = NULL;
+        CSubConQosR5ParamSet* extAcceptableR5   = NULL;
+        
+        if (tRelease == TPacketDataConfigBase::KConfigRel5)
+            {
+            // R5 - basically R4 + a few parameters
+        
+            extRequestedR5 = CSubConQosR5ParamSet::NewL(family,RParameterFamily::ERequested);        
+            extAcceptableR5 = CSubConQosR5ParamSet::NewL(family,RParameterFamily::EAcceptable);
 
-				// Only request SIP server address retrieval when network not in GSM/GPRS mode
-			    // e.g. UMTS/WCDMA
-				if (!iContext.Node().iIsModeGsm)
-				    {
-				    SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigGPRS>().iProtocolConfigOption);
-				    }
-				
-				SetChapInformationL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigGPRS>().iProtocolConfigOption);
-
-				}
-				break;
-
-	    	case TPacketDataConfigBase::KConfigRel5:
-		    case TPacketDataConfigBase::KConfigRel99Rel4:
-				{
-				SetImsSignallingFlagL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigR99_R4>().iProtocolConfigOption, imsprov->iImsSignalIndicator);
-
-			    // Only request SIP server address retrieval when network not in GSM/GPRS mode
-			    // e.g. UMTS/WCDMA
-				if (!iContext.Node().iIsModeGsm)
-                    {
-                    SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigR99_R4>().iProtocolConfigOption);
-                    }
-				
-				SetChapInformationL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigR99_R4>().iProtocolConfigOption);
-				
-				}
-				break;				
-			}
-	
-	iContext.Node().iPDPFsmContextId = iContext.Node().iPdpFsmInterface->NewFsmContextL(iContext.Node(),SpudMan::EPrimary);
-
-    iContext.Node().PostToClients<TDefaultClientMatchPolicy>(
+            // Requested QoS Parameters
+            extRequestedR5->SetSourceStatisticsDescriptor(qosParams->iSourceStatisticsDescriptor);
+            extRequestedR5->SetSignallingIndicator(qosParams->iSignallingIndication);
+            
+            extRequestedR99 = dynamic_cast<CSubConQosR99ParamSet*>(extRequestedR5);
+                 
+            // Acceptable QoS Parameters
+            
+            extAcceptableR5->SetSourceStatisticsDescriptor(qosParams->iSourceStatisticsDescriptor);
+            extAcceptableR5->SetSignallingIndicator(qosParams->iSignallingIndication);
+            
+            extAcceptableR99 = dynamic_cast<CSubConQosR99ParamSet*>(extAcceptableR5);
+                      
+            }
+        else
+            {
+            // R4 and R99
+            extRequestedR99  = CSubConQosR99ParamSet::NewL(family,RParameterFamily::ERequested);
+            extAcceptableR99 = CSubConQosR99ParamSet::NewL(family,RParameterFamily::EAcceptable);
+            }
+        
+        // Requested QoS Parameters
+        extRequestedR99->SetTrafficClass(qosParams->iReqTrafficClass);
+        extRequestedR99->SetDeliveryOrder(qosParams->iReqDeliveryOrderReqd);
+        extRequestedR99->SetErroneousSDUDelivery(qosParams->iReqDeliverErroneousSDU);
+        extRequestedR99->SetResidualBitErrorRatio(qosParams->iReqBER);
+        extRequestedR99->SetSDUErrorRatio(qosParams->iReqSDUErrorRatio);
+        extRequestedR99->SetTrafficHandlingPriority(qosParams->iReqTrafficHandlingPriority);
+        extRequestedR99->SetTransferDelay(qosParams->iReqTransferDelay);
+        extRequestedR99->SetMaxSduSize(qosParams->iReqMaxSDUSize);
+        extRequestedR99->SetMaxBitrateUplink(qosParams->iReqMaxRate.iUplinkRate);
+        extRequestedR99->SetMaxBitrateDownlink(qosParams->iReqMaxRate.iDownlinkRate);
+        extRequestedR99->SetGuaBitrateUplink(qosParams->iReqGuaranteedRate.iUplinkRate);
+        extRequestedR99->SetGuaBitrateDownlink(qosParams->iReqGuaranteedRate.iDownlinkRate);    
+        
+        // Acceptable QoS Parameters
+        extAcceptableR99->SetTrafficClass(qosParams->iMinTrafficClass);
+        extAcceptableR99->SetDeliveryOrder(qosParams->iMinDeliveryOrderReqd);
+        extAcceptableR99->SetErroneousSDUDelivery(qosParams->iMinDeliverErroneousSDU);
+        extAcceptableR99->SetResidualBitErrorRatio(qosParams->iMaxBER);
+        extAcceptableR99->SetSDUErrorRatio(qosParams->iMaxSDUErrorRatio);
+        extAcceptableR99->SetTrafficHandlingPriority(qosParams->iMinTrafficHandlingPriority);
+        extAcceptableR99->SetTransferDelay(qosParams->iMaxTransferDelay);
+        extAcceptableR99->SetMaxSduSize(qosParams->iMinAcceptableMaxSDUSize);
+        extAcceptableR99->SetMaxBitrateUplink(qosParams->iMinAcceptableMaxRate.iUplinkRate);
+        extAcceptableR99->SetMaxBitrateDownlink(qosParams->iMinAcceptableMaxRate.iDownlinkRate);
+        extAcceptableR99->SetGuaBitrateUplink(qosParams->iMinGuaranteedRate.iUplinkRate);
+        extAcceptableR99->SetGuaBitrateDownlink(qosParams->iMinGuaranteedRate.iDownlinkRate);               
+        
+        }
+        
+    TTFTInfo tft; //We'll use empty/thus default TFT
+    
+    const CImsExtProvision* imsprov = static_cast<const CImsExtProvision*>(
+        tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CImsExtProvision::EUid, CImsExtProvision::ETypeId)));
+    
+    TRAP_IGNORE(tNode.iIsModeGsm = IsModeGsmL());
+    
+    switch (gprsProvision->UmtsGprsRelease())
+        {
+        case TPacketDataConfigBase::KConfigGPRS:
+            {
+            SetImsSignallingFlagL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigGPRS>().iProtocolConfigOption, imsprov->iImsSignalIndicator);
+        
+            // Only request SIP server address retrieval when network not in GSM/GPRS mode
+            // e.g. UMTS/WCDMA
+            if (!tNode.iIsModeGsm)
+                {
+                SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigGPRS>().iProtocolConfigOption);
+                }
+            
+            SetChapInformationL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigGPRS>().iProtocolConfigOption);
+        
+            }
+            break;
+        
+        case TPacketDataConfigBase::KConfigRel5:
+        case TPacketDataConfigBase::KConfigRel99Rel4:
+            {
+            SetImsSignallingFlagL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigR99_R4>().iProtocolConfigOption, imsprov->iImsSignalIndicator);
+        
+            // Only request SIP server address retrieval when network not in GSM/GPRS mode
+            // e.g. UMTS/WCDMA
+            if (!tNode.iIsModeGsm)
+                {
+                SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigR99_R4>().iProtocolConfigOption);
+                }
+            
+            SetChapInformationL(gprsProvision->GetScratchContextAs<RPacketContext::TContextConfigR99_R4>().iProtocolConfigOption);
+            
+            }
+            break;				
+        }
+    
+    tNode.iPDPFsmContextId = tNode.iPdpFsmInterface->NewFsmContextL(tNode,SpudMan::EPrimary);
+    
+    tNode.PostToClients<TDefaultClientMatchPolicy>(
             iContext.NodeId(),
             TCFMessage::TStateChange(
                     Elements::TStateChange(KPsdFinishedConfiguration, KErrNone)).CRef(),
             TClientType(TCFClientType::ECtrlProvider));
-
-    iContext.Node().PostToClients<TDefaultClientMatchPolicy>(
+    
+    tNode.PostToClients<TDefaultClientMatchPolicy>(
             iContext.NodeId(),
             TCFMessage::TStateChange(
                     Elements::TStateChange(KPsdStartingActivation, KErrNone)).CRef(),
             TClientType(TCFClientType::ECtrlProvider));
-
-	ASSERT(iContext.Node().iPDPFsmContextId == KPrimaryContextId);
-	iContext.Node().iContextType=SpudMan::EPrimary;
-	iContext.Node().iPdpFsmInterface->Set(KPrimaryContextId, gprsProvision->GetScratchContextAs<TPacketDataConfigBase>());
-	//Set default QoS
-	iContext.Node().iPdpFsmInterface->Set(KPrimaryContextId, *qosParams);
+    
+    ASSERT(tNode.iPDPFsmContextId == KPrimaryContextId);
+    tNode.iContextType=SpudMan::EPrimary;
+    tNode.iPdpFsmInterface->Set(KPrimaryContextId, gprsProvision->GetScratchContextAs<TPacketDataConfigBase>());
+    //Set default QoS
+    tNode.iPdpFsmInterface->Set(KPrimaryContextId, *qosParams);
     //Set default TFTs
-    iContext.Node().iPdpFsmInterface->Set(KPrimaryContextId,  tft); // ignore any error
+    tNode.iPdpFsmInterface->Set(KPrimaryContextId, tft); // ignore any error
     //Start the primary.
-    User::LeaveIfError(iContext.Node().iPdpFsmInterface->Input(KPrimaryContextId, SpudMan::ECreatePrimaryPDPContext));
+    User::LeaveIfError(tNode.iPdpFsmInterface->Input(KPrimaryContextId, SpudMan::ECreatePrimaryPDPContext));
     iContext.iNodeActivity->ClearPostedTo();
-    iContext.Node().iActivityAwaitingResponse = iContext.iNodeActivity->ActivityId();
+    tNode.iActivityAwaitingResponse = iContext.iNodeActivity->ActivityId();
     }
 
 DEFINE_SMELEMENT(TOverrideProvision, NetStateMachine::MStateTransition, PDPSCprStates::TContext)
@@ -1464,33 +1543,48 @@
     iContext.Node().iActivityAwaitingResponse = iContext.iNodeActivity->ActivityId();
     }
 
+DEFINE_SMELEMENT(TCleanupFSM, NetStateMachine::MStateTransition, PDPSCprStates::TContext)
+void TCleanupFSM::DoL()
+    {
+    CPDPSubConnectionProvider &tNode = static_cast<CPDPSubConnectionProvider &>(iContext.Node());
+    
+    if (tNode.iPDPFsmContextId != CPDPSubConnectionProvider::EInvalidContextId)
+        {
+    
+        // removing the memory associated with the context - this should hopefully
+        // ensure that the memory allocations that happen afterwards can be
+        // accomplished without OOM errors
+    
+        tNode.iPdpFsmInterface->DeleteFsmContext(tNode.iPDPFsmContextId);
+
+        if (tNode.ContentionRequested() == EFalse)
+            {
+            CSubConGenEventSubConDown* event = CSubConGenEventSubConDown::NewL();
+            CleanupStack::PushL(event);
+            tNode.NotifyClientsL(*event);
+            CleanupStack::Pop(event);
+            }
+
+        if (tNode.iPDPFsmContextId == KPrimaryContextId)
+            {
+            tNode.PostToClients<TDefaultClientMatchPolicy>(
+                    iContext.NodeId(),
+                    TCFMessage::TStateChange(
+                            Elements::TStateChange(KPsdFinishedDeactivation, KErrNone)).CRef(),
+                            TClientType(TCFClientType::ECtrlProvider));
+            }   
+
+        tNode.iPDPFsmContextId = CPDPSubConnectionProvider::EInvalidContextId;
+        
+        }
+    }
+
+
 DEFINE_SMELEMENT(TAwaitingPDPContextDestroyed, NetStateMachine::MState, PDPSCprStates::TContext)
 TBool TAwaitingPDPContextDestroyed::Accept()
     {
     if (TAwaitingPDPFSMMessage::Accept(KContextDeleteEvent))
         {
-        if (iContext.Node().iPDPFsmContextId != CPDPSubConnectionProvider::EInvalidContextId)
-            {
-			if (!iContext.Node().ContentionRequested())
-				{
-				CSubConGenEventSubConDown* event = CSubConGenEventSubConDown::NewL();
-				CleanupStack::PushL(event);
-				iContext.Node().NotifyClientsL(*event);
-				CleanupStack::Pop(event);
-				}
-
-			if (iContext.Node().iPDPFsmContextId == KPrimaryContextId)
-                {
-                iContext.Node().PostToClients<TDefaultClientMatchPolicy>(
-                        iContext.NodeId(),
-                        TCFMessage::TStateChange(
-                                Elements::TStateChange(KPsdFinishedDeactivation, KErrNone)).CRef(),
-                                TClientType(TCFClientType::ECtrlProvider));
-                }
-
-            iContext.Node().iPdpFsmInterface->DeleteFsmContext(iContext.Node().iPDPFsmContextId);
-            iContext.Node().iPDPFsmContextId = CPDPSubConnectionProvider::EInvalidContextId;            
-            }
         return ETrue;
         }
     return EFalse;
--- a/telephonyprotocols/pdplayer/test/controlplane/group/BLD.INF	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/test/controlplane/group/BLD.INF	Thu May 27 14:05:07 2010 +0300
@@ -31,11 +31,11 @@
 ../configs/te_controlplanenetworksideloopbackcsy.ini      z:/testdata/configs/te_controlplanenetworksideloopbackcsy.ini
 
 
-../scripts/te_PDP_ControlPlane.script                     z:/testdata/scripts/te_PDP_ControlPlane.script
-../scripts/te_PDP_ControlPlane28.script                   z:/testdata/scripts/te_PDP_ControlPlane28.script
-../scripts/te_PDP_ControlPlane29.script                   z:/testdata/scripts/te_PDP_ControlPlane29.script
+../scripts/te_PDP_ControlPlane.script                     z:/testdata/scripts/te_pdp_controlplane.script
+../scripts/te_PDP_ControlPlane28.script                   z:/testdata/scripts/te_pdp_controlplane28.script
+../scripts/te_PDP_ControlPlane29.script                   z:/testdata/scripts/te_pdp_controlplane29.script
 
-te_PDPControlPlane.iby	/epoc32/rom/include/te_PDPControlPlane.iby
+te_PDPControlPlane.iby	/epoc32/rom/include/te_pdpcontrolplane.iby
 
 PRJ_MMPFILES
 
--- a/telephonyprotocols/pdplayer/umts/test/Te_UmtsGprsSCPR/scripts/te_cap_umtsgprsscpr_noqostestnif.script	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/pdplayer/umts/test/Te_UmtsGprsSCPR/scripts/te_cap_umtsgprsscpr_noqostestnif.script	Thu May 27 14:05:07 2010 +0300
@@ -179,7 +179,7 @@
 //! @SYMTestStatus Implemented
 //! @SYMTestType CIT
 RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script
-CED -i z:\testdata\configs\te_umtsgprsscpr_captest.xml ced.log
+CED -i z:\testdata\configs\te_umtsgprsscpr_captest.cfg ced.log
 RUN_SCRIPT  Z:\TestData\Scripts\te_Cap_UmtsGprsScprConfig1Case2.script
 END_TESTCASE			NET-UMTS-UmtsGprsSCPR-0206
 
--- a/telephonyprotocols/qos3gppcpr/group/bld.inf	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/qos3gppcpr/group/bld.inf	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-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"
@@ -18,7 +18,7 @@
 PRJ_EXPORTS
 ../inc/Qos3GPP_subconparams.h          SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(networking/qos3gpp_subconparams.h)
 ../inc/Qos3GPP_subconparams.inl        SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(networking/qos3gpp_subconparams.inl)
-../inc/Qos3GPP_subconparams_factory.h  SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(networking/qos3GPP_subconparams_factory.h)
+../inc/Qos3GPP_subconparams_factory.h  SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(networking/qos3gpp_subconparams_factory.h)
 
 ../group/Qos3GPP.iby /epoc32/rom/include/qos3gpp.iby
 
--- a/telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-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"
@@ -26,8 +26,6 @@
 #define QOS3GPP_SUBCONPARAMS_H
 
 #include <es_sock.h>
-#include <comms-infras/metadata.h>
-#include <comms-infras/metatype.h>
 
 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <etelqos.h>
@@ -253,7 +251,7 @@
 	};
 
 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <networking/qos3GPP_subconparams_factory.h>
+#include <networking/qos3gpp_subconparams_factory.h>
 #endif
 
 #include <networking/qos3gpp_subconparams.inl>
--- a/telephonyprotocols/rawipnif/group/BLD.INF	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/rawipnif/group/BLD.INF	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-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"
@@ -37,8 +37,8 @@
 PRJ_TESTEXPORTS
 
 // epoc.ini alternative and batchfile for replacement
-../DATA/epocrawip.ini z:/testdata/configs/epocrawip.ini
-../DATA/replaceepocrawipini.bat z:/testdata/configs/replaceepocrawipini.bat
+../data/epocrawip.ini z:/testdata/configs/epocrawip.ini
+../data/replaceepocrawipini.bat z:/testdata/configs/replaceepocrawipini.bat
 
 PRJ_MMPFILES
 
--- a/telephonyprotocols/rawipnif/inc/Receiver.h	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/rawipnif/inc/Receiver.h	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2002-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"
@@ -37,7 +37,9 @@
 
 	// Inherited from CActive.
 	virtual void RunL();
+	virtual TInt RunError(TInt aError);
 	virtual void DoCancel();
+	
 	void StartListening();
 	
 private:
--- a/telephonyprotocols/rawipnif/src/Receiver.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/rawipnif/src/Receiver.cpp	Thu May 27 14:05:07 2010 +0300
@@ -143,6 +143,13 @@
 	    }
 	}
 
+TInt CReceiver::RunError(TInt aError)
+    {
+    _LOG_L2C1(_L8("WARNING! CReceiver::RunError Read failed"));
+    iObserver.Stop(aError); 
+    return KErrNone;  
+    }
+
 void CReceiver::DoCancel()
 /**
  *	Cancel active request
--- a/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group/BLD.INF	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group/BLD.INF	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-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"
@@ -28,13 +28,13 @@
 ../scripts/version1/TE_spudNetworkSide.script				z:/testdata/scripts/te_spudnetworkside.script
 ../scripts/version1/TE_spudNetworkSide_nifman.script			z:/testdata/scripts/te_spudnetworkside_nifman.script
 ../scripts/version1/TE_PppSize_spud.script					z:/testdata/scripts/te_pppsize_spud.script
-../scripts/version1/TE_SpudNetworkside_Channel.script					z:/testdata/scripts/Te_SpudNetworkside_Channel.script
+../scripts/version1/TE_SpudNetworkside_Channel.script					z:/testdata/scripts/te_spudnetworkside_channel.script
 #else
 // script files
 ../scripts/TE_spudNetworkSide.script				z:/testdata/scripts/te_spudnetworkside.script
 ../scripts/TE_spudNetworkSide_nifman.script			z:/testdata/scripts/te_spudnetworkside_nifman.script
 ../scripts/TE_PppSize_spud.script					z:/testdata/scripts/te_pppsize_spud.script
-../scripts/TE_SpudNetworkside_Channel.script					z:/testdata/scripts/Te_SpudNetworkside_Channel.script
+../scripts/TE_SpudNetworkside_Channel.script					z:/testdata/scripts/te_spudnetworkside_channel.script
 ../scripts/TE_spudNetworkSide_R4_and_R5.script				z:/testdata/scripts/te_spudnetworkside_r4_and_r5.script
 #endif
 
@@ -59,7 +59,7 @@
 ../configs/version1/TE_PppSize_spud.xml						z:/testdata/configs/te_pppsize_spud.xml
 ../configs/version1/TE_PppSize_config.txt					z:/testdata/configs/te_pppsize_config.txt
 
-../configs/version1/TE_SpudNetworkSide_Channel_config.txt		z:/testdata/configs/TE_SpudNetworkSide_Channel_config.txt
+../configs/version1/TE_SpudNetworkSide_Channel_config.txt		z:/testdata/configs/te_spudnetworkside_channel_config.txt
 
 // Some error codes are platsec dependent
 ../configs/version1/TE_SpudNetworkSide_9x.ini 	z:/testdata/configs/te_spudnetworkside_platsec.ini
@@ -81,7 +81,7 @@
 ../configs/TE_PppSize_spud.xml						z:/testdata/configs/te_pppsize_spud.xml
 ../configs/TE_PppSize_config.txt					z:/testdata/configs/te_pppsize_config.txt
 
-../configs/TE_SpudNetworkSide_Channel_config.txt		z:/testdata/configs/TE_SpudNetworkSide_Channel_config.txt
+../configs/TE_SpudNetworkSide_Channel_config.txt		z:/testdata/configs/te_spudnetworkside_channel_config.txt
 
 // Some error codes are platsec dependent
 ../configs/TE_SpudNetworkSide_9x.ini 	z:/testdata/configs/te_spudnetworkside_platsec.ini
--- a/telephonyserverplugins/common_tsy/commontsy/inc/tflogger.h	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/commontsy/inc/tflogger.h	Thu May 27 14:05:07 2010 +0300
@@ -31,7 +31,6 @@
 // UDEB BUILD:
 #define TF_LOGGING_METHOD  3   // 0 = No logging, 
                                // 1 = Flogger, 
-                               // 2 = RDebug
                                // 3 = CommsDebug
 #endif
 
@@ -47,10 +46,6 @@
 _LIT(KTfLogFolder,"TF");
 _LIT(KTfLogFile,"TFLOG.TXT");
 
-#elif TF_LOGGING_METHOD == 2    // RDebug
-
-#include <e32svr.h>
-
 #elif TF_LOGGING_METHOD == 3    // CommsDebug
 
 #include <comms-infras/commsdebugutility.h>
@@ -77,15 +72,6 @@
 #define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempLogDes()),BBB,CCC,DDD); } while (0)
 
 
-#elif TF_LOGGING_METHOD == 2    // RDebug
-
-#define TFLOGTEXT(AAA)                RDebug::Print(AAA)
-#define TFLOGSTRING(AAA)              /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes); } while (0)
-#define TFLOGSTRING2(AAA,BBB)         /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB); } while (0)
-#define TFLOGSTRING3(AAA,BBB,CCC)     /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB, CCC); } while (0)
-#define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB, CCC, DDD); } while (0)
-
-
 #elif TF_LOGGING_METHOD == 3    // CommsDebug
 _LIT8(KTSYSubSystem, "tsy");
 #ifdef TF_SAT_LOGGING
@@ -110,7 +96,7 @@
 
 #endif  // TF_LOGGING_METHOD
 
-#if TF_LOGGING_METHOD == 1 || TF_LOGGING_METHOD == 2 
+#if TF_LOGGING_METHOD == 1
 
 // Note, #x and __FILE__ must be stored to char string first, making them 16bit 
 // strings with _LIT will not work in all compilers. 
@@ -130,7 +116,7 @@
 #define TF_ASSERT(x) 
 #define TF_ASSERT_NOT_REACHED() 
 
-#endif  // TF_LOGGING_METHOD == 1 || TF_LOGGING_METHOD == 2
+#endif  // TF_LOGGING_METHOD == 1
 
 
 #endif	// __TFLOGGER_H__
--- a/telephonyserverplugins/common_tsy/group/bld.inf	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/group/bld.inf	Thu May 27 14:05:07 2010 +0300
@@ -108,8 +108,8 @@
 
 // ConfML files
 ../conf/ctsy.confml              	 OS_LAYER_EXPORTS_CONFML(ctsy.confml)
-../conf/ctsy_10282DFE.crml           OS_LAYER_EXPORTS_CRML(ctsy_10282DFE.crml)
-../conf/ctsy_102029A2.crml           OS_LAYER_EXPORTS_CRML(ctsy_102029A2.crml)
+../conf/ctsy_10282DFE.crml           OS_LAYER_EXPORTS_CRML(ctsy_10282dfe.crml)
+../conf/ctsy_102029A2.crml           OS_LAYER_EXPORTS_CRML(ctsy_102029a2.crml)
 ../conf/ctsy_10282826.crml           OS_LAYER_EXPORTS_CRML(ctsy_10282826.crml)
 ../conf/ctsy_10282827.crml           OS_LAYER_EXPORTS_CRML(ctsy_10282827.crml)
 
--- a/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group/bld.inf	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group/bld.inf	Thu May 27 14:05:07 2010 +0300
@@ -14,8 +14,8 @@
 //
 
 PRJ_TESTEXPORTS
-../inc/rmockltsy.h      SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(test/rmockltsy.h)
-../inc/tmockltsydata.h  SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(test/tmockltsydata.h)
+../inc/rmockltsy.h      SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(test/rmockltsy.h)
+../inc/tmockltsydata.h  SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(test/tmockltsydata.h)
 
 PRJ_TESTMMPFILES
 mockltsydll.mmp
--- a/telephonyserverplugins/common_tsy/test/integration/group/bld.inf	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/group/bld.inf	Thu May 27 14:05:07 2010 +0300
@@ -13,6 +13,9 @@
 // Description:
 //
 
+//To resolve RPS dependency for integration tests
+// RPS
+#include "../../RPS/group/bld.inf"
 
 PRJ_EXPORTS
 
@@ -120,8 +123,6 @@
 
 
 PRJ_TESTMMPFILES
-//To resolve RPS dependency for integration tests
-// RPS
-#include "../../RPS/group/bld.inf"
+
 
 te_ctsyintegrationtestsuite.mmp
--- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestairtimeduration.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestairtimeduration.cpp	Thu May 27 14:05:07 2010 +0300
@@ -103,12 +103,6 @@
 	//
 	// TEST START
 	//
-		
-	// Check RMobilePhone::GetAirTimeDuration returns duration == 0.
-	TTimeIntervalSeconds timeBeforeDial;
-	TTimeIntervalSeconds timeAfterDial;
-	ASSERT_EQUALS(customApi.GetAirTimeDuration(timeBeforeDial), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error"))
-	ASSERT_EQUALS(timeBeforeDial.Int(),0,_L("RMmCustomAPI::GetAirTimeDuration did not return zero time duration as expected"))
 
 	// Dial a number that answers. 
 	TPtrC number; 
@@ -120,14 +114,19 @@
 	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"))
 	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"))
 
+	// Note that the air time reported before dialing a call is the last call airtime
+	TTimeIntervalSeconds timeOne;
+	TTimeIntervalSeconds timeTwo;
+	ASSERT_EQUALS(customApi.GetAirTimeDuration(timeOne), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error"))
+
 	// Wait for two second and check RMobilePhone::GetAirTimeDuration returns duration > previous duration. Repeat for 20 seconds. 
 	TInt count=1;
 	do
 		{
 		User::After(KOneSecond*2);
-		ASSERT_EQUALS(customApi.GetAirTimeDuration(timeAfterDial), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error"))
-		ASSERT_TRUE(timeAfterDial.Int()>timeBeforeDial.Int(),_L("RMmCustomAPI::GetAirTimeDuration did not return bigger time duration then the previous one"))
-		timeBeforeDial=timeAfterDial;
+		ASSERT_EQUALS(customApi.GetAirTimeDuration(timeTwo), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error"))
+		ASSERT_TRUE(timeTwo.Int()>timeOne.Int(),_L("RMmCustomAPI::GetAirTimeDuration did not return bigger time duration then the previous one"))
+		timeOne=timeTwo;
 		count++;
 		}while(count!=10);
 	
--- a/telephonyserverplugins/common_tsy/test/integration/src/comparisonfunctions.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/comparisonfunctions.cpp	Thu May 27 14:05:07 2010 +0300
@@ -206,18 +206,28 @@
 		{
 		if(aLogError == ELogError)
 			{
+			TBuf<255> apn, username, password;
+			apn.Copy(iValue.iAccessPointName);
+			username.Copy(iValue.iProtocolConfigOption.iAuthInfo.iUsername);
+			password.Copy(iValue.iProtocolConfigOption.iAuthInfo.iPassword);
 			_LIT(KAssertRPacketContextErrorEqualsTextA,"FAILURE");
 			_LIT(KAssertRPacketContextErrorEqualsTextB," Got apn=%S,username=%S,password=%S");
 			_LIT(KAssertRPacketContextErrorEqualsTextC," Expected apn=%S,username=%S,password=%S");
 			ERR_PRINTF1(KAssertRPacketContextErrorEqualsTextA);
 			ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextB, 
-				&iValue.iAccessPointName,
-				&iValue.iProtocolConfigOption.iAuthInfo.iUsername,
-				&iValue.iProtocolConfigOption.iAuthInfo.iPassword);
+				&apn,
+				&username,
+				&password);
+			apn.SetLength(0);
+			username.SetLength(0);
+			password.SetLength(0);
+			apn.Copy(iExpected.iAccessPointName);
+			username.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iUsername);
+			password.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iPassword);
 			ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextC,
-				&iExpected.iAccessPointName,
-				&iExpected.iProtocolConfigOption.iAuthInfo.iUsername,
-				&iExpected.iProtocolConfigOption.iAuthInfo.iPassword);	
+				&apn,
+				&username,
+				&password);	
 			}
 		return EFalse;
 		}
@@ -246,18 +256,30 @@
 		{
 		if(aLogError == ELogError)
 			{
+			TBuf<255> apn, username, password;
+			apn.Copy(iValue.iAccessPointName);
+			username.Copy(iValue.iProtocolConfigOption.iAuthInfo.iUsername);
+			password.Copy(iValue.iProtocolConfigOption.iAuthInfo.iPassword);
+
 			_LIT(KAssertRPacketContextErrorEqualsTextA,"FAILURE");
 			_LIT(KAssertRPacketContextErrorEqualsTextB," Got apn=%S,username=%S,password=%S");
 			_LIT(KAssertRPacketContextErrorEqualsTextC," Expected apn=%S,username=%S,password=%S");
 			ERR_PRINTF1(KAssertRPacketContextErrorEqualsTextA);
 			ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextB, 
-				&iValue.iAccessPointName,
-				&iValue.iProtocolConfigOption.iAuthInfo.iUsername,
-				&iValue.iProtocolConfigOption.iAuthInfo.iPassword);
+				&apn,
+				&username,
+				&password);
+			apn.SetLength(0);
+			username.SetLength(0);
+			password.SetLength(0);
+			apn.Copy(iExpected.iAccessPointName);
+			username.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iUsername);
+			password.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iPassword);
 			ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextC,
-				&iExpected.iAccessPointName,
-				&iExpected.iProtocolConfigOption.iAuthInfo.iUsername,
-				&iExpected.iProtocolConfigOption.iAuthInfo.iPassword);	
+				&apn,
+				&username,
+				&password);	
+
 			}
 		return EFalse;
 		}
@@ -286,18 +308,28 @@
 		{
 		if(aLogError == ELogError)
 			{
+			TBuf<255> apn, username, password;
+			apn.Copy(iValue.iAccessPointName);
+			username.Copy(iValue.iProtocolConfigOption.iAuthInfo.iUsername);
+			password.Copy(iValue.iProtocolConfigOption.iAuthInfo.iPassword);
 			_LIT(KAssertRPacketContextErrorEqualsTextA,"FAILURE");
 			_LIT(KAssertRPacketContextErrorEqualsTextB," Got apn=%S,username=%S,password=%S");
 			_LIT(KAssertRPacketContextErrorEqualsTextC," Expected apn=%S,username=%S,password=%S");
 			ERR_PRINTF1(KAssertRPacketContextErrorEqualsTextA);
 			ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextB, 
-				&iValue.iAccessPointName,
-				&iValue.iProtocolConfigOption.iAuthInfo.iUsername,
-				&iValue.iProtocolConfigOption.iAuthInfo.iPassword);
+				&apn,
+				&username,
+				&password);
+			apn.SetLength(0);
+			username.SetLength(0);
+			password.SetLength(0);
+			apn.Copy(iExpected.iAccessPointName);
+			username.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iUsername);
+			password.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iPassword);
 			ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextC,
-				&iExpected.iAccessPointName,
-				&iExpected.iProtocolConfigOption.iAuthInfo.iUsername,
-				&iExpected.iProtocolConfigOption.iAuthInfo.iPassword);	
+				&apn,
+				&username,
+				&password);	
 			}
 		return EFalse;
 		}
--- a/telephonyserverplugins/common_tsy/test/integration/testdata/ctsyintegration_ntn_data.ini	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/testdata/ctsyintegration_ntn_data.ini	Thu May 27 14:05:07 2010 +0300
@@ -156,5 +156,5 @@
 PhoneLock=12345
 
 [SIMParams]
-Puk1=
-Puk2=
+Puk1=11111111
+Puk2=22222222
--- a/telephonyserverplugins/ctsydispatchlayer/src/cphonebookdispatcher.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/ctsydispatchlayer/src/cphonebookdispatcher.cpp	Thu May 27 14:05:07 2010 +0300
@@ -1049,7 +1049,7 @@
  * @param aPhonebook The phonebook to reset the cache for.
  */
 	{
-	TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d"), aError, aPhonebook);
+	TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d"), aError, aPhonebook);
 
 	__ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter));
 	
@@ -1071,8 +1071,8 @@
  * @param aMaxNumberLength The maximum number length in the Fdn phonebook.
  */
 	{
-	TSYLOGENTRYEXITARGS(_L8("aError=%d,aTotalEntries=%d,aMaxTextLength=%d,aMaxNumberLength=%d"), 
-							aError,aTotalEntries,aMaxTextLength,aMaxNumberLength);
+	TSYLOGENTRYEXITARGS(_L8("aError=%d, aTotalEntries=%d, aMaxTextLength=%d, aMaxNumberLength=%d"), 
+							aError, aTotalEntries, aMaxTextLength, aMaxNumberLength);
 
 	TName phoneBookName(KETelIccFdnPhoneBook);
 	CPhoneBookDataPackage phoneBookDataPackage;
@@ -1104,7 +1104,7 @@
  * @see CPhoneBookEntry::ExternalizeToTlvEntry()
  */
 	{
-	TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d"), aError, aPhonebook);
+	TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d"), aError, aPhonebook);
 	
 	__ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter));	
 	
@@ -1115,11 +1115,11 @@
 	
 	if((aError == KErrNone) && (aPhonebook != DispatcherPhonebook::EUnknown))
 		{
-		//fill the CTSY pointer		
-		CArrayPtrSeg<CPhoneBookStoreEntry>* readEntries = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>(1);
-		iPhonebookReadPtrs[aPhonebook] = readEntries;
-		
-		TRAP(aError,FillCtsyPhoneBookStoreL(aPhonebookEntries,*(iPhonebookReadPtrs[aPhonebook])));
+		//fill the CTSY pointer
+        TRAP ( aError, 
+                CArrayPtrSeg<CPhoneBookStoreEntry>* readEntries = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>(1);
+                iPhonebookReadPtrs[aPhonebook] = readEntries;
+                FillCtsyPhoneBookStoreL(aPhonebookEntries,*(iPhonebookReadPtrs[aPhonebook])));
 		}
 	
 	CPhoneBookDataPackage phoneBookDataPackage;
@@ -1174,7 +1174,7 @@
  * @see CPhoneBookEntry::ExternalizeToTlvEntry()
  */
 	{
-	TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d"), aError, aPhonebook);
+	TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d"), aError, aPhonebook);
 	
 	__ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter));
 	
@@ -1185,10 +1185,10 @@
 	
 	if((aError == KErrNone) && (aPhonebook != DispatcherPhonebook::EUnknown)/* && (iPhonebookCachePtrs[aPhonebook])*/)
 		{
-		CArrayPtrSeg<CPhoneBookStoreEntry>* readEntries = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>(1);
-		iPhonebookCachePtrs[aPhonebook] = readEntries;
-			
-		TRAP(aError,FillCtsyPhoneBookStoreL(aPhonebookEntries, *(iPhonebookCachePtrs[aPhonebook])));
+        TRAP(aError,
+                CArrayPtrSeg<CPhoneBookStoreEntry>* readEntries = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>(1);
+                iPhonebookCachePtrs[aPhonebook] = readEntries;
+                FillCtsyPhoneBookStoreL(aPhonebookEntries, *(iPhonebookCachePtrs[aPhonebook])));
 		
 		if(aError)
 			{
@@ -1337,7 +1337,7 @@
  * @see RMobilePhoneBookStore::Write() 
  */
 	{
-	TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d,aIndex=%d,aMaxNumberLength=%d"), aError, aPhonebook, aIndex, aMaxNumberLength);
+	TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d, aIndex=%d, aMaxNumberLength=%d"), aError, aPhonebook, aIndex, aMaxNumberLength);
 
 	__ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter));
 	
--- a/telephonyserverplugins/simtsy/inc/CSimMbmsPacketContext.h	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/simtsy/inc/CSimMbmsPacketContext.h	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-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"
@@ -196,7 +196,7 @@
 	TInt GetMbmsSessionsPhase2(const TTsyReqHandle aTsyReqHandle, TClientId* aClient, TDes8* aBufSize);
 	TInt GetMbmsSessionsCancel(const TTsyReqHandle aTsyReqHandle);
 
-	TInt UpdateMbmsSessionListL(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId);
+	TInt UpdateMbmsSessionList(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId);
 	TInt UpdateMbmsSessionListCancel(const TTsyReqHandle aTsyReqHandle);
 	
 	TInt InitialiseContext(const TTsyReqHandle aTsyReqHandle, TDes8* aDataChannelV2Pckg); // This method supersedes the LoanCommPort() and RecoverCommPort() methods.
--- a/telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp	Fri May 14 17:02:16 2010 +0300
+++ b/telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp	Thu May 27 14:05:07 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-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"
@@ -477,7 +477,7 @@
 			return GetStatus(aTsyReqHandle,
 					REINTERPRET_CAST(RPacketContext::TContextStatus*, dataPtr));
 		case EPacketContextUpdateMbmsSessionList:
-			return UpdateMbmsSessionListL(aTsyReqHandle,
+			return UpdateMbmsSessionList(aTsyReqHandle,
 					REINTERPRET_CAST(TMbmsAction*, dataPtr),
 					REINTERPRET_CAST(TUint*, dataPtr2));	
 		case EPacketContextInitialiseContext:
@@ -1130,7 +1130,7 @@
 	return KErrNone;
 	}
 
-TInt CSimMbmsPacketContext::UpdateMbmsSessionListL(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId)
+TInt CSimMbmsPacketContext::UpdateMbmsSessionList(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId)
 /**
 * client's interest in updating the MBMS session's list.
 * This is achieved  by updating the list maintained internally by the context
@@ -1141,7 +1141,7 @@
 * @return KErrNone
 */
 	{
-	LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL called");
+	LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList called");
 
 	TInt error=KErrNone;
 	iUpdateSessionHandle = aTsyReqHandle;
@@ -1151,29 +1151,34 @@
 	switch(*aAction)
 		{
 		case SIMTSY_PACKET_MBMS_ADD_ENTRIES:
-			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: ADD ");
-			TRAP(error,iSessionIdList->AppendL(*aSessionId));
-			if(error == KErrNone)
-				{
-				//iSessionIdList->At(0) = ++iNumOfSessionId;
-				iSessionIdList->Delete(0);
-				iSessionIdList->InsertL(0,++iNumOfSessionId);
-				iMbmsUpdateSessionTimer->Start(RandTime(),this,ETimerIdMbmsUpdateSessionId);
-				}
-			else
+			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: ADD ");
+			
+			// TRAP can contain multiple statments
+			TRAP(error,iSessionIdList->AppendL(*aSessionId);
+                    //iSessionIdList->At(0) = ++iNumOfSessionId;
+                    iSessionIdList->Delete(0);
+                    iSessionIdList->InsertL(0,++iNumOfSessionId));
+			
+            iMbmsUpdateSessionTimer->Start(RandTime(),this,ETimerIdMbmsUpdateSessionId);
+
+			if(error != KErrNone)
 				{
 				ReqCompleted(iUpdateSessionHandle,error);
 				}
 			break;
 
 		case SIMTSY_PACKET_MBMS_REM_ENTRIES:
-			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: REMOVE ");
+			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE ");
 			iSessionIdList->Find(*aSessionId,key,position);
 			if(position != -1)
 				{
 				iSessionIdList->Delete(position);
 				//iSessionIdList->At(0) = --iNumOfSessionId;
-				iSessionIdList->InsertL(0,--iNumOfSessionId);
+				TRAP(error, iSessionIdList->InsertL(0,--iNumOfSessionId));
+	            if(error != KErrNone)
+	                {
+	                ReqCompleted(iUpdateSessionHandle,error);
+	                }
 				iMbmsUpdateSessionTimer->Start(RandTime(),this,ETimerIdMbmsUpdateSessionId);
 				}
 			else
@@ -1184,16 +1189,20 @@
 			break;
 
 		case SIMTSY_PACKET_MBMS_REM_ALL_ENTRIES:
-			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: REMOVE_ALL ");
+			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE_ALL ");
 			iNumOfSessionId=0;
 			//iSessionIdList->At(0) = iNumOfSessionId;
-			iSessionIdList->InsertL(0,iNumOfSessionId);
+			TRAP(error, iSessionIdList->InsertL(0,iNumOfSessionId));
+            if(error != KErrNone)
+                {
+                ReqCompleted(iUpdateSessionHandle,error);
+                }
 			iSessionIdList->Delete(1,iSessionIdList->Count()); // removing all session ids from the list
 			ReqCompleted(aTsyReqHandle, KErrNone);
 			break;
 
 		default:
-			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: Default ");
+			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: Default ");
 			ReqCompleted(aTsyReqHandle,KErrNotFound);
 			break;
 		}