diff options
Diffstat (limited to 'src/vnet/mfib')
-rw-r--r-- | src/vnet/mfib/mfib_api.c | 20 | ||||
-rw-r--r-- | src/vnet/mfib/mfib_api.h | 7 | ||||
-rw-r--r-- | src/vnet/mfib/mfib_types.api | 9 |
3 files changed, 34 insertions, 2 deletions
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 <vnet/mfib/mfib_types.h> +#include <vnet/ip/ip.api_types.h> /** * 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, |