OVERVIEW   INDEX   DEPRECATED   HELP   CORRESPONDENCES   |
|
| 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
|
testcase TC_000_1() runs on SUPLComponent system SystemInterfaces
testcase TC_000_2() runs on SUPLComponent system SystemInterfaces
testcase TC_000_3() runs on SUPLComponent system SystemInterfaces
testcase TC_000_4() runs on SUPLComponent system SystemInterfaces
testcase TC_001() runs on SUPLComponent system SystemInterfaces
testcase TC_002() runs on SUPLComponent system SystemInterfaces
testcase TC_003() runs on SUPLComponent system SystemInterfaces
testcase TC_004_1() runs on SUPLComponent system SystemInterfaces
testcase TC_004_2() runs on SUPLComponent system SystemInterfaces
testcase TC_004_3() runs on SUPLComponent system SystemInterfaces
testcase TC_005() runs on SUPLComponent system SystemInterfaces
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"}
testcase TC_009_1() runs on SUPLComponent system SystemInterfaces
testcase TC_009_2() runs on SUPLComponent system SystemInterfaces
testcase TC_009_3() runs on SUPLComponent system SystemInterfaces
testcase TC_009_4() runs on SUPLComponent system SystemInterfaces