From 11965c7b47670da7d02eb2c543be52008c66848e Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Tue, 28 May 2019 16:31:05 -0400 Subject: Break out the broom for some cleanup work Maintain the MAINTAINERS file. Removed src/plugins/*.am listings. Added a couple of plugins. Add vlib_process_create (vlib_main_t *vm, char *name, vlib_node_function_t *f, u32 log2_n_stack_bytes); /** @brief Create a vlib process * @param vm &vlib_global_main * @param f the process node function * @param log2_n_stack_bytes size of the process stack, defaults to 16K * @return newly-create node index * @warning call only on the main thread. Barrier sync required. */ This function makes it easy to spin up periodic processes when features are enabled for the first time. That coding pattern is highly recommended. Update the emacs-lisp plugin generator to use vlib_process_create, instead of generating static periodic process nodes. Change-Id: Icda33e93b9034779d3a3e228cd1110af14b058a5 Signed-off-by: Dave Barach --- extras/emacs/plugin-h-skel.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'extras/emacs/plugin-h-skel.el') diff --git a/extras/emacs/plugin-h-skel.el b/extras/emacs/plugin-h-skel.el index b3fa6460bd2..21655109588 100644 --- a/extras/emacs/plugin-h-skel.el +++ b/extras/emacs/plugin-h-skel.el @@ -24,7 +24,7 @@ nil '(setq capital-oh-en "ON") " /* - * " plugin-name ".h - skeleton vpp engine plug-in header file + * " plugin-name ".h - skeleton vpp engine plug-in header file * * Copyright (c) * Licensed under the Apache License, Version 2.0 (the \"License\"); @@ -55,6 +55,8 @@ typedef struct { /* on/off switch for the periodic function */ u8 periodic_timer_enabled; + /* Node index, non-zero if the periodic process has been created */ + u32 periodic_node_index; /* convenience */ vlib_main_t * vlib_main; @@ -72,6 +74,8 @@ extern vlib_node_registration_t " plugin-name "_periodic_node; #define " PLUGIN-NAME "_EVENT2 2 #define " PLUGIN-NAME "_EVENT_PERIODIC_ENABLE_DISABLE 3 +void " plugin-name "_create_periodic_process (" plugin-name "_main_t *); + #endif /* __included_" plugin-name "_h__ */ /* -- cgit 1.2.3-korg