summaryrefslogtreecommitdiffstats
path: root/src/vlibapi/api_common.h
diff options
context:
space:
mode:
authorTom Seidenberg <tseidenb@cisco.com>2020-07-10 15:49:03 +0000
committerDave Barach <openvpp@barachs.net>2020-07-16 21:44:42 +0000
commit6c81f5a2493ff65b4dacfef45db8a1ee459a738f (patch)
tree24343a92e18599be4e4b4aa360ab7b2c13cdb878 /src/vlibapi/api_common.h
parentbab02f0b184b63c4159ded030cf34044be10da40 (diff)
misc: add callback hooks and refactor pmc
Callbacks for monitoring and performance measurement: - Add new callback list type, with context - Add callbacks for API, CLI, and barrier sync - Modify node dispatch callback to pass plugin-specific context - Modify perfmon plugin to keep PMC samples local to the plugin - Include process nodes in dispatch callback - Pass dispatch function return value to callback Type: refactor Signed-off-by: Tom Seidenberg <tseidenb@cisco.com> Change-Id: I28b06c58490611e08d76ff5b01b2347ba2109b22
Diffstat (limited to 'src/vlibapi/api_common.h')
-rw-r--r--src/vlibapi/api_common.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h
index 86b1c5ac3ee..915ddabaca1 100644
--- a/src/vlibapi/api_common.h
+++ b/src/vlibapi/api_common.h
@@ -224,7 +224,7 @@ typedef struct
} api_version_t;
/** API main structure, used by both vpp and binary API clients */
-typedef struct
+typedef struct api_main_t
{
/** Message handler vector */
void (**msg_handlers) (void *);
@@ -374,6 +374,12 @@ typedef struct
elog_main_t *elog_main;
int elog_trace_api_messages;
+ /** performance counter callback **/
+ void (**perf_counter_cbs)
+ (struct api_main_t *, u32 id, int before_or_after);
+ void (**perf_counter_cbs_tmp)
+ (struct api_main_t *, u32 id, int before_or_after);
+
} api_main_t;
extern __thread api_main_t *my_api_main;