NED File ONU_Squeue.ned

Name Description
ONU_Squeue (compound module)

El modulo compuesto ONU_Squeue representa el sistema de colas de cada ONU. Dentro de este modulo se crean dinamicamente tantos modulos simples ONU_SISTqueue como clases de servicio pueden tener los paquetes de datos ETHERNET generados en la subred optica, mas una cola adicional para los paquetes REPORT generados en la capa MAC.

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 ONU_Squeue representa el sistema de colas de cada ONU.
// Dentro de este modulo se crean dinamicamente tantos modulos simples ONU_SISTqueue como clases de servicio
// pueden tener los paquetes de datos ETHERNET generados en la subred optica, mas una cola adicional para los 
// paquetes REPORT generados en la capa MAC.
module ONU_Squeue
{
    parameters:
        @display("i=block/classifier;bgb=214,157");
        int numqueue; //Numero de clases de servicio del trafico optico
        int numcolas; //Numero de clases de servicio del trafico inalambrico
	    double txrate; //Capacidad de los enlaces de la subred optica
    gates:
        input queuegenIn[]; //Array de puertas de entrada que conectan este modulo con los modulos ONU_GENTraffic[]
        output queuewdmOut[]; //Array de puertas de salida que conectan este modulo con el splitter interno (ONU_WDMSplitter)
        inout queuegatewayInOut[]; //Array de puertas de entrada que conectan este modulo con una BS-pasarela (en caso de ser una ONU-pasarela)
    submodules:
        onu_sistqueue[numqueue+1]: ONU_SISTqueue 
        {
            parameters:
                numqueue = numqueue;
                numcolas = numcolas;
              	txrate = txrate;
            gates:
                onuqueuegenIn[numqueue+1]; 
                onuqueuegatewayInOut[2];
		}
	connections allowunconnected:
       for i=0..numqueue
        {
            queuegenIn[i] --> onu_sistqueue[i].onuqueuegenIn[i];
            onu_sistqueue[i].onuqueuewdmOut --> queuewdmOut[i];
        }
        for j=0..numqueue-1
        {
           	queuegatewayInOut++ <--> onu_sistqueue[j].onuqueuegatewayInOut[0];
        }
        for j=0..numqueue-1
        {
           	queuegatewayInOut++ <--> onu_sistqueue[j].onuqueuegatewayInOut[1];
        }
 }