Commit 8a7a5c3e authored by garciay's avatar garciay
Browse files

Simplify Payload for GeoNetworking & BTP

==> Check TODO in Security ATS
parent ff4945fe
...@@ -33,8 +33,7 @@ module TestCodec_Btp { ...@@ -33,8 +33,7 @@ module TestCodec_Btp {
template BtpPacket m_btpA_With_Payload ( template BtpPacket m_btpA_With_Payload (
in template (value) BtpPortId p_destPort, in template (value) BtpPortId p_destPort,
in template (value) BtpPortId p_sourcePort, in template (value) BtpPortId p_sourcePort,
in template DecodedBtpPayload p_decodedPayload, in template BtpRawPayload p_rawPayload
in template (value) octetstring p_rawPayload
) := { ) := {
header := { header := {
btpAHeader := { btpAHeader := {
...@@ -42,17 +41,13 @@ module TestCodec_Btp { ...@@ -42,17 +41,13 @@ module TestCodec_Btp {
sourcePort := p_sourcePort sourcePort := p_sourcePort
} }
}, },
payload := { payload :=p_rawPayload
decodedPayload := p_decodedPayload,
rawPayload := p_rawPayload
}
} }
template BtpPacket mw_btpA_With_Payload ( template BtpPacket mw_btpA_With_Payload (
in template (present) BtpPortId p_destPort, in template (present) BtpPortId p_destPort,
in template (present) BtpPortId p_sourcePort, in template (present) BtpPortId p_sourcePort,
in template DecodedBtpPayload p_decodedPayload, in template BtpRawPayload p_rawPayload
in template (present) octetstring p_rawPayload
) := { ) := {
header := { header := {
btpAHeader := { btpAHeader := {
...@@ -60,10 +55,7 @@ module TestCodec_Btp { ...@@ -60,10 +55,7 @@ module TestCodec_Btp {
sourcePort := p_sourcePort sourcePort := p_sourcePort
} }
}, },
payload := { payload := p_rawPayload
decodedPayload := p_decodedPayload,
rawPayload := p_rawPayload
}
} }
template (value) BtpPacket m_btpB_Without_Payload ( template (value) BtpPacket m_btpB_Without_Payload (
...@@ -82,8 +74,7 @@ module TestCodec_Btp { ...@@ -82,8 +74,7 @@ module TestCodec_Btp {
template BtpPacket m_btpB_With_Payload ( template BtpPacket m_btpB_With_Payload (
in template (value) BtpPortId p_destPort, in template (value) BtpPortId p_destPort,
in template (value) BtpPortId p_destinationPortInfo, in template (value) BtpPortId p_destinationPortInfo,
in template DecodedBtpPayload p_decodedPayload, in template (value) BtpRawPayload p_rawPayload
in template (value) octetstring p_rawPayload
) := { ) := {
header := { header := {
btpBHeader := { btpBHeader := {
...@@ -91,10 +82,7 @@ module TestCodec_Btp { ...@@ -91,10 +82,7 @@ module TestCodec_Btp {
destinationPortInfo := p_destinationPortInfo destinationPortInfo := p_destinationPortInfo
} }
}, },
payload := { payload := p_rawPayload
decodedPayload := p_decodedPayload,
rawPayload := p_rawPayload
}
} }
} // End of group LibItsBtp_DummyTemplates } // End of group LibItsBtp_DummyTemplates
...@@ -117,7 +105,6 @@ module TestCodec_Btp { ...@@ -117,7 +105,6 @@ module TestCodec_Btp {
m_btpA_With_Payload ( m_btpA_With_Payload (
1234, 1234,
0, 0,
omit,
'CAFEDECA'O 'CAFEDECA'O
), ),
true, true,
...@@ -130,7 +117,6 @@ module TestCodec_Btp { ...@@ -130,7 +117,6 @@ module TestCodec_Btp {
m_btpB_With_Payload ( m_btpB_With_Payload (
1234, 1234,
4567, 4567,
omit,
'CAFEDECA'O 'CAFEDECA'O
), ),
true, true,
...@@ -143,7 +129,6 @@ module TestCodec_Btp { ...@@ -143,7 +129,6 @@ module TestCodec_Btp {
BtpReq:{msgOut := m_btpA_With_Payload ( BtpReq:{msgOut := m_btpA_With_Payload (
1234, 1234,
0, 0,
omit,
'CAFEDECA'O 'CAFEDECA'O
) )
}, },
...@@ -177,7 +162,6 @@ module TestCodec_Btp { ...@@ -177,7 +162,6 @@ module TestCodec_Btp {
BtpReq : { msgOut := m_btpA_With_Payload ( BtpReq : { msgOut := m_btpA_With_Payload (
1234, 1234,
0, 0,
omit,
'CAFEDECA'O 'CAFEDECA'O
) )
} }
......
...@@ -33,7 +33,11 @@ module TestCodec_GeoNetworking { ...@@ -33,7 +33,11 @@ module TestCodec_GeoNetworking {
// import from LibItsSecurity_Templates all; // import from LibItsSecurity_Templates all;
// import from LibItsSecurity_Functions all; // import from LibItsSecurity_Functions all;
// import from LibItsSecurity_Pixits all; // import from LibItsSecurity_Pixits all;
//
// LibItsBtp
import from LibItsBtp_TypesAndValues all;
import from LibItsBtp_Templates all;
// LibItsGeoNetworking // LibItsGeoNetworking
import from LibItsGeoNetworking_TypesAndValues all; import from LibItsGeoNetworking_TypesAndValues all;
import from LibItsGeoNetworking_Templates all; import from LibItsGeoNetworking_Templates all;
...@@ -169,12 +173,9 @@ module TestCodec_GeoNetworking { ...@@ -169,12 +173,9 @@ module TestCodec_GeoNetworking {
template (value) GnNonSecuredPacket m_geoNwBeaconPacket_payload( template (value) GnNonSecuredPacket m_geoNwBeaconPacket_payload(
in template (value) LongPosVector p_sourceLongPosVec, in template (value) LongPosVector p_sourceLongPosVec,
in template (value) octetstring p_payload in template (value) GnRawPayload p_payload
) modifies m_geoNwBeaconPacket := { ) modifies m_geoNwBeaconPacket := {
payload := { payload := p_payload
decodedPayload := omit,
rawPayload := p_payload
}
} }
/** /**
...@@ -504,6 +505,7 @@ module TestCodec_GeoNetworking { ...@@ -504,6 +505,7 @@ module TestCodec_GeoNetworking {
TestGeoNetworkingReq( TestGeoNetworkingReq(
v_gnReq, v_gnReq,
false); false);
v_gnReq.msgOut.gnPacket.packet.payload := omit
TestDecodeGeoNetworkingReq( TestDecodeGeoNetworkingReq(
v_gnReq, v_gnReq,
v_buffer v_buffer
...@@ -534,6 +536,7 @@ module TestCodec_GeoNetworking { ...@@ -534,6 +536,7 @@ module TestCodec_GeoNetworking {
TestGeoNetworkingReq( TestGeoNetworkingReq(
v_gnReq, v_gnReq,
false); false);
v_gnReq.msgOut.gnPacket.packet.payload := omit
TestDecodeGeoNetworkingReq( TestDecodeGeoNetworkingReq(
v_gnReq, v_gnReq,
v_buffer v_buffer
...@@ -544,7 +547,26 @@ module TestCodec_GeoNetworking { ...@@ -544,7 +547,26 @@ module TestCodec_GeoNetworking {
} // End of group testGeoNetMessages } // End of group testGeoNetMessages
group testGeoNetPort { group testGeoNetPort {
/**
* @desc Receive template for GeoNetworking DENM 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_geoNwTsbPacketWithNextHeader_cam(
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (present) UInt8 p_hopLimit := ?,
in template (value) NextHeader p_nextHeader
) modifies mw_geoNwShbPacket := {
commonHeader := mw_commonHeaderWithHopLimit(
p_nextHeader,
m_shbHeaderType,
p_hopLimit
),
payload := ?
} // End of template mw_geoNwTsbPacketWithNextHeader_cam
/** /**
* @desc validate GeoNetworkingReq/Broadcast * @desc validate GeoNetworkingReq/Broadcast
* @verdict Pass on success, Fail otherwise * @verdict Pass on success, Fail otherwise
...@@ -553,6 +575,7 @@ module TestCodec_GeoNetworking { ...@@ -553,6 +575,7 @@ module TestCodec_GeoNetworking {
var GeoNetworkingReq v_gnReq; var GeoNetworkingReq v_gnReq;
var ExtendedHeader v_header; var ExtendedHeader v_header;
var boolean v_got_it := false; var boolean v_got_it := false;
var GeoNetworkingInd v_msg;
if (PX_GN_UPPER_LAYER != e_any) { if (PX_GN_UPPER_LAYER != e_any) {
log("PX_GN_UPPER_LAYER shall be set to e_any"); log("PX_GN_UPPER_LAYER shall be set to e_any");
...@@ -572,13 +595,40 @@ module TestCodec_GeoNetworking { ...@@ -572,13 +595,40 @@ module TestCodec_GeoNetworking {
geoNetworkingPort.send(v_gnReq); geoNetworkingPort.send(v_gnReq);
tc_ac.start; tc_ac.start;
alt { alt {
[v_got_it == false] geoNetworkingPort.receive(mw_geoNwInd(?)) { [] geoNetworkingPort.receive(
v_got_it := true; mw_geoNwInd(
setverdict(pass); mw_geoNwPdu(
mw_geoNwTsbPacketWithNextHeader_cam(
-,
-,
e_btpB
)))) {
if (v_got_it == false) {
v_got_it := true;
setverdict(pass);
}
repeat;
}
[] geoNetworkingPort.receive(
mw_geoNwInd(
mw_geoNwPdu(
mw_geoNwLsRequestPacket(
?,
?
)))) -> value v_msg {
log(
valueof(
v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector
));
repeat; repeat;
} }
[] geoNetworkingPort.receive(mw_geoNwInd(?)) {
setverdict(fail);
}
[] tc_ac.timeout { [] tc_ac.timeout {
setverdict(fail, "Expected message not received1"); if (v_got_it == false) {
setverdict(inconc, "Expected message not received1");
}
} }
} }
......
module TestCodec_Multiport {
// LibCommon
import from LibCommon_BasicTypesAndValues all;
import from LibCommon_DataStrings all;
// LibIts
// import from ITS_Container language "ASN.1:1997" all;
// import from CAM_PDU_Descriptions language "ASN.1:1997"all;
// import from DENM_PDU_Descriptions language "ASN.1:1997" all;
// LibItsCommon
// import from LibItsCommon_TypesAndValues all;
// import from LibItsCommon_Functions all;
// LibItsExternal
import from LibItsExternal_TypesAndValues all;
// LibItsCam
// import from LibItsCam_TypesAndValues all;
import from LibItsCam_TestSystem all;
// import from LibItsCam_Templates {
// template m_camReq;
// group camTemplateFunctions
// };
//
// LibItsDenm
// import from LibItsDenm_Templates all;
import from LibItsDenm_TestSystem all;
//
// // LibItsSecurity
// import from LibItsSecurity_TypesAndValues all;
// import from LibItsSecurity_Templates all;
// import from LibItsSecurity_Functions all;
// import from LibItsSecurity_Pixits all;
//
// LibItsGeoNetworking
import from LibItsGeoNetworking_TypesAndValues all;
import from LibItsGeoNetworking_Templates all;
import from LibItsGeoNetworking_Functions all;
import from LibItsGeoNetworking_TestSystem all;
import from LibItsGeoNetworking_Pixits all;
import from LibItsGeoNetworking_Pics all;
import from LibItsGeoNetworking_EncdecDeclarations all;
// TestCodec
import from TestCodec_TestAndSystem all;
/*type component MultiplePorts extends ItsBaseComponent {
port GeoNetworkingPort;
port CamPort;
port DenmPort;
//component variables
var CamInd vc_camMsg;
var DenmInd vc_camMsg;
var GeoNetworkingInd vc_camMsg;
//default
var default vc_default := null;
//global variables
var boolean vc_camReceived := false;
var UtCamEventIndList vc_utEvents := {};
var boolean vc_utDefaultActive := true;
var boolean vc_camDefaultActive := true;
var boolean vc_denmDefaultActive := true;
var boolean vc_geoNetworkingDefaultActive := true;
} // End of component ItsCam
*/
group LibItsGeoNetworking_testCases {
group LibItsGeoNetworking_DummyTemplates {
/**
* @desc Dummy template for GN_Address
*/
template (value) GN_Address m_dummyGnAddrIut := {
typeOfAddress := e_manual,
stationType := e_roadSideUnit,
stationCountryCode := 33,
mid := 'a4fedecabeef'O
}
/**
* @desc Dummy template for long position vector
*/
template (value) LongPosVector m_dummyLongPosVectorIut := {
gnAddr := m_dummyGnAddrIut,
timestamp_ := 123456,
latitude := 4856,
longitude := 675,
pai := '1'B,
speed := 55,
heading := 9876
}
template (value) GN_Address m_dummyGnAddrNodeA := {
typeOfAddress := e_manual,
stationType := e_pedestrian,
stationCountryCode := 49,
mid := 'a4fdea5ea5ed'O
}
template (value) GN_Address m_dummyGnAddrNodeB := {
typeOfAddress := e_manual,
stationType := e_specialVehicle,
stationCountryCode := 50,
mid := 'a40102030405'O
}
template (value) GN_Address m_dummyGnAddrNodeC := {
typeOfAddress := e_manual,
stationType := e_moped,
stationCountryCode := 42,
mid := 'deadbabebeef'O
}
template (value) LongPosVector m_dummyLongPosVectorNodeA := {
gnAddr := m_dummyGnAddrNodeA,
timestamp_ := 875,
latitude := 265,
longitude := 789,
pai := '0'B,
speed := 80,
heading := 548
}
template (value) LongPosVector m_dummyLongPosVectorNodeB := {
gnAddr := m_dummyGnAddrNodeB,
timestamp_ := 4585,
latitude := 126,
longitude := 123,
pai := '0'B,
speed := 45,
heading := 125
}
template (value) LongPosVector m_dummyLongPosVectorNodeC := {
gnAddr := m_dummyGnAddrNodeC,
timestamp_ := 23644,
latitude := 23754,
longitude := 49645,
pai := '0'B,
speed := 110,
heading := 23
}
template (value) ShortPosVector m_dummyShortPosVectorNodeC := {
gnAddr := m_dummyGnAddrNodeC,
timestamp_ := 23644,
latitude := 23754,
longitude := 49645
}
template (value) Area m_dummyArea1 := {
geoAreaPosLatitude := 298376,
geoAreaPosLongitude := 32745,
distanceA := 1234,
distanceB := 5678,
angle := 9123
}
template (value) Area m_dummyArea2 := {
geoAreaPosLatitude := 873548,
geoAreaPosLongitude := 2837,
distanceA := 8765,
distanceB := 4321,
angle := 4567
}
template (value) GeoBroadcastArea m_dummyGeoBroadcastArea1 := {
geoBroadcastSubType := e_geoBroadcastRect,
geoBroadcastArea := m_dummyArea1
}
template (value) GeoBroadcastArea m_dummyGeoBroadcastArea2 := {
geoBroadcastSubType := e_geoBroadcastElip,
geoBroadcastArea := m_dummyArea2
}
template (value) GeoAnycastArea m_dummyGeoAnycastArea1 := {
geoAnycastSubType := e_geoAnycastCircle,
geoAnycastArea := m_dummyArea1
}
template (value) GeoAnycastArea m_dummyGeoAnycastArea2 := {
geoAnycastSubType := e_geoAnycastRect,
geoAnycastArea := m_dummyArea2
}
template (value) GnNonSecuredPacket m_geoNwBeaconPacket_payload(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) GnRawPayload p_payload
) modifies m_geoNwBeaconPacket := {
payload := p_payload
}
/**
* @desc Send template for GeoUnicast header
* @param p_sourceLongPosVec Long position vector of source
* @param p_destinationLongPosVec Long position vector of destination
* @param p_senderLongPosVec Long position vector of sender
* @param p_seqNumber Sequence number of GeoUnicast packet
*/
template (value) ExtendedHeader m_geoUnicastHeaderGeoNetworking(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) ShortPosVector p_dstPosVector,
in template (value) UInt16 p_seqNumber
) := {
geoUnicastHeader := {
seqNumber := p_seqNumber,
reserved := c_uInt8Zero,
srcPosVector := p_sourceLongPosVec,
dstPosVector := p_dstPosVector
}
}
template (value) GeoNetworkingInd m_geoNwInd_withLinkLayerDestination(
in template (value) GeoNetworkingPdu p_geoNwMsg,
in template (value) MacAddress p_llDestinationAdress := 'FFFFFFFFFFFF'O,
in template (value) Bit256 p_ssp := int2bit(0, 256),
in template (value) UInt32 p_its_aid := 0
) := {
msgIn := p_geoNwMsg,
macDestinationAddress := p_llDestinationAdress,
ssp := p_ssp,
its_aid := p_its_aid
}
} // End of group LibItsGeoNetworking_DummyTemplates
group testMultiPort {
/**
* @desc validate GeoNetworkingReq/Broadcast
* @verdict Pass on success, Fail otherwise
*/
testcase tc_GeoNet_Port() runs on ItsGeoNetworking system ItsGeoNetworkingSystem {
var GeoNetworkingReq v_gnReq;
var ExtendedHeader v_header;
if (PX_GN_UPPER_LAYER != e_any) {
log("PX_GN_UPPER_LAYER shall be set to e_any");
stop;
}
map(self:geoNetworkingPort, system:geoNetworkingPort);
v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast(
m_geoNwPdu(
m_geoNwBroadcastPacket(
m_dummyLongPosVectorNodeB,
3456,
m_dummyGeoBroadcastArea1
))));
geoNetworkingPort.send(v_gnReq);
tc_ac.start;
alt {
[] geoNetworkingPort.receive(mw_geoNwInd(?)) {
setverdict(pass);
}
[] tc_ac.timeout {
setverdict(fail, "Expected message not received1");
}
}
unmap(self:geoNetworkingPort, system:geoNetworkingPort);
}
} // End of group testMultiPort
} // End of group LibItsGeoNetworking_testCases
} // End of module
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment