Commit e5167519 authored by Yann Garcia's avatar Yann Garcia
Browse files

Merge branch 'master' into 'TTF_T036'

Merge master to TTF T036 to keep all ATS s aligned

See merge request !4
parents 77bc2781 8a3c78b1
Loading
Loading
Loading
Loading
+1379 −1130

File changed.

Preview size limit exceeded, changes collapsed.

+270 −272
Original line number Diff line number Diff line
/**
 *  @author     ETSI / STF405 / STF449 / STF484
 *  @author     ETSI / STF405 / STF449 / STF484 / TTF T042
 *  @version    $URL$
 *              $Id$
 *  @desc       Test Control file for GeoNetworking
@@ -378,7 +378,6 @@ module ItsGeoNetworking_TestControl {

            if(PICS_GN_AREA_FORWARDING_ALGORITHM == e_advanced) {

				if(PICS_GN_GBC_FWD) {
                execute(TC_GEONW_PON_GBC_AREA_ADV_BV_21());
                execute(TC_GEONW_PON_GBC_AREA_ADV_BV_23());
                execute(TC_GEONW_PON_GBC_AREA_ADV_BV_24());
@@ -389,7 +388,6 @@ module ItsGeoNetworking_TestControl {
                execute(TC_GEONW_PON_GBC_AREA_ADV_BV_29());
            }
        }
        }

        /* PON/TSB */
        if(PICS_GN_TSB) {
+17237 −17120
Original line number Diff line number Diff line
/**
 *  @author     ETSI / STF405 / STF449 / STF484 / STF525
 *  @author     ETSI / STF405 / STF449 / STF484 / STF525 / TTF T042
 *  @version    $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsGeoNetworking/ItsGeoNetworking_TpFunctions.ttcn $
 *              $Id: ItsGeoNetworking_TpFunctions.ttcn,v 1.5 2019/08/05 15:18:56 dte Exp $
 *  @desc       GeoNetworking TP Functions
@@ -108,7 +108,7 @@ module ItsGeoNetworking_TpFunctions {
                
                // Preamble
                f_prNeighbour();
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB));
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB, m_mccMco));
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket)));
                
@@ -235,7 +235,7 @@ module ItsGeoNetworking_TpFunctions {
                    [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwShbPacket))) -> value v_geoNwInd {
                        tc_ac.stop;
                        if(ispresent(v_geoNwInd.msgIn.gnPacket.packet.payload)) {
                            if(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength == lengthof(v_geoNwInd.msgIn.gnPacket.packet.payload)) {
                            if(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength == lengthof(v_payload)) {
                                log("*** " & testcasename() & ": PASS: PL field correctly indicates payload size ***");
                                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                            }
@@ -243,7 +243,7 @@ module ItsGeoNetworking_TpFunctions {
                                log("*** " & testcasename() & ": FAIL: PL does correctly not indicate payload size ("
                                    & int2str(v_geoNwInd.msgIn.gnPacket.packet.commonHeader.plLength)
                                    & " != "
                                    & int2str(lengthof(v_geoNwInd.msgIn.gnPacket.packet.payload))
                                    & int2str(lengthof(v_payload))
                                    & ")***");
                                f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                            }
@@ -920,6 +920,122 @@ module ItsGeoNetworking_TpFunctions {
                
            } // End of function f_GEONW_FDV_SHB_BV_01
            
            /**
             * @desc    TP Function for TC_GEONW_FDV_SHB_BV_02
             */
            function f_GEONW_FDV_SHB_BV_02() runs on ItsGeoNetworking {
                
                // Local variables
                var LongPosVector v_longPosVectorIut;
                
                // Test control
                if (not PICS_GN_SHB_SRC or PICS_RADIO_COMM != e_its_g5) {
                    log("*** " & testcasename() & ": PICS_GN_SHB_SRC and PICS_RADIO_COMM != e_its_g5 required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01Up();
                
                // Test adapter configuration
                
                // Preamble
                v_longPosVectorIut := f_getPosition(c_compIut);
                f_prNeighbour();
                f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                
                // Test Body
                if ( not f_utTriggerEvent(m_generateShbMessage) ) {
                    log("*** " & testcasename() & ": INCONC: Trigger failed ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                }
                tc_ac.start;
                alt {
                    [] geoNetworkingPort.receive(
                            mw_geoNwInd(
                                mw_geoNwPdu(
                                    mw_geoNwShbPacket(
                                      mw_longPosVectorPosition(v_longPosVectorIut), // SOPV
                                      1 //MHL
                                    )
                                )
                            )
                        ) {
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Fields of the received SHB message correctly set ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: SHB message not received ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_poNeighbour();
                f_cf01Down();
                
            } // End of function f_GEONW_FDV_SHB_BV_02
            
            /**
             * @desc    TP Function for TC_GEONW_FDV_SHB_BV_03
             */
            function f_GEONW_FDV_SHB_BV_03() runs on ItsGeoNetworking {
                
                // Local variables
                var LongPosVector v_longPosVectorIut;
                
                // Test control
                if (not PICS_GN_SHB_SRC or PICS_RADIO_COMM != e_lte_cv2x) {
                    log("*** " & testcasename() & ": PICS_GN_SHB_SRC and PICS_RADIO_COMM != e_lte_cv2x required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cf01Up();
                
                // Test adapter configuration
                
                // Preamble
                v_longPosVectorIut := f_getPosition(c_compIut);
                f_prNeighbour();
                f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                
                // Test Body
                if ( not f_utTriggerEvent(m_generateShbMessage) ) {
                    log("*** " & testcasename() & ": INCONC: Trigger failed ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                }
                tc_ac.start;
                alt {
                    [] geoNetworkingPort.receive(
                            mw_geoNwInd(
                                mw_geoNwPdu(
                                    mw_geoNwShbPacket_c_v2x(
                                      mw_longPosVectorPosition(v_longPosVectorIut), // SOPV
                                      1 //MHL
                                    )
                                )
                            )
                        ) {
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Fields of the received SHB message correctly set ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: SHB message not received ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_poNeighbour();
                f_cf01Down();
                
            } // End of function f_GEONW_FDV_SHB_BV_03
            
        } // end geoFdvSingleHopBroadcast
        
        // 6.2.1.8
@@ -934,8 +1050,8 @@ module ItsGeoNetworking_TpFunctions {
                var LongPosVector v_longPosVectorIut;
                
                // Test control
                if (not PICS_GN_TSB_SRC) {
                    log("*** " & testcasename() & ": PICS_GN_TSB_SRC required for executing the TC ***");
                if (not PICS_GN_TSB_SRC or PICS_RADIO_COMM != e_its_g5) {
                    log("*** " & testcasename() & ": PICS_GN_TSB_SRC and PICS_RADIO_COMM == e_its_g5 required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
@@ -1294,7 +1410,8 @@ module ItsGeoNetworking_TpFunctions {
                    
                    f_TP_GEONW_PON_LOT_BV_03_pre_2(
                        m_geoNwShbPacket(
                            v_longPosVectorNode
                            v_longPosVectorNode,
                            m_mccMco
                        )
                    );
                    
@@ -1629,7 +1746,8 @@ module ItsGeoNetworking_TpFunctions {
                    
                    f_TP_GEONW_PON_LOT_BV_05_pre_2(
                        m_geoNwShbPacket(
                            v_obsoleteLongPosVectorNodeB
                            v_obsoleteLongPosVectorNodeB,
                            m_mccMco
                        )
                    );
                    
@@ -3165,7 +3283,6 @@ module ItsGeoNetworking_TpFunctions {
                        f_selfOrClientSyncAndVerdict(c_prDone, e_timeout);
                    }
                }
                f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                
                // Test Body
                //Send LS-REPLY after LT2 expiry
@@ -5961,7 +6078,7 @@ module ItsGeoNetworking_TpFunctions {
                
                // Test Body
                v_longPosVectorNodeB.gnAddr := v_iutGnAddress;
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB), -, c_hopLimit1);
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB, m_mccMco), -, c_hopLimit1);
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(valueof(m_geoNwReq_linkLayerBroadcast(v_gnPacket)));
                
@@ -14054,7 +14171,7 @@ module ItsGeoNetworking_TpFunctions {
                f_selfOrClientSyncAndVerdict(c_prDone, e_success);
                
                // Test Body                    
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB));
                v_gnPacket := m_geoNwPdu(m_geoNwShbPacket(v_longPosVectorNodeB, m_mccMco));
                v_gnPacket.gnPacket.packet.payload := f_adapPayload(valueof(v_gnPacket.gnPacket.packet.payload));
                f_sendGeoNetMessage(m_geoNwReq_linkLayerBroadcast(v_gnPacket));
                

LICENSE

0 → 100644
+23 −0
Original line number Diff line number Diff line
Copyright 2023 ETSI

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, 
   this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, 
   this list of conditions and the following disclaimer in the documentation 
   and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors 
   may be used to endorse or promote products derived from this software without 
   specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
OF THE POSSIBILITY OF SUCH DAMAGE.
+2 −2
Original line number Diff line number Diff line
# GeoNetworking Abstract Test suite (TS 102 871-3)

GeoNetworking (GN) abstract test suite (ATS) as defined in [ETSI TS 102 871-3 v1.5.1](https://www.etsi.org/deliver/etsi_ts/102800_102899/10287103/01.05.01_60/ts_10287103v010501p.pdf)
GeoNetworking (GN) abstract test suite (ATS) as defined in [ETSI TS 102 871-3 v2.1.1](https://www.etsi.org/deliver/etsi_ts/102800_102899/10287103/02.01.01_60/ts_10287103v020101p.pdf)

This code is a part of the ETSI ITS test suite, available on https://forge.etsi.org/rep/ITS/TS.ITS

This version of the test suite was developed by the _TTF-011_ and published as version **v1.5.1**
This version of the test suite was developed by the _TTF-042_ and published as version **v2.1.1**
Loading