From 07d2f84907e776383572fa5cc89071d90a8be36b Mon Sep 17 00:00:00 2001 From: Vengada Govindan Date: Thu, 25 Aug 2016 10:34:34 -0700 Subject: Move iOAM Trace as a plugin Change-Id: I78322e91485e5429871bd356f668b8ed90f4265a Signed-off-by: Vengada Govindan --- vpp/vpp-api/api.c | 49 +++++++++++---------------------------------- vpp/vpp-api/vpe.api | 57 ++++++++++------------------------------------------- 2 files changed, 21 insertions(+), 85 deletions(-) (limited to 'vpp') diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c index ead5f0cd..c339cb44 100644 --- a/vpp/vpp-api/api.c +++ b/vpp/vpp-api/api.c @@ -343,9 +343,8 @@ _(COP_INTERFACE_ENABLE_DISABLE, cop_interface_enable_disable) \ _(COP_WHITELIST_ENABLE_DISABLE, cop_whitelist_enable_disable) \ _(GET_NODE_GRAPH, get_node_graph) \ _(SW_INTERFACE_CLEAR_STATS, sw_interface_clear_stats) \ -_(TRACE_PROFILE_ADD, trace_profile_add) \ -_(TRACE_PROFILE_APPLY, trace_profile_apply) \ -_(TRACE_PROFILE_DEL, trace_profile_del) \ +_(IOAM_ENABLE, ioam_enable) \ +_(IOAM_DISABLE, ioam_disable) \ _(LISP_ADD_DEL_LOCATOR_SET, lisp_add_del_locator_set) \ _(LISP_ADD_DEL_LOCATOR, lisp_add_del_locator) \ _(LISP_ADD_DEL_LOCAL_EID, lisp_add_del_local_eid) \ @@ -7035,56 +7034,30 @@ vl_api_get_node_graph_t_handler (vl_api_get_node_graph_t * mp) /* *INDENT-ON* */ } -static void vl_api_trace_profile_add_t_handler - (vl_api_trace_profile_add_t * mp) +static void +vl_api_ioam_enable_t_handler (vl_api_ioam_enable_t * mp) { int rv = 0; - vl_api_trace_profile_add_reply_t *rmp; + vl_api_ioam_enable_reply_t *rmp; clib_error_t *error; /* Ignoring the profile id as currently a single profile * is supported */ - error = ip6_ioam_trace_profile_set (mp->trace_num_elt, mp->trace_type, - ntohl (mp->node_id), - ntohl (mp->trace_app_data), - mp->pow_enable, mp->trace_tsp, - mp->trace_ppc); + error = ip6_ioam_enable (mp->trace_enable, mp->pow_enable, mp->trace_ppc); if (error) { clib_error_report (error); rv = clib_error_get_code (error); } - REPLY_MACRO (VL_API_TRACE_PROFILE_ADD_REPLY); -} - -static void vl_api_trace_profile_apply_t_handler - (vl_api_trace_profile_apply_t * mp) -{ - int rv = 0; - vl_api_trace_profile_apply_reply_t *rmp; - - if (mp->enable != 0) - { - rv = ip6_ioam_set_destination ((ip6_address_t *) (&mp->dest_ipv6), - ntohl (mp->prefix_length), - ntohl (mp->vrf_id), - mp->trace_op == IOAM_HBYH_ADD, - mp->trace_op == IOAM_HBYH_POP, - mp->trace_op == IOAM_HBYH_MOD); - } - else - { - //ip6_ioam_clear_destination(&ip6, mp->prefix_length, mp->vrf_id); - } - REPLY_MACRO (VL_API_TRACE_PROFILE_APPLY_REPLY); + REPLY_MACRO (VL_API_IOAM_ENABLE_REPLY); } -static void vl_api_trace_profile_del_t_handler - (vl_api_trace_profile_del_t * mp) +static void +vl_api_ioam_disable_t_handler (vl_api_ioam_disable_t * mp) { int rv = 0; - vl_api_trace_profile_del_reply_t *rmp; + vl_api_ioam_disable_reply_t *rmp; clib_error_t *error; error = clear_ioam_rewrite_fn (); @@ -7094,7 +7067,7 @@ static void vl_api_trace_profile_del_t_handler rv = clib_error_get_code (error); } - REPLY_MACRO (VL_API_TRACE_PROFILE_DEL_REPLY); + REPLY_MACRO (VL_API_IOAM_DISABLE_REPLY); } static void diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api index 51862f74..5c1502a8 100644 --- a/vpp/vpp-api/vpe.api +++ b/vpp/vpp-api/vpe.api @@ -3962,87 +3962,50 @@ define sw_interface_clear_stats_reply i32 retval; }; -/** \brief IOAM Trace : Set TRACE profile +/** \brief IOAM enable : Enable in-band OAM @param id - profile id - @param trace_type - Trace type - @param trace_num_elt - Number of nodes in trace path @param trace_ppc - Trace PPC (none/encap/decap) - @param trace_tsp - Trace timestamp precision (0-sec,1-ms,2-us,3-ns) - @param trace_app_data - Trace application data, can be any 4 bytes @param pow_enable - Proof of Work enabled or not flag - @param node_id - Id of this node + @param trace_enable - iOAM Trace enabled or not flag */ -define trace_profile_add +define ioam_enable { u32 client_index; u32 context; u16 id; - u8 trace_type; - u8 trace_num_elt; u8 trace_ppc; - u8 trace_tsp; - u32 trace_app_data; u8 pow_enable; + u8 trace_enable; u32 node_id; }; -/** \brief Trace profile add / del response +/** \brief iOAM Trace profile add / del response @param context - sender context, to match reply w/ request @param retval - return value for request */ -define trace_profile_add_reply +define ioam_enable_reply { u32 context; i32 retval; }; -/** \brief IOAM Trace enable trace profile for a flow - @param id - id of the trace profile to be applied - @param dest_ipv6 - Destination IPv6 address - @param prefix_length - prefix mask - @param vrf_id - VRF ID - @param trace_op - Trace operation (add/mod/del) - @param enable - apply/remove the trace profile for the flow -*/ -define trace_profile_apply -{ - u32 client_index; - u32 context; - u16 id; - u8 dest_ipv6[16]; - u32 prefix_length; - u32 vrf_id; - u8 trace_op; - u8 enable; -}; - -/** \brief Trace profile apply response - @param context - sender context, to match reply w/ request - @param retval - return value for request -*/ -define trace_profile_apply_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Delete Trace Profile +/** \brief iOAM disable @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param index - MAP Domain index */ -define trace_profile_del +define ioam_disable { u32 client_index; u32 context; u16 id; }; -/** \brief Trace profile add / del response +/** \brief iOAM disable response @param context - sender context, to match reply w/ request @param retval - return value for request */ -define trace_profile_del_reply +define ioam_disable_reply { u32 context; i32 retval; -- cgit 1.2.3-korg