Compound Module ONU

Package: red_wireless
File: ONU.ned

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.

ONU_Rxuser ONU_WDMSplitter ONU_Point_to_Point MAC_ONU ONU_Squeue ONU_Table ONU_Source

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

ONU IdealChannel ONU_Point_to_Point ONU_WDMSplitter ONU_Table ONU_Squeue ONU_Rxuser ONU_Source MAC_ONU red_hibrida SFNet SFNet_small SFNet_small2

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

ONU

Networks:

red_hibrida (network)

Las conexiones entre BSs se realizan en función de la distancia entre las mismas DIFERENCIA CON 'wireless3': La distancia máxima se tiene en cuenta al crear el canal, en este .ned.

SFNet (network)

Modelado de SFNet, red WOBAN de San Francisco con 25 BSs, 25 usuarios, 16 ONUs, 1 OLT y 1 Splitter. 5 de BSs-pasarela conectan con 4 ONUs-pasarela.

SFNet_small (network)

Version reducida de la red SFNet, en la que se ha limitado el numero de BSs y Users a 15. De las 15 BSs, 3 son pasarelas que conectan en total con 2 ONUs-pasarela.

SFNet_small2 (network)

Version reducida de la red SFNet, en la que se ha limitado el numero de BSs y Users a 10. De las 10 BSs, 3 son pasarelas que conectan en total con 2 ONUs-pasarela.

Parameters:

Name Type Default value Description
extractionmethod_StrictPQ0_Centralized1 int

Parametro para elegir el metodo de extraccion de paquetes de los modulos ONU_SISTqueue[]

insercionmethod_separatequeue0_priorityqueue1 int

Parametro para elegir el metodo de insercion de paquetes en los modulos ONU_SISTqueue[]

methodlength_longvariable0_longfija1 int

Parametro para elegir la configuracion de los enlaces opticos (longitud fija o variable)

longpacketfixed0_trimodal1 int

Parametro para elegir el modo de generacion de paquetes Self-Similar (longitud fija o trimodal)

numstreamV2_32_128_256 int

Parametro para elegir el numero de streams de cada fuente de trafico Self-Similar

node_load double

Carga de cada fuente de trafico Self-Similar

numlong int

Numero de longitudes de onda soportadas por la subred optica

tambuffer double

Tamanyo del buffer de cada ONU

txrate double

Capacidad de transmision de cada enlace optico

numcolas int

Numero de clases de servicio del trafico inalambrico

numqueue int

Numero de clases de servicio del trafico optico

numOnu int

Numero de ONUs en la parte optica de la red hibrida

aux int

Parametro auxiliar para incluir los modulos ONU como nodos en la instancia de la clase cTopology

dist_pasarela double

Variable para generar aleatoriamente la longitud del canal entre BS y ONU pasarelas

Properties:

Name Value Description
display i=abstract/db

Gates:

Name Direction Size Description
physicalonu [ ] inout

Array de puertas de entrada/salida que conectan este modulo con el Splitter

gatewirelessInOut [ ] inout

Array de puertas de entrada/salida que conectan este modulo con una BS pasarela (si es una ONU pasarela)

Source code:

// 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];
        }
}