From 9d42087149a6870965896be74dc6260f72d2cac9 Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Thu, 12 Oct 2017 13:06:35 +0200 Subject: VPPAPIGEN: vppapigen replacement in Python PLY. This is a version of the VPP API generator in Python PLY. It supports the existing language, and has a plugin architecture for generators. Currently C and JSON are supported. Changes: - vl_api_version to option version = "major.minor.patch" - enum support - Added error checking and reporting - import support (removed the C pre-processor) - services (tying request/reply together) Version: option version = "1.0.0"; Enum: enum colours { RED, BLUE = 50, }; define foo { vl_api_colours_t colours; }; Services: service { rpc foo returns foo_reply; rpc foo_dump returns stream foo_details; rpc want_stats returns want_stats_reply events ip4_counters, ip6_counters; }; Future planned features: - unions - bool, text - array support (including length) - proto3 output plugin - Refactor C/C++ generator as a plugin - Refactor Java generator as a plugin Change-Id: Ifa289966c790e1b1a8e2938a91e69331e3a58bdf Signed-off-by: Ole Troan --- src/plugins/acl/acl.api | 2 +- src/plugins/dpdk/api/dpdk.api | 2 +- src/plugins/flowprobe/flowprobe.api | 2 +- src/plugins/gtpu/gtpu.api | 2 +- src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api | 2 +- src/plugins/ioam/export/ioam_export.api | 2 +- src/plugins/ioam/ip6/ioam_cache.api | 2 +- src/plugins/ioam/lib-pot/pot.api | 2 +- src/plugins/ioam/lib-trace/trace.api | 2 +- src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api | 2 +- src/plugins/ioam/udp-ping/udp_ping.api | 2 +- src/plugins/kubeproxy/kp.api | 4 ++-- src/plugins/l2e/l2e.api | 2 +- src/plugins/lb/lb.api | 2 +- src/plugins/memif/memif.api | 2 +- src/plugins/nat/nat.api | 2 +- src/plugins/pppoe/pppoe.api | 2 +- src/plugins/stn/stn.api | 1 + 18 files changed, 19 insertions(+), 18 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/acl/acl.api b/src/plugins/acl/acl.api index 19f007aeea7..e3166d691a8 100644 --- a/src/plugins/acl/acl.api +++ b/src/plugins/acl/acl.api @@ -19,7 +19,7 @@ used to control the ACL plugin */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Get the plugin version @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/dpdk/api/dpdk.api b/src/plugins/dpdk/api/dpdk.api index 5ded450136a..2c20ef4ea8a 100644 --- a/src/plugins/dpdk/api/dpdk.api +++ b/src/plugins/dpdk/api/dpdk.api @@ -13,7 +13,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief DPDK interface HQoS pipe profile set request @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/flowprobe/flowprobe.api b/src/plugins/flowprobe/flowprobe.api index 5bfe4510178..5bbe011f363 100644 --- a/src/plugins/flowprobe/flowprobe.api +++ b/src/plugins/flowprobe/flowprobe.api @@ -5,7 +5,7 @@ used to control the flowprobe plugin */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Enable / disable per-packet IPFIX recording on an interface @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/gtpu/gtpu.api b/src/plugins/gtpu/gtpu.api index fea47916b8c..f8333ff2ebc 100644 --- a/src/plugins/gtpu/gtpu.api +++ b/src/plugins/gtpu/gtpu.api @@ -13,7 +13,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Set or delete an GTPU tunnel @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api b/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api index 3637ae8e4b2..f6a63dfad65 100644 --- a/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api +++ b/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /* Define a simple binary API to control the feature */ diff --git a/src/plugins/ioam/export/ioam_export.api b/src/plugins/ioam/export/ioam_export.api index 47a8cc057c4..c127bd2e865 100644 --- a/src/plugins/ioam/export/ioam_export.api +++ b/src/plugins/ioam/export/ioam_export.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /* Define a simple binary API to control the feature */ diff --git a/src/plugins/ioam/ip6/ioam_cache.api b/src/plugins/ioam/ip6/ioam_cache.api index c953b674fe6..71a048baba8 100644 --- a/src/plugins/ioam/ip6/ioam_cache.api +++ b/src/plugins/ioam/ip6/ioam_cache.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /* API to control ioam caching */ diff --git a/src/plugins/ioam/lib-pot/pot.api b/src/plugins/ioam/lib-pot/pot.api index d1bfe447e34..f133748c460 100644 --- a/src/plugins/ioam/lib-pot/pot.api +++ b/src/plugins/ioam/lib-pot/pot.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Proof of Transit(POT): Set POT profile @param id - id of the profile diff --git a/src/plugins/ioam/lib-trace/trace.api b/src/plugins/ioam/lib-trace/trace.api index 59d664adbd7..52dc648ea3c 100644 --- a/src/plugins/ioam/lib-trace/trace.api +++ b/src/plugins/ioam/lib-trace/trace.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief iOAM6 Trace - Set the iOAM6 trace profile @param trace_type - Type of trace requested diff --git a/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api b/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api index dfaecff60c9..0cbdf6dc41a 100644 --- a/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api +++ b/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief iOAM Over VxLAN-GPE - Set iOAM transport for VxLAN-GPE @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/ioam/udp-ping/udp_ping.api b/src/plugins/ioam/udp-ping/udp_ping.api index b5b5f23810b..72e578c5674 100644 --- a/src/plugins/ioam/udp-ping/udp_ping.api +++ b/src/plugins/ioam/udp-ping/udp_ping.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 2.0.0 +option version = "2.0.0"; /** \brief UDP-Probe Add/Delete request @param src_ip_address - Source ipv4/v6 address for the udp-ping flow diff --git a/src/plugins/kubeproxy/kp.api b/src/plugins/kubeproxy/kp.api index e8063c194b3..1eedd9ef795 100644 --- a/src/plugins/kubeproxy/kp.api +++ b/src/plugins/kubeproxy/kp.api @@ -12,8 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -vl_api_version 1.0.0 + +option version = "1.0.0"; /** \brief Configure Kube-proxy global parameters @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/l2e/l2e.api b/src/plugins/l2e/l2e.api index e4e3438375d..dd2eb164380 100644 --- a/src/plugins/l2e/l2e.api +++ b/src/plugins/l2e/l2e.api @@ -14,7 +14,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief L2 emulation at L3 @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/lb/lb.api b/src/plugins/lb/lb.api index 7f48666a4b1..f5036edf79d 100644 --- a/src/plugins/lb/lb.api +++ b/src/plugins/lb/lb.api @@ -1,4 +1,4 @@ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Configure Load-Balancer global parameters @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/memif/memif.api b/src/plugins/memif/memif.api index 08d056f04dd..cd09b92dc9c 100644 --- a/src/plugins/memif/memif.api +++ b/src/plugins/memif/memif.api @@ -13,7 +13,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Create memory interface @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/nat/nat.api b/src/plugins/nat/nat.api index 1de70edaaad..02c1627b9ce 100644 --- a/src/plugins/nat/nat.api +++ b/src/plugins/nat/nat.api @@ -13,7 +13,7 @@ * limitations under the License. */ -vl_api_version 2.3.0 +option version = "2.3.0"; /** * @file nat.api diff --git a/src/plugins/pppoe/pppoe.api b/src/plugins/pppoe/pppoe.api index 78982f3e2e4..b687d51500a 100644 --- a/src/plugins/pppoe/pppoe.api +++ b/src/plugins/pppoe/pppoe.api @@ -13,7 +13,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "1.0.0"; /** \brief Set or delete an PPPOE session @param client_index - opaque cookie to identify the sender diff --git a/src/plugins/stn/stn.api b/src/plugins/stn/stn.api index 07d214d852a..97731b3c25e 100644 --- a/src/plugins/stn/stn.api +++ b/src/plugins/stn/stn.api @@ -19,6 +19,7 @@ * */ +option version = "1.0.0"; /** \brief Add/del STN rules @param client_index - opaque cookie to identify the sender -- cgit 1.2.3-korg