NED File OLT.ned

Name Description
OLT (compound module)

El modulo compuesto OLT representa el terminal de linea optico que supone la interfaz entre la red de acceso hibrida y la red troncal.

Source code:

////////////////////////////////////////////////////////////////////////////////////////
// PROYECTO FIN DE CARRERA															  //
// TITULO: Diseño e Implementacion de Nuevas Arquitecturas de Acceso Hibridas         //
//	       Opticas-wireless         												  //
// AUTOR: Ana Emma Lopez Mato														  //
// TUTOR: Noemi Merayo Alvarez														  //
// INGENIERIA TECNICA DE TELECOMUNICACIONES, SISTEMAS DE TELECOMUNICACION			  //
// UNIVERSIDAD DE VALLADOLID													      //
////////////////////////////////////////////////////////////////////////////////////////

package red_wireless;
// El modulo compuesto OLT representa el terminal de linea optico que supone la interfaz entre la red de acceso
// hibrida y la red troncal. 
module OLT
{
    parameters:
        @display("i=device/server;bgb=319,223");
        int oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4; //Parametro para elegir el metodo de gestion de ancho de banda dinamico en la capa MAC del OLT
        int extractionmethod_StrictPQ0_Centralized1; //Parametro para elegir el metodo de extraccion de paquetes de los modulos ONU_GENTraffic[]
        int methodlength_longvariable0_longfija1; //Parametro para elegir la configuracion de los enlaces opticos (longitud fija o variable)
        int numOnu; //Numero de ONUs presentes en la parte optica de la red hibrida
        int numlong; //Numero de longitudes de onda soportadas en la parte optica
        double txrate; //Capacidad de transmision de cada enlace optico
        int numqueue; //Numero de clases de servicio del trafico optico
        double longpon1; //Longitud del enlace optico entre el OLT y el Splitter
        double longpon2; //Longitud del enlace optico entre el Splitter y las ONUs
        int numSLA; //Numero de SLAs definidos en la parte optica
        int w_sla0; //Peso del SLA0
		int w_sla1; //Peso del SLA1
		int w_sla2; //Peso del SLA2
		int w_sla3; //Peso del SLA3
		int w_sla4; //Peso del SLA4
		int BW_garantizado0; //Ancho de banda garantizado para el SLA0
		int BW_garantizado1; //Ancho de banda garantizado para el SLA1
		int BW_garantizado2; //Ancho de banda garantizado para el SLA2
		int numonu_sla0; //Numero de ONUs asociadas al SLA0
		int numonu_sla1; //Numero de ONUs asociadas al SLA1
		int numonu_sla2; //Numero de ONUs asociadas al SLA2
		int numonu_sla3; //Numero de ONUs asociadas al SLA3
		int numonu_sla4; //Numero de ONUs asociadas al SLA4
    gates:
        inout physicalolt[]; //Array de puertas de entrada/salida que conectan el OLT con el Splitter
    submodules:
        olt_rx: OLT_Rx {
            parameters:
                @display("p=155,182");
                numOnu = numOnu;
                numqueue = numqueue;
                numSLA = numSLA;
                oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4 = oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4; //Parametro para elegir el metodo de gestion de ancho de banda dinamico en la capa MAC del OLT
        }
        olt_tx: OLT_Tx {
            parameters:
                @display("p=155,68");
        }
        olt_mac: MAC_OLT {
            parameters:
                 @display("p=56,126");
                 // IGUALAMOS LOS PARAMETROS QUE INTRODUCIMOS DINAMICAMENTE PARA DESPUES UTILIZARLOS EN LOS MÓDULOS SIMPLES DEL OLT
         		 oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4 = oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4; //Parametro para elegir el metodo de gestion de ancho de banda dinamico en la capa MAC del OLT
                 extractionmethod_StrictPQ0_Centralized1 = extractionmethod_StrictPQ0_Centralized1;
                 methodlength_longvariable0_longfija1 = methodlength_longvariable0_longfija1;
                 numOnu = numOnu;
                 numlong = numlong;
                 txrate = txrate;
                 numqueue = numqueue;
                 longpon1 = longpon1;
                 longpon2 = longpon2;
                 numSLA = numSLA;
                 w_sla0 = w_sla0;
			     w_sla1 = w_sla1;
			 	 w_sla2 = w_sla2;
				 w_sla3 = w_sla3;
				 w_sla4 = w_sla4;
				 numonu_sla0 = numonu_sla0;
				 numonu_sla1 = numonu_sla1;
				 numonu_sla2 = numonu_sla2;
				 numonu_sla3 = numonu_sla3;
				 numonu_sla4 = numonu_sla4;
		}
        olt_wdm: OLT_WDMSplitter {
            parameters:
                @display("p=255,126");
                // IGUALAMOS LOS PARAMETROS QUE INTRODUCIMOS DINAMICAMENTE PARA DESPUES UTILIZARLOS EN LOS MÓDULOS SIMPLES DEL OLT
                numlong = numlong;
                
            gates:
                wdmnet[numlong]; 
        }
        olt_table: OLT_Table {
            parameters:
                @display("p=49,48");
                numOnu = numOnu;
                numqueue = numqueue;
        }
            connections:
                olt_wdm.wdmrxOut --> olt_rx.oltrxIn; 
                olt_rx.oltrxOut --> olt_mac.macrxIn; 
        		olt_mac.mactxOut --> olt_tx.olttxIn; 
       			olt_tx.olttxOut --> olt_wdm.wdmtxIn; 
				for i=0..numlong-1 
				{
            		olt_wdm.wdmnet[i] <--> physicalolt[i]; 
       		 	}
}