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

Simplify Payload for GeoNetworking & BTP

==> Check TODO in Security ATS
parent ff4945fe
Loading
Loading
Loading
Loading
+6 −22
Original line number Original line Diff line number Diff line
@@ -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 {
	  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 {
	  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 {
      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 {
	  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 {
		      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 {
		      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 {
		   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 {
			  BtpReq : { msgOut := m_btpA_With_Payload ( 
			  BtpReq : { msgOut := m_btpA_With_Payload ( 
								 1234,
								 1234,
								 0,
								 0,
								 omit, 
								 'CAFEDECA'O 
								 'CAFEDECA'O 
								  )
								  )
			    }
			    }
+61 −11
Original line number Original line Diff line number Diff line
@@ -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 {


      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 {
	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 {
	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
@@ -545,6 +548,25 @@ module TestCodec_GeoNetworking {
        
        
    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 {
	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 {
	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(
				       mw_geoNwInd(
						   mw_geoNwPdu(
							       mw_geoNwTsbPacketWithNextHeader_cam(
												   -,
												   -,
												   e_btpB
												   )))) {
	    if (v_got_it == false) {
	      v_got_it := true;
	      v_got_it := true;
	      setverdict(pass);
	      setverdict(pass);
	    }
	    repeat;
	    repeat;
	  }
	  }
	  [] geoNetworkingPort.receive(
				       mw_geoNwInd(
						   mw_geoNwPdu(
							       mw_geoNwLsRequestPacket(
										       ?,
										       ?
										       )))) -> value v_msg {
	    log(
		valueof(
			v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector
			));
	    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");
	    }
	  }
	  }
	}
	}
                
                
+283 −0
Original line number Original line Diff line number Diff line
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