Network SFNet

Package: red_wireless
File: SFNet.ned

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.

BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS User OLT SPLITTER ONU

Usage diagram:

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

SFNet wifi ONU User hops SPLITTER OLT BS

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.

SFNet

Parameters:

Name Type Default value Description
numBS int

Cada 0.26 píxeles del layout representan 1 metro -> Dimensiones del layout: 778x509px = 2992.3x1957.7m.

numUser int

Numero de usuarios inalambricos conectados a las estaciones base

numGW int

Numero de BSs que actuan como pasarelas entre la parte optica y la inalambrica

criterio int

Criterio aplicado para realizar el encaminamiento (SPRA, MHRA, DARA).

numcolas int

Numero de clases de servicio en la parte inalambrica

longitud_media_paquete int

Longitud media de los paquetes generados en los modulos User_traffic[] (en Bytes)

conexiones int

Longitud del array de puertas physicalBS[] del modulo compuesto BS

caminos int

Parametro para elegir el numero de "caminos optimos" por el que se encaminan los paquetes inalambricos

tasabinaria double

Capacidad de radio de las BSs

delta_time double

Tiempo de ciclo de cada enlace de las BSs

buffer_size double

Tamanyo del buffer de cada BS

carga_nodo double

Carga de cada fuente de trafico de los usuarios inalambricos

user_insercionmethod_separatequeue0_priorityqueue1 int

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

user_extractionmethod_StrictPQ0_Centralized1 int

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

node_load double

Carga de las fuentes de trafico optico

numOnu int

Numero de ONUs en la subred EPON

longpon1 double

Longitud del enlace entre OLT y Splitter

longpon2 double

Longitud del enlace entre SPlitter y ONUs

numlong int

Numero de longitudes de onda que soporta la parte optica de la red

tambuffer double

Tamanyo del buffer de cada ONU

txrate double

Capacidad de transmision de cada enlace optico

oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4 int

Parametro para elegir el mecanismo de gestion de ancho de banda dinamico implementado en la capa MAC del OLT

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 de la subred EPON (longitud fija o variable)

longpacketfixed0_trimodal1 int

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

numstreamV2_32_128_256 int

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

numqueue int

Numero de clases de servicio en la parte optica de la red hibrida

numSLA int

Numero de SLAs que soporta la subred optica

w_sla0 int

Peso del SLA0

w_sla1 int

Peso del SLA1

w_sla2 int

Peso del SLA2

w_sla3 int

Peso del SLA3

w_sla4 int

Peso del SLA4

numonu_sla0 int

Numero de ONUs asociadas al SLA0

numonu_sla1 int

Numero de ONUs asociadas al SLA1

numonu_sla2 int

Numero de ONUs asociadas al SLA2

numonu_sla3 int

Numero de ONUs asociadas al SLA3

numonu_sla4 int

Numero de ONUs asociadas al SLA4

BW_garantizado0 int

Ancho de banda garantizado para el SLA0

BW_garantizado1 int

Ancho de banda garantizado para el SLA1

BW_garantizado2 int

Ancho de banda garantizado para el SLA2

Properties:

Name Value Description
isNetwork
display bgl=6;bgs=0.26,m;i=misc/cloud;bgi=background/SFNet_nodes_2,s;bgb=2992.308,1957.692

Unassigned submodule parameters:

Name Type Default value Description
bs0.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs0.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs0.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs1.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs1.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs1.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs2.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs2.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs2.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs3.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs3.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs3.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs4.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs4.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs4.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs5.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs5.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs5.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs6.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs6.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs6.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs7.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs7.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs7.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs8.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs8.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs8.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs9.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs9.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs9.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs10.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs10.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs10.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs11.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs11.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs11.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs12.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs12.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs12.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs13.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs13.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs13.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs14.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs14.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs14.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs15.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs15.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs15.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs16.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs16.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs16.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs17.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs17.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs17.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs18.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs18.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs18.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs19.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs19.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs19.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs20.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs20.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs20.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs21.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs21.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs21.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs22.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs22.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs22.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs23.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs23.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs23.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

bs24.bs_rx_tx.numBS int

Numero de estaciones base en la parte inalambrica de la red hibrida

bs24.bs_rx_tx.numUser int

Numero de usuarios inalambricos conectados a las estaciones base

bs24.bs_rx_tx.numGW int

Numero de BSs que actuan de pasarelas con la parte optica de la red

