Skip to content
Snippets Groups Projects
LibIts_Interface.ttcn 9.63 KiB
Newer Older
/**
 *	@author 	ETSI / STF405
berge's avatar
berge committed
 *  @version 	$URL$
 *				$Id$
 *	@desc		Module containing PTCs and interface ports definitions for ITS
 *
 */
module LibIts_Interface {
    // LibIts
    import from LibItsCam_Pixits all;
berge's avatar
berge committed
    import from LibItsGeoNetworking_TypesAndValues all;
berge's avatar
berge committed
    import from CAM_PDU_Descriptions language "ASN.1:1997" all;
tepelmann's avatar
tepelmann committed
    import from DENM_PDU_Descriptions language "ASN.1:1997" all;
    // LibCommon
    import from LibCommon_Time {modulepar all};
    
berge's avatar
berge committed
	group adapterInterface {
	        
    	group portDefinitions {
        
        	/**
        	 * @desc Adapter control port
        	 */
        	type port AdapterControlPort message {
        	    in integer; //TODO: remove me
        	} // end AdapterControlPort
    
        	/**
        	 * @desc Upper Tester port
        	 */
        	type port UpperTesterPort message {
        	    in integer; //TODO: remove me
        	} // end UpperTesterPort
        	
        } // end portDefinitions
        
        group adapterComponent {
            
            type component ItsAdapterComponent {
                
         	    // Adapter ports
        	    port UpperTesterPort utPort;
                port AdapterControlPort acPort;
                
            } // end AdapterComponent
               
        } // end adapterComponent    

	} // adapterInterface     
    
    group interfaceComponents {
        
        /**
         * @desc Test component for ITS Access layer 
         */
        type component ItsAc extends ItsAdapterComponent {
            
            // AC1 ports
            port MacM5Port macM5Port;
            
            // AC2 ports
            port MacIrPort macIrPort;
berge's avatar
berge committed
        } // end ItsAc

        /**
         * @desc Test component for ITS Facility layer 
         */
        type component ItsFa extends ItsAdapterComponent {
fischer's avatar
fischer committed
 
 			// component variables
            var CamInd vc_camMsg;
                       
            // FA1 ports
            port CamPort camPort;
            port DenmPort denmPort;
            
            // FA2 ports
            port CooperPort cooperPort;
tepelmann's avatar
tepelmann committed
            //default
            var default vc_default := null;
            
tepelmann's avatar
tepelmann committed
            timer tc_wait := PX_TWAIT;
            timer tc_ac := PX_TAC;
            timer tc_minTransInterval := PX_CAM_MIN_TRANSMISSION_INTERVAL;
            timer tc_maxTransInterval := PX_CAM_MAX_TRANSMISSION_INTERVAL;
            
tepelmann's avatar
tepelmann committed
            //global variables
            var SequenceNo vc_sequenceNo := 0;
            
berge's avatar
berge committed
        } // end ItsFa

        /**
         * @desc Test component for ITS Management layer 
         */
        type component ItsMgt extends ItsAdapterComponent {
            
            // MGT1 ports
            port IiscPort iiscPort;
berge's avatar
berge committed
        } // end ItsMgt

        /**
         * @desc Test component for ITS Network and Transport layer 
         */
        type component ItsNt extends ItsAdapterComponent {
            port BtpPort btpPort;
berge's avatar
berge committed
            port GeoNetworkingPort geoNetworkingPort;
            port IPv6OverGeoNetworkingPort ipv6OverGeoNetworkingPort;
            
            // NT3 ports
            port FastPort fastPort;
            
            // timers
            timer tc_wait := PX_TWAIT;
            timer tc_ac := PX_TAC;
            
berge's avatar
berge committed
        } // end ItsNt
        
    } // end interfaceComponents
    
    group interfacePorts {    
    
    	group accessPorts {
			group ac1Ports {

				/**
				 * @desc AC1 Mac M5 Port (MacM5/PhyM5) 
				 */
				type port MacM5Port message {
berge's avatar
berge committed
				    in MacM5Ind;
				    out MacM5Req;
				} // end MacM5Port
			    
			} // end ac1Ports
			group ac2Ports {
			    
			    /**
				 * @desc AC2 Mac IR Port (MacIR/PhyIR) 
				 */
				type port MacIrPort message {
berge's avatar
berge committed
				    in MacIrInd;
				    out MacIrReq;
				} // end MacIrPort
			} // end ac2Ports
    	} // end accessPorts
    	group facilityPorts {
    	    group fa1Ports {
	
				/**
				 * @desc FA1 CAM Port (CAM/BTP/GeoNet/G5) 
				 */
				type port CamPort message {
berge's avatar
berge committed
				    in CamInd;
				    out CamReq;
				} // end CamPort

				/**
				 * @desc FA1 DENM Port (DENM/BTP/GeoNet/G5) 
				 */
				type port DenmPort message {
berge's avatar
berge committed
				    in DenmInd;
				    out DenmReq;
				} // end DenmPort
			} // end fa1Ports
    	    group fa2Ports {
			    
				/**
				 * @desc FA2 Cooper Port (Cooper/Fast/M5-IR) 
				 */
				type port CooperPort message {
berge's avatar
berge committed
				    in CooperInd;
				    out CooperReq;
				} // end CooperPort			    
			    
			} // end fa2Ports
    	} // end facilityPorts
    	group managementPorts {
    	    group mgt1Ports {
			    
			    /**
				 * @desc MGT1 IISC Port (IISC/LAN) 
				 */
				type port IiscPort message {
berge's avatar
berge committed
				    in IiscInd;
				    out IiscReq;
				} // end IiscPort
			} // end mgt1Ports
    	} // end managementPorts    	
    	group networkAndTransportPorts {
    	    group nt1Ports {

				/**
				 * @desc NT1 BTP Port (BTP/GeoNet/G5) 
				 */
				type port BtpPort message {
berge's avatar
berge committed
				    in BtpInd;
				    out BtpReq;
				} // end BtpPort
			} // end nt1Ports
			group nt2Ports {
				 * @desc NT2 GeoNetworking Port (GeoNetworking/G5) 
				type port GeoNetworkingPort message {
berge's avatar
berge committed
				    in GeoNetworkingInd;
				    out GeoNetworkingReq;
				} // end GeoNetworkingPort
				 * @desc NT2 IPv6 over GeoNetworking Port (IPv6/GeoNetworking/G5) 
				type port IPv6OverGeoNetworkingPort message {
berge's avatar
berge committed
				    in IPv6OverGeoNetworkingInd;
				    out IPv6OverGeoNetworkingReq;
				} // end IPv6OverGeoNetworkingPort
			} // end nt2Ports
			group nt3Ports {

				/**
				 * @desc NT3 Fast Port (Fast/M5-IR) 
				 */
				type port FastPort message {
berge's avatar
berge committed
				    in FastInd;
				    out FastReq;
				} // end FastPort
			    
			} // end nt3Ports
    	} // end networkAndTransportPorts
    
    } // end interfacePorts
berge's avatar
berge committed

