Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
/**
* @author ETSI / STF422_EETS
* @version $URL:$
* $Id:$
* @desc Fast service advertisement protocol (ISO 24102-5) functions
*/
module LibItsFsap_Functions {
// Libcommon
import from LibCommon_Sync all;
import from LibCommon_Time {
function f_sleepIgnoreDef
};
// LibIts
import from CALMmanagement language "ASN.1:1997" {
type
ITS_scuId//, ApplicationID,
};
import from CALMfsap language "ASN.1:1997" {
type
GCschedule, ServiceDataReg
};
import from CALMmsap language "ASN.1:1997" {
type CommandRef
};
import from LibItsFntp_TypesAndValues {
const c_portNon
};
import from LibItsMgt_Templates all;
import from LibItsMgt_Functions all;
import from LibItsFsap_TypesAndValues all;
import from LibItsFsap_Templates all;
import from LibItsFsap_Pixits all;
import from LibItsFsap_Pics all;
import from LibItsCommon_Functions {
function
f_utInitializeIut, f_utCommandRequest
};
import from LibItsFntp_Templates all;
import from LibIts_Interface {
type
ItsMgt, ItsAdapterComponent
};
group fsapConfigurationFunctions {
/**
* @desc This configuration features:
* <li>Host and Router are separated (see ISO/WD 24102-3 - Figure 1 - Implementation architecture II & III)</li>
* <li>MGT1 IISC Port (IISC/LAN) is used if specified</li>
* @param p_iicpMGM Set to true if IISC port shall be used
*/
function f_cf01Up(in boolean p_iicpMGM) runs on ItsMgt {
// Sanity check
// FIXME Check control to be done here
// if (not(PICS_ITS_S_INW)) {
// log("*** f_cf01Up: ERROR: PICS_ITS_S_INW required for executing the TC ***");
// stop;
// }
// Map
map(self:acPort, system:acPort);
map(self:utPort, system:utPort);
map(self:mgtMNSapPort, system:mgtMNSapPort);
if (p_iicpMGM == true) {
map(self:iiscPort, system:iiscPort);
}
// Connect
f_connect4SelfOrClientSync();
// Set processing on shutdown
activate(a_cf01Down(p_iicpMGM));
// Initialize the component
f_initialiseComponent("cf01Up");
// Initialze the IUT
f_initialState();
} // End of function f_cf01Up
function f_cf01Down(in boolean p_iicpMGM) runs on ItsMgt {
deactivate;
// Unmap
unmap(self:acPort, system:acPort);
unmap(self:utPort, system:utPort);
unmap(self:mgtMNSapPort, system:mgtMNSapPort);
if (p_iicpMGM == true) {
unmap(self:iiscPort, system:iiscPort); // FIXME To be removed
}
// Disconnect
f_disconnect4SelfOrClientSync();
} // end f_cf01Down
/**
* @desc Behavior function for initializing component's variables and tables
* @param p_componentName Name of the component
*/
function f_initialiseComponent(in charstring p_componentName) runs on ItsMgt {
// Initialize variables
// vc_componentName := p_componentName;
// vc_portNumber := { portLong := c_portNon };
// vc_scuId := 255;
// Set defaults
//activate(a_fsapDefault()); // FIXME Default for Fsap module
activate(a_mgtMFSapPortDefault()); // Default for MGT module / MF-SAP port
if (PICS_ITS_S_INW == true) { // FIXME Use a function
activate(a_iiscDefault()); // Default for Iisc module
}
} // end f_initialiseComponent
} // End of group fsapConfigurationFunctions
group preambles {
/**
* @desc Brings the IUT into an initial state.
*/
function f_initialState() {
f_utInitializeIut(m_fsapInitialize);
f_sleepIgnoreDef(2.0); // Wait until the IUT is in a stable situation (beaconing...)
} // End of function f_initialState
} // End of group preambles
group postambles {
/**
* @desc The default postamble.
*/
function f_poDefault() runs on ItsMgt {
//empty
}
} // End of group postambles
group adapterControl {
/**
* @desc Triggers event in the test system adaptation via NF-SAP interface.
* @param p_event The event to trigger
*/
function f_acTriggerEvent(template (value) AcFsapPrimitive p_event) runs on ItsAdapterComponent {
acPort.send(p_event);
}
} // End of group adapterControl
group testerFunctions {
} // End of group testerFunctions
// group mfSapFunctions {
//
// /**
// * @desc Generate a correctly formatted GCctxTxCmd message via IN-SAP interface
// * @param p_commandRef Unique cyclic reference number of command. Same value as in related MN-REQUEST.request
// * @verdict Unchanged
// */
// function f_mfSapGenerateGCregServer(in CommandRef p_commandRef) runs on ItsMgt {
// f_mgtGenerateGCregServer(
// p_commandRef,
// m_gCregServer(
// f_getIutApplicationID(),
// f_getIutGCschedule(),
// PX_USER_PRIORITY,
// f_getIutServiceDataReg()
// )
// );
// }
//
// } // End of group mfSapFunctions
//
group iutFunctions {
/**
* @desc Gets the Local/source ITS scuID
* @return The Local/source ITS scuID
* @see PX_LOCAL_ITS_SCU_ID
* @verdict Unchanged
* @see ISO/WD 24102-4 - Table 2 — ITS-SCU-ID value assignment
*/
function f_getIutLocalITSscuId() return ITS_scuId {
return PX_LOCAL_ITS_SCU_ID;
}
// /**
// * @desc Gets the SAM retransmit timer.
// * @return SAM retransmit timer
// */
// function f_getSAMRetransmitTimer() return float {
// var float v_samRetransmitTimer;
//
// v_samRetransmitTimer := int2float(
// (PICS_SAM_RETRANSMIT_TIMER/1000));
//
// return v_samRetransmitTimer;
// }
//
// /**
// * @desc Gets the maximum SAM jitter.
// * @return Maximum SAM jitter
// */
// function f_getSAMMaxJitter() return float {
// var float v_samRetransmitTimerMaxJitter := int2float(PICS_SAM_RETRANSMIT_TIMER)/1000.0;
//
// return v_samRetransmitTimerMaxJitter;
// }
//
// /**
// * @desc TODO
// * @return TODO
// * @verdict TODO
// */
// function f_getIutApplicationID() return ApplicationID {
// return PX_APPLICATION_ID_1;
// }
//
// /**
// * @desc TODO
// * @return TODO
// * @verdict TODO
// */
// function f_getIutGCschedule() return GCschedule {
// return { PX_GSCHED_1_0, PX_GSCHED_1_1 };
// }
//
// /**
// * @desc TODO
// * @return TODO
// * @verdict TODO
// */
// function f_getIutServiceDataReg() return ServiceDataReg {
// return PX_SERVICE_DATA_REG_1;
// }
//
} // End of group iutFunctions
group fsapAltsteps {
/**
* @desc The base default.
*/
altstep a_fsapDefault() runs on ItsMgt {
[] tc_wait.timeout {
log("*** a_fsapDefault: ERROR: Timeout while awaiting reaction of the IUT prior to Upper Tester action ***");
f_selfOrClientSyncAndVerdict("error", e_timeout);
}
[] tc_ac.timeout {
log("*** a_fsapDefault: ERROR: Timeout while awaiting the reception of a message ***");
f_selfOrClientSyncAndVerdict("error", e_timeout);
}
[] any timer.timeout {
log("*** a_fsapDefault: INCONC: An unknown timer has expired in default ***");
f_selfOrClientSyncAndVerdict("error", e_timeout);
}
[] a_shutdown() {
f_poDefault();
log("*** a_fsapDefault: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
if(self == mtc) {
f_cf01Down(PICS_IICP_MGM);
}
stop;
}
} // End of altstep a_fsapDefault()
/**
* @desc Default handling cf01 de-initialisation.
* @param TODO
*/
altstep a_cf01Down(in boolean p_iicpMGM) runs on ItsMgt {
[] a_shutdown() {
f_poDefault();
f_cf01Down(p_iicpMGM);
log("*** a_cf01Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
stop;
}
} // End of altstep a_cf01Down()
} // End of group fsapAltsteps
} // End of module LibItsFsap_Functions