From e6e09a4acef2c38bc31e89c05bd1f40f1829debb Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Wed, 31 Jul 2019 12:45:48 +0200 Subject: nat: elog rewrite for multi-worker support Type: fix Change-Id: I04f136a04bc022d223e4bcb5c59920bd1f1fd560 Signed-off-by: Filip Varga --- src/plugins/nat/nat.c | 64 ++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) (limited to 'src/plugins/nat/nat.c') diff --git a/src/plugins/nat/nat.c b/src/plugins/nat/nat.c index e6d4ae5a9c6..1f27fb8c788 100755 --- a/src/plugins/nat/nat.c +++ b/src/plugins/nat/nat.c @@ -206,7 +206,7 @@ nat_free_session_data (snat_main_t * sm, snat_session_t * s, u32 thread_index, ed_kv.key[0] = ed_key.as_u64[0]; ed_kv.key[1] = ed_key.as_u64[1]; if (clib_bihash_add_del_16_8 (&tsm->in2out_ed, &ed_kv, 0)) - nat_log_warn ("in2out_ed key del failed"); + nat_elog_warn ("in2out_ed key del failed"); return; } @@ -234,7 +234,7 @@ nat_free_session_data (snat_main_t * sm, snat_session_t * s, u32 thread_index, ed_kv.key[0] = ed_key.as_u64[0]; ed_kv.key[1] = ed_key.as_u64[1]; if (clib_bihash_add_del_16_8 (&tsm->out2in_ed, &ed_kv, 0)) - nat_log_warn ("out2in_ed key del failed"); + nat_elog_warn ("out2in_ed key del failed"); ed_key.l_addr = s->in2out.addr; ed_key.fib_index = s->in2out.fib_index; if (!snat_is_unk_proto_session (s)) @@ -247,7 +247,7 @@ nat_free_session_data (snat_main_t * sm, snat_session_t * s, u32 thread_index, ed_kv.key[0] = ed_key.as_u64[0]; ed_kv.key[1] = ed_key.as_u64[1]; if (clib_bihash_add_del_16_8 (&tsm->in2out_ed, &ed_kv, 0)) - nat_log_warn ("in2out_ed key del failed"); + nat_elog_warn ("in2out_ed key del failed"); if (!is_ha) nat_syslog_nat44_sdel (s->user_index, s->in2out.fib_index, @@ -261,10 +261,10 @@ nat_free_session_data (snat_main_t * sm, snat_session_t * s, u32 thread_index, { kv.key = s->in2out.as_u64; if (clib_bihash_add_del_8_8 (&tsm->in2out, &kv, 0)) - nat_log_warn ("in2out key del failed"); + nat_elog_warn ("in2out key del failed"); kv.key = s->out2in.as_u64; if (clib_bihash_add_del_8_8 (&tsm->out2in, &kv, 0)) - nat_log_warn ("out2in key del failed"); + nat_elog_warn ("out2in key del failed"); if (!is_ha) nat_syslog_nat44_apmdel (s->user_index, s->in2out.fib_index, @@ -343,7 +343,7 @@ nat_user_get_or_create (snat_main_t * sm, ip4_address_t * addr, u32 fib_index, /* add user */ if (clib_bihash_add_del_8_8 (&tsm->user_hash, &kv, 1)) - nat_log_warn ("user_hash keay add failed"); + nat_elog_warn ("user_hash keay add failed"); vlib_set_simple_counter (&sm->total_users, thread_index, 0, pool_elts (tsm->users)); @@ -475,8 +475,8 @@ nat_ed_session_alloc (snat_main_t * sm, snat_user_t * u, u32 thread_index, if ((u->nsessions + u->nstaticsessions) >= sm->max_translations_per_user) { - nat_log_warn ("max translations per user %U", format_ip4_address, - &u->addr); + nat_elog_addr (SNAT_LOG_WARNING, "[warn] max translations per user", + clib_net_to_host_u32 (u->addr.as_u32)); snat_ipfix_logging_max_entries_per_user (thread_index, sm->max_translations_per_user, u->addr.as_u32); return 0; @@ -871,7 +871,7 @@ snat_add_static_mapping (ip4_address_t l_addr, ip4_address_t e_addr, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return VNET_API_ERROR_INVALID_VALUE_2; } break; @@ -1053,7 +1053,7 @@ snat_add_static_mapping (ip4_address_t l_addr, ip4_address_t e_addr, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return VNET_API_ERROR_INVALID_VALUE_2; } break; @@ -1234,7 +1234,7 @@ nat44_add_del_lb_static_mapping (ip4_address_t e_addr, u16 e_port, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return VNET_API_ERROR_INVALID_VALUE_2; } break; @@ -1271,7 +1271,7 @@ nat44_add_del_lb_static_mapping (ip4_address_t e_addr, u16 e_port, kv.value = m - sm->static_mappings; if (clib_bihash_add_del_8_8 (&sm->static_mapping_by_external, &kv, 1)) { - nat_log_err ("static_mapping_by_external key add failed"); + nat_elog_err ("static_mapping_by_external key add failed"); return VNET_API_ERROR_UNSPECIFIED; } @@ -1347,7 +1347,7 @@ nat44_add_del_lb_static_mapping (ip4_address_t e_addr, u16 e_port, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return VNET_API_ERROR_INVALID_VALUE_2; } break; @@ -1362,7 +1362,7 @@ nat44_add_del_lb_static_mapping (ip4_address_t e_addr, u16 e_port, kv.key = m_key.as_u64; if (clib_bihash_add_del_8_8 (&sm->static_mapping_by_external, &kv, 0)) { - nat_log_err ("static_mapping_by_external key del failed"); + nat_elog_err ("static_mapping_by_external key del failed"); return VNET_API_ERROR_UNSPECIFIED; } @@ -1379,7 +1379,7 @@ nat44_add_del_lb_static_mapping (ip4_address_t e_addr, u16 e_port, kv.key = m_key.as_u64; if (clib_bihash_add_del_8_8(&sm->static_mapping_by_local, &kv, 0)) { - nat_log_err ("static_mapping_by_local key del failed"); + nat_elog_err ("static_mapping_by_local key del failed"); return VNET_API_ERROR_UNSPECIFIED; } } @@ -1513,7 +1513,7 @@ nat44_lb_static_mapping_add_del_local (ip4_address_t e_addr, u16 e_port, kv.key = m_key.as_u64; kv.value = m - sm->static_mappings; if (clib_bihash_add_del_8_8 (&sm->static_mapping_by_local, &kv, 1)) - nat_log_err ("static_mapping_by_local key add failed"); + nat_elog_err ("static_mapping_by_local key add failed"); } } else @@ -1534,7 +1534,7 @@ nat44_lb_static_mapping_add_del_local (ip4_address_t e_addr, u16 e_port, m_key.fib_index = match_local->fib_index; kv.key = m_key.as_u64; if (clib_bihash_add_del_8_8 (&sm->static_mapping_by_local, &kv, 0)) - nat_log_err ("static_mapping_by_local key del failed"); + nat_elog_err ("static_mapping_by_local key del failed"); } if (sm->num_workers > 1) @@ -1669,7 +1669,7 @@ snat_del_address (snat_main_t * sm, ip4_address_t addr, u8 delete_sm, /* Check if address is used in some static mapping */ if (is_snat_address_used_in_static_mapping (sm, addr)) { - nat_log_notice ("address used in static mapping"); + nat_elog_notice ("address used in static mapping"); return VNET_API_ERROR_UNSPECIFIED; } } @@ -2297,6 +2297,7 @@ snat_init (vlib_main_t * vm) sm->addr_and_port_alloc_alg = NAT_ADDR_AND_PORT_ALLOC_ALG_DEFAULT; sm->forwarding_enabled = 0; sm->log_class = vlib_log_register_class ("nat", 0); + sm->log_level = SNAT_LOG_NONE; sm->mss_clamping = 0; node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); @@ -2463,7 +2464,7 @@ snat_free_outside_address_and_port (snat_address_t * addresses, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return; } } @@ -2496,7 +2497,7 @@ nat_set_outside_address_and_port (snat_address_t * addresses, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return 1; } } @@ -2603,7 +2604,7 @@ snat_static_mapping_match (snat_main_t * sm, match.protocol, match.port, tmp[lo], m->affinity, m->affinity_per_service_list_head_index)) - nat_log_info ("create affinity record failed"); + nat_elog_info ("create affinity record failed"); } vec_free (tmp); } @@ -2709,7 +2710,7 @@ nat_alloc_addr_and_port_default (snat_address_t * addresses, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return 1; } @@ -2740,7 +2741,7 @@ nat_alloc_addr_and_port_default (snat_address_t * addresses, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return 1; } } @@ -2790,7 +2791,7 @@ nat_alloc_addr_and_port_mape (snat_address_t * addresses, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return 1; } @@ -2838,7 +2839,7 @@ nat_alloc_addr_and_port_range (snat_address_t * addresses, foreach_snat_protocol #undef _ default: - nat_log_info ("unknown protocol"); + nat_elog_info ("unknown protocol"); return 1; } @@ -3257,7 +3258,7 @@ nat_ha_sadd_cb (ip4_address_t * in_addr, u16 in_port, kv.key = key.as_u64; kv.value = s - tsm->sessions; if (clib_bihash_add_del_8_8 (&tsm->out2in, &kv, 1)) - nat_log_warn ("out2in key add failed"); + nat_elog_warn ("out2in key add failed"); key.addr.as_u32 = in_addr->as_u32; key.port = in_port; @@ -3265,7 +3266,7 @@ nat_ha_sadd_cb (ip4_address_t * in_addr, u16 in_port, s->in2out = key; kv.key = key.as_u64; if (clib_bihash_add_del_8_8 (&tsm->in2out, &kv, 1)) - nat_log_warn ("in2out key add failed"); + nat_elog_warn ("in2out key add failed"); } void @@ -3431,12 +3432,12 @@ nat_ha_sadd_ed_cb (ip4_address_t * in_addr, u16 in_port, snat_proto_to_ip_proto (proto), fib_index, in_port, s->ext_host_nat_port); if (clib_bihash_add_del_16_8 (&tsm->in2out_ed, &kv, 1)) - nat_log_warn ("in2out key add failed"); + nat_elog_warn ("in2out key add failed"); make_ed_kv (&kv, out_addr, eh_addr, snat_proto_to_ip_proto (proto), s->out2in.fib_index, out_port, eh_port); if (clib_bihash_add_del_16_8 (&tsm->out2in_ed, &kv, 1)) - nat_log_warn ("out2in key add failed"); + nat_elog_warn ("out2in key add failed"); } void @@ -3789,7 +3790,7 @@ match: rp->proto, !is_delete, rp->twice_nat, rp->out2in_only, rp->tag, rp->identity_nat); if (rv) - nat_log_notice ("snat_add_static_mapping returned %d", rv); + nat_elog_notice_X1 ("snat_add_static_mapping returned %d", "i4", rv); } static void @@ -3860,7 +3861,8 @@ match: rp->out2in_only, rp->tag, rp->identity_nat); if (rv) - nat_log_notice ("snat_add_static_mapping returned %d", rv); + nat_elog_notice_X1 ("snat_add_static_mapping returned %d", + "i4", rv); } } return; -- cgit 1.2.3-korg