    group interfacePrimitives {    
    
    	group accessPrimitives {
		
			group ac1Primitives {

				/**
				 * @desc AC1 Mac M5 Indication Primitive 
				 */
				type record MacM5Ind {
				}
				
				/**
				 * @desc AC1 Mac M5 Request Primitive 
				 */
				type record MacM5Req {
				}
			    
			} // end ac1Primitives

			group ac2Primitives {
			    
			    /**
				 * @desc AC2 Mac IR Indication Primitive 
				 */
				type record MacIrInd {
				}
							    
			    /**
				 * @desc AC2 Mac IR Request Primitive 
				 */
				type record MacIrReq {
				}
			    
			} // end ac2Primitives
    	    
    	} // end accessPrimitives

    	group facilityPrimitives {
    	    
    	    group fa1Primitives {
	
				/**
				 * @desc FA1 CAM Indication Primitive 
				 */
				type record CamInd {
fischer's avatar
fischer committed
                    CamPdu msgIn
berge's avatar
berge committed
				}
					
				/**
				 * @desc FA1 CAM Request Primitive 
				 */
				type record CamReq {
fischer's avatar
fischer committed
                    CamPdu msgOut
berge's avatar
berge committed
				}

				/**
				 * @desc FA1 DENM Indication Primitive 
tepelmann's avatar
tepelmann committed
                 * 
                 * @member denmMsg
berge's avatar
berge committed
				 */
				type record DenmInd {
berge's avatar
berge committed
				    DenmPdu msgIn,
				    TimeStamp receptionTime
berge's avatar
berge committed
				}
				
				/**
				 * @desc FA1 DENM Request Primitive 
tepelmann's avatar
tepelmann committed
				 * 
				 * @member denmMsg
berge's avatar
berge committed
				 */
				type record DenmReq {
				    DenmPdu msgOut
berge's avatar
berge committed
				}
						    
			} // end fa1Primitives

    	    group fa2Primitives {
			    
				/**
				 * @desc FA2 Cooper Indication Primitive 
				 */
				type record CooperInd {
				}
							    
				/**
				 * @desc FA2 Cooper Request Primitive 
				 */
				type record CooperReq {
				}		    
			    
			} // end fa2Primitives
    	    
    	} // end facilityPrimitives
	
    	group managementPrimitives {
    	    
    	    group mgt1Primitives {
			    
			    /**
				 * @desc MGT1 IISC Indication Primitive 
				 */
				type record IiscInd {
				}
							    
			    /**
				 * @desc MGT1 IISC Request Primitive 
				 */
				type record IiscReq {
				}
				
			} // end mgt1Primitives
    	    
    	} // end managementPrimitives    	

    	group networkAndTransportPrimitives {
    	    
    	    group nt1Primitives {

				/**
				 * @desc NT1 BTP Indication Primitive 
				 */
				type record BtpInd {
				}
				
				/**
				 * @desc NT1 BTP Request Primitive 
				 */
				type record BtpReq {
				}
							    
			} // end nt1Primitives
			
			group nt2Primitives {

				/**
				 * @desc NT2 GeoNetworking Indication Primitive 
				 */
				type record GeoNetworkingInd {
				    GeoNetworkingPacket msgIn
				}
				
				/**
				 * @desc NT2 GeoNetworking Request Primitive 
				 */
				type record GeoNetworkingReq {
				    GeoNetworkingPacket msgOut
				}

				/**
				 * @desc NT2 IPv6 over GeoNetworking Indication Primitive 
				 */
				type record IPv6OverGeoNetworkingInd {
				}
				
				/**
				 * @desc NT2 IPv6 over GeoNetworking Request Primitive 
				 */
				type record IPv6OverGeoNetworkingReq {
				}
			    
			} // end nt2Primitives
			
			group nt3Primitives {

				/**
				 * @desc NT3 Fast Indication Primitive 
				 */
				type record FastInd {
				}
				
				/**
				 * @desc NT3 Fast Request Primitive 
				 */
				type record FastReq {
				}
			    
			} // end nt3Primitives
    	    
    	} // end networkAndTransportPrimitives
    
    } // end interfacePrimitives    
} // end LibIts_Interface