diff --git a/nlsr-sync-0.0/macbook.conf b/nlsr-sync-0.0/macbook.conf
index 73c7014..d29553f 100755
--- a/nlsr-sync-0.0/macbook.conf
+++ b/nlsr-sync-0.0/macbook.conf
@@ -1,7 +1,6 @@
 #----configuration file for macbook----------
 #
 router-name /ndn/memphis.edu/netlab/macbook
-hyperbolic-cordinate 1234.0 0.875
 ccnneighbor /ndn/memphis.edu/cs/maia
 ccnneighbor /ndn/memphis.edu/cs/mira
 ccnneighbor /ndn/memphis.edu/cs/castor
@@ -15,6 +14,9 @@
 router-dead-interval 900
 multi-path-face-num 2 
 debug on
+hyperbolic-routing on
+hyperbolic-cordinate 1234.0 0.875
+tunnel-type tcp
 
 topo-prefix /ndn/routing/nlsr/
 slice-prefix /ndn/routing/nlsr/LSA
diff --git a/nlsr-sync-0.0/nlsr.c b/nlsr-sync-0.0/nlsr.c
index 587e015..14244af 100755
--- a/nlsr-sync-0.0/nlsr.c
+++ b/nlsr-sync-0.0/nlsr.c
@@ -592,11 +592,11 @@
 }
 
 void 
-process_command_hyperbolic(char *command)
+process_command_hyperbolic_routing(char *command)
 {
 	if(command==NULL)
 	{
-		printf(" Wrong Command Format ( hyperbolic on/off )\n");
+		printf(" Wrong Command Format ( hyperbolic-routing on)\n");
 		return;
 	}
 	char *rem;
@@ -606,7 +606,7 @@
 	on_off=strtok_r(command,sep,&rem);
 	if(on_off==NULL)
 	{
-		printf(" Wrong Command Format ( hyperbolic on/off )\n");
+		printf(" Wrong Command Format ( hyperbolic-routing on )\n");
 		return;
 	}
 	
@@ -650,6 +650,31 @@
 }
 
 void 
+process_command_tunnel_type(char *command)
+{
+	if(command==NULL)
+	{
+		printf(" Wrong Command Format ( tunnel-type udp/tcp)\n");
+		return;
+	}
+	char *rem;
+	const char *sep=" \t\n";
+	char *on_off;
+
+	on_off=strtok_r(command,sep,&rem);
+	if(on_off==NULL)
+	{
+		printf(" Wrong Command Format ( tunnel-type udp/tcp )\n");
+		return;
+	}
+	
+	if ( strcmp(on_off,"TCP") == 0 || strcmp(on_off,"tcp") == 0 )
+	{
+		nlsr->tunnel_type=IPPROTO_TCP;
+	}
+}
+
+void 
 process_conf_command(char *command)
 {
 	const char *separators=" \t\n";
@@ -721,6 +746,14 @@
 	{
 		process_command_hyperbolic_cordinate(remainder);
 	}
+	else if(!strcmp(cmd_type,"hyperbolic-routing") )
+	{
+		process_command_hyperbolic_routing(remainder);
+	}
+	else if(!strcmp(cmd_type,"tunnel-type") )
+	{
+		process_command_tunnel_type(remainder);
+	}
 	else 
 	{
 		printf("Wrong configuration Command %s \n",cmd_type);
@@ -773,7 +806,7 @@
 	for(i=0;i<adl_element;i++)
 	{
 		nbr=e->data;
-		int face_id=add_ccn_face(nlsr->ccn, (const char *)nbr->neighbor->name, (const char *)nbr->ip_address, 9695);
+		int face_id=add_ccn_face(nlsr->ccn, (const char *)nbr->neighbor->name, (const char *)nbr->ip_address, 9695,nlsr->tunnel_type);
 		update_face_to_adl_for_nbr(nbr->neighbor->name, face_id);		
 		add_delete_ccn_face_by_face_id(nlsr->ccn, (const char *)nlsr->topo_prefix, OP_REG, face_id);
 		hashtb_next(e);		
@@ -800,8 +833,8 @@
 		nbr=e->data;
 		if ( nbr->face > 0 )
 		{	
-			add_delete_ccn_face_by_face_id(nlsr->ccn,(const char *)nbr->neighbor->name,OP_UNREG,nbr->face);	
 			add_delete_ccn_face_by_face_id(nlsr->ccn, (const char *)nlsr->topo_prefix, OP_UNREG, nbr->face);
+			add_delete_ccn_face_by_face_id(nlsr->ccn,(const char *)nbr->neighbor->name,OP_UNREG,nbr->face);
 		}
 		hashtb_next(e);		
 	}
@@ -916,7 +949,7 @@
 				memset(ip_addr,0,13);
 				get_ip_from_hostname_02(nbr_name->name,ip_addr);
 				printf("IP Address: %s \n",ip_addr);
-				int face_id=add_ccn_face(nlsr->ccn, (const char *)nbr_name->name, (const char *)ip_addr, 9695);
+				int face_id=add_ccn_face(nlsr->ccn, (const char *)nbr_name->name, (const char *)ip_addr, 9695,nlsr->tunnel_type);
 				update_face_to_adl_for_nbr(nbr_name->name, face_id);		
 				add_delete_ccn_face_by_face_id(nlsr->ccn, (const char *)nlsr->topo_prefix, OP_REG, face_id);				
 
@@ -1188,6 +1221,8 @@
 	nlsr->cor_r=-1.0;
 	nlsr->cor_theta=-1.0;
 
+	nlsr->tunnel_type=IPPROTO_UDP;
+
 	return 0;
 }
 
@@ -1229,7 +1264,7 @@
 
 	readConfigFile(config_file);
 
-	if ( nlsr->cor_r == -1.0 && nlsr->cor_theta== -1.0 ) 	
+	if ( nlsr->is_hyperbolic_calc == 1 && (nlsr->cor_r == -1.0 && nlsr->cor_theta== -1.0) ) 	
 	{
 		fprintf(stderr,"Hyperbolic codinate has not been defined :(\n");
 		ON_ERROR_DESTROY(-1);
@@ -1293,13 +1328,13 @@
 	add_faces_for_nbrs();
 	print_name_prefix_from_npl();
 	print_adjacent_from_adl();
-	build_and_install_name_lsas();
-	print_name_lsdb();
-
-	build_and_install_cor_lsa();	
+	build_and_install_name_lsas();	
 
 	sync_monitor(nlsr->topo_prefix,nlsr->slice_prefix);
 
+
+	print_name_lsdb();
+	build_and_install_cor_lsa();
 	write_name_lsdb_to_repo(nlsr->slice_prefix);
 
 	nlsr->sched = ccn_schedule_create(nlsr, &ndn_rtr_ticker);
diff --git a/nlsr-sync-0.0/nlsr.h b/nlsr-sync-0.0/nlsr.h
index 1155688..b1b279f 100755
--- a/nlsr-sync-0.0/nlsr.h
+++ b/nlsr-sync-0.0/nlsr.h
@@ -105,6 +105,8 @@
 	int is_hyperbolic_calc;
 	double cor_r;
 	double cor_theta;
+
+	int tunnel_type;
 	
 	
 };
diff --git a/nlsr-sync-0.0/nlsr_face.c b/nlsr-sync-0.0/nlsr_face.c
index 533fe9e..708fab7 100644
--- a/nlsr-sync-0.0/nlsr_face.c
+++ b/nlsr-sync-0.0/nlsr_face.c
@@ -263,7 +263,7 @@
  */
 static struct 
 ccn_face_instance *construct_face(const unsigned char *ccndid, size_t ccndid_size,
-        const char *address, const char *port)
+        const char *address, const char *port, unsigned int tunnel_proto)
 {
 	struct ccn_face_instance *fi = calloc(1, sizeof(*fi));
 	char rhostnamebuf[NI_MAXHOST];
@@ -295,7 +295,7 @@
 	}
 
 	fi->store = store;
