Commit 9030bde4 authored by tepelmann's avatar tepelmann
Browse files

Updated to TS 102 871-2 v2.1.1 excluding the following unimplemented 17 testcases for now:

TC_GEONW_PON_GBC_BV_16-19,
TC_GEONW_PON_GAC_BV_11,
TC_GEONW_PON_BCA_BV_01-04,
TC_GEONW_PON_BAA_BV_01-08.
parent 83d134ca
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -592,7 +592,7 @@ module LibItsGeoNetworking_Functions {
        ) runs on ItsGeoNetworking 
        return LongPosVector {
            
            var LongPosVector v_return;
            var LongPosVector v_return := null;
            var integer i := 0;
            
            for (i:=0; i<lengthof(vc_positionTable); i:=i+1) {
@@ -601,7 +601,7 @@ module LibItsGeoNetworking_Functions {
                }
            }
            
            if(v_return.timestamp == 0) {
            if((v_return != null) and (v_return.timestamp == 0)) {
                v_return.timestamp := f_computeGnTimestamp();
            }
            return v_return;
@@ -976,22 +976,25 @@ module LibItsGeoNetworking_Functions {
             * @param   p_srcLongPosVec     Expected source position vector
             * @param   p_seqNumber         Expected sequence number
             * @param   p_broadcastArea     Expected geoBroadcastArea
             * @param   p_hopLimit          Expected hop limit
             * @param   p_routerHopLimit    Expected router hop limit
             * @param   p_maxHopLimit       Expected max hop limit (Default: ?)
             */
            altstep a_receiveGeoBroadcastWithAreaWithHopLimit(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoBroadcastArea p_broadcastArea,
                in template (present) UInt8 p_hopLimit
                in template (present) UInt8 p_routerHopLimit,
                in template (present) UInt8 p_maxHopLimit := ?
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithArea(
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwBroadcastPacketWithAreaAndHl(
                        p_srcLongPosVec,
                        p_seqNumber,
                        p_broadcastArea
                        p_broadcastArea,
                        p_maxHopLimit
                      ),
                      -,
                      p_hopLimit
                      p_routerHopLimit
                    ))) {
                }
            }
@@ -1046,12 +1049,14 @@ module LibItsGeoNetworking_Functions {
             * @param   p_seqNumber         Expected sequence number
             * @param   p_anycastArea       Expected geoAnycastArea
             * @param   p_hopLimit          Expected hop limit
             * @param   p_maxHopLimit       Expected max hop limit (Default: ?)
             */
            altstep a_receiveGeoAnycastWithAreaWithHopLimit(
                in template (present) LongPosVector p_srcLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoAnycastArea p_anycastArea,
                in template (present) UInt8 p_hopLimit
                in template (present) UInt8 p_hopLimit,
                in template (present) UInt8 p_maxHopLimit := ?
            ) runs on ItsGeoNetworking {
                
                [] geoNetworkingPort.receive(mw_geoNwInd(mw_geoNwPdu(mw_geoNwAnycastPacketWithArea(
@@ -1864,8 +1869,13 @@ module LibItsGeoNetworking_Functions {
         * @desc    Get IUT's short position vector
         * @return  IUT's short position vector
         */
        function f_getIutShortPosVector() runs on ItsBaseGeoNetworking return ShortPosVector {
            return f_longPosVector2ShortPosVector(f_getIutLongPosVector()); 
        function f_getIutShortPosVector() runs on ItsGeoNetworking return ShortPosVector {
            var LongPosVector v_longPosVectorIut := f_getPosition(c_compIut);
            
            if (v_longPosVectorIut == null) {
                v_longPosVectorIut := f_getIutLongPosVector();
            }
            return f_longPosVector2ShortPosVector(v_longPosVectorIut); 
        }
        
        /**
+114 −52
Original line number Diff line number Diff line
@@ -532,17 +532,19 @@ module LibItsGeoNetworking_Templates {
             * @param   p_sourceLongPosVec          Long position vector of source 
             * @param   p_destinationShortPosVec    Short position vector of destination 
             * @param   p_seqNumber                 Sequence number of GeoUnicast packet
             * @param   p_hopLimit                  Maximum number of hops (Default: c_defaultHopLimit)
             */
            template (value) GnNonSecuredPacket m_geoNwUnicastPacket(
                in template (value) LongPosVector p_sourceLongPosVec,
                in template (value) ShortPosVector p_destinationShortPosVec,
                in template (value) UInt16 p_seqNumber
                in template (value) UInt16 p_seqNumber,
                in template (value) UInt8 p_hopLimit := c_defaultHopLimit
            ) := {
                commonHeader := m_commonHeader(
                    PX_GN_UPPER_LAYER,
                    m_geoUnicastHeaderType,
                    m_trafficClass,
                    c_defaultHopLimit
                    p_hopLimit
                ),
                extendedHeader := m_geoUnicastHeader(
                    p_sourceLongPosVec,
@@ -661,17 +663,19 @@ module LibItsGeoNetworking_Templates {
             * @param   p_sourceLongPosVec      Long position vector of source
             * @param   p_seqNumber             Sequence number of GeoAnycast packet
             * @param   p_anycastArea           Destination GeoArea
             * @param   p_hopLimit              Maximum number of hops (Default: c_defaultHopLimit)
             */
            template (value) GnNonSecuredPacket m_geoNwAnycastPacket(
                in template (value) LongPosVector p_sourceLongPosVec,
                in template (value) UInt16 p_seqNumber,
                in template (value) GeoAnycastArea p_anycastArea
                in template (value) GeoAnycastArea p_anycastArea,
                in template (value) UInt8 p_hopLimit := c_defaultHopLimit
            ) := {
                commonHeader := m_commonHeader(
                    PX_GN_UPPER_LAYER,
                    m_geoAnycastHeaderType(p_anycastArea.geoAnycastSubType),
                    m_trafficClass,
                    c_defaultHopLimit
                    p_hopLimit
                ),
                extendedHeader := m_geoAnycastHeader(
                    p_sourceLongPosVec,
@@ -724,6 +728,26 @@ module LibItsGeoNetworking_Templates {
                payload := ?
            }
            
            /**
             * @desc    Receive template for GeoNetworking Anycast Packet
             * @param   p_sourceLongPosVec      Long position vector of source 
             * @param   p_seqNumber             Sequence number of GeoAnycast packet
             * @param   p_anycastArea           Destination GeoArea
             * @param   p_maxHopLimit           Maximum number of hops (Default := ?)
             */
            template (present) GnNonSecuredPacket mw_geoNwAnycastPacketWithAreaAndHl(
                in template (present) LongPosVector p_sourceLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoAnycastArea p_anycastArea,
                in template (present) UInt8 p_maxHopLimit := ?
            ) modifies mw_geoNwAnycastPacketWithArea := {
                commonHeader := mw_commonHeaderWithHopLimit(
                    PX_GN_UPPER_LAYER,
                    mw_geoAnycastHeaderTypeWithSubType(p_anycastArea.geoAnycastSubType),
                    p_maxHopLimit
                )
            }
            
            /**
             * @desc    Receive template for GeoNetworking Anycast Packet
             * @param   p_sourceLongPosVec      Long position vector of source 
@@ -755,13 +779,14 @@ module LibItsGeoNetworking_Templates {
            template (value) GnNonSecuredPacket m_geoNwBroadcastPacket(
                in template (value) LongPosVector p_sourceLongPosVec,
                in template (value) UInt16 p_seqNumber,
                in template (value) GeoBroadcastArea p_broadcastArea
                in template (value) GeoBroadcastArea p_broadcastArea,
                in template (value) UInt8 p_hopLimit := c_defaultHopLimit
            ) := {
                commonHeader := m_commonHeader(
                    PX_GN_UPPER_LAYER,
                    m_geoBroadcastHeaderType(p_broadcastArea.geoBroadcastSubType),
                    m_trafficClass,
                    c_defaultHopLimit
                    p_hopLimit
                ),
                extendedHeader := m_geoBroadcastHeader(
                    p_sourceLongPosVec,
@@ -830,6 +855,26 @@ module LibItsGeoNetworking_Templates {
                )
            }
            
            /**
             * @desc    Receive template for GeoNetworking Broadcast Packet
             * @param   p_sourceLongPosVec      Long position vector of source 
             * @param   p_seqNumber             Sequence number of GeoBroadcast packet
             * @param   p_broadcastArea         Destination GeoArea
             * @param   p_maxHopLimit           Maximum number of hops (Default := ?)
             */
            template (present) GnNonSecuredPacket mw_geoNwBroadcastPacketWithAreaAndHl(
                in template (present) LongPosVector p_sourceLongPosVec,
                in template (present) UInt16 p_seqNumber,
                in template (present) GeoBroadcastArea p_broadcastArea,
                in template (present) UInt8 p_maxHopLimit := ?
            ) modifies mw_geoNwBroadcastPacketWithArea := {
                commonHeader := mw_commonHeaderWithHopLimit(
                    PX_GN_UPPER_LAYER,
                    mw_geoBroadcastHeaderTypeWithSubType(p_broadcastArea.geoBroadcastSubType),
                    p_maxHopLimit
                )
            }
            
            /**
             * @desc    Receive template for GeoNetworking Broadcast Packet
             * @param   p_sourceLongPosVec      Long position vector of source 
@@ -1063,6 +1108,24 @@ module LibItsGeoNetworking_Templates {
                payload := ?
            }
            
            /**
             * @desc    Receive template for GeoNetworking TSB Packet
             * @param   p_seqNumber         Sequence number of TSB packet (Default: ?)
             * @param   p_sourceLongPosVec  Long position vector of source (Default: ?)
             * @param   p_hopLimit          The maximum number of hops (Default: ?)
             */
            template (present) GnNonSecuredPacket mw_geoNwTsbPacketWithHl(
                in template (present) UInt16 p_seqNumber := ?,
                in template (present) LongPosVector p_sourceLongPosVec := ?,
                in template (present) UInt8 p_hopLimit := ?
            ) modifies mw_geoNwTsbPacket := {
                commonHeader := mw_commonHeaderWithHopLimit(
                    PX_GN_UPPER_LAYER,
                    m_tsbHeaderType,
                    p_hopLimit
                )
            }
            
            /**
             * @desc    Receive template for GeoNetworking TSB Packet
             * @param   p_seqNumber         Sequence number of TSB packet (Default: ?)
@@ -1208,7 +1271,6 @@ module LibItsGeoNetworking_Templates {
            
            /**
             * @desc    Receive template for Common header with specific Hop limit
             * @param   p_senderLongPosVec  Long position vector of sender 
             * @param   p_nextHeader        Id of next header
             * @param   p_headerTypeSubType Header's type and sub-type
             * @param   p_hopLimit          Maximum number of hops