Name | Description |
---|---|
ONU (compound module) |
El modulo compuesto ONU representa a las unidades opticas de red, situadas en las dependencias de los usuarios opticos. Hay 'numOnu' modulos ONU en la red, de los cuales 'numGW-1' actuan de pasarela entre las tecnologias optica e inalambrica. |
//////////////////////////////////////////////////////////////////////////////////////// // 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 ONU representa a las unidades opticas de red, situadas en las dependencias de los usuarios opticos. // Hay 'numOnu' modulos ONU en la red, de los cuales 'numGW-1' actuan de pasarela entre las tecnologias optica e inalambrica. module ONU { parameters: @display("i=abstract/db"); int extractionmethod_StrictPQ0_Centralized1; //Parametro para elegir el metodo de extraccion de paquetes de los modulos ONU_SISTqueue[] int insercionmethod_separatequeue0_priorityqueue1; //Parametro para elegir el metodo de insercion de paquetes en los modulos ONU_SISTqueue[] int methodlength_longvariable0_longfija1; //Parametro para elegir la configuracion de los enlaces opticos (longitud fija o variable) int longpacketfixed0_trimodal1; //Parametro para elegir el modo de generacion de paquetes Self-Similar (longitud fija o trimodal) int numstreamV2_32_128_256; //Parametro para elegir el numero de streams de cada fuente de trafico Self-Similar double node_load; //Carga de cada fuente de trafico Self-Similar int numlong; //Numero de longitudes de onda soportadas por la subred optica double tambuffer; //Tamanyo del buffer de cada ONU double txrate; //Capacidad de transmision de cada enlace optico int numcolas; //Numero de clases de servicio del trafico inalambrico int numqueue; //Numero de clases de servicio del trafico optico int numOnu; //Numero de ONUs en la parte optica de la red hibrida int aux; //Parametro auxiliar para incluir los modulos ONU como nodos en la instancia de la clase cTopology double dist_pasarela; //Variable para generar aleatoriamente la longitud del canal entre BS y ONU pasarelas gates: inout physicalonu[]; //Array de puertas de entrada/salida que conectan este modulo con el Splitter inout gatewirelessInOut[]; //Array de puertas de entrada/salida que conectan este modulo con una BS pasarela (si es una ONU pasarela) submodules: onu_rx: ONU_Rxuser { parameters: @display("p=291,220"); } onu_wdm: ONU_WDMSplitter { parameters: @display("p=54,137"); txrate = txrate; numOnu = numOnu; methodlength_longvariable0_longfija1 = methodlength_longvariable0_longfija1; gates: wdmnet[numlong]; wdmqueueIn[numqueue+1]; } onu_ptp: ONU_Point_to_Point { parameters: @display("p=170,220"); } onu_mac: MAC_ONU { parameters: @display("p=170,137"); extractionmethod_StrictPQ0_Centralized1 = extractionmethod_StrictPQ0_Centralized1; numlong = numlong; numqueue = numqueue; numOnu = numOnu; } onu_squeue: ONU_Squeue { parameters: @display("p=170,50"); numqueue = numqueue; numcolas = numcolas; txrate = txrate; gates: queuegenIn[numqueue+1]; queuewdmOut[numqueue+1]; queuegatewayInOut[numqueue*2]; } onu_table: ONU_Table { parameters: @display("p=54,50"); numqueue = numqueue; numOnu = numOnu; } onu_source: ONU_Source { parameters: @display("p=291,50"); extractionmethod_StrictPQ0_Centralized1 = extractionmethod_StrictPQ0_Centralized1; insercionmethod_separatequeue0_priorityqueue1 = insercionmethod_separatequeue0_priorityqueue1; longpacketfixed0_trimodal1 = longpacketfixed0_trimodal1; numstreamV2_32_128_256 = numstreamV2_32_128_256; node_load = node_load; numlong = numlong; tambuffer = tambuffer; txrate = txrate; numqueue = numqueue; gates: sourceOut[numqueue]; } connections allowunconnected: onu_wdm.wdmptpOut --> onu_ptp.onuptpwdmIn; onu_ptp.onuptpmacOut --> onu_mac.macptpIn; onu_mac.macrxuserOut --> onu_rx.onurxIn; onu_mac.macgenOut --> onu_source.sourcemac; onu_source.queue_report --> onu_squeue.queuegenIn[numqueue]; for i=0..numlong-1 { onu_wdm.wdmnet[i] <--> physicalonu[i]; } for j=0..numqueue-1 { onu_source.sourceOut[j] --> onu_squeue.queuegenIn[j]; } for j=0..numqueue { onu_squeue.queuewdmOut[j] --> onu_wdm.wdmqueueIn[j]; } for i=0..numqueue*2-1 { gatewirelessInOut[i] <--> onu_squeue.queuegatewayInOut[i]; } }