Commit 348db38f authored by YannGarcia's avatar YannGarcia
Browse files

Add f_adaptPayload function in case of BTP/GN layers merged together

parent 298531f4
Loading
Loading
Loading
Loading
+56 −48
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ module ItsGeoNetworking_TpFunctions {
                // Preamble
                f_prNeighbour();
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB));
                
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket)));
                
                f_sleep(PX_TAC);
@@ -373,15 +373,14 @@ module ItsGeoNetworking_TpFunctions {
                    // Local variables
                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB);
                    var UInt8 v_hopLimit := f_getDefaultHopLimit();
                    var template (value) GeoNetworkingPdu v_gnPacket;
                    
                    // Preamble
                    f_prNeighbour();
                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                    
                    // Test Body
                    f_sendGeoNetMessage(
                        valueof(m_geoNwReq_linkLayerBroadcast(
                            m_geoNwPdu(
                    v_gnPacket := m_geoNwPdu(
                                m_geoNwTsbPacket(
                                    vc_localSeqNumber,
                                    v_longPosVectorNodeB,
@@ -389,9 +388,9 @@ module ItsGeoNetworking_TpFunctions {
                                ),
                                -,
                                v_hopLimit
                            )
                        )
                    ));
                            );
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket)));
                    
                    tc_noac.start;
                    alt {
@@ -1387,10 +1386,13 @@ module ItsGeoNetworking_TpFunctions {
                 * @desc    Function including second preamble part (TC_GEONW_PON_LOT_BV_03)
                 */
                function f_TP_GEONW_PON_LOT_BV_03_pre_2(in template (value) GnNonSecuredPacket p_packet) runs on ItsGeoNetworking {
                    var template (value) GeoNetworkingPdu v_gnPacket;
                   
                    //preamble part II
                    v_gnPacket := m_geoNwPdu(p_packet, -, c_hopLimit1);
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(
                        valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(p_packet, -, c_hopLimit1)))
                        valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket))
                    );
                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                } // End of function f_TP_GEONW_PON_LOT_BV_03_pre_2
@@ -1582,6 +1584,7 @@ module ItsGeoNetworking_TpFunctions {
                    // Local variables
                    var LongPosVector v_longPosVectorNodeB;
                    var LongPosVector v_obsoleteLongPosVectorNodeB;
                    var template (value) GeoNetworkingPdu v_gnPacket;
                
                    // Test control
                    if (not PICS_GN_TSB_DST) {
@@ -1722,8 +1725,11 @@ module ItsGeoNetworking_TpFunctions {
                 * @desc    Function including second preamble part (TC_GEONW_PON_LOT_BV_05)
                 */
                function f_TP_GEONW_PON_LOT_BV_05_pre_2(in template (value) GnNonSecuredPacket p_packet) runs on ItsGeoNetworking {
                    var template (value) GeoNetworkingPdu v_gnPacket;
                   
                    //preamble part II
                    v_gnPacket := m_geoNwPdu(p_packet);
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(
                        valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(p_packet)))
                    );
@@ -5782,15 +5788,14 @@ module ItsGeoNetworking_TpFunctions {
                    
                    // Local variables
                    var LongPosVector v_longPosVectorNodeC := f_getPosition(c_compNodeC);
                    var template (value) GeoNetworkingPdu v_gnPacket;
                   
                    // Preamble
                    f_prNonNeighbour();
                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                    
                    // Test Body
                    f_sendGeoNetMessage(
                        valueof(m_geoNwReq_linkLayerBroadcast(
                            m_geoNwPdu(
                    v_gnPacket := m_geoNwPdu(
                                m_geoNwTsbPacket(
                                    vc_localSeqNumber,
                                    v_longPosVectorNodeC,
@@ -5799,9 +5804,9 @@ module ItsGeoNetworking_TpFunctions {
                                ),
                                -,
                                c_defaultHopLimit
                            )
                        )
                    ));
                            );
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket)));
                    
                    tc_ac.start;
                    alt {
@@ -5908,6 +5913,7 @@ module ItsGeoNetworking_TpFunctions {
                // Local variables
                var LongPosVector v_longPosVectorIut;
                var LongPosVector v_longPosVectorNodeB;
                var template (value) GeoNetworkingPdu v_gnPacket;
                var GeoNetworkingInd v_geoNetInd;
                var GN_Address v_iutGnAddress := valueof(m_dummyGnAddr);
                
@@ -5950,7 +5956,9 @@ module ItsGeoNetworking_TpFunctions {
                
                // Test Body
                v_longPosVectorNodeB.gnAddr := v_iutGnAddress;
                f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB), -, c_hopLimit1))));
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB), -, c_hopLimit1);
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket)));
                
                f_sleep(0.5);
                
