Skip to content
Snippets Groups Projects
LibIts_Interface.ttcn 9.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     *	@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;
    
    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