map gbp papi: match endianess of f64 81/19581/17
authorPaul Vinciguerra <pvinci@vinciconsulting.com>
Wed, 15 May 2019 01:01:28 +0000 (21:01 -0400)
committerNeale Ranns <nranns@cisco.com>
Mon, 8 Jul 2019 17:47:33 +0000 (17:47 +0000)
commit888640a398f974cf388bdc983d10e78591275b37
treed777158dece54df369f7e6a6f76e12cbdc1733ab
parent44e60468a2f0ad7ceff67de718fe3c401016ef6d
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>
src/plugins/gbp/gbp_api.c
src/plugins/map/map_api.c
src/vnet/api_errno.h
src/vpp-api/python/vpp_papi/vpp_serializer.py
src/vpp/api/api.c
src/vpp/api/vpe.api
test/test_endian.py [new file with mode: 0644]