@@ -13136,24 +13144,23 @@ module ItsGeoNetworking_TpFunctions {
                    
                    // Local variables
                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB);
                    var template (value) GeoNetworkingPdu v_gnPacket;
                    
                    // Preamble
                    f_prNeighbour();
                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                    
                    // Test Body
                    f_sendGeoNetMessage(
                        m_geoNwReq_linkLayerBroadcast(
                            m_geoNwPdu(
                    v_gnPacket := m_geoNwPdu(
                                m_geoNwTsbPacket(
                                                vc_localSeqNumber,
                                    v_longPosVectorNodeB
                                            ),
                                            -,
                                            c_defaultHopLimit
                            )
                        )
                            );
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket));
                    
                    tc_ac.start;
                    alt {
@@ -13268,15 +13275,14 @@ module ItsGeoNetworking_TpFunctions {
                    
                    // Local variables
                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB);
                    var template (value) GeoNetworkingPdu v_gnPacket;
                
                    // Preamble
                    f_prNeighbour();
                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                    
                    // Test Body
                    f_sendGeoNetMessage(
                        m_geoNwReq_linkLayerBroadcast(
                            m_geoNwPdu(
                    v_gnPacket := m_geoNwPdu(
                                m_geoNwTsbPacket(
                                            vc_localSeqNumber,
                                    v_longPosVectorNodeB,
@@ -13284,9 +13290,9 @@ module ItsGeoNetworking_TpFunctions {
                                ),
                                -,
                                c_defaultHopLimit
                            )
                        )
                            );
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket));
                    
                    tc_ac.start;
                    alt {
@@ -13438,24 +13444,23 @@ module ItsGeoNetworking_TpFunctions {
                    
                    // Local variables
                    var LongPosVector v_longPosVectorNodeB := f_getPosition(c_compNodeB);
                    var template (value) GeoNetworkingPdu v_gnPacket;
                    
                    // Preamble
                    f_prNeighbour();
                    f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                    
                    // Test Body
                    f_sendGeoNetMessage(
                        m_geoNwReq_linkLayerBroadcast(
                            m_geoNwPdu(
                    v_gnPacket := m_geoNwPdu(
                                m_geoNwTsbPacket(
                                    vc_localSeqNumber,
                                    v_longPosVectorNodeB
                                ),
                                -,
                                1
                            )
                        )
                            );
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket));
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    
                    // Postamble
@@ -13538,6 +13543,7 @@ module ItsGeoNetworking_TpFunctions {
                                            v_longPosVectorNodeB
                                        )
                                    );
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket));
                
                f_sleep(PX_TAC);
@@ -13619,7 +13625,7 @@ module ItsGeoNetworking_TpFunctions {
                                      -,
                                      c_defaultHopLimit
                                  );
                    
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(valueof(v_gnPacket)));
                    v_gnPacket.basicHeader.routerHopLimit := ?;
                    tc_noac.start;
@@ -13785,6 +13791,7 @@ module ItsGeoNetworking_TpFunctions {
                                            -,
                                            c_defaultHopLimit
                                        );
                    v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                    f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(valueof(v_gnPacket)));
                    
                    tc_ac.start;
@@ -14043,6 +14050,7 @@ module ItsGeoNetworking_TpFunctions {
                
                // Test Body                    
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB));
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket));
                
                f_sleep(PX_TAC);
+2860 −2836
Original line number Diff line number Diff line
@@ -220,6 +220,8 @@ module LibItsGeoNetworking_Functions {
      var ItsGeoNetworking v_component;
      var integer i;
            
      log(">>> f_cf02Up: p_mainUtComponent: ", p_mainUtComponent);

      // Select components
      vc_componentTable := {{c_compNodeB, omit}, {c_compNodeD, omit}};
            
@@ -231,6 +233,7 @@ module LibItsGeoNetworking_Functions {
      // Map & Connect
      map(self:acPort, system:acPort);
      map(self:utPort, system:utPort);
      map(self:geoNetworkingPort, system:geoNetworkingPort);
      connect(self:syncPort, mtc:syncPort);
      for(i:=0; i < lengthof(vc_componentTable); i:=i+1) {
        map(vc_componentTable[i].gnComponent:acPort, system:acPort);
@@ -247,10 +250,12 @@ module LibItsGeoNetworking_Functions {
        f_initialiseSecuredMode();
                
        // MTC intializes IUT
        log("f_cf02Up: start f_initialState for: ", p_mainUtComponent);
        f_initialState(p_scenario);
      }
      else {
        v_component := f_getComponent(p_mainUtComponent);
        log("f_cf02Up: start f_initialState for: ", p_mainUtComponent);
        v_component.start(f_initialState(p_scenario));
        v_component.done;
      }
@@ -291,6 +296,7 @@ module LibItsGeoNetworking_Functions {
      }
      unmap(self:acPort, system:acPort);
      unmap(self:utPort, system:utPort);
      unmap(self:geoNetworkingPort, system:geoNetworkingPort);
      disconnect(self:syncPort, mtc:syncPort);
            
        } // End of function f_cf02Down
@@ -2614,6 +2620,24 @@ module LibItsGeoNetworking_Functions {
    
  group waitingHelpers {
    
    /**
     * @desc  Adapt the GN payload in case of BTP-A/B
     * @return The adapated GN payload if PX_GN_UPPER_LAYER is set to BTP-A/B, the unchanged payload otherwise
     */
    function  f_adapPayload(
                            in GnRawPayload p_payload,
                            in integer p_dest_port := 0,
                            in integer p_info_port := 0
                            ) return GnRawPayload {

      if ((PX_GN_UPPER_LAYER == e_btpA) or (PX_GN_UPPER_LAYER == e_btpB)) {
        var GnRawPayload v_btp_payload := int2oct(p_dest_port, 2) & int2oct(p_info_port, 2); // Add BTP payload
        return v_btp_payload & p_payload;
      }

      return p_payload;
    }

    /**
     * @desc  Wait for GN message with security containing certificate as a signer info
     * @return the certificate used for sign received message
+3 −3
Original line number Diff line number Diff line
@@ -102,6 +102,9 @@ module LibItsGeoNetworking_TestSystem {
        port UpperTesterPort utPort;
        port AdapterControlPort acPort;
        
        // NT2 ports
        port GeoNetworkingPort geoNetworkingPort;
        
        // UT indications
        var UtGnEventIndList vc_utInds := {};
        
@@ -116,9 +119,6 @@ module LibItsGeoNetworking_TestSystem {
     */
    type component ItsGeoNetworking extends ItsBaseGeoNetworking {
        
        // NT2 ports
        port GeoNetworkingPort geoNetworkingPort;
        
        //variables for Gn
        var UInt16 vc_localSeqNumber := 0; 
        var PositionTable vc_positionTable := {};