Network SFNet_small2

Package: red_wireless
File: SFNet_small2.ned

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.

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

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_small2 ONU User SPLITTER wifi hops 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_small2

Parameters:

Name Type Default value Description
numBS int
numUser int
numGW int
criterio int
numcolas int
longitud_media_paquete int
conexiones int
caminos int
tasabinaria double
delta_time double
buffer_size double
carga_nodo double
rows int numGW
columns int ceil(numBS/numGW)
user_insercionmethod_separatequeue0_priorityqueue1 int
user_extractionmethod_StrictPQ0_Centralized1 int
user_longpacketfixed0_trimodal1 int
user_numstreamV2_32_128_256 int
oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4 int
extractionmethod_StrictPQ0_Centralized1 int
insercionmethod_separatequeue0_priorityqueue1 int
methodlength_longvariable0_longfija1 int
longpacketfixed0_trimodal1 int
numstreamV2_32_128_256 int
node_load double
numOnu int
longpon1 double
longpon2 double
numlong int
tambuffer double
txrate double
numqueue int
numSLA int
w_sla0 int
w_sla1 int
w_sla2 int
w_sla3 int
w_sla4 int
BW_garantizado0 int
BW_garantizado1 int
BW_garantizado2 int
numonu_sla0 int
numonu_sla1 int
numonu_sla2 int
numonu_sla3 int
numonu_sla4 int

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

@display("bgl=6;bgs=0.26,m;i=misc/cloud;bgi=background/SFNet,s;bgb=2992.308,1957.692"); Cada 0.26 píxeles del layout representan 1 metro Dimensiones del layout: 778x509px = 2992.3x1957.7m.

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

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

user.user_interface.numcolas int

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

Source code:

// 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.
network SFNet_small2
{
    @display("bgl=6;bgs=0.26,m;i=misc/cloud;bgi=background/SFNet_nodes_2,s;bgb=2992.308,1957.692");
    //@display("bgl=6;bgs=0.26,m;i=misc/cloud;bgi=background/SFNet,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;
    int numUser;
    int numGW;
    int criterio;
    int numcolas;
    int longitud_media_paquete;
    int conexiones;
    int caminos;
    double tasabinaria;
    double delta_time;
    double buffer_size;
    double carga_nodo;

    int rows = numGW;
    int columns = ceil(numBS/numGW);
    int user_insercionmethod_separatequeue0_priorityqueue1;
    int user_extractionmethod_StrictPQ0_Centralized1;
    int user_longpacketfixed0_trimodal1;
    int user_numstreamV2_32_128_256;

    int oltmethod_Centralized0_Polling1_wdm2_PollingPID3_DaSPID4;
    int extractionmethod_StrictPQ0_Centralized1;
    int insercionmethod_separatequeue0_priorityqueue1;
    int methodlength_longvariable0_longfija1;
    int longpacketfixed0_trimodal1;
    int numstreamV2_32_128_256;
    double node_load;
    int numOnu;
    double longpon1;
    double longpon2;
    int numlong;
    double tambuffer;
    double txrate;
    int numqueue;
    int numSLA;

    int w_sla0;
    int w_sla1;
    int w_sla2;
    int w_sla3;
    int w_sla4;

    int BW_garantizado0;
    int BW_garantizado1;
    int BW_garantizado2;

    int numonu_sla0;
    int numonu_sla1;
    int numonu_sla2;
    int numonu_sla3;
    int numonu_sla4;

    types:
        channel wifi extends ned.DelayChannel
        {
            @display("ls=,0");
			// Canal 'wifi': BS<-->User
            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.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) 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=1992.3077,750");
                //@display("r=250,,red;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 = 0;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs1: BS {
            parameters:
                @display("is=s;p=1192.3077,969.23083");
                //@display("r=318,,red;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]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs2: BS {
            parameters:
                @display("is=s;p=2234.6155,592.30774");
                //@display("r=250,,red;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 = 2;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs3: BS {
            parameters:
                @display("is=s;p=2507.6924,365.38464");
                //@display("r=250,,red;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 = 3;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs4: BS {
            parameters:
                @display("is=s;p=2300,150");
                //@display("r=250,,red;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 = 4;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs5: BS {
            parameters:
                @display("is=s;p=2734.6155,215.38463");
                //@display("r=250,,red;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 = 5;
                conexiones = conexiones;
            gates:
                physicalBS[conexiones]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs6: BS {
            parameters:
                @display("is=s;p=1480.7693,838.46155");
                //@display("r=250,,red;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]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs7: BS {
            parameters:
                @display("is=s;p=1292.3077,673.07697");
                //@display("r=250,,red;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]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs8: BS {
            parameters:
                @display("is=s;p=1623.077,392.3077");
                //@display("r=250,,red;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]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        bs9: BS {
            parameters:
                @display("is=s;p=1992.3077,423.07693");
                //@display("r=250,,red;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]; // Aunque la mayoria no se usan, se crean por si acaso
        }
        // Modulo OLT
        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];
        }
        // Modulo SPLITTER
        splitter: SPLITTER {
            parameters:
                @display("p=296.15387,838.46155;i=abstract/dispatcher;is=s");
                numlong = numlong;
            gates:
                splitterIn[numlong];
                splitterOut[numlong*numOnu];
        }
        // numOnu modulos ONU
        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];
        }
        // numUser modulos User
        user[numUser]: User {
            parameters:
                @display("is=s");
                //@display("r=250,,cyan;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.0,0);
                longitud_media_paquete = longitud_media_paquete;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
        }
    // Bucles de conexiones hechos de forma dinámica.
    connections allowunconnected:
        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++;

        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 {
            bs5.physicalBS++ <--> pasarela <--> onu[1].gatewirelessInOut++;
        }

        bs0.physicalBS++ <--> hops {  distanceHops = 308.08; } <--> bs2.physicalBS++;
        bs0.physicalBS++ <--> hops {  distanceHops = 515.38; } <--> bs6.physicalBS++;
        bs0.physicalBS++ <--> hops {  distanceHops = 510.77; } <--> bs8.physicalBS++;
        bs0.physicalBS++ <--> hops {  distanceHops = 318.08; } <--> bs9.physicalBS++;
        bs1.physicalBS++ <--> hops {  distanceHops = 317.69; } <--> bs6.physicalBS++;
        bs1.physicalBS++ <--> hops {  distanceHops = 350.00; } <--> bs7.physicalBS++;
        bs2.physicalBS++ <--> hops {  distanceHops = 350.00; } <--> bs3.physicalBS++;
        bs2.physicalBS++ <--> hops {  distanceHops = 296.15; } <--> bs9.physicalBS++;
        bs3.physicalBS++ <--> hops {  distanceHops = 272.31; } <--> bs4.physicalBS++;
        bs3.physicalBS++ <--> hops {  distanceHops = 276.15; } <--> bs5.physicalBS++;
        bs4.physicalBS++ <--> hops {  distanceHops = 429.62; } <--> bs5.physicalBS++;
        bs4.physicalBS++ <--> hops {  distanceHops = 396.15; } <--> bs9.physicalBS++;
        bs6.physicalBS++ <--> hops {  distanceHops = 257.69; } <--> bs7.physicalBS++;
        bs6.physicalBS++ <--> hops {  distanceHops = 488.46; } <--> bs8.physicalBS++;
        bs7.physicalBS++ <--> hops {  distanceHops = 419.23; } <--> bs8.physicalBS++;
        bs8.physicalBS++ <--> hops {  distanceHops = 396.15; } <--> bs9.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];
        }
}