* @param rt NAT runtime data
* @param sw_if_index0 index of the inside interface
* @param ip0 IPv4 header
- * @param proto0 NAT protocol
* @param rx_fib_index0 RX FIB index
*
* @returns 0 if packet should be translated otherwise 1
*/
static inline int
snat_not_translate_fast (snat_main_t *sm, vlib_node_runtime_t *node,
- u32 sw_if_index0, ip4_header_t *ip0, u32 proto0,
+ u32 sw_if_index0, ip4_header_t *ip0,
u32 rx_fib_index0)
{
fib_node_index_t fei = FIB_NODE_INDEX_INVALID;
pool_foreach (i, sm->interfaces)
{
/* NAT packet aimed at outside interface */
- if ((nat_interface_is_outside (i)) &&
+ if ((nat44_ed_is_interface_outside (i)) &&
(sw_if_index == i->sw_if_index))
return 0;
}
if (vec_len (sm->addresses) > 0)
{
- int s_addr_offset = s_addr.as_u32 % vec_len (sm->addresses);
+ u32 s_addr_offset = s_addr.as_u32 % vec_len (sm->addresses);
for (i = s_addr_offset; i < vec_len (sm->addresses); ++i)
{
if (lb)
s->flags |= SNAT_SESSION_FLAG_LOAD_BALANCING;
- s->flags |= SNAT_SESSION_FLAG_ENDPOINT_DEPENDENT;
s->ext_host_addr = r_addr;
s->ext_host_port = r_port;
nat44_ed_not_translate (vlib_main_t *vm, snat_main_t *sm,
vlib_node_runtime_t *node, u32 sw_if_index,
vlib_buffer_t *b, ip4_header_t *ip, u32 proto,
- u32 rx_fib_index, u32 thread_index)
+ u32 rx_fib_index)
{
clib_bihash_kv_16_8_t kv, value;
if (sm->forwarding_enabled)
return 1;
- return snat_not_translate_fast (sm, node, sw_if_index, ip, proto,
- rx_fib_index);
+ return snat_not_translate_fast (sm, node, sw_if_index, ip, rx_fib_index);
}
static_always_inline int
pool_elt_at_index (tsm->sessions,
ed_value_get_session_index (&value));
- if (is_fwd_bypass_session (s))
+ if (na44_ed_is_fwd_bypass_session (s))
{
if (ip->protocol == IP_PROTOCOL_TCP)
{
ed_value_get_session_index (&value));
skip_dst_nat_lookup:
- if (is_fwd_bypass_session (s))
+ if (na44_ed_is_fwd_bypass_session (s))
return 0;
/* hairpinning */
pool_foreach (i, sm->output_feature_interfaces)
{
- if ((nat_interface_is_inside (i)) && (rx_sw_if_index == i->sw_if_index))
- return 0;
+ if ((nat44_ed_is_interface_inside (i)) &&
+ (rx_sw_if_index == i->sw_if_index))
+ return 0;
}
return 1;
}
icmp46_header_t *icmp, u32 sw_if_index,
u32 rx_fib_index, vlib_node_runtime_t *node,
u32 next, f64 now, u32 thread_index,
- nat_protocol_t nat_proto, snat_session_t **s_p,
- int is_multi_worker)
+ snat_session_t **s_p, int is_multi_worker)
{
vlib_main_t *vm = vlib_get_main ();
u16 checksum;
{
if (PREDICT_FALSE (nat44_ed_not_translate (vm, sm, node, sw_if_index, b,
ip, NAT_PROTOCOL_ICMP,
- rx_fib_index, thread_index)))
+ rx_fib_index)))
{
return next;
}
s->ext_host_addr.as_u32 = ip->dst_address.as_u32;
s->flags |= SNAT_SESSION_FLAG_UNKNOWN_PROTO;
- s->flags |= SNAT_SESSION_FLAG_ENDPOINT_DEPENDENT;
s->out2in.addr.as_u32 = new_src_addr.as_u32;
s->out2in.fib_index = outside_fib_index;
s->in2out.addr.as_u32 = ip->src_address.as_u32;
{
next[0] = icmp_in2out_ed_slow_path (
sm, b0, ip0, icmp0, rx_sw_if_index0, rx_fib_index0, node, next[0],
- now, thread_index, proto0, &s0, is_multi_worker);
+ now, thread_index, &s0, is_multi_worker);
if (NAT_NEXT_DROP != next[0] && s0 &&
NAT_ED_TRNSL_ERR_SUCCESS !=
(translation_error = nat_6t_flow_buf_translate_i2o (
}
else
{
- if (PREDICT_FALSE (nat44_ed_not_translate (
- vm, sm, node, rx_sw_if_index0, b0, ip0, proto0,
- rx_fib_index0, thread_index)))
+ if (PREDICT_FALSE (
+ nat44_ed_not_translate (vm, sm, node, rx_sw_if_index0, b0,
+ ip0, proto0, rx_fib_index0)))
goto trace0;
}