Index: /branches/rel_apv_10_7/usr/src/sys/click/app/fastslb/fastslb_reverse.c
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/app/fastslb/fastslb_reverse.c	(revision 39140)
+++ /branches/rel_apv_10_7/usr/src/sys/click/app/fastslb/fastslb_reverse.c	(working copy)
@@ -53,6 +53,7 @@
 #include <click/app/fastslb/fastslb_reverse.h>
 #include <click/netinet/click_ports.h>
 #include <click/netinet/click_var.h>
+#include <click/netinet/click_utils.h>
 /*
 uint16_t fasttcp_find_open_port(fasttcp_tuples_t * tuples ,struct ifnet *out_ifp)
 {
@@ -208,8 +209,12 @@
 			tuples->dst_port = htons(*localport);
 			tuples_tmp = fastpcb_table_lookup(tuples, curatcp);
 
+			// TWSD-713, check the port number if it is used on other feature
 			if(!tuples_tmp) {
-				return *localport;
+				if ((!tuples->isipv6 && !is_management_port(tuples->dst_ip, *localport)) ||
+				(tuples->isipv6 && !is_management6_port(tuples->dst_ip6, *localport))){
+					return *localport;
+				}
 			}
 			ports_checked++;
 		}
Index: /branches/rel_apv_10_7/usr/src/sys/click/net/click_ether.c
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/net/click_ether.c	(revision 39140)
+++ /branches/rel_apv_10_7/usr/src/sys/click/net/click_ether.c	(working copy)
@@ -825,6 +825,18 @@
 	return NOT_MANAGEMENT_PACKET;
 }
 
+int is_management_port(uint32_t dip, uint16_t dport)
+{
+	return is_management_packet(0, 0, dip, dport);
+}
+
+int is_management6_port(struct in6_addr dip, uint16_t dport)
+{
+	struct in6_addr zero_ip6;
+	bzero(&zero_ip6, sizeof(zero_ip6));
+	return is_management6_packet(zero_ip6, 0, dip, dport);
+}
+
 #ifdef UINET
 int 
 is_our_management_packet(struct mbuf *m, int isipv6)
Index: /branches/rel_apv_10_7/usr/src/sys/click/netinet/click_utils.h
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/netinet/click_utils.h	(revision 39140)
+++ /branches/rel_apv_10_7/usr/src/sys/click/netinet/click_utils.h	(working copy)
@@ -339,6 +339,8 @@
 void clicktcp_disable_listen_port(int proto, int port, enum ct_port_type type);
 int clicktcp_is_listening(int proto, int port, enum ct_port_type type);
 void clicktcp_portlist_init(void);
+int is_management_port(uint32_t dip, uint16_t dport);
+int is_management6_port(struct in6_addr dip, uint16_t dport);
 void clicktcp_enqueue(struct mbuf *m, struct ifnet *ifp, int isipv6);
 int lo_dispatcher(struct mbuf *m, struct ifnet *ifp, int isipv6);
 void IP2L4_dispatcher(struct mbuf *m, u_short sport, u_short dport);
