X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fmap%2Fmap_api.c;h=1e50ba1b714013bfb32d7e65b672be0b13482ab4;hb=ff47fb645;hp=b4f1467d1ac68e0df3895e9ffb6c7fc9df86140c;hpb=2500c79423c7d8d35b4e7b8f50060c09f2f857be;p=vpp.git diff --git a/src/plugins/map/map_api.c b/src/plugins/map/map_api.c index b4f1467d1ac..1e50ba1b714 100644 --- a/src/plugins/map/map_api.c +++ b/src/plugins/map/map_api.c @@ -53,15 +53,17 @@ vl_api_map_add_domain_t_handler (vl_api_map_add_domain_t * mp) int rv = 0; u32 index; u8 flags = 0; - + u8 *vtag = 0; + vtag = vl_api_from_api_to_vec (&mp->tag); rv = - map_create_domain ((ip4_address_t *) & mp->ip4_prefix.prefix, + map_create_domain ((ip4_address_t *) & mp->ip4_prefix.address, mp->ip4_prefix.len, - (ip6_address_t *) & mp->ip6_prefix.prefix, + (ip6_address_t *) & mp->ip6_prefix.address, mp->ip6_prefix.len, - (ip6_address_t *) & mp->ip6_src.prefix, + (ip6_address_t *) & mp->ip6_src.address, mp->ip6_src.len, mp->ea_bits_len, mp->psid_offset, - mp->psid_length, &index, ntohs (mp->mtu), flags); + mp->psid_length, &index, ntohs (mp->mtu), flags, vtag); + vec_free (vtag); /* *INDENT-OFF* */ REPLY_MACRO2(VL_API_MAP_ADD_DOMAIN_REPLY, @@ -103,7 +105,9 @@ vl_api_map_domain_dump_t_handler (vl_api_map_domain_dump_t * mp) vl_api_map_domain_details_t *rmp; map_main_t *mm = &map_main; map_domain_t *d; + map_domain_extra_t *de; vl_api_registration_t *reg; + u32 map_domain_index; if (pool_elts (mm->domains) == 0) return; @@ -115,14 +119,18 @@ vl_api_map_domain_dump_t_handler (vl_api_map_domain_dump_t * mp) /* *INDENT-OFF* */ pool_foreach(d, mm->domains, ({ + map_domain_index = d - mm->domains; + de = vec_elt_at_index(mm->domain_extras, map_domain_index); + /* Make sure every field is initiated (or don't skip the clib_memset()) */ - rmp = vl_msg_api_alloc (sizeof (*rmp)); + rmp = vl_msg_api_alloc (sizeof (*rmp) + vec_len(de->tag)); + rmp->_vl_msg_id = htons(VL_API_MAP_DOMAIN_DETAILS + mm->msg_id_base); rmp->context = mp->context; - rmp->domain_index = htonl(d - mm->domains); - clib_memcpy(&rmp->ip6_prefix.prefix, &d->ip6_prefix, sizeof(rmp->ip6_prefix.prefix)); - clib_memcpy(&rmp->ip4_prefix.prefix, &d->ip4_prefix, sizeof(rmp->ip4_prefix.prefix)); - clib_memcpy(&rmp->ip6_src.prefix, &d->ip6_src, sizeof(rmp->ip6_src.prefix)); + rmp->domain_index = htonl(map_domain_index); + clib_memcpy(&rmp->ip6_prefix.address, &d->ip6_prefix, sizeof(rmp->ip6_prefix.address)); + clib_memcpy(&rmp->ip4_prefix.address, &d->ip4_prefix, sizeof(rmp->ip4_prefix.address)); + clib_memcpy(&rmp->ip6_src.address, &d->ip6_src, sizeof(rmp->ip6_src.address)); rmp->ip6_prefix.len = d->ip6_prefix_len; rmp->ip4_prefix.len = d->ip4_prefix_len; rmp->ip6_src.len = d->ip6_src_len; @@ -132,6 +140,8 @@ vl_api_map_domain_dump_t_handler (vl_api_map_domain_dump_t * mp) rmp->flags = d->flags; rmp->mtu = htons(d->mtu); + vl_api_vec_to_api_string (de->tag, &rmp->tag ); + vl_api_send_msg (reg, (u8 *) rmp); })); /* *INDENT-ON* */ @@ -451,7 +461,7 @@ static void int rv; f64 ht_ratio; - ht_ratio = (f64) clib_net_to_host_u64 (mp->ht_ratio); + ht_ratio = (f64) clib_net_to_host_f64 (mp->ht_ratio); if (ht_ratio == ~0) ht_ratio = MAP_IP6_REASS_CONF_HT_RATIO_MAX + 1; @@ -513,7 +523,7 @@ static void vl_api_map_param_set_traffic_class_reply_t *rmp; int rv; - rv = map_param_set_traffic_class (mp->copy, mp->class); + rv = map_param_set_traffic_class (mp->copy, mp->tc_class); REPLY_MACRO (VL_API_MAP_PARAM_SET_TRAFFIC_CLASS_REPLY); } @@ -577,15 +587,13 @@ vl_api_map_param_get_t_handler (vl_api_map_param_get_t * mp) clib_net_to_host_u16 (mm->ip4_reass_conf_lifetime_ms); rmp->ip4_pool_size = clib_net_to_host_u16 (mm->ip4_reass_conf_pool_size); rmp->ip4_buffers = clib_net_to_host_u32 (mm->ip4_reass_conf_buffers); - rmp->ip4_ht_ratio = - clib_net_to_host_u64 ((u64) mm->ip4_reass_conf_ht_ratio); + rmp->ip4_ht_ratio = clib_net_to_host_f64 (mm->ip4_reass_conf_ht_ratio); rmp->ip6_lifetime_ms = clib_net_to_host_u16 (mm->ip6_reass_conf_lifetime_ms); rmp->ip6_pool_size = clib_net_to_host_u16 (mm->ip6_reass_conf_pool_size); rmp->ip6_buffers = clib_net_to_host_u32 (mm->ip6_reass_conf_buffers); - rmp->ip6_ht_ratio = - clib_net_to_host_u64 ((u64) mm->ip6_reass_conf_ht_ratio); + rmp->ip6_ht_ratio = clib_net_to_host_f64 (mm->ip6_reass_conf_ht_ratio); rmp->sec_check_enable = mm->sec_check; rmp->sec_check_fragments = mm->sec_check_frag;