NED File BS.ned

Name Description
BS (compound module)

El modulo compuesto BS representa a los nodos que forman la parte inalambrica (estaciones base). Hay 'numBS' modulos BS, de los cuales 'numGW' funcionan de pasarela con la parte óptica.

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 BS representa a los nodos que forman la parte inalambrica (estaciones base).
// Hay 'numBS' modulos BS, de los cuales 'numGW' funcionan de pasarela con la parte óptica.
module BS
{
    parameters:
        @display("i=device/antennatower;bgl=3;bgb=298,228");
        int numBS; //Numero de estaciones base en la parte inalambrica de la red hibrida
        int numUser; //Numero de usuarios inalambricos que se conectan a las estaciones base
        int numGW; //Numero de BSs que actuan de pasarela con la parte optica de la red
        int numcolas; //Numero de clases de servicio de la parte inalambrica
        int indice; //Indice de la BS dentro del conjunto total
        int criterio; //Criterio elegido para implementar un algoritmo de encaminamiento (SPRA, MHRA, DARA)
        int longitud_media_paquete; //Longitud media de los paquetes generados por los modulos User_traffic[]
        int conexiones; //Longitud del array physicalBS[]
        double delta_time; //Tiempo de ciclo para repartir entre los enlaces de salida activos de cada BS
        double buffer_size; //Tamanyo del buffer de cada BS
        double tasabinaria; //Capacidad de radio de cada BS
        double txrate; //Capacidad del enlace optico punto-a-punto con la ONU-pasarela
        double carga_nodo; //Carga de las fuentes de trafico inalambricas
        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 decidir el metodo de extraccion de paquetes de los modulos BS_queue[]
        int aux; //Parametro auxiliar para incluir los modulos BS como nodos en la instancia de la clase cTopology
		double posicion; //Numero aleatorio para determinar la distancia entre dos BSs adyacentes en una red cualquiera
    gates:
        inout physicalBS[]; //Array de puertas de entrada/salida
    submodules:
        bs_table: BS_table {
            @display("p=34,34");
        }
        bs_queue[conexiones-1]: BS_queue {
            parameters:
                @display("i=block/subqueue;p=");
                numcolas = numcolas;
                delta_time = delta_time;
                buffer_size = buffer_size;
                tasabinaria = tasabinaria;
                user_extractionmethod_StrictPQ0_Centralized1 = user_extractionmethod_StrictPQ0_Centralized1;
        }
        bs_mac: BS_mac {
            parameters:
                @display("p=34,121");
                delta_time = delta_time;
            gates:
                bsmacInOut[conexiones-1];
        }
        bs_rx_tx: BS_rx_tx {
            @display("p=251,121;i=block/wrxtx");
            gates:
                bsRxTx[conexiones];
                queueRxTx[conexiones-1];
        }
    connections allowunconnected:
        for i=0..conexiones-1 {
            physicalBS++ <--> bs_rx_tx.bsRxTx++;
        }
        for i=0..conexiones-2 {
            bs_rx_tx.queueRxTx++ <--> bs_queue[i].bsqueueInOut;
        }
        for i=0..conexiones-2 {
            bs_mac.bsmacInOut[i] <--> bs_queue[i].withBsMac;
        }
}