+static
+int lb_vip_port_find_index_with_lock(ip46_address_t *prefix, u8 plen,
+ u8 protocol, u16 port, u32 *vip_index)
+{
+ return lb_vip_port_find_index(prefix, plen, protocol, port,
+ LB_LKP_SAME_IP_PORT, vip_index);
+}
+
+static
+int lb_vip_port_find_all_port_vip(ip46_address_t *prefix, u8 plen,
+ u32 *vip_index)
+{
+ return lb_vip_port_find_index(prefix, plen, ~0, 0,
+ LB_LKP_ALL_PORT_IP, vip_index);
+}
+
+/* Find out per-port-vip entry with different protocol and port */
+static
+int lb_vip_port_find_diff_port(ip46_address_t *prefix, u8 plen,
+ u8 protocol, u16 port, u32 *vip_index)
+{
+ return lb_vip_port_find_index(prefix, plen, protocol, port,
+ LB_LKP_DIFF_IP_PORT, vip_index);
+}
+
+int lb_vip_find_index(ip46_address_t *prefix, u8 plen, u8 protocol,
+ u16 port, u32 *vip_index)