From 990f69450781f1110056738707e3fed565262554 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Tue, 20 Oct 2020 07:20:17 +0000 Subject: ip: convert u32 entry_flags to vl_api_mfib_entry_flags_t on mroute API Type: fix This is not an API change, it's the same values, just a different named type. also use VppEnum values in tests Signed-off-by: Neale Ranns Change-Id: I3a18b529514f3cc9467ae4e8ac3e88d067fc776b --- src/vnet/mfib/mfib_api.c | 20 ++++++++++++++++++++ src/vnet/mfib/mfib_api.h | 7 +++++-- src/vnet/mfib/mfib_types.api | 9 +++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) (limited to 'src/vnet/mfib') diff --git a/src/vnet/mfib/mfib_api.c b/src/vnet/mfib/mfib_api.c index 1066a9d3b62..4743d889aef 100644 --- a/src/vnet/mfib/mfib_api.c +++ b/src/vnet/mfib/mfib_api.c @@ -92,6 +92,26 @@ mfib_api_path_itf_flags_decode (vl_api_mfib_itf_flags_t in, *out |= MFIB_ITF_FLAG_DONT_PRESERVE; } +mfib_entry_flags_t +mfib_api_path_entry_flags_decode (vl_api_mfib_entry_flags_t in) +{ + mfib_entry_flags_t out; + + out = MFIB_ENTRY_FLAG_NONE; + in = clib_net_to_host_u32(in); + + if (in & MFIB_API_ENTRY_FLAG_SIGNAL) + out |= MFIB_ENTRY_FLAG_SIGNAL; + if (in & MFIB_API_ENTRY_FLAG_DROP) + out |= MFIB_ENTRY_FLAG_DROP; + if (in & MFIB_API_ENTRY_FLAG_CONNECTED) + out |= MFIB_ENTRY_FLAG_CONNECTED; + if (in & MFIB_API_ENTRY_FLAG_ACCEPT_ALL_ITF) + out |= MFIB_ENTRY_FLAG_ACCEPT_ALL_ITF; + + return (out); +} + int mfib_api_path_decode (vl_api_mfib_path_t *in, fib_route_path_t *out) diff --git a/src/vnet/mfib/mfib_api.h b/src/vnet/mfib/mfib_api.h index f9c0a74bedb..dc802b6ed15 100644 --- a/src/vnet/mfib/mfib_api.h +++ b/src/vnet/mfib/mfib_api.h @@ -17,6 +17,7 @@ #define __MFIB_API_H__ #include +#include /** * Forward declare the API type, no need to include the generated api headers @@ -27,10 +28,12 @@ struct _vl_api_mfib_path; * Encode and decode functions from the API types to internal types */ extern void mfib_api_path_encode(const fib_route_path_t *in, - struct _vl_api_mfib_path *out); -extern int mfib_api_path_decode(struct _vl_api_mfib_path *in, + vl_api_mfib_path_t *out); +extern int mfib_api_path_decode(vl_api_mfib_path_t *in, fib_route_path_t *out); +extern mfib_entry_flags_t mfib_api_path_entry_flags_decode (vl_api_mfib_entry_flags_t in); + extern int mfib_api_table_id_decode(fib_protocol_t fproto, u32 table_id, u32 *fib_index); diff --git a/src/vnet/mfib/mfib_types.api b/src/vnet/mfib/mfib_types.api index 118230680d1..515b6de36e3 100644 --- a/src/vnet/mfib/mfib_types.api +++ b/src/vnet/mfib/mfib_types.api @@ -16,6 +16,15 @@ import "vnet/fib/fib_types.api"; import "vnet/ip/ip_types.api"; +enum mfib_entry_flags +{ + MFIB_API_ENTRY_FLAG_NONE = 0, + MFIB_API_ENTRY_FLAG_SIGNAL = 0x1, + MFIB_API_ENTRY_FLAG_DROP = 0x2, + MFIB_API_ENTRY_FLAG_CONNECTED = 0x4, + MFIB_API_ENTRY_FLAG_ACCEPT_ALL_ITF = 0x8, +}; + enum mfib_itf_flags { MFIB_API_ITF_FLAG_NONE = 0, -- cgit 1.2.3-korg