Skip to content
LibItsGeoNetworking_Templates.ttcn 48.3 KiB
Newer Older
berge's avatar
berge committed
/**
 *	@author 	ETSI / STF405
 *  @version 	$URL$
 *				$Id$
 *	@desc		GeoNetworking Templates
 *
 */
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 {
    
    	template (value) GeoNetworkingReq m_geoNwReq(
            template (value) GeoNetworkingPacket p_geoNwMsg
            ) := {
            msgOut := p_geoNwMsg
        }
        
        template GeoNetworkingInd mw_geoNwInd(
            template (present) GeoNetworkingPacket p_geoNwMsg
            ) := {
            msgIn := p_geoNwMsg
        }
        
        group utPrimitives {
            
            template UtGNEvent m_generateGeoUnicastMessage(GN_Address p_destinationGnAddr) := {
                geoUnicast := {
                    gnAddress := p_destinationGnAddr,
                    lifetime := omit,
                    payload := omit
                }
            }
            
            template UtGNEvent m_generateGeoUnicastMessageWithLifetime(
                GN_Address p_destinationGnAddr,
                integer p_lifetime
            ) modifies m_generateGeoUnicastMessage := {
                geoUnicast := {
                    lifetime := p_lifetime
                }
            }
            
            template UtGNEvent m_generateGeoUnicastMessageWithPayload(
                GN_Address p_destinationGnAddr,
                Payload p_payload
            ) modifies m_generateGeoUnicastMessage := {
                geoUnicast := {
                    payload := p_payload
                }
            }
            
            template UtGNEvent m_generateGeoBroadcastMessage(
                charstring p_area
            ) := {
                geoBroadcast := {
                    area := p_area,
                    payload := omit
                }
            }
            
            template UtGNEvent m_generateGeoBroadcastMessageWithPayload(
                charstring p_area,
                Payload p_payload
            ) modifies m_generateGeoBroadcastMessage := {
                geoBroadcast := {
                    payload := p_payload
                }
            }
                    
            template UtGNEvent m_generateGeoAnycastMessage(
                charstring p_area
            ) := {
                geoAnycast := {
                    area := p_area,
                    payload := omit
                }
            }
            
            template UtGNEvent m_generateGeoAnycastMessageWithPayload(
                charstring p_area,
                Payload p_payload
            ) modifies m_generateGeoAnycastMessage := {
                geoAnycast := {
                    payload := p_payload
                }
            }
            
            template UtGNEvent m_generateSHBMessage := {
                shb := {
                    payload := omit
                }
            }
            
            template UtGNEvent m_generateSHBMessageWithPayload(
                Payload p_payload
            ) modifies m_generateSHBMessage := {
                shb := {
                    payload := p_payload
                }
            }
            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(template (value) BeaconHeader p_beaconHeader) := {
                startPassBeaconing := {
                    beaconHeader := p_beaconHeader
                }
            }
            
            /**
             * @desc Testsystem will stop passing beacon information to the TTCN-3
             */
                stopPassBeaconing := {
                }
            }
        
        } // end taPrimitives
            
    } // geoNwPrimitivesTemplates
    
    group geoNwPduTemplates {
        
        template (value) GeoNetworkingPacket m_geoNwPdu(in template (value) Header p_header) := {
        	header := p_header,
        	secHeader := omit,
        	payload := omit           
        }
        
        template (value) GeoNetworkingPacket m_geoNwPduWithPayload(in template (value) Header p_header, in template (value) Payload p_payload) := {
            header := p_header,
            secHeader := omit,
            payload := p_payload
        }
        
        template GeoNetworkingPacket mw_geoNwPdu(in template (present) Header p_header) := {
        	header := p_header,
        	secHeader := *,
            payload := *          
        template GeoNetworkingPacket mw_geoNwPduAnyPayload(in template (present) Header p_header) := {
fischer's avatar
fischer committed
        	header := p_header,
        	secHeader := *,
            payload := ?          
        }     
                
        template GeoNetworkingPacket mw_geoNwPduWithPayload(in template (present) Header p_header, in template (present) Payload p_payload) := {
            header := p_header,
            secHeader := *,
            payload := p_payload
        }     
                
    } // end geoNwPduTemplates
    
    group geoNwHeadersTemplates {
        
        group geoNwCommonHeaderTemplates {
        
            template (value) CommonHeader m_commonHeader (
            	in template (value) NextHeader p_nextHeader,
            	in template (value) HeaderTST p_headerTST,
Loading full blame...