fix issue with missing sample_main in sample plugin
[vpp.git] / src / examples / sample-plugin / sample / sample.c
index 0185274..91e8939 100644 (file)
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/*
- *------------------------------------------------------------------
- * sample.c - simple MAC-swap API / debug CLI handling
- *------------------------------------------------------------------
+/**
+ * @file
+ * @brief Sample Plugin, plugin API / trace / CLI handling.
  */
 
 #include <vnet/vnet.h>
@@ -24,7 +23,6 @@
 
 #include <vlibapi/api.h>
 #include <vlibmemory/api.h>
-#include <vlibsocket/api.h>
 
 /* define message IDs */
 #include <sample/sample_msg_enum.h>
@@ -61,10 +59,17 @@ _(SAMPLE_MACSWAP_ENABLE_DISABLE, sample_macswap_enable_disable)
 /* *INDENT-OFF* */
 VLIB_PLUGIN_REGISTER () = {
     .version = SAMPLE_PLUGIN_BUILD_VER,
+    .description = "Sample of VPP Plugin",
 };
 /* *INDENT-ON* */
 
-/* Action function shared between message handler and debug CLI */
+sample_main_t sample_main;
+
+/**
+ * @brief Enable/disable the macswap plugin. 
+ *
+ * Action function shared between message handler and debug CLI.
+ */
 
 int sample_macswap_enable_disable (sample_main_t * sm, u32 sw_if_index,
                                    int enable_disable)
@@ -134,6 +139,9 @@ macswap_enable_disable_command_fn (vlib_main_t * vm,
   return 0;
 }
 
+/**
+ * @brief CLI command to enable/disable the sample macswap plugin.
+ */
 VLIB_CLI_COMMAND (sr_content_command, static) = {
     .path = "sample macswap",
     .short_help = 
@@ -141,7 +149,9 @@ VLIB_CLI_COMMAND (sr_content_command, static) = {
     .function = macswap_enable_disable_command_fn,
 };
 
-/* API message handler */
+/**
+ * @brief Plugin API message handler.
+ */
 static void vl_api_sample_macswap_enable_disable_t_handler
 (vl_api_sample_macswap_enable_disable_t * mp)
 {
@@ -155,7 +165,9 @@ static void vl_api_sample_macswap_enable_disable_t_handler
   REPLY_MACRO(VL_API_SAMPLE_MACSWAP_ENABLE_DISABLE_REPLY);
 }
 
-/* Set up the API message handling tables */
+/**
+ * @brief Set up the API message handling tables.
+ */
 static clib_error_t *
 sample_plugin_api_hookup (vlib_main_t *vm)
 {
@@ -187,6 +199,9 @@ setup_message_id_table (sample_main_t * sm, api_main_t *am)
 #undef _
 }
 
+/**
+ * @brief Initialize the sample plugin.
+ */
 static clib_error_t * sample_init (vlib_main_t * vm)
 {
   sample_main_t * sm = &sample_main;
@@ -213,6 +228,9 @@ static clib_error_t * sample_init (vlib_main_t * vm)
 
 VLIB_INIT_FUNCTION (sample_init);
 
+/**
+ * @brief Hook the sample plugin into the VPP graph hierarchy.
+ */
 VNET_FEATURE_INIT (sample, static) = 
 {
   .arc_name = "device-input",