INSEE 05.04.2011
Interconnection Nertworks Simulation and Evaluation Environment
|
Execution driven simulation & Interface with Simics needed definitions. More...
#include "globals.h"
#include <sys/time.h>
#include "list.h"
#include <pthread.h>
#include <netinet/in.h>
Go to the source code of this file.
Data Structures | |
struct | sync |
struct | arp_record |
struct | packet |
struct | FSIN_packet |
Defines | |
#define | DEBUG 2 |
#define | CLEAR_STATS 1 |
#define | GET_STATS 2 |
#define | TARG_IP_ADDR "1.2.3.4" |
#define | TARG_HW_ADDR "11:22:33:44:55:66" |
#define | IP_ADDR_LEN 4 |
#define | PACKET_SIZE_IN_BYTES (packet_size_in_phits * phit_size) |
#define | FSIN_CYCLE_RUN_DEFAULT 10 |
#define | SIMICS_CYCLE_RUN_DEFAULT 100000 |
#define | TV_SEC 10 |
#define | FSIN_PORT 12345 |
#define | FSIN_GROUP "225.0.0.37" |
#define | WAIT_PERCENT 0.00001f |
Functions | |
void | init_exd (long, long, long, long, long) |
void | run_network_exd (void) |
void | SIMICS_phit_away (long, phit) |
Variables | |
char | broadcast [6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff} |
int | run_FSIN = 0 |
unsigned long long | timestamp |
unsigned long long | timestamp_old = 0 |
unsigned long long | periodo |
unsigned long long | when = 0 |
int | sock |
int | escritor |
int | syn_sock |
long | num_Simics_hosts = 0 |
struct sockaddr_in syn_addr_r | syn_addr_s |
struct ip_mreq | mreq |
int | SIGPIPE_caught |
int | received_terminate_signal = 0 |
pthread_t | idHilo |
fd_set | lista_sockets |
long | FSIN_next_node_number = 0 |
long | id_next_ethernet_frame = 0 |
unsigned long | max_id_ethernet_frame |
unsigned short | num_bits_packet_sequence |
long | mask_eth_id_packet_sequence |
long | mask_eth_id_ethernet_frame |
long | fsin_cycle_relation |
long | simics_cycle_relation |
long | fsin_cycle_run |
long | simics_cycle_run |
long | serv_addr |
long | num_periodos_espera |
static time_t | end_time |
unsigned long long | veces_que_entra_FSIN = 0 |
unsigned long long | timestamp_init = 0 |
unsigned long long | timestamp_end = 0 |
list * | list_sync = NULL |
list * | lista = NULL |
list * | list_packets = NULL |
Execution driven simulation & Interface with Simics needed definitions.
void init_exd | ( | long | fsin_cycles, |
long | simics_cycles, | ||
long | packet_size, | ||
long | simics_hosts_port, | ||
long | periodos | ||
) |
Funcion de inicializacion para la Simulacion conducida por la ejecucion Parametros: long fsin_cycle_relation: relacion de ciclos entre Simics y FSIN, los ciclos que correra FSIN, por defecto es 10 long simics_cycle_relation: relacion de ciclos entre Simics y FSIN, los ciclos que correra Simics, por defecto es 1000 long packet_size_in_phits: tamao en phits del paquete, un phit son 4 bytes (configurable), por defecto es 32, es pkt_len long serv_addr: puerto de escucha de nuevas conexiones de SIMICS hosts, por defecto es 8082 long num_periodos_espera: retardo de interconexion que se introducira en el hosts destino. Medido en ciclos SIMICS, por defecto es 0
void run_network_exd | ( | void | ) |
Run the simulation in Execution driven mode.
Main function for execution driven simulation using SIMICS.
void SIMICS_phit_away | ( | long | i, |
phit | ph | ||
) |
funcion generate_FSIN_phits Esta funcion es identica a generate_phits. Lo unico que cambia son los parametros de id_ethernet_frame e id_packet_sequence que sirven para calcular el nuevo campo del phit id_trama que esta explicado en la estructura del phit en phit.h Funcion que comprueba si ha llegado un paquete y una trama depues de que haya llegado un phit a su destino en FSIN Los parametros son el nodo al que ha llegado el phit y el phit en cuestion