Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ITS - Intelligent Transport Systems
ITS
Commits
de7d529c
Commit
de7d529c
authored
Nov 30, 2020
by
Yann Garcia
Browse files
Validate AtsRtcmem against TTwb 1.1.30
parent
c39c9e2f
Changes
15
Hide whitespace changes
Inline
Side-by-side
ccsrc/Ports/LibIts_ports/IVIM_ports/IvimPort.cc
View file @
de7d529c
...
...
@@ -97,6 +97,17 @@ namespace LibItsIvim__TestSystem {
loggers
::
get_instance
().
set_stop_time
(
_time_key
,
duration
);
}
void
IvimPort
::
outgoing_send
(
const
IvimInd
&
send_par
)
{
loggers
::
get_instance
().
log_msg
(
">>> IvimPort::outgoing_send: payload="
,
send_par
);
float
duration
;
loggers
::
get_instance
().
set_start_time
(
_time_key
);
params
params
;
static_cast
<
ivim_layer
*>
(
_layer
)
->
sendMsg
(
send_par
,
params
);
loggers
::
get_instance
().
set_stop_time
(
_time_key
,
duration
);
}
void
IvimPort
::
receiveMsg
(
const
LibItsIvim__TestSystem
::
IvimInd
&
p_ind
,
const
params
&
p_params
)
{
loggers
::
get_instance
().
log_msg
(
">>> IvimPort::receive_msg: "
,
p_ind
);
...
...
ccsrc/Ports/LibIts_ports/IVIM_ports/IvimPort.hh
View file @
de7d529c
...
...
@@ -43,6 +43,7 @@ protected:
void
user_stop
();
void
outgoing_send
(
const
IvimReq
&
send_par
);
void
outgoing_send
(
const
IvimInd
&
send_par
);
};
}
/* end of namespace */
...
...
ccsrc/Ports/LibIts_ports/RSUsSimulator_ports/ConfigRsuSimulatorLayer.cc
View file @
de7d529c
...
...
@@ -1152,7 +1152,6 @@ int ConfigRsuSimulatorLayer::process_ut_rtcmem_trigger(const OCTETSTRING& data,
trigger
.
rev
()
=
DSRC
::
RTCM__Revision
(
static_cast
<
int
>
(
*
p
++
));
// Decode msgs
DSRC
::
RTCMmessageList
msgs
;
p
+=
1
;
// Skip COER flag
unsigned
char
num_items
=
*
p
++
;
// Number of items
msgs
.
set_size
(
num_items
);
for
(
unsigned
char
i
=
0
;
i
<
num_items
;
i
++
)
{
...
...
@@ -1161,19 +1160,21 @@ int ConfigRsuSimulatorLayer::process_ut_rtcmem_trigger(const OCTETSTRING& data,
p
+=
len
;
}
// End of 'for' statement
trigger
.
msgs
()
=
msgs
;
//
ValidityDuration
//
timeStamp
if
((
flag
&
0x80
)
==
0x80
)
{
// TODO trigger.timeStamp() = OPTIONAL<INTEGER>(oct2int(OCTETSTRING(3, p)));
}
else
{
trigger
.
timeStamp
().
set_to_omit
();
}
// TODO p += 3;
// anchorPoint
if
((
flag
&
0x40
)
==
0x40
)
{
// TODO trigger.anchorPoint() = OPTIONAL<INTEGER>(oct2int(OCTETSTRING(3, p)));
}
else
{
trigger
.
anchorPoint
().
set_to_omit
();
}
// TODO p += 3;
// rtcmHeader
if
((
flag
&
0x20
)
==
0x20
)
{
// TODO trigger.rtcmHeader() = OPTIONAL<INTEGER>(oct2int(OCTETSTRING(3, p)));
}
else
{
...
...
ccsrc/Protocols/IVIM/ivim_layer.cc
View file @
de7d529c
...
...
@@ -30,6 +30,18 @@ void ivim_layer::sendMsg(const LibItsIvim__TestSystem::IvimReq& p, params& param
send_data
(
data
,
_params
);
}
void
ivim_layer
::
sendMsg
(
const
LibItsIvim__TestSystem
::
IvimInd
&
p
,
params
&
params
){
loggers
::
get_instance
().
log_msg
(
">>> ivim_layer::sendMsg: "
,
p
);
// Encode IVIM PDU
OCTETSTRING
data
;
if
(
_codec
.
encode
(
p
.
msgIn
(),
data
)
==
-
1
)
{
loggers
::
get_instance
().
warning
(
"ivim_layer::sendMsg: Encoding failure"
);
return
;
}
send_data
(
data
,
_params
);
}
void
ivim_layer
::
send_data
(
OCTETSTRING
&
data
,
params
&
params
)
{
loggers
::
get_instance
().
log_msg
(
">>> ivim_layer::send_data: "
,
data
);
//params.log();
...
...
ccsrc/Protocols/IVIM/ivim_layer.hh
View file @
de7d529c
...
...
@@ -28,7 +28,8 @@ public:
virtual
~
ivim_layer
()
{};
void
sendMsg
(
const
LibItsIvim__TestSystem
::
IvimReq
&
,
params
&
params
);
void
sendMsg
(
const
LibItsIvim__TestSystem
::
IvimInd
&
,
params
&
params
);
virtual
void
send_data
(
OCTETSTRING
&
data
,
params
&
params
);
virtual
void
receive_data
(
OCTETSTRING
&
data
,
params
&
info
);
...
...
ccsrc/Protocols/UpperTester/UpperTesterRtcmemCodec.cc
View file @
de7d529c
...
...
@@ -80,8 +80,18 @@ int UpperTesterRtcmemCodec::encode_ (const Base_Type& type, const TTCN_Typedescr
}
else
{
std
::
string
s
(
field_descriptor
.
name
);
loggers
::
get_instance
().
log
(
"UpperTesterRtcmemCodec::encode_: field to process %s"
,
s
.
c_str
());
loggers
::
get_instance
().
log
(
"UpperTesterRtcmemCodec::encode_ (else): processing type %s/%s"
,
type
.
get_descriptor
()
->
name
,
field_descriptor
.
name
);
type
.
encode
(
field_descriptor
,
encoding_buffer
,
TTCN_EncDec
::
CT_OER
);
if
(
s
.
compare
(
"@LibItsRtcmem_TypesAndValues.UtRtcmemTrigger.msgs"
)
==
0
)
{
const
PreGenRecordOf
::
PREGEN__RECORD__OF__OCTETSTRING
&
rov
=
dynamic_cast
<
const
PreGenRecordOf
::
PREGEN__RECORD__OF__OCTETSTRING
&>
(
type
);
encoding_buffer
.
put_c
(
static_cast
<
unsigned
char
>
(
rov
.
lengthof
()));
for
(
int
i
=
0
;
i
<
rov
.
lengthof
();
i
++
)
{
const
OCTETSTRING
&
os
=
rov
[
i
];
encoding_buffer
.
put_c
(
static_cast
<
unsigned
char
>
(
os
.
lengthof
()));
encoding_buffer
.
put_os
(
os
);
}
// End of 'for' statement
}
else
{
loggers
::
get_instance
().
log
(
"UpperTesterRtcmemCodec::encode_ (else): processing type %s/%s"
,
type
.
get_descriptor
()
->
name
,
field_descriptor
.
name
);
type
.
encode
(
field_descriptor
,
encoding_buffer
,
TTCN_EncDec
::
CT_OER
);
// HashId8
}
}
loggers
::
get_instance
().
log_to_hexa
(
"<<<UpperTesterRtcmemCodec::encode_: encoding_buffer="
,
encoding_buffer
);
...
...
etc/AtsIVIM/AtsIVIM.cfg
View file @
de7d529c
...
...
@@ -24,7 +24,7 @@ LogEventTypes:= Yes
[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.
#
CA
M Layer
#
IVI
M Layer
# next_header : btpA|btpB (overwrite BTP.type)
# header_type : tsb|gbc|uni
# header_sub_type : sh (single hop)
...
...
@@ -90,7 +90,7 @@ LogEventTypes:= Yes
#Cygwin
#system.ivimPort.params := "IVIM(next_header=btpB,header_type=uni)/BTP(dst_port=2006)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=/home/yanng/tmp/asn1c_cert)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)"
# Linux
system.ivimPort.params := "IVIM(next_header=btpB,header_type=
uni
)/BTP(dst_port=2006)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=dc536045af7e)/PCAP(mac_src=dc536045af7e,nic=wlp2s0,filter=and ether proto 0x8947)"
system.ivimPort.params := "IVIM(next_header=btpB,header_type=
gbc
)/BTP(dst_port=2006)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=dc536045af7e)/PCAP(mac_src=dc536045af7e,nic=wlp2s0,filter=and ether proto 0x8947)"
# IVIM UpperTester port based on UDP (ETSI Wlan)
system.utPort.params := "UT_IVIM/UDP(dst_ip=127.0.0.1,dst_port=12345,src_port=12346)"
...
...
etc/AtsRSUsSimulator/AtsRSUSimulator.cfg
View file @
de7d529c
...
...
@@ -55,15 +55,15 @@ ItsRSUsSimulator_Pics.PICS_DENM_FREQUENCY := 1.0
ItsRSUsSimulator_Pics.PICS_SEND_BEACON_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_CAM_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_DENM_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_IVIM_INDICATION :=
tru
e
ItsRSUsSimulator_Pics.PICS_SEND_IVIM_INDICATION :=
fals
e
ItsRSUsSimulator_Pics.PICS_SEND_MAPEM_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_SPATEM_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_SREM_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_SSEM_INDICATION := false
ItsRSUsSimulator_Pics.PICS_SEND_RTCMEM_INDICATION :=
fals
e
ItsRSUsSimulator_Pics.PICS_SEND_RTCMEM_INDICATION :=
tru
e
# Enable Security support
LibItsGeoNetworking_Pics.PICS_GN_SECURITY :=
tru
e
LibItsGeoNetworking_Pics.PICS_GN_SECURITY :=
fals
e
# Root path to access certificate stored in files, identified by certficate ID
LibItsSecurity_Pixits.PX_CERTIFICATE_POOL_PATH := "/home/yann/tmp"
# Configuration sub-directory to access certificate stored in files
...
...
@@ -182,7 +182,7 @@ LogEventTypes:= Yes
#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,its_aid=36,secured_mode=0,certificate=CERT_IUT_A_AT,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=f8cab8083918)/PCAP(mac_src=f8cab8083918,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)"
# Linux
#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,its_aid=36,secured_mode=1,certificate=CERT_IUT_A_AT,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=f8cab8083918)/PCAP(mac_src=f8cab8083918,nic=eno1,filter=and ether proto 0x8947)"
system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,its_aid=1
39
,secured_mode=
1
,certificate=CERT_IUT_A_AT,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=dc536045af7
f
)/PCAP(mac_src=dc536045af7
f
,nic=wlp2s0,filter=and ether proto 0x8947)"
system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,its_aid=1
28
,secured_mode=
0
,certificate=CERT_IUT_A_AT,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=dc536045af7
e
)/PCAP(mac_src=dc536045af7
e
,nic=wlp2s0,filter=and ether proto 0x8947)"
# Commsignia
#system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050,longitude=10298730,its_aid=37,secured_mode=0,encrypted_mode=0,certificate=CERT_IUT_A_AT,peer_certificate=CERT_TS_A_AT,sec_db_path=/home/yann/tmp/asn1c_cert)/COMMSIGNIA(xport_mode=LTE-V2X,mac_src=080027F44E7D,interface_id=2,target_host=192.168.0.54)/UDP(dst_ip=192.168.0.54,src_port=9091,dst_port=7946)"
# Qualcom
...
...
@@ -195,10 +195,11 @@ system.geoNetworkingPort.params := "GN(ll_address=4C5E0C14D2EB,latitude=43551050
# Config port based on UDP
#system.cfPort.params := "CF(ut=cam)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=denm)/UDP(src_port=12345,reuse_incoming_source_adddress=1)"
system.cfPort.params := "CF(ut=ivim)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#
system.cfPort.params := "CF(ut=ivim)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=mapemspatem)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=sremssem)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=rtcmem)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
system.cfPort.params := "CF(ut=rtcmem)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=rtcmem)/UDP(src_port=12345,dst_port=12345,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=gn)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
#system.cfPort.params := "CF(ut=pki)/UDP(src_port=12345,dst_port=12346,reuse_incoming_source_adddress=1)"
...
...
etc/AtsRtcmem/AtsRtcmem.cfg
View file @
de7d529c
...
...
@@ -4,7 +4,7 @@
LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309
LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB
LibItsCam_Pics.PICS_IS_IUT_SECURED :=
tru
e
LibItsCam_Pics.PICS_IS_IUT_SECURED :=
fals
e
[LOGGING]
# In this section you can specify the name of the log file and the classes of events
...
...
@@ -22,9 +22,9 @@ LogEventTypes:= Yes
[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.
#
CA
M Layer
#
RTCME
M Layer
# next_header : btpA|btpB (overwrite BTP.type)
# header_type : tsb|gbc
# header_type : tsb|gbc
|uni
# header_sub_type : sh (single hop)
# RTCMEM Layer
# next_header : btpA|btpB (overwrite BTP.type)
...
...
@@ -89,14 +89,14 @@ LogEventTypes:= Yes
#Cygwin
#system.rtcmemPort.params := "Rtcmem(next_header=btpB)/BTP(dst_port=2013)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=/home/yanng/tmp/asn1c_cert)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)"
# Linux
system.rtcmemPort.params := "Rtcmem(next_header=btpB)/BTP(dst_port=2013)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=
1
,sec_db_path=/home/yanng/tmp/asn1c_cert)/ETH(mac_src=dc536045af7
e
)/PCAP(mac_src=dc536045af7
e
,nic=wlp2s0,filter=and ether proto 0x8947)"
system.rtcmemPort.params := "Rtcmem(next_header=btpB
,header_type=gbc
)/BTP(dst_port=2013)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=
0
,sec_db_path=/home/yanng/tmp/asn1c_cert)/ETH(mac_src=dc536045af7
f
)/PCAP(mac_src=dc536045af7
f
,nic=wlp2s0,filter=and ether proto 0x8947)"
# SremSsem UpperTester port based on UDP
system.utPort.params := "UT_RTCMEM/UDP(dst_ip=1
27.0.0.1
,dst_port=12345,src_port=12346)"
system.utPort.params := "UT_RTCMEM/UDP(dst_ip=1
92.168.1.25
,dst_port=12345,src_port=12346)"
[EXECUTE]
# Check that protocolVersion is set to 1 and messageID is set to 13
#
ItsRtcmem_TestCases.TC_IS_GPC_GEN_MSGF_BV_01
ItsRtcmem_TestCases.TC_IS_GPC_GEN_MSGF_BV_01
# Check that GPC Service generates a new RTCMEM on reception of a valid AppRTCMEM_Start request
#ItsRtcmem_TestCases.TC_IS_GPC_GEN_EVGN_BV_01
# Check that GPC Service terminates on reception of a valid AppRTCMEM_Stop request
...
...
@@ -105,7 +105,7 @@ system.utPort.params := "UT_RTCMEM/UDP(dst_ip=127.0.0.1,dst_port=12345,src_port=
# Check that the destination port for RTCMEM is set to 2013
#ItsRtcmem_TestCases.TC_IS_GPC_GEN_COM_BV_02
# Check that GPC service encapsulates RTCMEM in a GBC with the HeaderType field set to the value of 4
ItsRtcmem_TestCases.TC_IS_GPC_GEN_COM_BV_03
#
ItsRtcmem_TestCases.TC_IS_GPC_GEN_COM_BV_03
# Check that GPC service uses certificate containing valid ITS AID to sign RTCMEM messages
#ItsRtcmem_TestCases.TC_IS_GPC_GEN_SEC_BV_01
# Check that GPC service uses generic security profile to sign RTCMEM message and does not include additional security header elements
...
...
scripts/rsusimulator_generate_makefile.bash
View file @
de7d529c
...
...
@@ -216,7 +216,7 @@ MV_CMD='s/all: $(TARGET) ;/all: $(TARGET) ; @if [ -f ..\/objs\/$(EXECUTABLE) ];
sed
--in-place
"
${
MV_CMD
}
"
./Makefile
# Add run command
ADD_HOST
=
'/PLATFORM = /aHOST=127.0.0.1'
ADD_PORT
=
'/PLATFORM = /aPORT=1200
0
'
ADD_PORT
=
'/PLATFORM = /aPORT=1200
1
'
sed
--in-place
"
${
ADD_PORT
}
"
./Makefile
sed
--in-place
"
${
ADD_HOST
}
"
./Makefile
ADD_RUN_LINE_1
=
'$arun: all'
...
...
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
View file @
de7d529c
...
...
@@ -939,10 +939,10 @@ module ItsRSUsSimulator_Functions {
));
}
else
if
(
p_its_aid
==
139
)
{
// IVIM
v_geoNetworkingPdu
:=
valueof
(
m_geoNwPdu
(
// FIXME Use PIXIT parameter to get a fully configurable template
m_geoNw
Uni
castPacket_
with_
payload
(
m_geoNw
Broad
castPacket_payload
(
vc_longPosVectorRsu
,
f_longPosVector2ShortPosVector
(
vc_longPosVectorRsu
),
f_incLocalSeqNumber
(),
f_geoArea2GeoBroadcastArea
(
vc_geoArea
),
-
,
-
,
valueof
(
p_payload
)
),
...
...
@@ -967,7 +967,7 @@ module ItsRSUsSimulator_Functions {
},
c_hopLimit1
));
}
else
if
(
p_its_aid
==
14
1
)
{
// RTCMEM
}
else
if
(
p_its_aid
==
14
0
)
{
// RTCMEM
v_geoNetworkingPdu
:=
valueof
(
m_geoNwPdu
(
// FIXME Use PIXIT parameter to get a fully configurable template
m_geoNwBroadcastPacket_payload
(
vc_longPosVectorRsu
,
...
...
@@ -1178,6 +1178,27 @@ module ItsRSUsSimulator_Functions {
}
// else, ignore message
}
// End of function f_processSsem
function
f_processRtcmem
(
in
GeoNetworkingPdu
p_geoNetworkingPdu
)
runs
on
ItsRSUsSimulator
{
var
bitstring
v_enc_msg
;
log
(
"f_processRtcmem: RTCMEM="
,
p_geoNetworkingPdu
.
gnPacket
.
packet
.
payload
);
if
(
PICS_SEND_RTCMEM_INDICATION
)
{
var
UtRtcmemEventInd
v_utRtcmemEventInd
;
var
integer
v_result
;
// Extract RTCMEM message
var
octetstring
v_payload
:=
p_geoNetworkingPdu
.
gnPacket
.
packet
.
payload
;
// Remove BTP layer
v_payload
:=
substr
(
v_payload
,
4
,
lengthof
(
v_payload
)
-
4
);
// Send UtRtcmemEventInd
log
(
"f_processRtcmem: v_payload="
,
v_payload
);
v_enc_msg
:=
oct2bit
(
v_payload
);
if
(
decvalue
(
v_enc_msg
,
v_utRtcmemEventInd
.
rtcmemMsg
)
==
0
)
{
cfPort
.
send
(
v_utRtcmemEventInd
);
}
}
}
function
f_incLocalSeqNumber
()
runs
on
ItsRSUsSimulator
return
UInt16
{
vc_localSeqNumber
:=
(
vc_localSeqNumber
+
1
)
mod
65536
;
return
vc_localSeqNumber
;
...
...
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn
View file @
de7d529c
...
...
@@ -205,11 +205,11 @@ module ItsRSUsSimulator_Templates {
* @param p_seqNumber Sequence number of GeoUnicast packet
* @param p_nextHeader Id of next header
*/
template
(
present
)
GnNonSecuredPacket
mw_geoNw
Uni
castPacketWithNextHeader_ivim
(
template
(
present
)
Short
PosVector
p_
destinationShort
PosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
)
modifies
mw_geoNw
Uni
castPacketWithNextHeader
:=
{
template
(
present
)
GnNonSecuredPacket
mw_geoNw
Broad
castPacketWithNextHeader_ivim
(
template
(
present
)
Long
PosVector
p_
sourceLong
PosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
)
modifies
mw_geoNw
Broad
castPacketWithNextHeader
:=
{
payload
:=
f_payload_template
(
PICS_IVIM_BTP_DESTINATION_PORT
,
PICS_IVIM_BTP_SOURCE_PORT
)
}
...
...
@@ -220,9 +220,9 @@ module ItsRSUsSimulator_Templates {
* @param p_nextHeader Id of next header
*/
template
(
present
)
GnNonSecuredPacket
mw_geoNwBroadcastPacketWithNextHeader_mapem
(
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
)
modifies
mw_geoNwBroadcastPacketWithNextHeader
:=
{
payload
:=
f_payload_template
(
PICS_MAPEM_BTP_DESTINATION_PORT
,
PICS_MAPEM_BTP_SOURCE_PORT
)
}
...
...
@@ -234,13 +234,27 @@ module ItsRSUsSimulator_Templates {
* @param p_nextHeader Id of next header
*/
template
(
present
)
GnNonSecuredPacket
mw_geoNwBroadcastPacketWithNextHeader_spatem
(
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
)
modifies
mw_geoNwBroadcastPacketWithNextHeader
:=
{
payload
:=
f_payload_template
(
PICS_SPATEM_BTP_DESTINATION_PORT
,
PICS_SPATEM_BTP_SOURCE_PORT
)
}
/**
* @desc Receive template for GeoNetworking Unicast Packet
* @param p_destinationShortPosVec Short position vector of destination
* @param p_seqNumber Sequence number of GeoUnicast packet
* @param p_nextHeader Id of next header
*/
template
(
present
)
GnNonSecuredPacket
mw_geoNwBroadcastPacketWithNextHeader_rtcmem
(
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
template
(
present
)
UInt16
p_seqNumber
:=
?
,
template
(
present
)
NextHeader
p_nextHeader
:=
?
)
modifies
mw_geoNwBroadcastPacketWithNextHeader
:=
{
payload
:=
f_payload_template
(
PICS_RTCMEM_BTP_DESTINATION_PORT
,
PICS_RTCMEM_BTP_SOURCE_PORT
)
}
/**
* @desc Receive template for GeoNetworking Unicast Packet
* @param p_destinationShortPosVec Short position vector of destination
...
...
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn
View file @
de7d529c
...
...
@@ -117,7 +117,7 @@ module ItsRSUsSimulator_TestCases {
[
PICS_SEND_IVIM_INDICATION
==
true
]
geoNetworkingPort
.
receive
(
mw_geoNwInd
(
mw_geoNwPdu
(
mw_geoNw
Uni
castPacketWithNextHeader_ivim
(
mw_geoNw
Broad
castPacketWithNextHeader_ivim
(
?
,
?
,
e_btpB
...
...
@@ -162,6 +162,18 @@ module ItsRSUsSimulator_TestCases {
f_processSsem
(
v_gnInd
.
msgIn
);
repeat
;
}
[
PICS_SEND_RTCMEM_INDICATION
==
true
]
geoNetworkingPort
.
receive
(
mw_geoNwInd
(
mw_geoNwPdu
(
mw_geoNwBroadcastPacketWithNextHeader_rtcmem
(
?
,
?
,
e_btpB
))))
->
value
v_gnInd
{
// Receive a RTCMEM message
log
(
"*** "
&
testcasename
()
&
": DEBUG: Processing RTCMEM ***"
);
f_processRtcmem
(
v_gnInd
.
msgIn
);
repeat
;
}
[]
geoNetworkingPort
.
receive
(
mw_geoNwInd
(
mw_geoNwPdu
(
...
...
ttcn/AtsRtcmem/ItsRtcmem_TpFunctions.ttcn
View file @
de7d529c
...
...
@@ -42,11 +42,10 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
1
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM
3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM
3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
tc_ac
.
start
;
alt
{
...
...
@@ -65,7 +64,7 @@ module ItsRtcmem_TpFunctions {
}
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -90,11 +89,10 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
1
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
tc_ac
.
start
;
alt
{
...
...
@@ -113,7 +111,7 @@ module ItsRtcmem_TpFunctions {
}
// End of 'alt' statement
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -134,8 +132,7 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
10
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
tc_ac
.
start
;
alt
{
[]
rtcmemPort
.
receive
(
...
...
@@ -153,7 +150,7 @@ module ItsRtcmem_TpFunctions {
}
// End of 'alt' statement
// Test Body
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
tc_noac
.
start
;
rtcmemPort
.
clear
;
alt
{
...
...
@@ -165,7 +162,7 @@ module ItsRtcmem_TpFunctions {
log
(
"*** "
&
testcasename
()
&
": FAIL: Successfully received RTCMEM PDU header. ***"
);
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_error
);
}
[]
tc_ac
.
timeout
{
[]
tc_
no
ac
.
timeout
{
log
(
"*** "
&
testcasename
()
&
": PASS: IUT stops sending RTCMEM. ***"
);
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_success
);
}
...
...
@@ -196,8 +193,7 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
10
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -220,7 +216,7 @@ module ItsRtcmem_TpFunctions {
}
// End of 'alt' statement
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -241,8 +237,7 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
10
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -265,7 +260,7 @@ module ItsRtcmem_TpFunctions {
}
// End of 'alt' statement
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -290,8 +285,7 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
10
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -314,7 +308,7 @@ module ItsRtcmem_TpFunctions {
}
// End of 'alt' statement
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
tc_noac
.
start
;
rtcmemPort
.
clear
;
alt
{
...
...
@@ -330,7 +324,7 @@ module ItsRtcmem_TpFunctions {
log
(
"*** "
&
testcasename
()
&
": INFO: IUT stops sending RTCMEM. ***"
);
}
}
// End of 'alt' statement
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -351,8 +345,7 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_utTriggerEvent
(
m_utTriggerEvent
(
0
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_utTriggerEvent
(
m_utTriggerEvent
(
10
,
-
,
{
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
),
char2oct
(
"STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"
)
}));
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -375,7 +368,7 @@ module ItsRtcmem_TpFunctions {
}
// End of 'alt' statement
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -398,7 +391,6 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Use default certificate
// Preamble
f_prInitialState
();
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -424,12 +416,12 @@ module ItsRtcmem_TpFunctions {
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_error
);
}
else
{
log
(
"*** "
&
testcasename
()
&
": PASS:
CA
M was transmitted to upper layer ***"
);
log
(
"*** "
&
testcasename
()
&
": PASS:
RTCME
M was transmitted to upper layer ***"
);
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_success
);
}
// Postamble
f_utTerminateEvent
(
m_utTriggerTermination
(
0
));
f_utTerminateEvent
(
m_utTriggerTermination
(
1
0
));
f_poDefault
();
f_cfDown
();
...
...
@@ -452,7 +444,6 @@ module ItsRtcmem_TpFunctions {
f_cfUp
(
"CERT_TS_RTCMEM_BO_02_AT"
);
// not containing appPermission item
// Preamble
f_prInitialState
();
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -478,7 +469,7 @@ module ItsRtcmem_TpFunctions {
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_error
);
}
else
{
log
(
"*** "
&
testcasename
()
&
": PASS:
CA
M was transmitted to upper layer ***"
);
log
(
"*** "
&
testcasename
()
&
": PASS:
RTCME
M was transmitted to upper layer ***"
);
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_success
);
}
...
...
@@ -512,7 +503,6 @@ module ItsRtcmem_TpFunctions {
f_cfUp
();
// Preamble
f_prInitialState
();
f_selfOrClientSyncAndVerdictPreamble
(
c_prDone
,
e_success
);
// Test Body
...
...
@@ -538,7 +528,7 @@ module ItsRtcmem_TpFunctions {
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_success
);
}
else
{
log
(
"*** "
&
testcasename
()
&
": FAIL:
CA
M was not transmitted to upper layer ***"
);
log
(
"*** "
&
testcasename
()
&
": FAIL:
RTCME
M was not transmitted to upper layer ***"
);
f_selfOrClientSyncAndVerdict
(
c_tbDone
,
e_error
);
}
...
...
LibIts
@
32853fcb
Compare
12e18a7c
...
32853fcb
Subproject commit
12e18a7cf845de04442bb717e4663ac976c5815c
Subproject commit
32853fcb57a745c96b345697f83ae76bd41a7193
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment