API refactoring : dpdk
[vpp.git] / src / vat / api_format.c
index e6c0f24..c00104d 100644 (file)
@@ -3569,9 +3569,6 @@ _(sw_interface_set_mpls_enable_reply)                   \
 _(sw_interface_set_vpath_reply)                         \
 _(sw_interface_set_vxlan_bypass_reply)                  \
 _(sw_interface_set_l2_bridge_reply)                     \
-_(sw_interface_set_dpdk_hqos_pipe_reply)                \
-_(sw_interface_set_dpdk_hqos_subport_reply)             \
-_(sw_interface_set_dpdk_hqos_tctbl_reply)               \
 _(bridge_domain_add_del_reply)                          \
 _(sw_interface_set_l2_xconnect_reply)                   \
 _(l2fib_add_del_reply)                                  \
@@ -3671,6 +3668,13 @@ _(feature_enable_disable_reply)                          \
 _(sw_interface_tag_add_del_reply)                      \
 _(sw_interface_set_mtu_reply)
 
+#if DPDK > 0
+#define foreach_standard_dpdk_reply_retval_handler      \
+_(sw_interface_set_dpdk_hqos_pipe_reply)                \
+_(sw_interface_set_dpdk_hqos_subport_reply)             \
+_(sw_interface_set_dpdk_hqos_tctbl_reply)
+#endif
+
 #define _(n)                                    \
     static void vl_api_##n##_t_handler          \
     (vl_api_##n##_t * mp)                       \
@@ -3702,6 +3706,39 @@ foreach_standard_reply_retval_handler;
 foreach_standard_reply_retval_handler;
 #undef _
 
+#if DPDK > 0
+#define _(n)                                    \
+    static void vl_api_##n##_t_handler          \
+    (vl_api_##n##_t * mp)                       \
+    {                                           \
+        vat_main_t * vam = &vat_main;           \
+        i32 retval = ntohl(mp->retval);         \
+        if (vam->async_mode) {                  \
+            vam->async_errors += (retval < 0);  \
+        } else {                                \
+            vam->retval = retval;               \
+            vam->result_ready = 1;              \
+        }                                       \
+    }
+foreach_standard_dpdk_reply_retval_handler;
+#undef _
+
+#define _(n)                                    \
+    static void vl_api_##n##_t_handler_json     \
+    (vl_api_##n##_t * mp)                       \
+    {                                           \
+        vat_main_t * vam = &vat_main;           \
+        vat_json_node_t node;                   \
+        vat_json_init_object(&node);            \
+        vat_json_object_add_int(&node, "retval", ntohl(mp->retval));    \
+        vat_json_print(vam->ofp, &node);        \
+        vam->retval = ntohl(mp->retval);        \
+        vam->result_ready = 1;                  \
+    }
+foreach_standard_dpdk_reply_retval_handler;
+#undef _
+#endif
+
 /*
  * Table of message reply handlers, must include boilerplate handlers
  * we just generated
@@ -3725,12 +3762,6 @@ _(SW_INTERFACE_SET_L2_XCONNECT_REPLY,                                   \
   sw_interface_set_l2_xconnect_reply)                                   \
 _(SW_INTERFACE_SET_L2_BRIDGE_REPLY,                                     \
   sw_interface_set_l2_bridge_reply)                                     \
-_(SW_INTERFACE_SET_DPDK_HQOS_PIPE_REPLY,                                \
-  sw_interface_set_dpdk_hqos_pipe_reply)                                \
-_(SW_INTERFACE_SET_DPDK_HQOS_SUBPORT_REPLY,                             \
-  sw_interface_set_dpdk_hqos_subport_reply)                             \
-_(SW_INTERFACE_SET_DPDK_HQOS_TCTBL_REPLY,                               \
-  sw_interface_set_dpdk_hqos_tctbl_reply)                               \
 _(BRIDGE_DOMAIN_ADD_DEL_REPLY, bridge_domain_add_del_reply)             \
 _(BRIDGE_DOMAIN_DETAILS, bridge_domain_details)                         \
 _(BRIDGE_DOMAIN_SW_IF_DETAILS, bridge_domain_sw_if_details)             \
@@ -3924,6 +3955,16 @@ _(SW_INTERFACE_SET_MTU_REPLY, sw_interface_set_mtu_reply)               \
 _(IP_NEIGHBOR_DETAILS, ip_neighbor_details)                             \
 _(SW_INTERFACE_GET_TABLE_REPLY, sw_interface_get_table_reply)
 
+#if DPDK > 0
+#define foreach_vpe_dpdk_api_reply_msg                                  \
+_(SW_INTERFACE_SET_DPDK_HQOS_PIPE_REPLY,                                \
+  sw_interface_set_dpdk_hqos_pipe_reply)                                \
+_(SW_INTERFACE_SET_DPDK_HQOS_SUBPORT_REPLY,                             \
+  sw_interface_set_dpdk_hqos_subport_reply)                             \
+_(SW_INTERFACE_SET_DPDK_HQOS_TCTBL_REPLY,                               \
+  sw_interface_set_dpdk_hqos_tctbl_reply)
+#endif
+
 /* M: construct, but don't yet send a message */
 
 #define M(T,t)                                          \
@@ -4724,6 +4765,7 @@ api_sw_interface_clear_stats (vat_main_t * vam)
   W;
 }
 
+#if DPDK >0
 static int
 api_sw_interface_set_dpdk_hqos_pipe (vat_main_t * vam)
 {
@@ -4944,6 +4986,7 @@ api_sw_interface_set_dpdk_hqos_tctbl (vat_main_t * vam)
   /* NOTREACHED */
   return 0;
 }
+#endif
 
 static int
 api_sw_interface_add_del_address (vat_main_t * vam)
@@ -17434,14 +17477,6 @@ _(sw_interface_set_l2_bridge,                                           \
   "<intfc> | sw_if_index <id> bd_id <bridge-domain-id>\n"               \
   "[shg <split-horizon-group>] [bvi]\n"                                 \
   "enable | disable")                                                   \
-_(sw_interface_set_dpdk_hqos_pipe,                                      \
-  "rx <intfc> | sw_if_index <id> subport <subport-id> pipe <pipe-id>\n" \
-  "profile <profile-id>\n")                                             \
-_(sw_interface_set_dpdk_hqos_subport,                                   \
-  "rx <intfc> | sw_if_index <id> subport <subport-id> [rate <n>]\n"     \
-  "[bktsize <n>] [tc0 <n>] [tc1 <n>] [tc2 <n>] [tc3 <n>] [period <n>]\n") \
-_(sw_interface_set_dpdk_hqos_tctbl,                                     \
-  "rx <intfc> | sw_if_index <id> entry <n> tc <n> queue <n>\n")         \
 _(bridge_domain_add_del,                                                \
   "bd_id <bridge-domain-id> [flood 1|0] [uu-flood 1|0] [forward 1|0] [learn 1|0] [arp-term 1|0] [del]\n") \
 _(bridge_domain_dump, "[bd_id <bridge-domain-id>]\n")                   \
@@ -17739,6 +17774,18 @@ _(sw_interface_set_mtu, "<intfc> | sw_if_index <nn> mtu <nn>")        \
 _(ip_neighbor_dump, "[ip6] <intfc> | sw_if_index <nn>")                 \
 _(sw_interface_get_table, "<intfc> | sw_if_index <id> [ipv6]")
 
+#if DPDK > 0
+#define foreach_vpe_dpdk_api_msg                                        \
+_(sw_interface_set_dpdk_hqos_pipe,                                      \
+  "rx <intfc> | sw_if_index <id> subport <subport-id> pipe <pipe-id>\n" \
+  "profile <profile-id>\n")                                             \
+_(sw_interface_set_dpdk_hqos_subport,                                   \
+  "rx <intfc> | sw_if_index <id> subport <subport-id> [rate <n>]\n"     \
+  "[bktsize <n>] [tc0 <n>] [tc1 <n>] [tc2 <n>] [tc3 <n>] [period <n>]\n") \
+_(sw_interface_set_dpdk_hqos_tctbl,                                     \
+  "rx <intfc> | sw_if_index <id> entry <n> tc <n> queue <n>\n")
+#endif
+
 /* List of command functions, CLI names map directly to functions */
 #define foreach_cli_function                                    \
 _(comment, "usage: comment <ignore-rest-of-line>")             \
@@ -17776,6 +17823,22 @@ _(unset, "usage: unset <variable-name>")
 foreach_vpe_api_reply_msg;
 #undef _
 
+#if DPDK > 0
+#define _(N,n)                                  \
+    static void vl_api_##n##_t_handler_uni      \
+    (vl_api_##n##_t * mp)                       \
+    {                                           \
+        vat_main_t * vam = &vat_main;           \
+        if (vam->json_output) {                 \
+            vl_api_##n##_t_handler_json(mp);    \
+        } else {                                \
+            vl_api_##n##_t_handler(mp);         \
+        }                                       \
+    }
+foreach_vpe_dpdk_api_reply_msg;
+#undef _
+#endif
+
 void
 vat_api_hookup (vat_main_t * vam)
 {
@@ -17789,6 +17852,18 @@ vat_api_hookup (vat_main_t * vam)
   foreach_vpe_api_reply_msg;
 #undef _
 
+#if DPDK > 0
+#define _(N,n)                                                  \
+    vl_msg_api_set_handlers(VL_API_##N, #n,                     \
+                           vl_api_##n##_t_handler_uni,          \
+                           vl_noop_handler,                     \
+                           vl_api_##n##_t_endian,               \
+                           vl_api_##n##_t_print,                \
+                           sizeof(vl_api_##n##_t), 1);
+  foreach_vpe_dpdk_api_reply_msg;
+#undef _
+#endif
+
 #if (VPP_API_TEST_BUILTIN==0)
   vl_msg_api_set_first_available_msg_id (VL_MSG_FIRST_AVAILABLE);
 #endif
@@ -17803,11 +17878,21 @@ vat_api_hookup (vat_main_t * vam)
 #define _(n,h) hash_set_mem (vam->function_by_name, #n, api_##n);
   foreach_vpe_api_msg;
 #undef _
+#if DPDK >0
+#define _(n,h) hash_set_mem (vam->function_by_name, #n, api_##n);
+  foreach_vpe_dpdk_api_msg;
+#undef _
+#endif
 
   /* Help strings */
 #define _(n,h) hash_set_mem (vam->help_by_name, #n, h);
   foreach_vpe_api_msg;
 #undef _
+#if DPDK >0
+#define _(n,h) hash_set_mem (vam->help_by_name, #n, h);
+  foreach_vpe_dpdk_api_msg;
+#undef _
+#endif
 
   /* CLI functions */
 #define _(n,h) hash_set_mem (vam->function_by_name, #n, n);