Update in sending Info Interest
diff --git a/nlsr_adl.c b/nlsr_adl.c
index f4237fb..767d7bd 100644
--- a/nlsr_adl.c
+++ b/nlsr_adl.c
@@ -47,6 +47,7 @@
hnbr->face=nbr->face;
hnbr->status=nbr->status;
hnbr->last_lsdb_version=0;
+ hnbr->info_interest_timed_out=0;
struct hashtb_param param_luq = {0};
hnbr->lsa_update_queue=hashtb_create(200, ¶m_luq);
@@ -75,7 +76,7 @@
for(i=0;i<adl_element;i++)
{
nbr=e->data;
- printf("Neighbor: %s Length: %d Face: %d Status: %d LSDB Version: %ld \n",ccn_charbuf_as_string(nbr->neighbor),(int)nbr->neighbor->length,nbr->face, nbr->status, nbr->last_lsdb_version);
+ printf("Neighbor: %s Length: %d Face: %d Status: %d LSDB Version: %ld Interest Timed Out: %d\n",ccn_charbuf_as_string(nbr->neighbor),(int)nbr->neighbor->length,nbr->face, nbr->status, nbr->last_lsdb_version,nbr->info_interest_timed_out);
hashtb_next(e);
}
@@ -140,3 +141,72 @@
hashtb_end(e);
}
+
+void
+update_adjacent_timed_out_to_adl(struct ccn_charbuf *nbr, int increment)
+{
+ printf("update_adjacent_timed_out_to_adl called \n");
+
+ int res;
+ struct ndn_neighbor *nnbr;
+
+ struct hashtb_enumerator ee;
+ struct hashtb_enumerator *e = ⅇ
+
+ hashtb_start(nlsr->adl, e);
+ res = hashtb_seek(e, nbr->buf, nbr->length, 0);
+
+ if( res == HT_OLD_ENTRY )
+ {
+ nnbr=e->data;
+ nnbr->info_interest_timed_out += increment;
+ }
+ else if(res == HT_NEW_ENTRY)
+ {
+ hashtb_delete(e);
+ }
+
+ hashtb_end(e);
+}
+
+void
+update_adjacent_timed_out_zero_to_adl(struct ccn_charbuf *nbr)
+{
+
+ printf("update_adjacent_timed_out_zero_to_adl called \n");
+ int time_out_number=get_timed_out_number(nbr);
+ update_adjacent_timed_out_to_adl(nbr,-time_out_number);
+
+}
+
+
+int
+get_timed_out_number(struct ccn_charbuf *nbr)
+{
+
+ printf("get_timed_out_number called \n");
+
+ int res,ret=-1;
+ struct ndn_neighbor *nnbr;
+
+ struct hashtb_enumerator ee;
+ struct hashtb_enumerator *e = ⅇ
+
+ hashtb_start(nlsr->adl, e);
+ res = hashtb_seek(e, nbr->buf, nbr->length, 0);
+
+ if( res == HT_OLD_ENTRY )
+ {
+ nnbr=e->data;
+ ret=nnbr->info_interest_timed_out;
+ }
+ else if(res == HT_NEW_ENTRY)
+ {
+ hashtb_delete(e);
+ }
+
+ hashtb_end(e);
+
+ return ret;
+
+}