diff options
author | Paul Vinciguerra <pvinci@vinciconsulting.com> | 2019-05-14 21:01:28 -0400 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2019-07-08 17:47:33 +0000 |
commit | 888640a398f974cf388bdc983d10e78591275b37 (patch) | |
tree | d777158dece54df369f7e6a6f76e12cbdc1733ab /src/plugins/gbp | |
parent | 44e60468a2f0ad7ceff67de718fe3c401016ef6d (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/gbp')
-rw-r--r-- | src/plugins/gbp/gbp_api.c | 4 |
1 files changed, 3 insertions, 1 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) |