Index: /branches/rel_apv_10_7_2_14_qos/usr/click/lib/libfastlog/fastlog.c
===================================================================
--- /branches/rel_apv_10_7_2_14_qos/usr/click/lib/libfastlog/fastlog.c	(revision 38990)
+++ /branches/rel_apv_10_7_2_14_qos/usr/click/lib/libfastlog/fastlog.c	(working copy)
@@ -1008,7 +1008,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_7_2_14_qos/usr/src/sys/click/app/fastlog/fastlog.c
===================================================================
--- /branches/rel_apv_10_7_2_14_qos/usr/src/sys/click/app/fastlog/fastlog.c	(revision 38990)
+++ /branches/rel_apv_10_7_2_14_qos/usr/src/sys/click/app/fastlog/fastlog.c	(working copy)
@@ -2267,7 +2267,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_7_2_14_qos/usr/src/sys/click/netinet/click_eroute.c
===================================================================
--- /branches/rel_apv_10_7_2_14_qos/usr/src/sys/click/netinet/click_eroute.c	(revision 38990)
+++ /branches/rel_apv_10_7_2_14_qos/usr/src/sys/click/netinet/click_eroute.c	(working copy)
@@ -411,6 +411,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])
 
@@ -11278,6 +11280,39 @@
 	 * Note the insertion is done with temporary entry.  We *need* to
 	 * set hp->rec to a permanent entry if hp->new is true.
 	 */
+	pthread_mutex_init (&mutex,NULL);
+	pthread_mutex_lock(&mutex);
+	if ( counter < 500 ) {
+		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);
 	hp = hashInSearch(table, ori_key, &tmp_rirtentry, (flag & EROUTE_RTS_UPDATE)? HASH_NOINSERT: HASH_INSERT);
 	if (NULL == hp) {
 		if (flag & EROUTE_RTS_UPDATE) {
