00001 00002 // PROYECTO FIN DE CARRERA // 00003 // TITULO: Disenyo de nuevas arquitecturas y algoritmos de gestión de recursos en // 00004 // redes de acceso FiWi // 00005 // AUTOR: Ana Emma Lopez Mato // 00006 // TUTOR: Noemi Merayo Alvarez // 00007 // INGENIERIA TECNICA DE TELECOMUNICACIONES, SISTEMAS DE TELECOMUNICACION // 00008 // UNIVERSIDAD DE VALLADOLID // 00010 00011 #ifndef __RED_WIRELESS_USER_TRAFFIC_H_ 00012 #define __RED_WIRELESS_USER_TRAFFIC_H_ 00013 00014 #include <omnetpp.h> 00015 #include <vector> 00016 #include <time.h> 00017 #include "BS_table.h" 00018 #include "BS_queue.h" 00019 #include "BS_rx_tx.h" 00020 #include "analysis.h" 00021 #include "_types.h" 00022 #include "_rand_MT.h" 00023 #include "_link.h" 00024 #include "trace.h" 00025 #include "aggreg.h" 00026 #include "source.h" 00027 /* 00028 * MODULO User_traffic: 00029 * Consta de tantas fuentes de trafico como prioridades de servicio, que generan paquetes 00030 * segun distintas distribuciones (uniforme o de Pareto). 00031 */ 00032 //DEFINIMOS LOS TIPOS DE std DE LOS VECTORES Y MATRICES: 00033 typedef std::vector<int> int_vector_t; // VECTOR DE TIPO ENTERO 00034 typedef std::vector<double> double_vector_t; // VECTOR DE TIPO DOUBLE 00035 00036 class User_traffic : public cSimpleModule 00037 { 00038 00039 private: 00040 Analysis carga_user; 00041 Analysis longitud_user; 00042 FILE * carga_paquetes_user; 00043 FILE * paquetes_user; 00044 00045 public: 00046 User_traffic(); // CONSTRUCTOR 00047 virtual ~User_traffic(); // DESTRUCTOR 00048 Generator *pAG_user; // PUNTERO AL GENERADOR DE PAQUETES PARA LA FUENTE SELF SIMILAR VERSION 2 00049 int packetSize_user; // VARIABLE DEL TAMANYO DEL PAQUETE QUE GENERAMOS EN LAS FUENTES 00050 double_vector_t load_dmb_user; 00051 BS_table *Tabla; 00052 virtual int get_index_last_element(int row); 00053 virtual int get_index_last_element_k(int index, int row); 00054 int cuenta_ruta; 00055 int k_paths; 00056 int opcion_caminos; 00057 BS_queue *cola_bs; 00058 BS_rx_tx *rxtx_bs; 00059 long tamsumqueue_user; 00060 int_vector_t tamsumpop_user; 00061 double suma_tam_packets_user; 00062 simtime_t time_creation_user; 00063 double total_load_user; 00064 long suma_total_user; 00065 double channel_bit_rate; 00066 double txrate; 00067 double lambda; 00068 double inv_lambda; 00069 00070 long packet_64_user; 00071 long packet_594_user; 00072 long packet_1500_user; 00073 long totalpacket_user; 00074 00075 protected: 00076 virtual void initialize(); 00077 virtual void handleMessage(cMessage *msg); 00078 00079 // Metodos de insercion de paquetes de los usuarios en las colas de las BSs: 00080 virtual void separatequeue(cMessage *msg); // Colas separadas 00081 virtual void priorityqueue(cMessage *msg); // Prioridad de colas 00082 00083 virtual void volcadoFicheros(); 00084 int volcado; 00085 int contador; 00086 virtual void finish(); 00087 }; 00088 00089 #endif