fattree.h 1.88 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
#ifndef FATTREE_H
#define FATTREE_H

#include <ross.h>

typedef struct fattree_message fattree_message;

/* this message is used for both dragonfly compute nodes and routers */
struct fattree_message
{
11 12 13 14
  /* magic number */
  int magic;
  /* flit travel start time*/
  tw_stime travel_start_time;
15 16 17 18 19 20 21 22 23 24
 /* packet ID of the flit  */
  unsigned long long packet_ID;
  /* event type of the flit */
  short  type;
  /* category: comes from codes */
  char category[CATEGORY_NAME_MAX];
  /* final destination LP ID, this comes from codes can be a server or any other LP type*/
  tw_lpid final_dest_gid;
  /*sending LP ID from CODES, can be a server or any other LP type */
  tw_lpid sender_lp;
25
  tw_lpid sender_mn_lp; // source modelnet id
26
 /* destination terminal ID of the message */
27 28
//  int dest_num; replaced with dest_terminal_id
  tw_lpid dest_terminal_id;
29 30 31 32 33 34 35 36 37
  /* source terminal ID of the fattree */
  unsigned int src_terminal_id;
  /* Intermediate LP ID from which this message is coming */
  unsigned int intm_lp_id;
  short saved_vc;
  short saved_off;
  int last_hop;
  int intm_id; //to find which port I connect to sender with

38 39 40
  /* number of hops traversed by the packet */
  short my_N_hop;

41 42 43
  // For buffer message
  short vc_index;
  short vc_off;
44 45
  int is_pull;
  uint64_t pull_size;
46

47 48
  /* for reverse computation */    
  int path_type; 
49 50 51
  tw_stime saved_available_time;
  tw_stime saved_credit_time;
  uint64_t packet_size;
52
  tw_stime msg_start_time;
53 54 55 56
  tw_stime saved_sample_time;
  tw_stime saved_avg_time;
  tw_stime saved_rcv_time;
  tw_stime saved_total_time;
57 58

  /* For routing */
59
  uint64_t chunk_id;
60 61
  uint64_t total_size;
  uint64_t message_id;
62 63 64 65 66 67 68 69 70 71 72 73 74 75
   
  /* meta data to aggregate packets into a message at receiver */
  uint64_t msg_size;
  uint64_t src_nic;
  uint64_t uniq_id;
  uint64_t saved_size;

  int remote_event_size_bytes;
  int local_event_size_bytes;

};

#endif /* end of include guard: FATTREE_H */