user.user_interface.numcolas int

Numero de clases se servicio del trafico de la parte inalambrica de la red hibrida

olt.olt_mac.BW_garantizado0 int

Ancho de banda garantizado para el SLA0

olt.olt_mac.BW_garantizado1 int

Ancho de banda garantizado para el SLA1

olt.olt_mac.BW_garantizado2 int

Ancho de banda garantizado para el SLA2

Source code:

//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.
network SFNet
{
    @display("bgl=6;bgs=0.26,m;i=misc/cloud;bgi=background/SFNet_nodes_2,s;bgb=2992.308,1957.692");
    //Cada 0.26 píxeles del layout representan 1 metro -> Dimensiones del layout: 778x509px = 2992.3x1957.7m.
    int numBS; //Numero de estaciones base en la parte inalambrica de la red de acceso
    int numUser; //Numero de usuarios inalambricos conectados a las estaciones base
    int numGW; //Numero de BSs que actuan como pasarelas entre la parte optica y la inalambrica
    int criterio; //Criterio aplicado para realizar el encaminamiento (SPRA, MHRA, DARA).
    int numcolas; //Numero de clases de servicio en la parte inalambrica
    int longitud_media_paquete; //Longitud media de los paquetes generados en los modulos User_traffic[] (en Bytes)
    int conexiones; //Longitud del array de puertas physicalBS[] del modulo compuesto BS
    int caminos; //Parametro para elegir el numero de "caminos optimos" por el que se encaminan los paquetes inalambricos
    double tasabinaria; // Capacidad de radio de las BSs
    double delta_time; // Tiempo de ciclo de cada enlace de las BSs
    double buffer_size; //Tamanyo del buffer de cada BS
    double carga_nodo; //Carga de cada fuente de trafico de los usuarios inalambricos
    int user_insercionmethod_separatequeue0_priorityqueue1; //Parametro para elegir el metodo de insercion de los paquetes en los modulos BS_queue[]
    int user_extractionmethod_StrictPQ0_Centralized1; //Parametro para elegir el metodo de extraccion de los paquetes en los modulos BS_queue[]
    double node_load; //Carga de las fuentes de trafico optico
    int numOnu; //Numero de ONUs en la subred EPON
    double longpon1; //Longitud del enlace entre OLT y Splitter
    double longpon2; //Longitud del enlace entre SPlitter y ONUs
    int numlong; //Numero de longitudes de onda que soporta la parte optica de la red
    double tambuffer; //Tamanyo del buffer de cada ONU
    double txrate; //Capacidad de transmision de cada enlace optico
    int oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4; //Parametro para elegir el mecanismo de gestion de ancho de banda dinamico implementado en la capa MAC del OLT
    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 de la subred EPON (longitud fija o variable)
    int longpacketfixed0_trimodal1; //Parametro para elegir el modo de generacion de trafico Self-Similar (paquetes de longitud fija o trimodal)
    int numstreamV2_32_128_256; //Parametro para elegir el numero de streams de cada fuente optica Self-Similar
    int numqueue; //Numero de clases de servicio en la parte optica de la red hibrida
    int numSLA; //Numero de SLAs que soporta la subred 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 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
    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
    types:
        channel wifi extends ned.DelayChannel
        {
            // Canal 'wifi': BS<-->User
            @display("ls=,0");
            double distanceWifi; //Longitud del canal
            double Weight = 0.0; //Peso del canal
            double propag_delay = distanceWifi * 0.00000000333333333; //Retardo de propagacion del canal
            // retardo = distancia/velocidad_luz_en_aire(3*10^8m/s)
            delay = 0s; //Retardo inherente al canal
            // NOTA: Si quiere accederse remotamente al canal y a sus parametros, el indice de cada uno es:
            //		 getChannel()->par(0) = (bool) isDisabled
            //		 getChannel()->par(1) = (double) delay
            //		 getChannel()->par(2) = (double) distanceWifi
            //		 getChannel()->par(3) = (double) Weight
            //		 getChannel()->par(4) = (double) propag_delay
        }
        channel hops extends ned.DelayChannel
        {
            // Canal 'hops': BS<-->BS
            @display("ls=purple,1,da");
            double distanceHops; //Longitud del canal
            double Weight = 0.0; //Peso del canal
            double propag_delay = distanceHops * 0.00000000333333333; //Retardo de propagacion del canal
            // retardo = distancia/velocidad_luz_en_aire(3*10^8m/s)
            delay = 0s; //Retardo inherente al canal
            // NOTA: Si quiere accederse remotamente al canal y a sus parametros, el indice de cada uno es:
            //		 getChannel()->par(0) = (bool) isDisabled
            //		 getChannel()->par(1) = (double) delay
            //		 getChannel()->par(2) = (double) distanceHops
            //		 getChannel()->par(3) = (double) Weight
            //		 getChannel()->par(4) = (double) propag_delay
        }
        channel pasarela extends ned.DelayChannel
        {
            @display("ls=orange,1,s");
            // Canal 'pasarela': BS <--> ONU
            double distancePasarela = 0; //Longitud del canal
            double Weight = 0.0; //Peso del canal
            double propag_delay = distancePasarela * 0.000000005; //Retardo de propagacion del canal
            // retardo = distancia/velocidad_luz_en_aire(3*10^8m/s)
            delay = 0s; //Retardo inherente al canal
            // NOTA: Si quiere accederse remotamente al canal y a sus parametros, el indice de cada uno es:
            //		 getChannel()->par(0) = (bool) isDisabled
            //		 getChannel()->par(1) = (double) delay
            //		 getChannel()->par(2) = (double) distancePasarela
            //		 getChannel()->par(3) = (double) Weight
            //		 getChannel()->par(4) = (double) propag_delay
        }
        channel pon1 extends ned.DelayChannel
        {
            @display("ls=red,2,s");
            // Canal 'pon1': OLT <--> SPLITTER
            delay = lengthpon1 * 0.000000005s; //Retardo inherente al canal optico
			// retardo = longitud/velocidad_luz_en_fibra(2*10^8m/s)
            double lengthpon1 = longpon1; //LOngitud del canal
        }
        channel pon2 extends ned.DelayChannel
        {
            @display("ls=red,2,s");
            // Canal 'pon2': SPLITTER <--> ONUs
            delay = lengthpon2 * 0.000000005s; //Retardo inherente al canal optico
            // retardo = longitud/velocidad_luz_en_fibra(2*10^8m/s)
            double lengthpon2 = longpon2; //Longitud del canal
        }

    submodules:
        bs0: BS {
            parameters:
                @display("is=s;p=1061.5385,1230.7693");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 0;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs1: BS {
            parameters:
                @display("is=s;p=1192.3077,969.23083");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 1;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs2: BS {
            parameters:
                @display("is=s;p=1515.3846,1603.8462");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 2;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs3: BS {
            parameters:
                @display("is=s;p=1880.7693,1538.4615");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 3;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs4: BS {
            parameters:
                @display("is=s;p=1738.4615,1130.7693");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 4;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs5: BS {
            parameters:
                @display("is=s;p=1415.3846,1188.4615");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 5;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs6: BS {
            parameters:
                @display("is=s;p=1480.7693,838.46155");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 6;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs7: BS {
            parameters:
                @display("is=s;p=1292.3077,673.07697");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                txrate = txrate;
                indice = 7;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs8: BS {
            parameters:
                @display("is=s;p=1623.077,392.3077");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 8;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs9: BS {
            parameters:
                @display("is=s;p=1992.3077,423.07693");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                txrate = txrate;
                indice = 9;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs10: BS {
            parameters:
                @display("is=s;p=1992.3077,750");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 10;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs11: BS {
            parameters:
                @display("is=s;p=2019.2308,1188.4615");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 11;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs12: BS {
            parameters:
                @display("is=s;p=2330.7693,1469.2308");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 12;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs13: BS {
            parameters:
                @display("is=s;p=2573.077,1665.3846");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 13;
                conexiones = conexiones;
                txrate = txrate;
            gates:
                physicalBS[conexiones];
        }
        bs14: BS {
            parameters:
                @display("is=s;p=2573.077,1188.4615");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 14;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs15: BS {
            parameters:
                @display("is=s;p=2365.3848,1130.7693");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 15;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs16: BS {
            parameters:
                @display("is=s;p=2265.3848,926.9231");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 16;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs17: BS {
            parameters:
                @display("is=s;p=2234.6155,592.30774");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 17;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs18: BS {
            parameters:
                @display("is=s;p=2550,673.07697");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 18;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs19: BS {
            parameters:
                @display("is=s;p=2757.6924,1011.5385");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                txrate = txrate;
                indice = 19;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs20: BS {
            parameters:
                @display("is=s;p=2857.6924,646.1539");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 20;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs21: BS {
            parameters:
                @display("is=s;p=2823.0771,423.07693");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 21;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs22: BS {
            parameters:
                @display("is=s;p=2507.6924,365.38464");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 22;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs23: BS {
            parameters:
                @display("is=s;p=2300,150");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                indice = 23;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        bs24: BS {
            parameters:
                @display("is=s;p=2734.6155,215.38463");
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                numcolas = numcolas;
                carga_nodo = carga_nodo;
                delta_time = delta_time;
                buffer_size = buffer_size;
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
                tasabinaria = tasabinaria;
                txrate = txrate;
                indice = 24;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones];
        }
        user[numUser]: User {
            parameters:
                @display("is=s");
                caminos = caminos;
                numBS = numBS;
                numUser = numUser;
                numGW = numGW;
                tasabinaria = tasabinaria;
                numcolas = numcolas;
                buffer_size = buffer_size;
                carga_nodo = carga_nodo;
                location = 0.0; //uniform(1.0,250.00,0);
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
        }
        olt: OLT {
            parameters:
                @display("p=69.230774,838.46155");
                oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4 = oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4;
                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;
            gates:
                physicalolt[numlong];
        }
        splitter: SPLITTER {
            parameters:
                @display("p=296.15387,838.46155;i=abstract/dispatcher;is=s");
                numlong = numlong;
            gates:
                splitterIn[numlong];
                splitterOut[numlong*numOnu];
        }
        onu[numOnu]: ONU {
            parameters:
                @display("p=588.46155,61.538464,column,150;i=abstract/db;is=s");
                extractionmethod_StrictPQ0_Centralized1 = extractionmethod_StrictPQ0_Centralized1;
                insercionmethod_separatequeue0_priorityqueue1 = insercionmethod_separatequeue0_priorityqueue1;
                methodlength_longvariable0_longfija1 = methodlength_longvariable0_longfija1;
                longpacketfixed0_trimodal1 = longpacketfixed0_trimodal1;
                numstreamV2_32_128_256 = numstreamV2_32_128_256;
                node_load = node_load;
                numlong = numlong;
                tambuffer = tambuffer;
                txrate = txrate;
                numqueue = numqueue;
                numcolas = numcolas;
                numOnu = numOnu;
            gates:
                physicalonu[numlong];
                gatewirelessInOut[numqueue*2];
        }
    connections allowunconnected:
        // Conexiones entre cada BS y su User asociado (distancias creadas aleatoriamente):
        user[0].physicalUser <--> wifi {  distanceWifi = user[0].location; } <--> bs0.physicalBS++;
        user[1].physicalUser <--> wifi {  distanceWifi = user[1].location; } <--> bs1.physicalBS++;
        user[2].physicalUser <--> wifi {  distanceWifi = user[2].location; } <--> bs2.physicalBS++;
        user[3].physicalUser <--> wifi {  distanceWifi = user[3].location; } <--> bs3.physicalBS++;
        user[4].physicalUser <--> wifi {  distanceWifi = user[4].location; } <--> bs4.physicalBS++;
        user[5].physicalUser <--> wifi {  distanceWifi = user[5].location; } <--> bs5.physicalBS++;
        user[6].physicalUser <--> wifi {  distanceWifi = user[6].location; } <--> bs6.physicalBS++;
        user[7].physicalUser <--> wifi {  distanceWifi = user[7].location; } <--> bs7.physicalBS++;
        user[8].physicalUser <--> wifi {  distanceWifi = user[8].location; } <--> bs8.physicalBS++;
        user[9].physicalUser <--> wifi {  distanceWifi = user[9].location; } <--> bs9.physicalBS++;
        user[10].physicalUser <--> wifi {  distanceWifi = user[10].location; } <--> bs10.physicalBS++;
        user[11].physicalUser <--> wifi {  distanceWifi = user[11].location; } <--> bs11.physicalBS++;
        user[12].physicalUser <--> wifi {  distanceWifi = user[12].location; } <--> bs12.physicalBS++;
        user[13].physicalUser <--> wifi {  distanceWifi = user[13].location; } <--> bs13.physicalBS++;
        user[14].physicalUser <--> wifi {  distanceWifi = user[14].location; } <--> bs14.physicalBS++;
        user[15].physicalUser <--> wifi {  distanceWifi = user[15].location; } <--> bs15.physicalBS++;
        user[16].physicalUser <--> wifi {  distanceWifi = user[16].location; } <--> bs16.physicalBS++;
        user[17].physicalUser <--> wifi {  distanceWifi = user[17].location; } <--> bs17.physicalBS++;
        user[18].physicalUser <--> wifi {  distanceWifi = user[18].location; } <--> bs18.physicalBS++;
        user[19].physicalUser <--> wifi {  distanceWifi = user[19].location; } <--> bs19.physicalBS++;
        user[20].physicalUser <--> wifi {  distanceWifi = user[20].location; } <--> bs20.physicalBS++;
        user[21].physicalUser <--> wifi {  distanceWifi = user[21].location; } <--> bs21.physicalBS++;
        user[22].physicalUser <--> wifi {  distanceWifi = user[22].location; } <--> bs22.physicalBS++;
        user[23].physicalUser <--> wifi {  distanceWifi = user[23].location; } <--> bs23.physicalBS++;
        user[24].physicalUser <--> wifi {  distanceWifi = user[24].location; } <--> bs24.physicalBS++;

		// Conexiones entre las 5 BSs-pasarela y la correspondiente ONU-pasarela (distancia nula):
        for j=0..numcolas-1 {
            bs7.physicalBS++ <--> pasarela <--> onu[0].gatewirelessInOut++;
        }
        for j=0..numcolas-1 {
            bs9.physicalBS++ <--> pasarela <--> onu[0].gatewirelessInOut++;
        }
        for j=0..numcolas-1 {
            bs24.physicalBS++ <--> pasarela <--> onu[1].gatewirelessInOut++;
        }
        for j=0..numcolas-1 {
            bs19.physicalBS++ <--> pasarela <--> onu[2].gatewirelessInOut++;
        }
        for j=0..numcolas-1 {
            bs13.physicalBS++ <--> pasarela <--> onu[3].gatewirelessInOut++;
        }

		// Conexiones entre los 25 modulos BS de la red inalambrica en malla (distancias reales):
        bs0.physicalBS++ <--> hops {  distanceHops = 269.23; } <--> bs1.physicalBS++;
        bs0.physicalBS++ <--> hops {  distanceHops = 571.15; } <--> bs2.physicalBS++;
        bs0.physicalBS++ <--> hops {  distanceHops = 344.23; } <--> bs5.physicalBS++;
        bs1.physicalBS++ <--> hops {  distanceHops = 297.12; } <--> bs5.physicalBS++;
        bs1.physicalBS++ <--> hops {  distanceHops = 317.69; } <--> bs6.physicalBS++;
        bs1.physicalBS++ <--> hops {  distanceHops = 350.00; } <--> bs7.physicalBS++;
        bs2.physicalBS++ <--> hops {  distanceHops = 380.77; } <--> bs3.physicalBS++;
        bs2.physicalBS++ <--> hops {  distanceHops = 419.23; } <--> bs5.physicalBS++;
        bs3.physicalBS++ <--> hops {  distanceHops = 435.77; } <--> bs4.physicalBS++;
        bs3.physicalBS++ <--> hops {  distanceHops = 387.50; } <--> bs11.physicalBS++;
        bs3.physicalBS++ <--> hops {  distanceHops = 444.23; } <--> bs12.physicalBS++;
        bs4.physicalBS++ <--> hops {  distanceHops = 328.85; } <--> bs5.physicalBS++;
        bs4.physicalBS++ <--> hops {  distanceHops = 388.85; } <--> bs6.physicalBS++;
        bs4.physicalBS++ <--> hops {  distanceHops = 465.38; } <--> bs10.physicalBS++;
        bs4.physicalBS++ <--> hops {  distanceHops = 280.77; } <--> bs11.physicalBS++;
        bs5.physicalBS++ <--> hops {  distanceHops = 346.15; } <--> bs6.physicalBS++;
        bs6.physicalBS++ <--> hops {  distanceHops = 257.69; } <--> bs7.physicalBS++;
        bs6.physicalBS++ <--> hops {  distanceHops = 488.46; } <--> bs8.physicalBS++;
        bs6.physicalBS++ <--> hops {  distanceHops = 515.38; } <--> bs10.physicalBS++;
        bs7.physicalBS++ <--> hops {  distanceHops = 419.23; } <--> bs8.physicalBS++;
        bs8.physicalBS++ <--> hops {  distanceHops = 396.15; } <--> bs9.physicalBS++;
        bs8.physicalBS++ <--> hops {  distanceHops = 510.77; } <--> bs10.physicalBS++;
        bs9.physicalBS++ <--> hops {  distanceHops = 318.08; } <--> bs10.physicalBS++;
        bs9.physicalBS++ <--> hops {  distanceHops = 296.15; } <--> bs17.physicalBS++;
        bs9.physicalBS++ <--> hops {  distanceHops = 395.00; } <--> bs23.physicalBS++;
        bs10.physicalBS++ <--> hops {  distanceHops = 435.38; } <--> bs11.physicalBS++;
        bs10.physicalBS++ <--> hops {  distanceHops = 339.23; } <--> bs16.physicalBS++;
        bs10.physicalBS++ <--> hops {  distanceHops = 308.08; } <--> bs17.physicalBS++;
        bs11.physicalBS++ <--> hops {  distanceHops = 440.77; } <--> bs12.physicalBS++;
        bs11.physicalBS++ <--> hops {  distanceHops = 359.23; } <--> bs15.physicalBS++;
        bs11.physicalBS++ <--> hops {  distanceHops = 351.54; } <--> bs16.physicalBS++;
        bs12.physicalBS++ <--> hops {  distanceHops = 300.00; } <--> bs13.physicalBS++;
        bs12.physicalBS++ <--> hops {  distanceHops = 371.15; } <--> bs14.physicalBS++;
        bs12.physicalBS++ <--> hops {  distanceHops = 359.62; } <--> bs15.physicalBS++;
        bs13.physicalBS++ <--> hops {  distanceHops = 454.23; } <--> bs14.physicalBS++;
        bs14.physicalBS++ <--> hops {  distanceHops = 230.77; } <--> bs15.physicalBS++;
        bs14.physicalBS++ <--> hops {  distanceHops = 269.23; } <--> bs19.physicalBS++;
        bs15.physicalBS++ <--> hops {  distanceHops = 217.31; } <--> bs16.physicalBS++;
        bs15.physicalBS++ <--> hops {  distanceHops = 405.77; } <--> bs19.physicalBS++;
        bs16.physicalBS++ <--> hops {  distanceHops = 332.69; } <--> bs17.physicalBS++;
        bs16.physicalBS++ <--> hops {  distanceHops = 390.38; } <--> bs18.physicalBS++;
        bs16.physicalBS++ <--> hops {  distanceHops = 486.54; } <--> bs19.physicalBS++;
        bs17.physicalBS++ <--> hops {  distanceHops = 315.38; } <--> bs18.physicalBS++;
        bs17.physicalBS++ <--> hops {  distanceHops = 350.00; } <--> bs22.physicalBS++;
        bs18.physicalBS++ <--> hops {  distanceHops = 384.62; } <--> bs19.physicalBS++;
        bs18.physicalBS++ <--> hops {  distanceHops = 305.77; } <--> bs20.physicalBS++;
        bs18.physicalBS++ <--> hops {  distanceHops = 351.92; } <--> bs21.physicalBS++;
        bs18.physicalBS++ <--> hops {  distanceHops = 295.38; } <--> bs22.physicalBS++;
        bs19.physicalBS++ <--> hops {  distanceHops = 372.12; } <--> bs20.physicalBS++;
        bs20.physicalBS++ <--> hops {  distanceHops = 216.54; } <--> bs21.physicalBS++;
        bs21.physicalBS++ <--> hops {  distanceHops = 313.85; } <--> bs22.physicalBS++;
        bs21.physicalBS++ <--> hops {  distanceHops = 218.46; } <--> bs24.physicalBS++;
        bs22.physicalBS++ <--> hops {  distanceHops = 272.31; } <--> bs23.physicalBS++;
        bs22.physicalBS++ <--> hops {  distanceHops = 276.15; } <--> bs24.physicalBS++;
        bs23.physicalBS++ <--> hops {  distanceHops = 429.62; } <--> bs24.physicalBS++;

		// Conexion entre el OLT y el SPLITTER
        for j=0..numlong-1 {
            olt.physicalolt[j] <--> pon1 <--> splitter.splitterIn[j];
        }

        // Conexion entre el SPLITTER y todas las ONUs
        for j=0..(numlong*numOnu)-1 {
            splitter.splitterOut[j] <--> pon2 <--> onu[j/numlong].physicalonu[j%numlong];
        }
}