+static int lb_local_exists (nat44_lb_addr_port_t * local,
+ ip4_address_t * e_addr, u16 e_port)
+{
+ snat_main_t *sm = &snat_main;
+ snat_static_mapping_t *m;
+ nat44_lb_addr_port_t *ap;
+
+ /* *INDENT-OFF* */
+ pool_foreach (m, sm->static_mappings,
+ ({
+ if (vec_len(m->locals))
+ {
+ if (m->external_port == e_port && m->external_addr.as_u32 == e_addr->as_u32)
+ continue;
+
+ vec_foreach (ap, m->locals)
+ {
+ if (ap->port == local->port && ap->addr.as_u32 == local->addr.as_u32)
+ return 1;
+ }
+ }
+ }));
+ /* *INDENT-ON* */
+
+ return 0;
+}
+