cc = cnat_client_get (vnet_buffer (b)->ip.adj_index[VLIB_TX]);
- if (iproto != IP_PROTOCOL_UDP && iproto != IP_PROTOCOL_TCP)
+ if (iproto != IP_PROTOCOL_UDP && iproto != IP_PROTOCOL_TCP
+ && iproto != IP_PROTOCOL_ICMP && iproto != IP_PROTOCOL_ICMP6)
{
/* Dont translate & follow the fib programming */
next0 = cc->cc_parent.dpoi_next_node;
}
session->value.cs_lbi = dpo0->dpoi_index;
+ /* refcnt session in current client */
cnat_client_cnt_session (cc);
cnat_session_create (session, ctx, rsession_flags);
created_session = 1;
vnet_buffer (b)->ip.adj_index[VLIB_TX] = session->value.cs_lbi;
}
-
if (AF_IP4 == ctx->af)
cnat_translation_ip4 (session, ip4, udp0);
else