diff options
Diffstat (limited to 'docs/gettingstarted/developers/add_plugin.rst')
-rw-r--r-- | docs/gettingstarted/developers/add_plugin.rst | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/docs/gettingstarted/developers/add_plugin.rst b/docs/gettingstarted/developers/add_plugin.rst index eb9113a2efc..16952e8f036 100644 --- a/docs/gettingstarted/developers/add_plugin.rst +++ b/docs/gettingstarted/developers/add_plugin.rst @@ -9,20 +9,20 @@ Overview ________ This section shows how a VPP developer can create a new plugin, and -add it to VPP. +add it to VPP. We assume that we are starting from the VPP <top-of-workspace>. As an example, we will use the **make-plugin.sh** tool found in -**.../extras/emacs**. make-plugin.sh is a simple wrapper for a comprehensive +**./extras/emacs**. make-plugin.sh is a simple wrapper for a comprehensive plugin generator constructed from a set of emacs-lisp skeletons. Create your new plugin ---------------------- -Change directory to **.../src/plugins**, and run the plugin generator: +Change directory to **./src/plugins**, and run the plugin generator: .. code-block:: console - $ cd .../src/plugins + $ cd ./src/plugins $ ../../extras/emacs/make-plugin.sh <snip> Loading /scratch/vpp-docs/extras/emacs/tunnel-c-skel.el (source)... @@ -63,7 +63,7 @@ Here are the generated files. We'll go through them in a moment. .. code-block:: console - $ cd .../src/plugins/myplugin + $ cd ./myplugin $ ls CMakeLists.txt myplugin.c myplugin_periodic.c setup.pg myplugin_all_api_h.h myplugin.h myplugin_test.c @@ -191,11 +191,16 @@ instance of this data structure. You can enable or disable specific vpp plugins from the command line. By default, plugins are loaded. To change that behavior, set -default_disabled in the vlib_plugin_macro: +default_disabled in the macro VLIB_PLUGIN_REGISTER: .. code-block:: console - .default_disabled = 1 + VLIB_PLUGIN_REGISTER () = + { + .version = VPP_BUILD_VER, + .default_disabled = 1 + .description = "myplugin plugin description goes here", + }; The boilerplate generator places the graph node dispatch function onto the "device-input" feature arc. This may or may not be useful. @@ -273,3 +278,7 @@ vlib_plugin_get_symbol(...) API: void *p = vlib_get_plugin_symbol ("plugin_name", "symbol"); +More Examples +------------- + +For more information you can read many example plugins in the directory "./src/plugins". |