telephonyprotocols/umtsgprsscpr/inc/MPdpFsmInterface.h
author hgs
Thu, 29 Jul 2010 12:12:57 +0100
changeset 56 ab72d5c1d770
parent 44 8b72faa1200f
permissions -rw-r--r--
201029_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     2
// All rights reserved.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     7
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    10
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    11
// Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    12
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    13
// Description:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    14
// The interface to the PDP Context Finite State Machine.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    15
// 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    16
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    17
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    18
/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    19
 @file
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    20
 @internalComponent
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    21
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    22
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    23
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    24
#ifndef MPDPFSMINTERFACE_H
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    25
#define MPDPFSMINTERFACE_H
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    26
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    27
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    28
#include <etelmm.h>
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    29
#include <etelqos.h>
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    30
#include <etelpckt.h>
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    31
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    32
#include <networking/umtsnifcontrolif.h>
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    33
#include <networking/mspudmaninterface.h>
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    34
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    35
/** Maximum number of PDP contexts supported by SPUD 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    36
 This is derived from the number of bits available for NSAPIs
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    37
 Each PDP context corresponds with a NSAPI (and each NSAPI at most maps to one primary or secondary PDP Context)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    38
 There are 4 bits allocated for NSAPIs with values 0 - 4 being reserved, leaving 11 values for PDP contexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    39
 @see GSM24.008
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    40
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    41
const TContextId KMaxPdpContexts = 11; 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    42
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    43
/** Internal pseudo-context ID meaning all contexts */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    44
const TContextId KAllContexts = -1;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    45
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    46
/** ID of the primary PDP context 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    47
Primary context is the first context created, and it can be
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    48
created only once during Spud lifetime. 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    49
There is a subltly here. There is always a default context.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    50
This just happens to be the primary until it is deleted, at
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    51
which point one of the secondries will become the default.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    52
This can happen in a network handover situation.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    53
This is documented in the design spec. */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    54
const TContextId KPrimaryContextId = 0; 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    55
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    56
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    57
namespace SpudMan
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    58
{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    59
	enum SpudManGuQoSSignal
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    60
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    61
		EContextStart = 0x80,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    62
		EContextCreate,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    63
		EContextDelete,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    64
		EContextActivate,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    65
		ERegisterEventHandler,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    66
		EContextSetEvents,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    67
		EContextQoSSet,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    68
		EContextModifyActive,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    69
		EContextTFTModify,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    70
		ENifSetDefaultQoS,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    71
		EStartupPrimaryContextCreation,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    72
		
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    73
		// sentinal
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    74
		ESpudManGuQoSSignalSentinal
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    75
	};
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    76
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    77
	enum SpudManSignal
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    78
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    79
		ESetDefaultQoS = ESpudManGuQoSSignalSentinal,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    80
		ECreatePrimaryPDPContext,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    81
		ECreateSecondaryPDPContext,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    82
		ESuspend,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    83
		EResume,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    84
		E1ryPdpActivate,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    85
		ECancelContextCreate,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    86
		
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    87
		EGetNegQoS,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    88
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    89
		// sentinal
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    90
		ESpudManSignalSentinal
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    91
	};
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    92
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    93
}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    94
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    95
class MPdpFsmInterface
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    96
/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    97
 * Definition of PDP Context Finite State Machine interface.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    98
 * UmtsGprsSCPR comes with an implementation of this interface. 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    99
 * The interface is to be used by SpudMan.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   100
 *
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   101
 * @internalComponent
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   102
 */
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   103
 {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   104
public:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   105
	virtual void OpenL(MSpudManInterface* aSpudManInterface, TName& aName) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   106
	virtual void Close() = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   107
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   108
	virtual TInt Input (TContextId aPdpId, const TInt aOperation, const TInt aParam=KErrNone) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   109
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   110
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   111
#ifdef SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   112
	// This is to set the status of IM CN signalling parameter
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   113
		
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   114
	virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR5Requested& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   115
	virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR5Negotiated& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   116
	virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR5Requested& aParam) const = 0 ;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   117
	virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR5Negotiated& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   118
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   119
#else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   120
// !SYMBIAN_NETWORKING_UMTSR5 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   121
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   122
	virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Requested& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   123
	virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Negotiated& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   124
	virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Requested& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   125
	virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Negotiated& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   126
#endif 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   127
// SYMBIAN_NETWORKING_UMTSR5 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   128
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   129
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   130
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   131
	virtual TInt Set(TContextId aPdpId, const TTFTInfo& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   132
	virtual TInt Set(TContextId aPdpId, const TTFTOperationCode& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   133
	virtual TInt Set(TContextId aPdpId, const RPacketContext::TDataChannelV2& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   134
	virtual TInt Set(TContextId aPdpId, const RPacketContext::TContextConfigGPRS& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   135
	virtual TInt Set(TContextId aPdpId, const RPacketContext::TContextStatus& aParam) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   136
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   137
	virtual TInt Get(TContextId aPdpId, TTFTInfo& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   138
	virtual TInt Get(TContextId aPdpId, TTFTOperationCode& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   139
	virtual TInt Get(TContextId aPdpId, RPacketContext::TDataChannelV2& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   140
	virtual TInt Get(TContextId aPdpId, RPacketContext::TContextConfigGPRS& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   141
	virtual TInt Get(TContextId aPdpId, RPacketContext::TContextStatus& aParam) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   142
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   143
	virtual TInt GetLastErrorCause(TContextId aPdpId, TInt& aLastErrorCause) const = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   144
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   145
	virtual void Set(const RPacketService::TStatus aParam) = 0; // applies to all contexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   146
	virtual void Get(RPacketService::TStatus& aParam) = 0; // applies to all contexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   147
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   148
	// additional accessors
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   149
	virtual const TName& TsyName(void) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   150
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   151
	virtual void SetContextTerminationErrorAndStop(TContextId aPdpId, TInt aErrorCode) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   152
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   153
#ifdef SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   154
   virtual void SetIMCNSignalling(TBool aImCnSignalling) = 0;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   155
#endif //SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   156
protected:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   157
private:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   158
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   159
};
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   160
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   161
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   162
#endif
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   163
// MPDPFSMINTERFACE_H