diff options
Diffstat (limited to 'src/vlibapi')
-rw-r--r-- | src/vlibapi/api.h | 2 | ||||
-rw-r--r-- | src/vlibapi/api_common.h | 11 | ||||
-rw-r--r-- | src/vlibapi/api_shared.c | 9 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/vlibapi/api.h b/src/vlibapi/api.h index 49f5d5fb085..6820a541cba 100644 --- a/src/vlibapi/api.h +++ b/src/vlibapi/api.h @@ -114,6 +114,8 @@ vl_api_trace_t *vl_msg_api_trace_get (api_main_t * am, vl_api_trace_which_t which); void vl_msg_api_add_msg_name_crc (api_main_t * am, const char *string, u32 id); +void vl_msg_api_add_version (api_main_t * am, const char *string, + u32 major, u32 minor, u32 patch); /* node_serialize.c prototypes */ u8 *vlib_node_serialize (vlib_node_main_t * nm, u8 * vector, u32 max_threads, int include_nexts, diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h index 845199efcd0..56b036d7f07 100644 --- a/src/vlibapi/api_common.h +++ b/src/vlibapi/api_common.h @@ -186,6 +186,14 @@ typedef struct _vl_msg_api_init_function_list_elt vl_msg_api_init_function_t *f; } _vl_msg_api_function_list_elt_t; +typedef struct +{ + u32 major; + u32 minor; + u32 patch; + char name[64]; +} api_version_t; + /** API main structure, used by both vpp and binary API clients */ typedef struct { @@ -312,6 +320,9 @@ typedef struct /** client message index hash table */ uword *msg_index_by_name_and_crc; + /** api version list */ + api_version_t *api_version_list; + /** Shared VM binary API region name */ const char *region_name; diff --git a/src/vlibapi/api_shared.c b/src/vlibapi/api_shared.c index 27898c3b952..831e863393b 100644 --- a/src/vlibapi/api_shared.c +++ b/src/vlibapi/api_shared.c @@ -915,6 +915,15 @@ vl_msg_api_add_msg_name_crc (api_main_t * am, const char *string, u32 id) hash_set_mem (am->msg_index_by_name_and_crc, string, id); } +void +vl_msg_api_add_version (api_main_t * am, const char *string, + u32 major, u32 minor, u32 patch) +{ + api_version_t version = {.major = major,.minor = minor,.patch = patch }; + ASSERT (strlen (string) < 64); + strncpy (version.name, string, 64); + vec_add1 (am->api_version_list, version); +} /* * fd.io coding-style-patch-verification: ON |