Index: /branches/rel_apv_10_4_0_112_gail/usr/click/lib/libfastlog/fastlog.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/click/lib/libfastlog/fastlog.c	(revision 38897)
+++ /branches/rel_apv_10_4_0_112_gail/usr/click/lib/libfastlog/fastlog.c	(working copy)
@@ -996,7 +996,7 @@
 	vsnprintf(fmt, MAX_LOG_STRING, format, ap);
 	va_end(ap);
 
-	if (level != LOG_DEBUG)
+	if((level != LOG_DEBUG) && (level != LOG_NOTICE))
 		/* && level != LOG_INFO) */
 		return; /**only handle debug log msg,
 		           fastlog_syslog only uses in debug**/
Index: /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/fastlog/fastlog.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/fastlog/fastlog.c	(revision 38897)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/fastlog/fastlog.c	(working copy)
@@ -2221,7 +2221,7 @@
 	uint32_t len1;
 
 	/**only handle debug log msg,fastlog_syslog only uses in debug**/
-        if (level != LOG_DEBUG)/*&& level != LOG_INFO) */
+        if((level != LOG_DEBUG) && (level != LOG_NOTICE))/*&& level != LOG_INFO) */
         return;
 
 	MALLOC(new_entry, log_entry_t *, sizeof(log_entry_t), 
Index: /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/netinet/click_eroute.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/netinet/click_eroute.c	(revision 38897)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/netinet/click_eroute.c	(working copy)
@@ -385,6 +385,8 @@
 uint32_t *ustat_ipf_overflow_num = ipf_overflow_num;
 uint32_t *ustat_rts_overflow_num = rts_overflow_num;
 
+pthread_mutex_t mutex;
+int counter = 0;
 #define RIRT_TABLE_LOCK(i) mtx_lock(&rirt_mtx[i])
 #define RIRT_TABLE_UNLOCK(i) mtx_unlock(&rirt_mtx[i])
 
@@ -10577,6 +10579,39 @@
 
 	RIRT_TABLE_LOCK(RIRT_LI(ori_key));
 
+	pthread_mutex_init (&mutex,NULL);
+	pthread_mutex_lock(&mutex);
+	if ( counter < 50 ) {
+		struct in_addr myip1, myip2;
+		struct tcphdr *tcp;
+		struct udphdr *udp;
+		struct ether_header *eh = m->m_pkthdr.aext;
+		struct ifnet *ifp = m->m_pkthdr.rcvif;
+		const char *myip_str1= "172.20.12.50", *myip_str2 ="172.20.12.54";
+		inet_pton(AF_INET, myip_str1, &myip1);
+		inet_pton(AF_INET, myip_str2, &myip2);
+		if(ntohl(local_ip.s_addr) >= ntohl(myip1.s_addr) && ntohl(local_ip.s_addr) <= ntohl(myip2.s_addr) ){
+			fastlog_syslog(LOG_NOTICE,"IP:count = %d: %d, %d,%d, %d, %d",counter, ip->ip_hl, ntohs(ip->ip_len), ip->ip_p, ip->ip_src, ip->ip_dst);
+			fastlog_syslog(LOG_NOTICE,"MAC SRC= %s ", ether_sprintf(eh->ether_shost));
+			fastlog_syslog(LOG_NOTICE,"MAC DST=%s", ether_sprintf(eh->ether_dhost));
+			fastlog_syslog(LOG_NOTICE,"Interface: %s, rts_flag=%d", ifp->if_xname, flag);
+			switch (ip->ip_p) {
+			    case IPPROTO_TCP:
+			        tcp = (struct tcphdr*)((char *)ip + ip->ip_hl *4);
+			        fastlog_syslog(LOG_NOTICE,"tcp: %d, %d, %u, %u, %d, 0x%x", tcp->th_sport, tcp->th_dport, tcp->th_seq, tcp->th_ack, tcp->th_off*4, tcp->th_flags);
+			        break;
+			    case IPPROTO_UDP:
+			        udp = (struct udphdr*)((char *)ip + ip->ip_hl *4);
+			        fastlog_syslog(LOG_NOTICE,"udp: %d, %d, %d, 0x%x", udp->uh_sport, udp->uh_dport, udp->uh_ulen, udp->uh_sum);
+			        break;
+			    default:
+			        fastlog_syslog(LOG_NOTICE,"protocol: %d", ip->ip_p);
+			        break;
+			}
+		counter++;
+		}
+	}
+	pthread_mutex_unlock(&mutex);
 	/*
 	 * Note the insertion is done with temporary entry.  We *need* to
 	 * set hp->rec to a permanent entry if hp->new is true.
@@ -10603,11 +10638,13 @@
 		}
 		
 		if ((!rirt) && (!rirt2)){			 
+			fastlog_syslog(LOG_NOTICE,"case 1");
 			englog(ENGLOG_LLB, LLB_DEBUG, "rts_create: both rts and rts_h lru are empty");
 			RIRT_TABLE_UNLOCK(RIRT_LI(ori_key));
 			return;
 		}
 
+		fastlog_syslog(LOG_NOTICE,"case 2");
 		hp = hashInSearch(table, ori_key, &tmp_rirtentry, HASH_INSERT);
 		if (NULL == hp) {
 			englog(ENGLOG_LLB, LLB_DEBUG, "rts_create: second hashInSearch failed");
