Commits (11)
...@@ -39,6 +39,7 @@ module LibItsCam_Templates { ...@@ -39,6 +39,7 @@ module LibItsCam_Templates {
in template (present) CAM p_camMsg in template (present) CAM p_camMsg
) := { ) := {
msgIn := p_camMsg, msgIn := p_camMsg,
recvTime := ?,
gnNextHeader := *, gnNextHeader := *,
gnHeaderType := *, gnHeaderType := *,
gnHeaderSubtype := *, gnHeaderSubtype := *,
......
...@@ -126,6 +126,7 @@ module LibItsCam_TestSystem language "TTCN-3:2010 Real Time and Performance Test ...@@ -126,6 +126,7 @@ module LibItsCam_TestSystem language "TTCN-3:2010 Real Time and Performance Test
*/ */
type record CamInd { type record CamInd {
CAM msgIn, CAM msgIn,
UInt64 recvTime,
UInt8 gnNextHeader optional, UInt8 gnNextHeader optional,
UInt8 gnHeaderType optional, UInt8 gnHeaderType optional,
UInt8 gnHeaderSubtype optional, UInt8 gnHeaderSubtype optional,
......
...@@ -4,46 +4,49 @@ module LibItsCommon_ASN1_ISDSRC_NamedNumbers { ...@@ -4,46 +4,49 @@ module LibItsCommon_ASN1_ISDSRC_NamedNumbers {
import from DSRC language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all;
group IS_DSCR_constants { group IS_DSCR_constants {
group LaneParameter_constants {
const LaneAttributes_Barrier LaneAttributes_Barrier_median_RevocableLane_ := '0000000000000000'B; group LaneParameter_constants {
const LaneAttributes_Barrier LaneAttributes_Barrier_median_RevocableLane_ := '0000000000000000'B;
const LaneAttributes_Bike LaneAttributes_Bike_bikeRevocableLane_ := '0000000000000000'B;
const LaneAttributes_Crosswalk LaneAttributes_Crosswalk_crosswalkRevocableLane_ := '0000000000000000'B;
const LaneAttributes_Parking LaneAttributes_Parking_parkingRevocableLane_ := '0000000000000000'B;
const LaneAttributes_Sidewalk LaneAttributes_Sidewalk_sidewalk_RevocableLane_ := '0000000000000000'B;
const LaneAttributes_Striping LaneAttributes_Striping_stripeToConnectingLanesRevocableLane_ := '0000000000000000'B;
const LaneAttributes_TrackedVehicle LaneAttributes_TrackedVehicle_spec_RevocableLane_ := '0000000000000000'B;
const LaneAttributes_Vehicle LaneAttributes_Vehicle_isVehicleRevocableLane_ := '00000000'B;
const LaneDirection LaneDirection_ingressPath_ := '00'B;
const LaneDirection LaneDirection_egressPath_ := '01'B;
} //end LaneParameter_constants
group Intersection_constants {
const IntersectionStatusObject IntersectionStatusObject_manualControlIsEnabled_ := '0000000000000000'B;
const IntersectionStatusObject IntersectionStatusObject_stopTimeIsActivated_ := '0000000000000001'B;
const IntersectionStatusObject IntersectionStatusObject_failureFlash_ := '0000000000000010'B;
const IntersectionStatusObject IntersectionStatusObject_preemptIsActive_ := '0000000000000011'B;
const IntersectionStatusObject IntersectionStatusObject_signalPriorityIsActive_ := '0000000000000100'B;
const IntersectionStatusObject IntersectionStatusObject_fixedTimeOperation_ := '0000000000000101'B;
const IntersectionStatusObject IntersectionStatusObject_trafficDependentOperation_ := '0000000000000110'B;
const IntersectionStatusObject IntersectionStatusObject_standbyOperation_ := '0000000000000111'B;
const IntersectionStatusObject IntersectionStatusObject_failureMode_ := '0000000000001000'B;
const IntersectionStatusObject IntersectionStatusObject_off_ := '0000000000001001'B;
const IntersectionStatusObject IntersectionStatusObject_recentMAPmessageUpdate_ := '0000000000001010'B;
const IntersectionStatusObject IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed_ := '0000000000001011'B;
const IntersectionStatusObject IntersectionStatusObject_noValidMAPisAvailableAtThisTime_ := '0000000000001100'B;
const IntersectionStatusObject IntersectionStatusObject_noValidSPATisAvailableAtThisTime_ := '0000000000001101'B;
} // End of group Intersection_constants
group requestor_description {
const TransitVehicleStatus TransitVehicleStatus_loading_ := '10000000'B;
const TransitVehicleStatus TransitVehicleStatus_anADAuse_ := '01000000'B;
const TransitVehicleStatus TransitVehicleStatus_aBikeLoad_ := '00100000'B;
const TransitVehicleStatus TransitVehicleStatus_doorOpen_ := '00010000'B;
const TransitVehicleStatus TransitVehicleStatus_charging_ := '00001000'B;
const TransitVehicleStatus TransitVehicleStatus_atStopLine_ := '00000100'B;
} // End of of group requestor_description
} // End of group IS_DSCR_constants
const LaneAttributes_Bike LaneAttributes_Bike_bikeRevocableLane_ := '0000000000000000'B;
const LaneAttributes_Crosswalk LaneAttributes_Crosswalk_crosswalkRevocableLane_ := '0000000000000000'B;
const LaneAttributes_Parking LaneAttributes_Parking_parkingRevocableLane_ := '0000000000000000'B;
const LaneAttributes_Sidewalk LaneAttributes_Sidewalk_sidewalk_RevocableLane_ := '0000000000000000'B;
const LaneAttributes_Striping LaneAttributes_Striping_stripeToConnectingLanesRevocableLane_ := '0000000000000000'B;
const LaneAttributes_TrackedVehicle LaneAttributes_TrackedVehicle_spec_RevocableLane_ := '0000000000000000'B;
const LaneAttributes_Vehicle LaneAttributes_Vehicle_isVehicleRevocableLane_ := '00000000'B;
const LaneDirection LaneDirection_ingressPath_ := '00'B;
const LaneDirection LaneDirection_egressPath_ := '01'B;
} //end LaneParameter_constants
group Intersection_constants {
const IntersectionStatusObject IntersectionStatusObject_manualControlIsEnabled_ := '0000000000000000'B;
const IntersectionStatusObject IntersectionStatusObject_stopTimeIsActivated_ := '0000000000000001'B;
const IntersectionStatusObject IntersectionStatusObject_failureFlash_ := '0000000000000010'B;
const IntersectionStatusObject IntersectionStatusObject_preemptIsActive_ := '0000000000000011'B;
const IntersectionStatusObject IntersectionStatusObject_signalPriorityIsActive_ := '0000000000000100'B;
const IntersectionStatusObject IntersectionStatusObject_fixedTimeOperation_ := '0000000000000101'B;
const IntersectionStatusObject IntersectionStatusObject_trafficDependentOperation_ := '0000000000000110'B;
const IntersectionStatusObject IntersectionStatusObject_standbyOperation_ := '0000000000000111'B;
const IntersectionStatusObject IntersectionStatusObject_failureMode_ := '0000000000001000'B;
const IntersectionStatusObject IntersectionStatusObject_off_ := '0000000000001001'B;
const IntersectionStatusObject IntersectionStatusObject_recentMAPmessageUpdate_ := '0000000000001010'B;
const IntersectionStatusObject IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed_ := '0000000000001011'B;
const IntersectionStatusObject IntersectionStatusObject_noValidMAPisAvailableAtThisTime_ := '0000000000001100'B;
const IntersectionStatusObject IntersectionStatusObject_noValidSPATisAvailableAtThisTime_ := '0000000000001101'B;
} //end Intersection_constants
} // end IS_DSCR_constants
} // End of module LibItsCommon_ASN1_ISDSRC_NamedNumbers } // End of module LibItsCommon_ASN1_ISDSRC_NamedNumbers
...@@ -64,6 +64,7 @@ module LibItsDenm_Templates { ...@@ -64,6 +64,7 @@ module LibItsDenm_Templates {
template (present) DENM p_denMsg template (present) DENM p_denMsg
) := { ) := {
msgIn := p_denMsg, msgIn := p_denMsg,
recvTime := ?,
gnNextHeader := *, gnNextHeader := *,
gnHeaderType := *, gnHeaderType := *,
gnHeaderSubtype := *, gnHeaderSubtype := *,
......
...@@ -130,6 +130,7 @@ module LibItsDenm_TestSystem { ...@@ -130,6 +130,7 @@ module LibItsDenm_TestSystem {
*/ */
type record DenmInd { type record DenmInd {
DENM msgIn, DENM msgIn,
UInt64 recvTime,
UInt8 gnNextHeader optional, UInt8 gnNextHeader optional,
UInt8 gnHeaderType optional, UInt8 gnHeaderType optional,
UInt8 gnHeaderSubtype optional, UInt8 gnHeaderSubtype optional,
......
...@@ -10,7 +10,7 @@ module LibItsDenm_TypesAndValues { ...@@ -10,7 +10,7 @@ module LibItsDenm_TypesAndValues {
//LibCommon //LibCommon
import from LibCommon_BasicTypesAndValues all; import from LibCommon_BasicTypesAndValues all;
import from LibCommon_DataStrings all; import from LibCommon_DataStrings all;
// LibIts // LibIts
import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all;
import from ITS_Container language "ASN.1:1997" all; import from ITS_Container language "ASN.1:1997" all;
......
...@@ -185,7 +185,7 @@ module LibItsGeoNetworking_Functions { ...@@ -185,7 +185,7 @@ module LibItsGeoNetworking_Functions {
f_initialiseComponent(v_positionTable, v_areaTable, c_compNodeB); f_initialiseComponent(v_positionTable, v_areaTable, c_compNodeB);
} // End of group f_cf01Up } // End of function f_cf01Up
function f_cf01Down() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { function f_cf01Down() runs on ItsGeoNetworking system ItsGeoNetworkingSystem {
...@@ -270,7 +270,7 @@ module LibItsGeoNetworking_Functions { ...@@ -270,7 +270,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // End of group f_cf02Up } // End of function f_cf02Up
/** /**
* @desc Deletes configuration cf02 * @desc Deletes configuration cf02
...@@ -293,7 +293,7 @@ module LibItsGeoNetworking_Functions { ...@@ -293,7 +293,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // End of group f_cf02Down } // End of function f_cf02Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -364,7 +364,7 @@ module LibItsGeoNetworking_Functions { ...@@ -364,7 +364,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // End of group f_cf03Up } // End of function f_cf03Up
/** /**
* @desc Deletes configuration cf03 * @desc Deletes configuration cf03
...@@ -387,7 +387,7 @@ module LibItsGeoNetworking_Functions { ...@@ -387,7 +387,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // End of group f_cf03Down } // End of function f_cf03Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -460,7 +460,7 @@ module LibItsGeoNetworking_Functions { ...@@ -460,7 +460,7 @@ module LibItsGeoNetworking_Functions {
} }
} }
} // End of group f_cf04Up } // End of function f_cf04Up
/** /**
* @desc Deletes configuration cf04 * @desc Deletes configuration cf04
...@@ -483,7 +483,7 @@ module LibItsGeoNetworking_Functions { ...@@ -483,7 +483,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // End of group f_cf04Down } // End of function f_cf04Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -574,7 +574,7 @@ module LibItsGeoNetworking_Functions { ...@@ -574,7 +574,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // End of group f_cf05Down } // End of function f_cf05Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -666,7 +666,7 @@ module LibItsGeoNetworking_Functions { ...@@ -666,7 +666,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // End of group f_cf06Down } // End of function f_cf06Down
/** /**
* @desc This configuration features: * @desc This configuration features:
...@@ -757,7 +757,7 @@ module LibItsGeoNetworking_Functions { ...@@ -757,7 +757,7 @@ module LibItsGeoNetworking_Functions {
unmap(self:utPort, system:utPort); unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort); disconnect(self:syncPort, mtc:syncPort);
} // End of group f_cf07Down } // End of function f_cf07Down
/** /**
* @desc Behavior function for initializing component's variables and tables * @desc Behavior function for initializing component's variables and tables
......
...@@ -14,6 +14,7 @@ module LibItsGeoNetworking_TestSystem { ...@@ -14,6 +14,7 @@ module LibItsGeoNetworking_TestSystem {
// LibCommon // LibCommon
import from LibCommon_BasicTypesAndValues all; import from LibCommon_BasicTypesAndValues all;
import from LibCommon_DataStrings all; import from LibCommon_DataStrings all;
import from LibCommon_Sync all;
// LibItsCommon // LibItsCommon
import from LibItsCommon_TestSystem all; import from LibItsCommon_TestSystem all;
......
...@@ -347,7 +347,7 @@ module LibItsIvim_Functions { ...@@ -347,7 +347,7 @@ module LibItsIvim_Functions {
// //
// return v_ret; // return v_ret;
// } // }
function f_prInitialState(Scenario p_scenario := e_staticPosition, function f_prInitialState(Scenario p_scenario := e_staticPosition, // TODO: To be removed, not used in IVIM (RSU)
in charstring p_certificate_id := "" in charstring p_certificate_id := ""
) runs on ItsIvim return FncRetCode { ) runs on ItsIvim return FncRetCode {
var FncRetCode v_ret := e_success; var FncRetCode v_ret := e_success;
......
...@@ -39,49 +39,49 @@ module LibItsIvim_Pixits { ...@@ -39,49 +39,49 @@ module LibItsIvim_Pixits {
* ZoneId 1 used in IVIM messages sent by the tester * ZoneId 1 used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar Zid PX_ZONEID_1 := 1 modulepar Zid PX_ZONEID_1 := 1;
/** /**
* @desc IUT ZoneId 2 identifier * @desc IUT ZoneId 2 identifier
* ZoneId 2 used in IVIM messages sent by the tester * ZoneId 2 used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar Zid PX_ZONEID_2 := 2 modulepar Zid PX_ZONEID_2 := 2;
/** /**
* @desc IUT LaneId identifier * @desc IUT LaneId identifier
* LaneId used in IVIM messages sent by the tester * LaneId used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar LanePosition PX_LANE := 1 //innermostDrivingLane(1) modulepar LanePosition PX_LANE := 1; //innermostDrivingLane(1)
/** /**
* @desc IUT RelavanceZoneId identifier * @desc IUT RelavanceZoneId identifier
* RelavanceZoneId used in IVIM messages sent by the tester * RelavanceZoneId used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar Zid PX_RELAVANCE_ZONEID := 1 modulepar Zid PX_RELAVANCE_ZONEID := 1;
/** /**
* @desc IUT DetectionZoneId identifier * @desc IUT DetectionZoneId identifier
* DetectionZoneId used in IVIM messages sent by the tester * DetectionZoneId used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar Zid PX_DETECTION_ZONEID := 1 modulepar Zid PX_DETECTION_ZONEID := 1;
/** /**
* @desc IUT DriverAwarenesZoneId identifier * @desc IUT DriverAwarenesZoneId identifier
* DriverAwarenesZoneId used in IVIM messages sent by the tester * DriverAwarenesZoneId used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar Zid PX_DRIVER_AWARENES_ZONEID := 1 modulepar Zid PX_DRIVER_AWARENES_ZONEID := 1;
/** /**
* @desc IUT LayoutId identifier * @desc IUT LayoutId identifier
* LayoutId used in IVIM messages sent by the tester * LayoutId used in IVIM messages sent by the tester
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar integer PX_LAYOUTID := 1 modulepar integer PX_LAYOUTID := 1;
/** /**
* @desc IUT RScode integer variant * @desc IUT RScode integer variant
...@@ -90,6 +90,6 @@ module LibItsIvim_Pixits { ...@@ -90,6 +90,6 @@ module LibItsIvim_Pixits {
* //add others if needed * //add others if needed
* @see ETSI TS 103 191-3 Table B.8 * @see ETSI TS 103 191-3 Table B.8
*/ */
modulepar integer PX_RSCODE_VA := 1 modulepar integer PX_RSCODE_VA := 1;
} // End of module LibItsIvim_Pixits } // End of module LibItsIvim_Pixits
\ No newline at end of file
...@@ -59,6 +59,7 @@ module LibItsIvim_Templates { ...@@ -59,6 +59,7 @@ module LibItsIvim_Templates {
template (present) IVIM p_iviMsg := ? template (present) IVIM p_iviMsg := ?
) := { ) := {
msgIn := p_iviMsg, msgIn := p_iviMsg,
recvTime := ?,
gnNextHeader := *, gnNextHeader := *,
gnHeaderType := *, gnHeaderType := *,
gnHeaderSubtype := *, gnHeaderSubtype := *,
...@@ -70,24 +71,6 @@ module LibItsIvim_Templates { ...@@ -70,24 +71,6 @@ module LibItsIvim_Templates {
its_aid := * its_aid := *
} // End of template mw_ivimInd } // End of template mw_ivimInd
/**
* @desc Send template for IVI Message (IvimPort Primitive)
* @param p_iviMsg The expected IVI Message
*/
template (value) IvimInd m_ivimInd(
template (value) IVIM p_iviMsg
) := {
msgIn := p_iviMsg,
gnNextHeader := omit,
gnHeaderType := omit,
gnHeaderSubtype := omit,
gnLifetime := omit,
gnTrafficClass := omit,
btpDestinationPort := omit,
btpInfo := omit,
ssp := omit,
its_aid := omit
} // End of template m_ivimInd
/** /**
* @desc Receive template for IVI Message (IvimPort Primitive) * @desc Receive template for IVI Message (IvimPort Primitive)
...@@ -143,30 +126,15 @@ module LibItsIvim_Templates { ...@@ -143,30 +126,15 @@ module LibItsIvim_Templates {
its_aid := p_its_aid its_aid := p_its_aid
} // End of template mw_ivimIndWithSecurityParameters } // End of template mw_ivimIndWithSecurityParameters
/**
* @desc Send template for IVI Message (IvimPort Primitive)
* @param p_iviMsg The expected IVI Message
* @param p_ssp SSP security parameter
* @param p_its_aid ITS-AID value
*/
template IvimInd m_ivimIndWithSecurityParameters(
template (value) IVIM p_iviMsg,
template Bit256 p_ssp := omit,
template UInt32 p_its_aid := omit
) modifies m_ivimInd := {
ssp := p_ssp,
its_aid := p_its_aid
} // End of template mw_ivimIndWithSecurityParameters
group utPrimitives { group utPrimitives {
/** /**
* @desc Send template for Upper Tester event initialization * @desc Send template for Upper Tester event initialization
*/ */
template (value) UtIvimInitialize m_ivimStructureInitialize( template (value) UtIvimInitialize m_ivimStructureInitialize(
in HashedId8 p_hashedId8 := '0000000000000000'O in HashedId8 p_hashedId8 := '0000000000000000'O
) := { ) := {
hashedId8 := '0000000000000000'O hashedId8 := p_hashedId8
} // End of template m_ivimStructureInitialize } // End of template m_ivimStructureInitialize
/** /**
...@@ -210,22 +178,19 @@ module LibItsIvim_Templates { ...@@ -210,22 +178,19 @@ module LibItsIvim_Templates {
* @param p_validFrom Valid From value (Default: omit) * @param p_validFrom Valid From value (Default: omit)
* @param p_validTo Valid To value (Default: omit) * @param p_validTo Valid To value (Default: omit)
* @param p_connectedIviStructures List of ConnectedIviStructure (Default: omit) * @param p_connectedIviStructures List of ConnectedIviStructure (Default: omit)
* @param p_optional_ Optional field (Default: omit)
*/ */
template (omit) UtIvimUpdate m_utIvimUpdateEvent( template (omit) UtIvimUpdate m_utIvimUpdateEvent(
template (value) IviIdentificationNumber p_iviIdentificationNumber, template (value) IviIdentificationNumber p_iviIdentificationNumber,
template (omit) TimestampIts p_timeStamp := c_duration_2sec, template (omit) TimestampIts p_timeStamp := c_duration_2sec,
template (omit) TimestampIts p_validFrom := omit, template (omit) TimestampIts p_validFrom := omit,
template (omit) TimestampIts p_validTo := omit, template (omit) TimestampIts p_validTo := omit,
template (omit) IVIManagementContainer.connectedIviStructures p_connectedIviStructures := omit, template (omit) IVIManagementContainer.connectedIviStructures p_connectedIviStructures := omit
template (omit) IviStructure.optional_ p_optional_ := omit
) := { ) := {
iviIdentificationNumber := p_iviIdentificationNumber, iviIdentificationNumber := p_iviIdentificationNumber,
validFrom := p_validFrom, validFrom := p_validFrom,
validTo := p_validTo, validTo := p_validTo,
timeStamp := p_timeStamp, timeStamp := p_timeStamp,
connectedIviStructures := p_connectedIviStructures, connectedIviStructures := p_connectedIviStructures
optional_ := p_optional_
} // End of template m_utIvimUpdateEvent } // End of template m_utIvimUpdateEvent
/** /**
......
...@@ -126,6 +126,7 @@ module LibItsIvim_TestSystem { ...@@ -126,6 +126,7 @@ module LibItsIvim_TestSystem {
*/ */
type record IvimInd { type record IvimInd {
IVIM msgIn, IVIM msgIn,
UInt64 recvTime,
UInt8 gnNextHeader optional, UInt8 gnNextHeader optional,
UInt8 gnHeaderType optional, UInt8 gnHeaderType optional,
UInt8 gnHeaderSubtype optional, UInt8 gnHeaderSubtype optional,
......
...@@ -94,8 +94,7 @@ module LibItsIvim_TypesAndValues { ...@@ -94,8 +94,7 @@ module LibItsIvim_TypesAndValues {
* @member utIvimInitialize - * @member utIvimInitialize -
* @member utIvimTriggerResult - * @member utIvimTriggerResult -
* @member utIvimUpdateResult, - * @member utIvimUpdateResult, -
* @member utIvimChangePositionResult - * @member utIvimTerminationResult -
* @member utIvimChangePseudonymResult -
*/ */
type union UtIvimResults { type union UtIvimResults {
boolean utIvimInitializeResult, boolean utIvimInitializeResult,
...@@ -143,8 +142,7 @@ module LibItsIvim_TypesAndValues { ...@@ -143,8 +142,7 @@ module LibItsIvim_TypesAndValues {
TimestampIts validFrom optional, TimestampIts validFrom optional,
TimestampIts validTo optional, TimestampIts validTo optional,
TimestampIts timeStamp optional, TimestampIts timeStamp optional,
IVIManagementContainer.connectedIviStructures connectedIviStructures optional, IVIManagementContainer.connectedIviStructures connectedIviStructures optional
IviStructure.optional_ optional_ optional
} with { } with {
variant "FIELDORDER(msb)" variant "FIELDORDER(msb)"
} }
......
...@@ -170,6 +170,17 @@ module LibItsMapemSpatem_Functions { ...@@ -170,6 +170,17 @@ module LibItsMapemSpatem_Functions {
} }
} }
/**
* @desc Default handling cf02 de-initialisation.
*/
altstep a_cf02Down() runs on ItsMtc {
[] a_shutdown() {
f_cf02Down();
log("*** a_cf02Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***");
stop;
}
}
/** /**
* @desc The base default. * @desc The base default.
*/ */
...@@ -264,6 +275,66 @@ module LibItsMapemSpatem_Functions { ...@@ -264,6 +275,66 @@ module LibItsMapemSpatem_Functions {
f_disconnect4SelfOrClientSync(); f_disconnect4SelfOrClientSync();
} // End of f_cfDown } // End of f_cfDown
/**
* @desc Setups default configuration
* @param p_certificateId The certificate identifier the TA shall use in case of secured IUT
*/
function f_cf02Up(in charstring p_certificateId := PX_CERT_FOR_TS
) runs on ItsMtc mtc ItsMtc system ItsMapemSpatemSystem {
// Variables
var integer i;
// Select components
vc_componentTable := {{c_compMap, omit}, {c_compSpat, omit}};
// Create components
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
vc_componentTable[i].msComponent := ItsMapemSpatem.create(vc_componentTable[i].componentName) alive;
}
// Map & Connect
map(self:acPort, system:acPort);
map(self:utPort, system:utPort);
connect(self:syncPort, mtc:syncPort);
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
map(vc_componentTable[i].msComponent:acPort, system:acPort);
map(vc_componentTable[i].msComponent:utPort, system:utPort);
map(vc_componentTable[i].msComponent:mapemSpatemPort, system:mapemSpatemPort);
connect(vc_componentTable[i].msComponent:syncPort, self:syncPort);
}
activate(a_cf02Down());
// Initialise secured mode
f_initialiseSecuredMode(p_certificateId);
} // End of f_cf02Up
/**
* @desc Deletes default configuration
*/
function f_cf02Down() runs on ItsMtc mtc ItsMtc system ItsMapemSpatemSystem {
// Local variables
var integer i;
f_uninitialiseSecuredMode();
// Unmap & Disconnect
for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
unmap(vc_componentTable[i].msComponent:utPort, system:utPort);
unmap(vc_componentTable[i].msComponent:acPort, system:acPort);
unmap(vc_componentTable[i].msComponent:mapemSpatemPort, system:mapemSpatemPort);
disconnect(vc_componentTable[i].msComponent:syncPort, self:syncPort);
}
unmap(self:acPort, system:acPort);
unmap(self:utPort, system:utPort);
disconnect(self:syncPort, mtc:syncPort);
} // End of f_cf02Down
} // End of of mapSpatConfigurationFunctions } // End of of mapSpatConfigurationFunctions
group preambles { group preambles {
...@@ -358,4 +429,33 @@ module LibItsMapemSpatem_Functions { ...@@ -358,4 +429,33 @@ module LibItsMapemSpatem_Functions {
} // End of group receiveFunctions } // End of group receiveFunctions
group componentFunctions {
/**
* @desc Get the component corresponding to a key
* @param p_componentName Name searched component
* @return ItsGeoNetworking - The searched position vector
*/
function f_getComponent(
in charstring p_componentName
) runs on ItsMtc
return ItsMapemSpatem {
var ItsMapemSpatem v_return := null;
var integer i := 0;
for (i:=0; i<lengthof(vc_componentTable); i:=i+1) {
if (vc_componentTable[i].componentName == p_componentName) {
if (isvalue(vc_componentTable[i].msComponent)) {
v_return := valueof(vc_componentTable[i].msComponent);
}
else {
testcase.stop(__SCOPE__ & " can not handle omitted MS components");
}
}
}
return v_return;
}
}
} // End of module LibItsMapemSpatem_Functions } // End of module LibItsMapemSpatem_Functions
...@@ -54,6 +54,7 @@ module LibItsMapemSpatem_Templates { ...@@ -54,6 +54,7 @@ module LibItsMapemSpatem_Templates {
template (present) MAPEM p_mapemMsg template (present) MAPEM p_mapemMsg
) := { ) := {
msgIn := p_mapemMsg, msgIn := p_mapemMsg,
recvTime := ?,
gnNextHeader := *, gnNextHeader := *,
gnHeaderType := *, gnHeaderType := *,
gnHeaderSubtype := *, gnHeaderSubtype := *,
...@@ -137,6 +138,7 @@ module LibItsMapemSpatem_Templates { ...@@ -137,6 +138,7 @@ module LibItsMapemSpatem_Templates {
template (present) SPATEM p_spatemMsg template (present) SPATEM p_spatemMsg
) := { ) := {
msgIn := p_spatemMsg, msgIn := p_spatemMsg,
recvTime := ?,
gnNextHeader := *, gnNextHeader := *,
gnHeaderType := *, gnHeaderType := *,
gnHeaderSubtype := *, gnHeaderSubtype := *,
...@@ -451,7 +453,7 @@ module LibItsMapemSpatem_Templates { ...@@ -451,7 +453,7 @@ module LibItsMapemSpatem_Templates {
ingressApproach := p_ingressApproach, // inbound Approach IDs to which this lane belongs ingressApproach := p_ingressApproach, // inbound Approach IDs to which this lane belongs
egressApproach := p_egressApproach, // outbound Approach IDs to which this lane belongs egressApproach := p_egressApproach, // outbound Approach IDs to which this lane belongs
laneAttributes := p_laneAttributes, // All Attribute information about the basic selected lane type laneAttributes := p_laneAttributes, // All Attribute information about the basic selected lane type
maneuvers := omit, // the permitted maneuvers for this lane maneuvers := p_allowedManeuvers, // the permitted maneuvers for this lane
nodeList := p_nodeListXY, // Lane spatial path information as well as various Attribute information along the node path nodeList := p_nodeListXY, // Lane spatial path information as well as various Attribute information along the node path
// Attributes found here are more general and may come and go over the length of the lane. // Attributes found here are more general and may come and go over the length of the lane.
connectsTo := p_connectsToList, // a list of other lanes and their signal group IDs each connecting lane and its signal group ID is given, therefore this element provides the information formerly in "signalGroups" in prior editions. connectsTo := p_connectsToList, // a list of other lanes and their signal group IDs each connecting lane and its signal group ID is given, therefore this element provides the information formerly in "signalGroups" in prior editions.
......
...@@ -62,6 +62,13 @@ module LibItsMapemSpatem_TestSystem { ...@@ -62,6 +62,13 @@ module LibItsMapemSpatem_TestSystem {
type port MapemSpatemPort message { in MapemInd , SpatemInd ; out MapemReq , SpatemReq } type port MapemSpatemPort message { in MapemInd , SpatemInd ; out MapemReq , SpatemReq }
} // End of group interfacePorts } // End of group interfacePorts
/**
* @desc ITS Main Test Component
*/
type component ItsMtc extends ItsBaseMtc, ItsMapemSpatem {
var ComponentTable vc_componentTable := {};
} // end ItsMtc
/** /**
* @desc ITS System Adapter * @desc ITS System Adapter
...@@ -104,6 +111,7 @@ module LibItsMapemSpatem_TestSystem { ...@@ -104,6 +111,7 @@ module LibItsMapemSpatem_TestSystem {
type record MapemInd { type record MapemInd {
MAPEM msgIn, MAPEM msgIn,
UInt64 recvTime,
UInt8 gnNextHeader optional, UInt8 gnNextHeader optional,
UInt8 gnHeaderType optional, UInt8 gnHeaderType optional,
UInt8 gnHeaderSubtype optional, UInt8 gnHeaderSubtype optional,
...@@ -120,6 +128,7 @@ module LibItsMapemSpatem_TestSystem { ...@@ -120,6 +128,7 @@ module LibItsMapemSpatem_TestSystem {
type record SpatemInd { type record SpatemInd {
SPATEM msgIn, SPATEM msgIn,
UInt64 recvTime,
UInt8 gnNextHeader optional, UInt8 gnNextHeader optional,
UInt8 gnHeaderType optional, UInt8 gnHeaderType optional,
UInt8 gnHeaderSubtype optional, UInt8 gnHeaderSubtype optional,
...@@ -155,4 +164,15 @@ module LibItsMapemSpatem_TestSystem { ...@@ -155,4 +164,15 @@ module LibItsMapemSpatem_TestSystem {
encode "LibIts_Interface" encode "LibIts_Interface"
} // End of group ApplPrimitives } // End of group ApplPrimitives
group misc {
type record ComponentEntry {
charstring componentName,
ItsMapemSpatem msComponent optional
}
type record of ComponentEntry ComponentTable;
} // end misc
} // End of module LibItsMapemSpatem_TestSystem } // End of module LibItsMapemSpatem_TestSystem
/** /**
* @author ETSI / STF484 / STF517 * @author ETSI / STF484 / STF517
* @version $URL$ * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/MapemSpatem/LibItsMapemSpatem_TypesAndValues.ttcn $
* $Id$ * $Id: LibItsMapemSpatem_TypesAndValues.ttcn 1307 2016-12-13 07:51:14Z garciay $
* @desc Module containing types and values for MAPEM SPATEM * @desc Module containing types and values for MAPEM SPATEM
* @copyright ETSI Copyright Notification * @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission. * No part may be reproduced except as authorized by written permission.
...@@ -28,6 +28,11 @@ module LibItsMapemSpatem_TypesAndValues { ...@@ -28,6 +28,11 @@ module LibItsMapemSpatem_TypesAndValues {
group mapSpatConstants { group mapSpatConstants {
const charstring c_compIut := "IUT";
const charstring c_compMTC := "MTC";
const charstring c_compMap := "PtcMap";
const charstring c_compSpat := "PtcSpat";
} // end group mapSpatConstants } // end group mapSpatConstants
group utPrimitives { group utPrimitives {
......
...@@ -52,6 +52,14 @@ module LibItsPki_Pixits { ...@@ -52,6 +52,14 @@ module LibItsPki_Pixits {
*/ */
modulepar SecurityAlg PX_VE_ALG := e_nist_p256; modulepar SecurityAlg PX_VE_ALG := e_nist_p256;
modulepar Int16 PX_GENERATED_CERTIFICATE_DURATION := 120;
modulepar SubjectAssurance PX_GENERATED_CERTIFICATE_SUBJECT_ASSURENCE_LEVEL := '00'O;
modulepar CountryOnly PX_GENERATED_CERTIFICATE_REGION_COUNTRY_1 := 250;
modulepar CountryOnly PX_GENERATED_CERTIFICATE_REGION_COUNTRY_2 := 380;
modulepar octetstring PX_INNER_EC_CERTFICATE_BITMAP_SSP_SCR := '01C0'O; modulepar octetstring PX_INNER_EC_CERTFICATE_BITMAP_SSP_SCR := '01C0'O;
modulepar octetstring PX_INNER_EC_CERTFICATE_INCORRECT_BITMAP_SSP_SCR := '01FF'O; modulepar octetstring PX_INNER_EC_CERTFICATE_INCORRECT_BITMAP_SSP_SCR := '01FF'O;
......
...@@ -73,7 +73,7 @@ module LibItsRtcmem_Functions { ...@@ -73,7 +73,7 @@ module LibItsRtcmem_Functions {
} }
[] utPort.receive ( UtRtcmemResults: { utRtcmemTriggerResult := false }) { [] utPort.receive ( UtRtcmemResults: { utRtcmemTriggerResult := false }) {
tc_wait.stop; tc_wait.stop;
f_selfOrClientSyncAndVerdict("SREM Trigger failed", e_error); f_selfOrClientSyncAndVerdict("RTCMEM Trigger failed", e_error);
} }
[] tc_wait.timeout { [] tc_wait.timeout {
log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***"); log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***");
...@@ -104,7 +104,7 @@ module LibItsRtcmem_Functions { ...@@ -104,7 +104,7 @@ module LibItsRtcmem_Functions {
} }
[] utPort.receive ( UtRtcmemResults: { utRtcmemUpdateResult := false }) { [] utPort.receive ( UtRtcmemResults: { utRtcmemUpdateResult := false }) {
tc_wait.stop; tc_wait.stop;
f_selfOrClientSyncAndVerdict("SREM Update failed", e_error); f_selfOrClientSyncAndVerdict("RTCMEM Update failed", e_error);
} }
[] tc_wait.timeout { [] tc_wait.timeout {
log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***"); log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***");
...@@ -130,9 +130,13 @@ module LibItsRtcmem_Functions { ...@@ -130,9 +130,13 @@ module LibItsRtcmem_Functions {
utPort.send(p_event); utPort.send(p_event);
tc_wait.start; tc_wait.start;
alt { alt {
[] utPort.receive(UtRtcmemResults: { utRtcmemTerminationResult := ?}) { [] utPort.receive(UtRtcmemResults: { utRtcmemTerminationResult := true}) {
tc_wait.stop; tc_wait.stop;
} }
[] utPort.receive(UtRtcmemResults: { utRtcmemTerminationResult := false}) {
tc_wait.stop;
f_selfOrClientSyncAndVerdict("RTCMEM Termination failed", e_error);
}
[] tc_wait.timeout { [] tc_wait.timeout {
log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***"); log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***");
f_selfOrClientSyncAndVerdict("error", e_timeout); f_selfOrClientSyncAndVerdict("error", e_timeout);
...@@ -225,7 +229,7 @@ module LibItsRtcmem_Functions { ...@@ -225,7 +229,7 @@ module LibItsRtcmem_Functions {
*/ */
altstep a_default() runs on ItsRtcmem { altstep a_default() runs on ItsRtcmem {
[vc_rtcmemDefaultActive] rtcmemPort.receive(mw_rtcmemInd(mw_rtcmemPdu(mw_defaultRtcmem))) { [vc_rtcmemDefaultActive] rtcmemPort.receive(mw_rtcmemInd(mw_rtcmemPdu(mw_defaultRtcmem))) {
log("*** " & testcasename() & ": INFO: SREMM received in default ***"); log("*** " & testcasename() & ": INFO: RTCMEM received in default ***");
vc_rtcmemReceived := true; vc_rtcmemReceived := true;
repeat; repeat;
} }
...@@ -364,7 +368,7 @@ module LibItsRtcmem_Functions { ...@@ -364,7 +368,7 @@ module LibItsRtcmem_Functions {
group receiveFunctions { group receiveFunctions {
/** /**
* @desc Awaits a SREM and returns it * @desc Awaits a RTCMEM and returns it
* @param p_rcvMsg The expected message to be received. * @param p_rcvMsg The expected message to be received.
* @param p_rcvdMsg The received message - OUT. * @param p_rcvdMsg The received message - OUT.
*/ */
......
...@@ -40,6 +40,7 @@ module LibItsRtcmem_Templates { ...@@ -40,6 +40,7 @@ module LibItsRtcmem_Templates {
template (present) RTCMEM p_rtcmemMsg template (present) RTCMEM p_rtcmemMsg
) := { ) := {
msgIn := p_rtcmemMsg, msgIn := p_rtcmemMsg,
recvTime := ?,
gnNextHeader := *, gnNextHeader := *,
gnHeaderType := *, gnHeaderType := *,
gnHeaderSubtype := *, gnHeaderSubtype := *,
......