OVERVIEW   INDEX   DEPRECATED   HELP   CORRESPONDENCES  


Modulepars   Data Types   Component Types   Port Types   Constants   Templates   Signatures   Functions   Altsteps   Test cases  

Group TC_00x

Declared in module SUPL_V2_SLP_INITIATED_Tests
Subgroups: TC_000, TC_004, TC_009

Test cases Summary
TC_000_1
TC_000_2
TC_000_3
TC_000_4 To test SET correctly supports SUPL INIT delivery using OMA Push and, if supported, MT SMS and, or SIP Push Test 4: ics_UDP
TC_001
TC_002
TC_003
TC_004_1
TC_004_2
TC_004_3
TC_005
TC_006
TC_009_1 To test SET correctly supports Basic SUPL INIT protection Case 1: Correct support
TC_009_2 To test SET correctly supports Basic SUPL INIT protection Case 2: Correct discard procedure � incorrect Protection Level
TC_009_3 To test SET correctly supports Basic SUPL INIT protection Case 3: Correct discard procedure � incorrect Key Identity
TC_009_4 To test SET correctly supports Basic SUPL INIT protection Case 4: Correct discard procedure � incorrect Basic Replay Counter

Details

TC_000_1
testcase TC_000_1() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_000

Runs On: SUPLComponent

System: SystemInterfaces

TC_000_2
testcase TC_000_2() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_000

Runs On: SUPLComponent

System: SystemInterfaces

TC_000_3
testcase TC_000_3() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_000

Runs On: SUPLComponent

System: SystemInterfaces

TC_000_4
testcase TC_000_4() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_000

To test SET correctly supports SUPL INIT delivery using OMA Push and, if supported, MT SMS and, or SIP Push Test 4: ics_UDP

Runs On: SUPLComponent

System: SystemInterfaces

TC_001
testcase TC_001() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x

Runs On: SUPLComponent

System: SystemInterfaces

TC_002
testcase TC_002() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x

Runs On: SUPLComponent

System: SystemInterfaces

TC_003
testcase TC_003() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x

Runs On: SUPLComponent

System: SystemInterfaces

TC_004_1
testcase TC_004_1() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_004

Runs On: SUPLComponent

System: SystemInterfaces

TC_004_2
testcase TC_004_2() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_004

Runs On: SUPLComponent

System: SystemInterfaces

TC_004_3
testcase TC_004_3() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_004

Runs On: SUPLComponent

System: SystemInterfaces

TC_005
testcase TC_005() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x

Runs On: SUPLComponent

System: SystemInterfaces

TC_006
testcase TC_006() runs on SUPLComponent system SystemInterfaces {
			timer WaitForConnectionRelease := 15.0;
			timer WaitForConnectionRelease1 := 15.0;
			timer WaitForConnectionRelease2 := 15.0;
			var ULP_PDU msgRcv;
			var boolean optionalSuplEnd := true;
			
            var RRLP_CommonTypes.RRLP_PDU rrlp;
			var SessionID sessionId := generateCompletedSessionId(t_s_emptySessionId, ixit_H_SLP_IP_TYPE);
			var octetstring ver;
			
			log("SUPL INIT from the Conformance Test Tool to the SET without SLP Session ID in the Session ID field");
			
            f_init(staticdefaultGPS);
            f_start_SCC();
			
			// sends SUPL INIT via SMS
			ver := f_sendSms(s_ulpPdu(t_s_emptySessionId, s_suplInit(eCID, proxy, omit)));
			alt {
				[] ulpPort.receive(t_r_ulpSuplEnd({*,omit} ifpresent, invalidSessionId, ?)) -> value msgRcv {
					log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
					setverdict(pass);
					WaitForConnectionRelease.start;
					alt {
						[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
							optionalSuplEnd := false;
							repeat;
						}
						[] ipiPort.receive(tcpInfoReleaseConnection) {
							log("Verdict Info: Secure IP connection released by SET");
							setverdict(pass);
						}
						[] ulpPort.receive(r_ulpMessage) {
							log("Verdict Info: Unexpected message over secure IP connection received from SET");
							setverdict(fail);
						}
						[] WaitForConnectionRelease.timeout{
							// The server terminates the Secure IP connection 
							ipcPort.send(stopAllConnections);
						}
					}
				}
				[] ulpPort.receive(t_r_ulpSuplEnd(*,*,*)) {
					log("Verdict Info: SUPL END with unexpected parameters received from SET");
					setverdict(fail);
				}
				[] ulpPort.receive(r_ulpPdu(r_suplPosInit)) -> value msgRcv { // Proxy Mode
					log("Verdict Info: Unexpected SUPL POS INIT received from SET");
					setverdict(fail);
					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
				}
				[] ipiPort.receive(tcpInfoReleaseConnection) {
					timer WaitForSuplEnd := 5.0;
					WaitForSuplEnd.start;
					alt{
						[] ulpPort.receive(t_r_ulpSuplEnd({*,omit} ifpresent, invalidSessionId, ?)) -> value msgRcv {
							log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
							setverdict(pass);
							WaitForConnectionRelease.start;
							alt {
								[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
									log("Verdict Info: Another SUPL End received.");
									setverdict(pass);
									optionalSuplEnd := false;
									repeat;
								}
								[] ipiPort.receive(tcpInfoReleaseConnection) {
									log("Verdict Info: Secure IP connection released by SET");
									setverdict(pass);
								}
								[] ulpPort.receive(r_ulpMessage) {
									log("Verdict Info: Unexpected message over secure IP connection received from SET");
									setverdict(fail);
								}
								[] WaitForConnectionRelease.timeout{
									// The server terminates the Secure IP connection 
									ipcPort.send(stopAllConnections);									
								}
							}
						}
						[] WaitForSuplEnd.timeout{
							log("Verdict Info: Unexpected release of secure IP connection from SET");
							setverdict(fail);											
						}
					}
				}
				[] ulpPort.receive(r_ulpPdu(r_suplAuthReq)) -> value msgRcv { // Non-Proxy Mode
					log("Verdict Info: Non-Proxy Mode requested by the SET. This is not allowed for GSM/WCDMA according to the Enabler Test Specification (ETS) 4.1.1");
					setverdict(inconc);
					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
				}				
			} //end alt
		
			doPause();	

			log("SUPL POS from the Conformance Test Tool to the SET with an invalid value of Session ID in the SLP Session ID field");
			optionalSuplEnd := true;
			
			
            select (ixit_RRLP_Version) {
                case (e_RRLP_V5) {
                    rrlp.rrlp_pdu_V5 := tokyoReferenceTimeOnlyV5(currentGPS_TOW23b(0));
                }
                case (e_RRLP_V10) {
                    rrlp.rrlp_pdu_V10 := tokyoReferenceTimeOnlyV10(currentGPS_TOW23b(0));
                }
            }
			
			
			// sends SUPL INIT via SMS
			ver := f_sendSms(s_ulpPdu(sessionId, s_suplInit(agpsSETassisted,proxy, omit)));
			alt {
				[] ulpPort.receive(t_r_ulpSuplPosInit(t_r_sessionId(*, sessionId.slpSessionID), ?, oct2bit(ver), *)) -> value msgRcv { // Proxy Mode
					// sends SUPL POS with an invalid value of Session ID
					var SessionID incorrectSid := generateIncorrectSessionId(msgRcv.sessionID, incorrectSLPSessionId);
                    select(ixit_PositioningProtocol) {
                        case(RRLP) {
                            ulpPort.send(s_ulpPdu(incorrectSid,s_suplPosRrlp(o_rrlp2oct(rrlp))));
                        }
                        case(LPP) {                            
                            ulpPort.send(m_ulpPdu(m_Version, incorrectSid, m_suplPosLPP(f_encodeLppPayload(f_ConstructLPPMessageForIncorretSessionID()))));
                        }                        
                        case else {
                            log("Verdict Info: Unsupported Position Protocol");
                            setverdict(inconc);
                            stop;
                        }
                    } 					
					alt {
						[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSid, invalidSessionId, *)) {
							log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
							setverdict(pass);
							WaitForConnectionRelease1.start;
							alt {
								[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
									optionalSuplEnd := false;
									repeat;
								}
								[] ipiPort.receive(tcpInfoReleaseConnection) {
									log("Verdict Info: Secure IP connection released by SET");
									setverdict(pass);
								}
								[] ulpPort.receive(r_ulpMessage) {
									log("Verdict Info: Unexpected message over secure IP connection received from SET");
									setverdict(fail);
								}
								[] WaitForConnectionRelease1.timeout{
									// The server terminates the Secure IP connection 
									ipcPort.send(stopAllConnections);									
								}
							}
						}
						[] ulpPort.receive(t_r_ulpSuplEnd(*, *, *)) {
							log("Verdict Info: SUPL END with unexpected parameters received from SET");
							setverdict(fail);
						}
					
						[] ipiPort.receive(tcpInfoReleaseConnection) {
							timer WaitForSuplEnd := 5.0;
							WaitForSuplEnd.start;
							alt{
								[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSid, invalidSessionId, *)) {
									log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
									setverdict(pass);
									WaitForConnectionRelease1.start;
									alt {
										[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
											optionalSuplEnd := false;
											repeat;
										}
										[] ipiPort.receive(tcpInfoReleaseConnection) {
											log("Verdict Info: Secure IP connection released by SET");
											setverdict(pass);
										}
										[] ulpPort.receive(r_ulpMessage) {
											log("Verdict Info: Unexpected message over secure IP connection received from SET");
											setverdict(fail);
										}
										[] WaitForConnectionRelease1.timeout{
											// The server terminates the Secure IP connection 
											ipcPort.send(stopAllConnections);									
										}
									}
								}
								[] WaitForSuplEnd.timeout{
									log("Verdict Info: Unexpected release of secure IP connection from SET");
									setverdict(fail);											
								}
							}
						}
					}//end inner inner alt
				}
				[] ulpPort.receive(r_ulpPdu(r_suplEnd)) {
					log("Verdict Info: Unexpected SUPL END received from SET");
					setverdict(fail);
				}
				[] ipiPort.receive(tcpInfoReleaseConnection) {
					log("Verdict Info: Unexpected release of secure IP connection from SET");
					setverdict(fail);
				}
				[] ulpPort.receive(r_ulpPdu(r_suplAuthReq)) -> value msgRcv { // Non-Proxy Mode
					setverdict(inconc);
					log("Verdict Info: Non-Proxy Mode requested by the SET. This is not allowed for GSM/WCDMA according to the Enabler Test Specification (ETS) 4.1.1");
					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
				}
			} //end alt
		
			doPause();

			log("SUPL POS from the Conformance Test Tool to the SET with an invalid value of SLP ID in the SLP Session ID field");
			optionalSuplEnd := true;
			// sends SUPL INIT via SMS
			ver := f_sendSms(s_ulpPdu(sessionId, s_suplInit(agpsSETassisted,proxy, omit)));
			alt {
				[] ulpPort.receive(t_r_ulpSuplPosInit(t_r_sessionId(*, sessionId.slpSessionID), ?, oct2bit(ver), *)) -> value msgRcv { // Proxy Mode
					// sends SUPL POS with an invalid value of Session ID 
					var SessionID incorrectSLPid := generateIncorrectSessionId(msgRcv.sessionID, incorrectSLPSLPId);
                    select(ixit_PositioningProtocol) {
                        case(RRLP) {
                            ulpPort.send(s_ulpPdu(incorrectSLPid,s_suplPosRrlp(o_rrlp2oct(rrlp))));
                        }
                        case(LPP) {                            
                            ulpPort.send(m_ulpPdu(m_Version, incorrectSLPid, m_suplPosLPP(f_encodeLppPayload(f_ConstructLPPMessageForIncorretSessionID()))));
                        }  
                        case else {
                            log("Verdict Info: Unsupported Position Protocol");
                            setverdict(inconc);
                            stop;
                        }
                    }
					alt {
						[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSLPid, invalidSessionId, *)) {
							log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
							setverdict(pass);
							WaitForConnectionRelease2.start;
							alt {
								[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
									optionalSuplEnd := false;
									repeat;
								}
								[] ipiPort.receive(tcpInfoReleaseConnection) {
									log("Verdict Info: Secure IP connection released by SET");
									setverdict(pass);
								}
								[] ulpPort.receive(r_ulpMessage) {
									log("Verdict Info: Unexpected message over secure IP connection received from SET");
									setverdict(fail);
								}
								[] WaitForConnectionRelease2.timeout{
									// The server terminates the Secure IP connection 
									ipcPort.send(stopAllConnections);									
								}
							}
						}
						[] ulpPort.receive(t_r_ulpSuplEnd(*, *, *)) {
							log("Verdict Info: SUPL END with unexpected parameters received from SET");
							setverdict(fail);
						}
						[] ipiPort.receive(tcpInfoReleaseConnection) {
							timer WaitForSuplEnd := 5.0;
							WaitForSuplEnd.start;
							alt{
								[] ulpPort.receive(t_r_ulpSuplEnd(incorrectSLPid, invalidSessionId, *)) {
									log("Verdict Info: SUPL END with expected Status Code 'invalidSessionId' received from SET");
									setverdict(pass);
									WaitForConnectionRelease2.start;
									alt {
										[optionalSuplEnd] ulpPort.receive(t_r_ulpSuplEnd(*, ?, *)) {
											optionalSuplEnd := false;
											repeat;
										}
										[] ipiPort.receive(tcpInfoReleaseConnection) {
											log("Verdict Info: Secure IP connection released by SET");
											setverdict(pass);
										}
										[] ulpPort.receive(r_ulpMessage) {
											log("Verdict Info: Unexpected message over secure IP connection received from SET");
											setverdict(fail);
										}
										[] WaitForConnectionRelease2.timeout{
											// The server terminates the Secure IP connection 
											ipcPort.send(stopAllConnections);									
										}
									}
								}
								[] WaitForSuplEnd.timeout{
									log("Verdict Info: Unexpected release of secure IP connection from SET");
									setverdict(fail);											
								}
							}
						}
					}//end inner inner alt
				}
				[] ulpPort.receive(r_ulpPdu(r_suplEnd)) {
					log("Verdict Info: Unexpected SUPL END received from SET");
					setverdict(fail);
				}
				[] ipiPort.receive(tcpInfoReleaseConnection) {
					log("Verdict Info: Unexpected release of secure IP connection from SET");
					setverdict(fail);
				}
				[] ulpPort.receive(r_ulpPdu(r_suplAuthReq)) -> value msgRcv { // Non-Proxy Mode
					setverdict(inconc);
					log("Verdict Info: Non-Proxy Mode requested by the SET. This is not allowed for GSM/WCDMA according to the Enabler Test Specification (ETS) 4.1.1");
					sendSuplEnd(s_suplEndWithCode(unexpectedMessage),msgRcv.sessionID,true);
				}
			} //end alt
		
            f_Postamble();
		
		} // end testcase 006
		with {extension "Description: SUPL-2.0-con-006 - Missing or invalid SLP Session ID"}

Declared in group TC_00x

Runs On: SUPLComponent

System: SystemInterfaces

TC_009_1
testcase TC_009_1() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_009

To test SET correctly supports Basic SUPL INIT protection Case 1: Correct support

Runs On: SUPLComponent

System: SystemInterfaces

TC_009_2
testcase TC_009_2() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_009

To test SET correctly supports Basic SUPL INIT protection Case 2: Correct discard procedure � incorrect Protection Level

Runs On: SUPLComponent

System: SystemInterfaces

TC_009_3
testcase TC_009_3() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_009

To test SET correctly supports Basic SUPL INIT protection Case 3: Correct discard procedure � incorrect Key Identity

Runs On: SUPLComponent

System: SystemInterfaces

TC_009_4
testcase TC_009_4() runs on SUPLComponent system SystemInterfaces 

Declared in group TC_00x.TC_009

To test SET correctly supports Basic SUPL INIT protection Case 4: Correct discard procedure � incorrect Basic Replay Counter

Runs On: SUPLComponent

System: SystemInterfaces