Skip to content
LibItsGeoNetworking_Templates.ttcn 66.4 KiB
Newer Older
berge's avatar
berge committed
/**
berge's avatar
berge committed
 *  @author     ETSI / STF405
 *  @version    $URL$
 *              $Id$
 *  @desc       GeoNetworking Templates
berge's avatar
berge committed
 *
 */
module LibItsGeoNetworking_Templates {
berge's avatar
berge committed
    
    // Libcommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;
berge's avatar
berge committed
    
    // LibIts
    import from LibIts_Interface all;
    import from LibItsGeoNetworking_TypesAndValues all;
berge's avatar
berge committed
    
    group geoNwPrimitivesTemplates {
berge's avatar
berge committed

        /**
         * @desc    Send template for GeoNetworking packet (GeonetworkingPort Primitive)
         * @param   p_geoNwMsg GeoNetworking packet to be sent
         */    
        template (value) GeoNetworkingReq m_geoNwReq(
            template (value) GeoNetworkingPacket p_geoNwMsg
            ) := {
            msgOut := p_geoNwMsg
        }
berge's avatar
berge committed

        /**
         * @desc    Receive template for GeoNetworking packet (GeonetworkingPort Primitive)
         * @param   p_geoNwMsg GeoNetworking packet to be received
         */            
        template GeoNetworkingInd mw_geoNwInd(
            template (present) GeoNetworkingPacket p_geoNwMsg
            ) := {
            msgIn := p_geoNwMsg
        }
        
        group utPrimitives {
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoUnicast message to a specific destination
             * @param   p_destinationGnAddr Destination of the GeoUnicast message  
             */
            template UtGNEvent m_generateGeoUnicastMessage(GN_Address p_destinationGnAddr) := {
                geoUnicast := {
                    gnAddress := p_destinationGnAddr,
                    lifetime := omit,
                    payload := omit
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoUnicast message to a specific destination with specific lifetime
             * @param   p_destinationGnAddr Destination of the GeoUnicast message
             * @param   p_lifetime          Lifetime of the GeoUnicast message
             * @see     m_generateGeoUnicastMessage
             */
            template UtGNEvent m_generateGeoUnicastMessageWithLifetime(
                GN_Address p_destinationGnAddr,
                integer p_lifetime
            ) modifies m_generateGeoUnicastMessage := {
                geoUnicast := {
                    lifetime := p_lifetime
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoUnicast message to a specific destination with a payload
             * @param   p_destinationGnAddr Destination of the GeoUnicast message
             * @param   p_payload           Payload of the GeoUnicast message
             * @see     m_generateGeoUnicastMessage
             */
            template UtGNEvent m_generateGeoUnicastMessageWithPayload(
                GN_Address p_destinationGnAddr,
                Payload p_payload
            ) modifies m_generateGeoUnicastMessage := {
                geoUnicast := {
                    payload := p_payload
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoBroadcast message to a specific area
             * @param   p_area  Destination area of the message
             */
            template UtGNEvent m_generateGeoBroadcastMessage(
berge's avatar
berge committed
                GeoArea p_area
            ) := {
                geoBroadcast := {
                    area := p_area,
                    payload := omit
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoBroadcast message to a specific area with a payload
             * @param   p_area      Destination area of the message
             * @param   p_payload   Payload of the GeoBroadcast message
             * @see     m_generateGeoBroadcastMessage
             */
            template UtGNEvent m_generateGeoBroadcastMessageWithPayload(
berge's avatar
berge committed
                GeoArea p_area,
                Payload p_payload
            ) modifies m_generateGeoBroadcastMessage := {
                geoBroadcast := {
                    payload := p_payload
                }
            }
                    
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoAnycast message to a specific area
             * @param   p_area  Destination area of the message 
             */
            template UtGNEvent m_generateGeoAnycastMessage(
berge's avatar
berge committed
                GeoArea p_area
            ) := {
                geoAnycast := {
                    area := p_area,
                    payload := omit
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a GeoAnycast message to a specific area with a payload
             * @param   p_area      Destination area of the message
             * @param   p_payload   Payload of the GeoAnycast message
             * @see     m_generateGeoAnycastMessage
             */
            template UtGNEvent m_generateGeoAnycastMessageWithPayload(
berge's avatar
berge committed
                GeoArea p_area,
                Payload p_payload
            ) modifies m_generateGeoAnycastMessage := {
                geoAnycast := {
                    payload := p_payload
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a SHB message
             */
            template UtGNEvent m_generateSHBMessage := {
                shb := {
                    payload := omit
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc    Request IUT to send a SHB message with a payload
             * @param   p_payload   Payload of the SHB message
             * @see     m_generateSHBMessage
             */
            template UtGNEvent m_generateSHBMessageWithPayload(
                Payload p_payload
            ) modifies m_generateSHBMessage := {
                shb := {
                    payload := p_payload
                }
            }
berge's avatar
berge committed
            
            /**
             * @desc    Request IUT to send a TSB message
             */            
            template UtGNEvent m_generateTSBMessage := {
                tsb := {
                    payload := omit
                }
            }
            
        } // end utPrimitives
        
        group taPrimitives {
            
berge's avatar
berge committed
            /**
             * @desc Testsystem will start beaconing for the given neighbor
             * @param p_beaconHeader The neighbor information
berge's avatar
berge committed
            template (value) AcGNEvent m_startBeaconing(
                template (value) BeaconHeader p_beaconHeader
            ) := {
                startBeaconing := {
                    beaconHeader := p_beaconHeader
                }
            }
            
berge's avatar
berge committed
            /**
             * @desc Testsystem will stop beaconing for the given neighbor
             * @param p_compName The neighbor
            template AcGNEvent m_stopBeaconing := {
                stopBeaconing:= {
                }
            }
            
            /**
             * @desc Testsystem will pass received to the TTCN-3
             * @param p_beaconHeader The neighbor information
             */
berge's avatar
berge committed
            template AcGNEvent m_startPassBeaconing(
Loading full blame...