Multi Path Routing Complete
diff --git a/nlsr.c b/nlsr.c
index fc5320d..345635b 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -364,6 +364,34 @@
 }
 
 void 
+process_command_multi_path_face_num(char *command)
+{
+	if(command==NULL)
+	{
+		printf(" Wrong Command Format ( multi-path-face-num n )\n");
+		return;
+	}
+	char *rem;
+	const char *sep=" \t\n";
+	char *num;
+	long int number;
+	
+	num=strtok_r(command,sep,&rem);
+	if(num==NULL)
+	{
+		printf(" Wrong Command Format ( multi-path-face-num n)\n");
+		return;
+	}
+
+	number=atoi(num);
+	if ( number >= 0 && number <= 60 )
+	{
+		nlsr->multi_path_face_num=number;
+	}
+
+}
+
+void 
 process_conf_command(char *command)
 {
 	const char *separators=" \t\n";
@@ -407,6 +435,10 @@
 	{
 		process_command_router_dead_interval(remainder);
 	}
+	else if(!strcmp(cmd_type,"multi-path-face-num") )
+	{
+		process_command_multi_path_face_num(remainder);
+	}
 	else 
 	{
 		printf("Wrong configuration Command %s \n",cmd_type);
@@ -457,6 +489,9 @@
 	hashtb_destroy(&nlsr->lsdb->name_lsdb);
 	hashtb_destroy(&nlsr->lsdb->adj_lsdb);
 	hashtb_destroy(&nlsr->pit_alsa);
+
+	//To Do: has to destroy the face_list one by one 	
+
 	hashtb_destroy(&nlsr->routing_table);
 
 
@@ -469,7 +504,8 @@
 	for(i=0;i<npt_element;i++)
 	{
 		ne=e->data;
-		hashtb_destroy(&ne->name_list);	
+		hashtb_destroy(&ne->name_list);
+		hashtb_destroy(&ne->face_list);	
 		hashtb_next(e);		
 	}
 
@@ -555,6 +591,7 @@
 	nlsr->interest_resend_time = INTEREST_RESEND_TIME;
 	nlsr->lsa_refresh_time=LSA_REFRESH_TIME;
 	nlsr->router_dead_interval=ROUTER_DEAD_INTERVAL;
+	nlsr->multi_path_face_num=MULTI_PATH_FACE_NUM;
 
 
 	nlsr->semaphor=NLSR_UNLOCKED;