NED File User.ned

Name Description
User (compound module)

El modulo compuesto User representa a los usuarios finales asociados a cada BS en la red inalambrica. Modela a los usuarios individuales y tiene como prinicipal funcion generar trafico hacia la BS mas cercana. A cada BS y/o GW, se asocia uno de los modulos del array User[numUser].

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 User representa a los usuarios finales asociados a cada BS en la red inalambrica.
// Modela a los usuarios individuales y tiene como prinicipal funcion generar trafico hacia la BS mas cercana.
// A cada BS y/o GW, se asocia uno de los modulos del array User[numUser].
module User
{
    parameters:
        @display("i=device/wifilaptop;bgb=209,171");
        int numBS; //Numero de estaciones base en la parte inalambrica de la red hibrida
        int numUser; //Numero de usuarios en la parte inalambrica
        int numGW; //Numero de BSs que actuan de pasarela con la parte optica
        int caminos; //Parametro para elegir el numero de "rutas optimas" por las que se encaminan los paquetes inalambricos
        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[]
        double location; //Variable para generar aleatoriamente la longitud del canal entre User y BS
        double buffer_size; //Tamanyo del buffer de cada BS
        double tasabinaria; //Capacidad de radio de cada BS
        double carga_nodo; //Carga de cada fuente de trafico inalambrica
        int user_insercionmethod_separatequeue0_priorityqueue1; //Parametro para elegir el metodo de insercion de paquetes en los modulos BS_queue[]
		int user_longpacketfixed0_trimodal1; //Parametro para elegir el modo de generacion de paquetes Self-Similar (longitud fija o trimodal)
		int user_numstreamV2_32_128_256; //Parametro para elegir el numero de streams de cada fuente de trafico Self-Similar
        int aux; //Parametro auxiliar para incluir los modulos User como nodos en la instancia de la clase cTopology
    gates:
        inout physicalUser; //Puerta de entrada/salida que conecta el esterior del modulo User con el exterior del modulo BS, y el interior del modulo User con el modulo User_interface
    submodules:
        user_traffic[numcolas]: User_traffic {
            parameters:
                numcolas = numcolas;
                buffer_size = buffer_size;
                user_insercionmethod_separatequeue0_priorityqueue1 = user_insercionmethod_separatequeue0_priorityqueue1;
                @display("p=99,43");
        }
        user_interface: User_Interface {
            parameters:
                @display("p=99,129");
            gates:
                itf_in[numcolas];
        }
    connections allowunconnected:
        for i=0..numcolas-1 {
            user_traffic[i].traffic --> user_interface.itf_in[i];
        }
        user_interface.interface <--> physicalUser;
}