aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorPaul Vinciguerra <pvinci@vinciconsulting.com>2019-05-14 21:01:28 -0400
committerNeale Ranns <nranns@cisco.com>2019-07-08 17:47:33 +0000
commit888640a398f974cf388bdc983d10e78591275b37 (patch)
treed777158dece54df369f7e6a6f76e12cbdc1733ab /src/plugins
parent44e60468a2f0ad7ceff67de718fe3c401016ef6d (diff)
map gbp papi: match endianess of f64
clib_net_to_host_f64, clib_host_to_net_f64 are now implemented as '=', https://gerrit.fd.io/r/#/c/20406/ set papi to match. - all f64 api references are now wrapped with clib_net_to_host_f64 or clib_host_to_net_f64. IEEE f64 endianess is not defined. If clib_net_to_host_f64 and clib_host_to_net_f64 are later defined in VPP as big-endian, it is a single character change in the papi vpp_serializer. Note: This breaks the api in a manner that would not be detected by the flag day initiative. The scope is small. This only impacts map.api, which applied the u64 transformation, while the gbp api uses '='. The implementation of "=" raises issues for the papi socket implementation if used between systems of differing endianess. See Vratko's comments. - Added get_f64_endian_value() to api to allow client to verify endianess of f64's. Type: fix Depends-on: https://gerrit.fd.io/r/#/c/20484/ Change-Id: I00fc64a6557ba0190398df211aa0ea5c7eb101df Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/gbp/gbp_api.c4
-rw-r--r--src/plugins/map/map_api.c8
2 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/gbp/gbp_api.c b/src/plugins/gbp/gbp_api.c
index f487e160808..7c7026aae84 100644
--- a/src/plugins/gbp/gbp_api.c
+++ b/src/plugins/gbp/gbp_api.c
@@ -246,7 +246,9 @@ gbp_endpoint_send_details (index_t gei, void *args)
mp->endpoint.n_ips = n_ips;
mp->endpoint.flags = gbp_endpoint_flags_encode (gef->gef_flags);
mp->handle = htonl (gei);
- mp->age = vlib_time_now (vlib_get_main ()) - ge->ge_last_time;
+ mp->age =
+ clib_host_to_net_f64 (vlib_time_now (vlib_get_main ()) -
+ ge->ge_last_time);
mac_address_encode (&ge->ge_key.gek_mac, mp->endpoint.mac);
vec_foreach_index (ii, ge->ge_key.gek_ips)
diff --git a/src/plugins/map/map_api.c b/src/plugins/map/map_api.c
index 1d2614ccb5d..4a0834d786b 100644
--- a/src/plugins/map/map_api.c
+++ b/src/plugins/map/map_api.c
@@ -461,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;
@@ -587,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;