blob: 5e9fa5a37f144c9880a06ffd5cf0c51281f6b0eb [file] [log] [blame]
akmhoque8a5babe2012-08-16 17:39:33 -05001#ifndef _NLSR_ADL_H_
2#define _NLSR_ADL_H_
3
akmhoque42098b12012-08-27 22:54:23 -05004#define NBR_DOWN 0
akmhoque03004e62012-09-06 01:12:28 -05005#define NBR_ACTIVE 1
akmhoque42098b12012-08-27 22:54:23 -05006
akmhoque03004e62012-09-06 01:12:28 -05007struct ndn_neighbor
8{
9 struct name_prefix *neighbor;
10 int face;
11 int status;
12 char * last_lsdb_version;
13 char * last_info_version;
14 int info_interest_timed_out;
akmhoque14b3f342012-09-14 10:39:02 -050015 int lsdb_interest_timed_out;
16 int lsdb_random_time_component;
akmhoque03004e62012-09-06 01:12:28 -050017 long int lsdb_synch_interval;
18 long int last_lsdb_requested;
19 int is_lsdb_send_interest_scheduled;
20 int metric;
21};
22
23void add_nbr_to_adl(struct name_prefix *new_nbr,int face);
akmhoque3171d652012-11-13 11:44:33 -060024void delete_nbr_from_adl(struct name_prefix *nbr);
akmhoque53f64222012-09-05 13:57:51 -050025void print_adjacent(struct ndn_neighbor *nbr);
akmhoque8a5babe2012-08-16 17:39:33 -050026void print_adjacent_from_adl(void);
akmhoque53f64222012-09-05 13:57:51 -050027int get_adjacent_status(struct name_prefix *nbr);
akmhoque53f64222012-09-05 13:57:51 -050028int get_timed_out_number(struct name_prefix *nbr);
akmhoque14b3f342012-09-14 10:39:02 -050029int get_lsdb_interest_timed_out_number(struct name_prefix *nbr);
akmhoque53f64222012-09-05 13:57:51 -050030void update_adjacent_timed_out_to_adl(struct name_prefix *nbr, int increment);
31void update_adjacent_timed_out_zero_to_adl(struct name_prefix *nbr);
akmhoque14b3f342012-09-14 10:39:02 -050032void update_lsdb_interest_timed_out_to_adl(struct name_prefix *nbr, int increment);
33void update_lsdb_interest_timed_out_zero_to_adl(struct name_prefix *nbr);
akmhoque03004e62012-09-06 01:12:28 -050034void update_adjacent_status_to_adl(struct name_prefix *nbr, int status);
35void update_lsdb_synch_interval_to_adl(struct name_prefix *nbr, long int interval);
akmhoque53f64222012-09-05 13:57:51 -050036int no_active_nbr(void);
akmhoque03004e62012-09-06 01:12:28 -050037int is_adj_lsa_build(void);
akmhoque53f64222012-09-05 13:57:51 -050038void get_active_nbr_adj_data(struct ccn_charbuf *c);
akmhoque03004e62012-09-06 01:12:28 -050039long int get_nbr_time_diff_lsdb_req(char *nbr);
40long int get_nbr_last_lsdb_requested(char *nbr);
41long int get_nbr_last_lsdb_requested(char *nbr);
42long int get_lsdb_synch_interval(char *nbr);
akmhoque14b3f342012-09-14 10:39:02 -050043int get_nbr_random_time_component(char *nbr);
akmhoque53f64222012-09-05 13:57:51 -050044char * get_nbr_lsdb_version(char *nbr);
45void update_adjacent_last_lsdb_requested_to_adl(char *nbr, long int timestamp);
akmhoque53f64222012-09-05 13:57:51 -050046void set_is_lsdb_send_interest_scheduled_to_zero(char *nbr);
akmhoque03004e62012-09-06 01:12:28 -050047void update_adjacent_lsdb_version_to_adl(struct name_prefix *nbr, char *version);
akmhoque53f64222012-09-05 13:57:51 -050048void adjust_adjacent_last_lsdb_requested_to_adl(char *nbr, long int sec);
akmhoquefbfd0982012-09-09 20:59:03 -050049int get_next_hop_face_from_adl(char *nbr);
akmhoquede61ba92012-09-20 22:19:12 -050050int is_neighbor(char *nbr);
akmhoque8a5babe2012-08-16 17:39:33 -050051#endif