| #ifndef _NLSR_H_ |
| #define _NLSR_H_ |
| |
| |
| #define LSDB_SYNCH_INTERVAL 300 |
| #define INTEREST_RETRY 3 |
| #define INTEREST_RESEND_TIME 15 |
| #define NLSR_LOCKED 1 |
| #define NLSR_UNLOCKED 0 |
| #define LSA_REFRESH_TIME 1800 |
| #define ROUTER_DEAD_INTERVAL 3600 |
| #define MAX_FACES_PER_PREFIX 0 |
| |
| #define LINK_METRIC 10 |
| |
| #define NAME_LSA_VALID 1 |
| #define NAME_LSA_INVALID 0 |
| |
| #define API_PORT 9999 |
| |
| |
| struct name_prefix |
| { |
| char *name; |
| int length; |
| }; |
| |
| struct linkStateDatabase |
| { |
| struct hashtb *name_lsdb; |
| struct hashtb *adj_lsdb; |
| struct hashtb *cor_lsdb; |
| |
| char *lsdb_version; |
| }; |
| |
| struct pending_interest |
| { |
| char *int_name; |
| int timed_out; |
| }; |
| |
| struct nlsr |
| { |
| |
| struct ccn_closure in_interest; |
| struct ccn_closure in_content; |
| |
| struct ccns_name_closure *closure; |
| |
| struct ccns_slice *slice; |
| struct ccns_handle *ccns; |
| |
| struct ccn_schedule *sched; |
| struct ccn_scheduled_event *event; |
| struct ccn_scheduled_event *event_send_lsdb_interest; |
| struct ccn_scheduled_event *event_send_info_interest; |
| struct ccn_scheduled_event *event_build_name_lsa; |
| struct ccn_scheduled_event *event_build_adj_lsa; |
| struct ccn_scheduled_event *event_calculate_route; |
| |
| struct hashtb *adl; |
| struct hashtb *npl; |
| //struct hashtb *pit_alsa; |
| struct hashtb *map; |
| struct hashtb *rev_map; |
| struct hashtb *npt; |
| struct hashtb *routing_table; |
| |
| |
| struct linkStateDatabase *lsdb; |
| |
| struct ccn *ccn; |
| char *router_name; |
| |
| |
| |
| int is_synch_init; |
| long int nlsa_id; |
| int adj_build_flag; |
| long int adj_build_count; |
| int is_build_adj_lsa_sheduled; |
| int is_send_lsdb_interest_scheduled; |
| int is_route_calculation_scheduled; |
| |
| //long int lsdb_synch_interval; |
| int interest_retry; |
| long int interest_resend_time; |
| long int lsa_refresh_time; |
| long int router_dead_interval; |
| //long int multi_path_face_num; |
| long int max_faces_per_prefix; |
| char *logDir; |
| int detailed_logging; |
| int debugging; |
| |
| int semaphor; |
| |
| int nlsr_api_server_sock_fd; |
| fd_set readfds; |
| int api_port; |
| |
| char *topo_prefix; |
| char *slice_prefix; |
| |
| int is_hyperbolic_calc; |
| double cor_r; |
| double cor_theta; |
| |
| int tunnel_type; |
| |
| |
| }; |
| |
| struct nlsr *nlsr; |
| |
| void process_command_ccnneighbor(char *command); |
| void process_command_ccnname(char *command); |
| void process_command_lsdb_synch_interval(char *command); |
| void process_command_interest_retry(char *command); |
| void process_command_interest_resend_time(char *command); |
| void process_conf_command(char *command); |
| int readConfigFile(const char *filename); |
| |
| void nlsr_lock(void); |
| void nlsr_unlock(void); |
| |
| int init_nlsr(void); |
| void nlsr_destroy( void ); |
| void nlsr_stop_signal_handler(int sig); |
| |
| #endif |