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_BS_RX_TX_H_ 00012 #define __RED_WIRELESS_BS_RX_TX_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_mac.h" 00020 #include "DATA_m.h" 00021 #include "LSA_m.h" 00022 /* 00023 * MODULO BS_rx_tx: 00024 * Recibe los mensajes procedentes de modulos externos (usuarios/BSs) para enviarlos al 00025 * submodulo BS_queue correspondiente, así como envía hacia el modulo externo pertinente 00026 * los mensajes de los submodulos BS_queue. 00027 */ 00028 typedef std::vector<double> double_vector_t; // VECTOR DE TIPO DOUBLE 00029 typedef std::vector<Analysis> analysis_vector_t; // VECTOR DE TIPO ANALISIS 00030 00031 class BS_rx_tx : public cSimpleModule 00032 { 00033 public: 00034 FILE * LSA_; 00035 FILE * retardo_intermedio; 00036 FILE * wireless_link_loads; 00037 FILE * carga_pasarela; 00038 FILE * datos_recibidos; 00039 FILE * paquetes_por_bs; 00040 FILE * retardo_wireless_pasarelas; 00041 FILE * saltos_metros; 00042 analysis_vector_t retardo_medio; 00043 Analysis retardo_pasarela; 00044 Analysis saltos; 00045 Analysis longitud; 00046 Analysis media_carga; 00047 BS_queue *cola_bs; 00048 BS_mac *control; 00049 cTopology top; 00050 cTopology::Node *nodeOut; 00051 int BSs; 00052 int pasarelas; 00053 int contador_LSAs; 00054 int prev_LSAs; 00055 int links; 00056 int bs_links; 00057 int indice_esta_bs; 00058 int esPasarela; 00059 int encontrado; 00060 double_vector_t arrived_packets; 00061 double_vector_t arrived_bytes; 00062 double_vector_t sent_packets; 00063 double_vector_t sent_bytes; 00064 double_vector_t packet_intensity; 00065 double_vector_t link_load; 00066 double_vector_t alt_link_load; 00067 double_vector_t node_load; 00068 double_vector_t alt_node_load; 00069 //double_vector_t gateway_arrival_rate; 00070 double_vector_t aux_samples; 00071 double carga; 00072 double paquetes_recibidos; 00073 double bytes_recibidos; 00074 double service_rate; 00075 double effective_capacity; 00076 double retardo_mensaje; 00077 double umbral_retardo; 00078 double tx_rate; 00079 double optical_tx_rate; 00080 double channel_bit_rate; 00081 simtime_t tiempo_canal; 00082 double T_cycle; 00083 double bw_cycle; 00084 double estimated_lambda; 00085 double t_frame; 00086 double_vector_t previous_estimated_lambda; 00087 simtime_t LSA_period; 00088 simtime_t offset_time; 00089 int aux_counter; 00090 int full_bs_queues; 00091 int prioridades; 00092 double mean_link_load; 00093 double mean_alt_link_load; 00094 double mean_node_load; 00095 double mean_alt_node_load; 00096 int total_enlaces; 00097 double paquetes_borrados_dara; 00098 00099 protected: 00100 virtual void initialize(); 00101 virtual void handleMessage(cMessage *msg); 00102 virtual void finish(); 00103 virtual void insert_Packet(cMessage *msg); 00104 virtual int get_index_link(int ind); 00105 virtual void calculate_link_load(); 00106 virtual double calculate_average_transfer_delay(); 00107 virtual void calculate_delay_weight(int indice1, int indice2, cMessage *msg); 00108 virtual void calculate_weight_params(int ind); 00109 }; 00110 00111 #endif