if (rv)
return rv;
rv = cnat_endpoint_decode (&in->dst_ep, &out->dst_ep);
+ out->ep_flags = in->flags;
return rv;
}
u8 flags;
int rv = 0;
u32 pi, n_paths;
+ cnat_lb_type_t lb_type;
rv = ip_proto_decode (mp->translation.ip_proto, &ip_proto);
flags = mp->translation.flags;
if (!mp->translation.is_real_ip)
flags |= CNAT_FLAG_EXCLUSIVE;
- id = cnat_translation_update (&vip, ip_proto, paths, flags);
+
+ lb_type = (cnat_lb_type_t) mp->translation.lb_type;
+ id = cnat_translation_update (&vip, ip_proto, paths, flags, lb_type);
vec_free (paths);
mp->translation.id = clib_host_to_net_u32 (cti);
cnat_endpoint_encode (&ct->ct_vip, &mp->translation.vip);
mp->translation.ip_proto = ip_proto_encode (ct->ct_proto);
+ mp->translation.lb_type = (vl_api_cnat_lb_type_t) ct->lb_type;
path = mp->translation.paths;
vec_foreach (trk, ct->ct_paths)
{
cnat_endpoint_encode (&trk->ct_ep[VLIB_TX], &path->dst_ep);
cnat_endpoint_encode (&trk->ct_ep[VLIB_RX], &path->src_ep);
+ path->flags = trk->ct_flags;
path++;
}