-	fi->descr.ipproto = IPPROTO_UDP;
+	fi->descr.ipproto = tunnel_proto;
 	fi->descr.mcast_ttl = CCN_FIB_MCASTTTL;
 	fi->lifetime = CCN_FIB_LIFETIME;
 
@@ -333,7 +333,7 @@
 }
 
 static int 
-add_delete_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int p, int operation)
+add_delete_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int p, int operation,unsigned int tunnel_proto)
 {
 	struct ccn_charbuf *prefix;
 	char port[6];
@@ -362,7 +362,7 @@
 	}
 
 	/* construct a face instance for new face request */
-	fi = construct_face(ccndid, ccndid_size, address, port);
+	fi = construct_face(ccndid, ccndid_size, address, port,tunnel_proto);
 	ON_NULL_CLEANUP(fi);
 
 	/* send new face request to actually create a new face */
@@ -396,15 +396,15 @@
 
 
 int 
-add_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port)
+add_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port, unsigned int tunnel_proto)
 {
-	return add_delete_ccn_face(h, uri, address, port, OP_REG);
+	return add_delete_ccn_face(h, uri, address, port, OP_REG,tunnel_proto);
 }
 
 
 int 
-delete_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port)
+delete_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port,unsigned int tunnel_proto)
 {
-	return add_delete_ccn_face(h, uri, address, port, OP_UNREG);
+	return add_delete_ccn_face(h, uri, address, port, OP_UNREG,tunnel_proto);
 }
 
diff --git a/nlsr-sync-0.0/nlsr_face.h b/nlsr-sync-0.0/nlsr_face.h
index aae75f8..d50ea09 100644
--- a/nlsr-sync-0.0/nlsr_face.h
+++ b/nlsr-sync-0.0/nlsr_face.h
@@ -6,7 +6,7 @@
 #define OP_REG  0
 #define OP_UNREG 1
 
-int add_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port);
-int delete_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port);
+int add_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port,unsigned int tunnel_proto);
+int delete_ccn_face(struct ccn *h, const char *uri, const char *address, const unsigned int port,unsigned int tunnel_proto);
 
 #endif
diff --git a/nlsr-sync-0.0/nlsr_fib.c b/nlsr-sync-0.0/nlsr_fib.c
index 251bf95..6ef81cb 100755
--- a/nlsr-sync-0.0/nlsr_fib.c
+++ b/nlsr-sync-0.0/nlsr_fib.c
@@ -72,7 +72,7 @@
 	forwarding_entry->ccnd_id_size =ccnd_id_size;
 	forwarding_entry->faceid = faceid;
 	forwarding_entry->flags = -1;
-	forwarding_entry->lifetime = (~0U) >> 1;
+	forwarding_entry->lifetime = 2100;
 
 	prefixreg = ccn_charbuf_create();
 	ccnb_append_forwarding_entry(prefixreg, forwarding_entry);
diff --git a/nlsr-sync-0.0/nlsr_route.c b/nlsr-sync-0.0/nlsr_route.c
index 7754af1..36a9957 100755
--- a/nlsr-sync-0.0/nlsr_route.c
+++ b/nlsr-sync-0.0/nlsr_route.c
@@ -186,8 +186,7 @@
 			sort_queue_by_distance(Q,dist,head,V);
 		}
 	}
-	free(Q);
-	//free(dist);	
+	free(Q);	
 }
 
 void
