docs: Small changes to plugin, updated the requirements
[vpp.git] / docs / gettingstarted / developers / add_plugin.rst
index eb9113a..16952e8 100644 (file)
@@ -9,20 +9,20 @@ Overview
 ________
  
 This section shows how a VPP developer can create a new plugin, and
 ________
  
 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
 
 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
 ----------------------
 
 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
     
 
 .. 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)...
     $ ../../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
 
 
 .. 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
     $ 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
 
 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
 
 
 .. 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.
 
 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");
 
 
     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".