How to construct a complete plugin using the emacs skeletons

0. Install open-vpp, including the development package.

1. Load emacs skeletons

   M-x find-file all-skel.el
   M-x eval-buffer

2. Pick a single-word, lower-case name for your plugin. For example: macswap.
Hereafter, we'll refer to the selected name as <plugin-name>.

3. Generate the entire plugin:

   M-x make-plugin
   Plugin-name: <plugin-name>

Or, generate each file individually:

3. Create the required directories, e.g. under .../vpp

   $ mkdir -p <plugin-name>-plugin/<plugin-name>

4. Create <plugin-name>-plugin/{configure.ac,Makefile.am}

   M-x find-file <plugin-name>-plugin/configure.ac
   M-x plugin-configure-skel
   
   M-x find-file <plugin-name>-plugin/Makefile.am
   M-x skel-plugin-makefile

5. Create the api skeleton
   M-x find-file <plugin-name>-plugin/<plugin-name>/<plugin-name>.api
   M-x skel-plugin-api

6. Create the api message enumeration header file
   M-x find-file <plugin-name>-plugin/<plugin-name>/<plugin-name>_msg_enum.h
   M-x skel-plugin-msg-enum

7. Create the "all-api" header file
   M-x find-file <plugin-name>-plugin/<plugin-name>/<plugin-name>_all_api_h.h
   M-x skel-plugin-all-apih

8. Create the main data structure definition header file
   M-x find-file <plugin-name>-plugin/<plugin-name>/<plugin-name>.h
   M-x skel-plugin-h

9. Create the plugin main C file
   M-x find-file <plugin-name>-plugin/<plugin-name>/<plugin-name>.c
   M-x skel-plugin-main

10. Create the vpp-api-test plugin main C file
   M-x find-file <plugin-name>-plugin/<plugin-name>/<plugin-name>_test.c
   M-x skel-plugin-test

11. Create the data plane packet processing node
   M-x find-file <plugin-name>-plugin/<plugin-name>/node.c
   M-x skel-plugin-node

12. Process autotools input files

   $ cd <plugin-name>-plugin
   $ autoreconf -i -f

13. Build the plugin skeleton

   $ mkdir build
   $ cd build
   $ ../configure
   $ make
   $ sudo make install








   






