GO_BUILD_ARGS += -v
endif
-VPP_VERSION = $(shell dpkg-query -f '\${Version}' -W vpp)
+VPP_VERSION ?= $(shell dpkg-query -f '\${Version}' -W vpp)
-VPP_IMG ?= ligato/vpp-base:latest
-BINAPI_DIR ?= ./binapi
+# VPP Docker image to use for api generation (gen-binapi-docker)
+VPP_IMG ?= ligato/vpp-base:latest
+# Local VPP directory used for binary api generation (gen-binapi-from-code)
+VPP_DIR ?=
+# Target directory for generated go api bindings
+BINAPI_DIR ?= ./binapi
+# Binapi generator path
+BINAPI_GENERATOR = ./bin/binapi-generator
bin:
mkdir -p bin
@echo "# building ${VERSION}"
$(GO) build ${GO_BUILD_ARGS} ./...
+cmd-binapi-generator: bin ## Build commands
+ $(GO) build ${GO_BUILD_ARGS} -o bin ./cmd/binapi-generator
+
cmd: bin ## Build commands
$(GO) build ${GO_BUILD_ARGS} -o bin ./cmd/...
@echo "# generating binapi VPP $(VPP_VERSION)"
$(GO) generate -x "$(BINAPI_DIR)"
+gen-binapi-from-code: cmd-binapi-generator
+ $(eval VPP_API_DIR := ${VPP_DIR}/build-root/install-vpp-native/vpp/share/vpp/api/)
+ @echo "Generating vpp API.json and go bindings"
+ @echo "Vpp Directory ${VPP_DIR}"
+ @echo "Vpp API files ${VPP_API_DIR}"
+ @echo "Go bindings ${BINAPI_DIR}"
+ @cd ${VPP_DIR} && make json-api-files
+ @${BINAPI_GENERATOR} \
+ --input-dir=${VPP_API_DIR} \
+ --output-dir=${BINAPI_DIR} \
+ --gen rpc,rest \
+ --no-source-path-info
+
gen-binapi-docker: install-generator ## Generate binapi code (using Docker)
@echo "# generating binapi in docker image ${VPP_IMG}"
$(eval cmds := $(shell go generate -n $(BINAPI_DIR) 2>&1 | tr "\n" ";"))
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/abf.api.json
// Package abf contains generated bindings for API file abf.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service abf.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/acl.api.json
// Package acl contains generated bindings for API file acl.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service acl.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/acl_types.api.json
// Package acl_types contains generated bindings for API file acl_types.api.
//
package acl_types
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/af_packet.api.json
// Package af_packet contains generated bindings for API file af_packet.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service af_packet.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/arp.api.json
// Package arp contains generated bindings for API file arp.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service arp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/avf.api.json
// Package avf contains generated bindings for API file avf.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/bfd.api.json
// Package bfd contains generated bindings for API file bfd.api.
//
package bfd
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service bfd.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/bier.api.json
// Package bier contains generated bindings for API file bier.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service bier.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/bond.api.json
// Package bond contains generated bindings for API file bond.api.
//
package bond
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service bond.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/builtinurl.api.json
// Package builtinurl contains generated bindings for API file builtinurl.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/cdp.api.json
// Package cdp contains generated bindings for API file cdp.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/classify.api.json
// Package classify contains generated bindings for API file classify.api.
//
package classify
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service classify.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/cop.api.json
// Package cop contains generated bindings for API file cop.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/ct6.api.json
// Package ct6 contains generated bindings for API file ct6.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/dhcp.api.json
// Package dhcp contains generated bindings for API file dhcp.api.
//
package dhcp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service dhcp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/dhcp6_ia_na_client_cp.api.json
// Package dhcp6_ia_na_client_cp contains generated bindings for API file dhcp6_ia_na_client_cp.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/dhcp6_pd_client_cp.api.json
// Package dhcp6_pd_client_cp contains generated bindings for API file dhcp6_pd_client_cp.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/dns.api.json
// Package dns contains generated bindings for API file dns.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/dslite.api.json
// Package dslite contains generated bindings for API file dslite.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service dslite.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ethernet_types.api.json
// Package ethernet_types contains generated bindings for API file ethernet_types.api.
//
package ethernet_types
import (
- api "git.fd.io/govpp.git/api"
"net"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/feature.api.json
// Package feature contains generated bindings for API file feature.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/fib_types.api.json
// Package fib_types contains generated bindings for API file fib_types.api.
//
package fib_types
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/flowprobe.api.json
// Package flowprobe contains generated bindings for API file flowprobe.api.
//
package flowprobe
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/gbp.api.json
// Package gbp contains generated bindings for API file gbp.api.
//
package gbp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service gbp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/geneve.api.json
// Package geneve contains generated bindings for API file geneve.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service geneve.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/gre.api.json
// Package gre contains generated bindings for API file gre.api.
//
package gre
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
tunnel_types "git.fd.io/govpp.git/binapi/tunnel_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service gre.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/gso.api.json
// Package gso contains generated bindings for API file gso.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/gtpu.api.json
// Package gtpu contains generated bindings for API file gtpu.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service gtpu.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/http_static.api.json
// Package http_static contains generated bindings for API file http_static.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/igmp.api.json
// Package igmp contains generated bindings for API file igmp.api.
//
package igmp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service igmp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/ikev2.api.json
// Package ikev2 contains generated bindings for API file ikev2.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/interface.api.json
// Package interfaces contains generated bindings for API file interface.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service interface.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/interface_types.api.json
// Package interface_types contains generated bindings for API file interface_types.api.
//
package interface_types
import (
- api "git.fd.io/govpp.git/api"
"strconv"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/ioam_cache.api.json
// Package ioam_cache contains generated bindings for API file ioam_cache.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/ioam_export.api.json
// Package ioam_export contains generated bindings for API file ioam_export.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/ioam_vxlan_gpe.api.json
// Package ioam_vxlan_gpe contains generated bindings for API file ioam_vxlan_gpe.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ip.api.json
// Package ip contains generated bindings for API file ip.api.
//
package ip
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
_ "git.fd.io/govpp.git/binapi/ethernet_types"
fib_types "git.fd.io/govpp.git/binapi/fib_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
mfib_types "git.fd.io/govpp.git/binapi/mfib_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service ip.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ip6_nd.api.json
// Package ip6_nd contains generated bindings for API file ip6_nd.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service ip6_nd.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ip_neighbor.api.json
// Package ip_neighbor contains generated bindings for API file ip_neighbor.api.
//
package ip_neighbor
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service ip_neighbor.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ip_types.api.json
// Package ip_types contains generated bindings for API file ip_types.api.
//
import (
"fmt"
- api "git.fd.io/govpp.git/api"
- codec "git.fd.io/govpp.git/codec"
"net"
"strconv"
"strings"
+
+ api "git.fd.io/govpp.git/api"
+ codec "git.fd.io/govpp.git/codec"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ipfix_export.api.json
// Package ipfix_export contains generated bindings for API file ipfix_export.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service ipfix_export.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ipip.api.json
// Package ipip contains generated bindings for API file ipip.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service ipip.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ipsec.api.json
// Package ipsec contains generated bindings for API file ipsec.api.
//
package ipsec
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
ipsec_types "git.fd.io/govpp.git/binapi/ipsec_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service ipsec.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/ipsec_types.api.json
// Package ipsec_types contains generated bindings for API file ipsec_types.api.
//
package ipsec_types
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/l2.api.json
// Package l2 contains generated bindings for API file l2.api.
//
package l2
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service l2.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/l2e.api.json
// Package l2e contains generated bindings for API file l2e.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/l2tp.api.json
// Package l2tp contains generated bindings for API file l2tp.api.
//
package l2tp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
_ "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service l2tp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/l3xc.api.json
// Package l3xc contains generated bindings for API file l3xc.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service l3xc.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/lacp.api.json
// Package lacp contains generated bindings for API file lacp.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service lacp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/lb.api.json
// Package lb contains generated bindings for API file lb.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service lb.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/lb_types.api.json
// Package lb_types contains generated bindings for API file lb_types.api.
//
package lb_types
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/lisp.api.json
// Package lisp contains generated bindings for API file lisp.api.
//
package lisp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
_ "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
lisp_types "git.fd.io/govpp.git/binapi/lisp_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service lisp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/lisp_gpe.api.json
// Package lisp_gpe contains generated bindings for API file lisp_gpe.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service lisp_gpe.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/lisp_types.api.json
// Package lisp_types contains generated bindings for API file lisp_types.api.
//
package lisp_types
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/lldp.api.json
// Package lldp contains generated bindings for API file lldp.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/mactime.api.json
// Package mactime contains generated bindings for API file mactime.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service mactime.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/map.api.json
// Package maps contains generated bindings for API file map.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service map.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/mdata.api.json
// Package mdata contains generated bindings for API file mdata.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/memclnt.api.json
// Package memclnt contains generated bindings for API file memclnt.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/memif.api.json
// Package memif contains generated bindings for API file memif.api.
//
package memif
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service memif.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/mfib_types.api.json
// Package mfib_types contains generated bindings for API file mfib_types.api.
//
package mfib_types
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
fib_types "git.fd.io/govpp.git/binapi/fib_types"
_ "git.fd.io/govpp.git/binapi/ip_types"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/mpls.api.json
// Package mpls contains generated bindings for API file mpls.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service mpls.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/nat.api.json
// Package nat contains generated bindings for API file nat.api.
//
package nat
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service nat.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/nsh.api.json
// Package nsh contains generated bindings for API file nsh.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service nsh.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/nsim.api.json
// Package nsim contains generated bindings for API file nsim.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/oddbuf.api.json
// Package oddbuf contains generated bindings for API file oddbuf.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/one.api.json
// Package one contains generated bindings for API file one.api.
//
package one
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
lisp_types "git.fd.io/govpp.git/binapi/lisp_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service one.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/p2p_ethernet.api.json
// Package p2p_ethernet contains generated bindings for API file p2p_ethernet.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/pci_types.api.json
// Package pci_types contains generated bindings for API file pci_types.api.
//
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/pg.api.json
// Package pg contains generated bindings for API file pg.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/pipe.api.json
// Package pipe contains generated bindings for API file pipe.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service pipe.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/policer.api.json
// Package policer contains generated bindings for API file policer.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service policer.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/policer_types.api.json
// Package policer_types contains generated bindings for API file policer_types.api.
//
package policer_types
import (
- api "git.fd.io/govpp.git/api"
"strconv"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/pot.api.json
// Package pot contains generated bindings for API file pot.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service pot.
--- /dev/null
+// Code generated by GoVPP's binapi-generator. DO NOT EDIT.
+// versions:
+// binapi-generator: v0.4.0-dev
+// VPP: 20.05-release
+
+// Package pp2 contains generated bindings for API file pp2.api.
+//
+// Contents:
+// 4 messages
+//
+package pp2
+
+import (
+ api "git.fd.io/govpp.git/api"
+ interface_types "git.fd.io/govpp.git/binapi/interface_types"
+ codec "git.fd.io/govpp.git/codec"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the GoVPP api package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// GoVPP api package needs to be updated.
+const _ = api.GoVppAPIPackageIsVersion2
+
+const (
+ APIFile = "pp2"
+ APIVersion = "1.0.0"
+ VersionCrc = 0x85d7546b
+)
+
+// MrvlPp2Create defines message 'mrvl_pp2_create'.
+type MrvlPp2Create struct {
+ IfName string `binapi:"string[64],name=if_name" json:"if_name,omitempty"`
+ RxQSz uint16 `binapi:"u16,name=rx_q_sz" json:"rx_q_sz,omitempty"`
+ TxQSz uint16 `binapi:"u16,name=tx_q_sz" json:"tx_q_sz,omitempty"`
+}
+
+func (m *MrvlPp2Create) Reset() { *m = MrvlPp2Create{} }
+func (*MrvlPp2Create) GetMessageName() string { return "mrvl_pp2_create" }
+func (*MrvlPp2Create) GetCrcString() string { return "3a108396" }
+func (*MrvlPp2Create) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func (m *MrvlPp2Create) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 64 // m.IfName
+ size += 2 // m.RxQSz
+ size += 2 // m.TxQSz
+ return size
+}
+func (m *MrvlPp2Create) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeString(m.IfName, 64)
+ buf.EncodeUint16(m.RxQSz)
+ buf.EncodeUint16(m.TxQSz)
+ return buf.Bytes(), nil
+}
+func (m *MrvlPp2Create) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.IfName = buf.DecodeString(64)
+ m.RxQSz = buf.DecodeUint16()
+ m.TxQSz = buf.DecodeUint16()
+ return nil
+}
+
+// MrvlPp2CreateReply defines message 'mrvl_pp2_create_reply'.
+type MrvlPp2CreateReply struct {
+ Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+ SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *MrvlPp2CreateReply) Reset() { *m = MrvlPp2CreateReply{} }
+func (*MrvlPp2CreateReply) GetMessageName() string { return "mrvl_pp2_create_reply" }
+func (*MrvlPp2CreateReply) GetCrcString() string { return "5383d31f" }
+func (*MrvlPp2CreateReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func (m *MrvlPp2CreateReply) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 4 // m.Retval
+ size += 4 // m.SwIfIndex
+ return size
+}
+func (m *MrvlPp2CreateReply) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeInt32(m.Retval)
+ buf.EncodeUint32(uint32(m.SwIfIndex))
+ return buf.Bytes(), nil
+}
+func (m *MrvlPp2CreateReply) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.Retval = buf.DecodeInt32()
+ m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+ return nil
+}
+
+// MrvlPp2Delete defines message 'mrvl_pp2_delete'.
+type MrvlPp2Delete struct {
+ SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
+}
+
+func (m *MrvlPp2Delete) Reset() { *m = MrvlPp2Delete{} }
+func (*MrvlPp2Delete) GetMessageName() string { return "mrvl_pp2_delete" }
+func (*MrvlPp2Delete) GetCrcString() string { return "f9e6675e" }
+func (*MrvlPp2Delete) GetMessageType() api.MessageType {
+ return api.RequestMessage
+}
+
+func (m *MrvlPp2Delete) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 4 // m.SwIfIndex
+ return size
+}
+func (m *MrvlPp2Delete) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeUint32(uint32(m.SwIfIndex))
+ return buf.Bytes(), nil
+}
+func (m *MrvlPp2Delete) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.SwIfIndex = interface_types.InterfaceIndex(buf.DecodeUint32())
+ return nil
+}
+
+// MrvlPp2DeleteReply defines message 'mrvl_pp2_delete_reply'.
+type MrvlPp2DeleteReply struct {
+ Retval int32 `binapi:"i32,name=retval" json:"retval,omitempty"`
+}
+
+func (m *MrvlPp2DeleteReply) Reset() { *m = MrvlPp2DeleteReply{} }
+func (*MrvlPp2DeleteReply) GetMessageName() string { return "mrvl_pp2_delete_reply" }
+func (*MrvlPp2DeleteReply) GetCrcString() string { return "e8d4e804" }
+func (*MrvlPp2DeleteReply) GetMessageType() api.MessageType {
+ return api.ReplyMessage
+}
+
+func (m *MrvlPp2DeleteReply) Size() (size int) {
+ if m == nil {
+ return 0
+ }
+ size += 4 // m.Retval
+ return size
+}
+func (m *MrvlPp2DeleteReply) Marshal(b []byte) ([]byte, error) {
+ if b == nil {
+ b = make([]byte, m.Size())
+ }
+ buf := codec.NewBuffer(b)
+ buf.EncodeInt32(m.Retval)
+ return buf.Bytes(), nil
+}
+func (m *MrvlPp2DeleteReply) Unmarshal(b []byte) error {
+ buf := codec.NewBuffer(b)
+ m.Retval = buf.DecodeInt32()
+ return nil
+}
+
+func init() { file_pp2_binapi_init() }
+func file_pp2_binapi_init() {
+ api.RegisterMessage((*MrvlPp2Create)(nil), "mrvl_pp2_create_3a108396")
+ api.RegisterMessage((*MrvlPp2CreateReply)(nil), "mrvl_pp2_create_reply_5383d31f")
+ api.RegisterMessage((*MrvlPp2Delete)(nil), "mrvl_pp2_delete_f9e6675e")
+ api.RegisterMessage((*MrvlPp2DeleteReply)(nil), "mrvl_pp2_delete_reply_e8d4e804")
+}
+
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+ return []api.Message{
+ (*MrvlPp2Create)(nil),
+ (*MrvlPp2CreateReply)(nil),
+ (*MrvlPp2Delete)(nil),
+ (*MrvlPp2DeleteReply)(nil),
+ }
+}
--- /dev/null
+// Code generated by GoVPP's binapi-generator. DO NOT EDIT.
+
+package pp2
+
+import (
+ "encoding/json"
+ "io/ioutil"
+ "net/http"
+)
+
+func RESTHandler(rpc RPCService) http.Handler {
+ mux := http.NewServeMux()
+ mux.HandleFunc("/mrvl_pp2_create", func(w http.ResponseWriter, req *http.Request) {
+ var request = new(MrvlPp2Create)
+ b, err := ioutil.ReadAll(req.Body)
+ if err != nil {
+ http.Error(w, "read body failed", http.StatusBadRequest)
+ return
+ }
+ if err := json.Unmarshal(b, request); err != nil {
+ http.Error(w, "unmarshal data failed", http.StatusBadRequest)
+ return
+ }
+ reply, err := rpc.MrvlPp2Create(req.Context(), request)
+ if err != nil {
+ http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError)
+ return
+ }
+ rep, err := json.MarshalIndent(reply, "", " ")
+ if err != nil {
+ http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError)
+ return
+ }
+ w.Write(rep)
+ })
+ mux.HandleFunc("/mrvl_pp2_delete", func(w http.ResponseWriter, req *http.Request) {
+ var request = new(MrvlPp2Delete)
+ b, err := ioutil.ReadAll(req.Body)
+ if err != nil {
+ http.Error(w, "read body failed", http.StatusBadRequest)
+ return
+ }
+ if err := json.Unmarshal(b, request); err != nil {
+ http.Error(w, "unmarshal data failed", http.StatusBadRequest)
+ return
+ }
+ reply, err := rpc.MrvlPp2Delete(req.Context(), request)
+ if err != nil {
+ http.Error(w, "request failed: "+err.Error(), http.StatusInternalServerError)
+ return
+ }
+ rep, err := json.MarshalIndent(reply, "", " ")
+ if err != nil {
+ http.Error(w, "marshal failed: "+err.Error(), http.StatusInternalServerError)
+ return
+ }
+ w.Write(rep)
+ })
+ return http.HandlerFunc(mux.ServeHTTP)
+}
--- /dev/null
+// Code generated by GoVPP's binapi-generator. DO NOT EDIT.
+
+package pp2
+
+import (
+ "context"
+
+ api "git.fd.io/govpp.git/api"
+)
+
+// RPCService defines RPC service pp2.
+type RPCService interface {
+ MrvlPp2Create(ctx context.Context, in *MrvlPp2Create) (*MrvlPp2CreateReply, error)
+ MrvlPp2Delete(ctx context.Context, in *MrvlPp2Delete) (*MrvlPp2DeleteReply, error)
+}
+
+type serviceClient struct {
+ conn api.Connection
+}
+
+func NewServiceClient(conn api.Connection) RPCService {
+ return &serviceClient{conn}
+}
+
+func (c *serviceClient) MrvlPp2Create(ctx context.Context, in *MrvlPp2Create) (*MrvlPp2CreateReply, error) {
+ out := new(MrvlPp2CreateReply)
+ err := c.conn.Invoke(ctx, in, out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *serviceClient) MrvlPp2Delete(ctx context.Context, in *MrvlPp2Delete) (*MrvlPp2DeleteReply, error) {
+ out := new(MrvlPp2DeleteReply)
+ err := c.conn.Invoke(ctx, in, out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/pppoe.api.json
// Package pppoe contains generated bindings for API file pppoe.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service pppoe.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/punt.api.json
// Package punt contains generated bindings for API file punt.api.
//
package punt
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service punt.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/qos.api.json
// Package qos contains generated bindings for API file qos.api.
//
package qos
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
_ "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service qos.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/rd_cp.api.json
// Package rd_cp contains generated bindings for API file rd_cp.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/rdma.api.json
// Package rdma contains generated bindings for API file rdma.api.
//
package rdma
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/session.api.json
// Package session contains generated bindings for API file session.api.
//
package session
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service session.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/span.api.json
// Package span contains generated bindings for API file span.api.
//
package span
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service span.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/sr.api.json
// Package sr contains generated bindings for API file sr.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service sr.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/sr_mpls.api.json
// Package sr_mpls contains generated bindings for API file sr_mpls.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/sr_types.api.json
// Package sr_types contains generated bindings for API file sr_types.api.
//
package sr_types
import (
- api "git.fd.io/govpp.git/api"
"strconv"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/stn.api.json
// Package stn contains generated bindings for API file stn.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service stn.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/svs.api.json
// Package svs contains generated bindings for API file svs.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service svs.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/syslog.api.json
// Package syslog contains generated bindings for API file syslog.api.
//
package syslog
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/tapv2.api.json
// Package tapv2 contains generated bindings for API file tapv2.api.
//
package tapv2
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service tapv2.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/tcp.api.json
// Package tcp contains generated bindings for API file tcp.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/teib.api.json
// Package teib contains generated bindings for API file teib.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service teib.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/tls_openssl.api.json
// Package tls_openssl contains generated bindings for API file tls_openssl.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/trace.api.json
// Package trace contains generated bindings for API file trace.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/tunnel_types.api.json
// Package tunnel_types contains generated bindings for API file tunnel_types.api.
//
package tunnel_types
import (
- api "git.fd.io/govpp.git/api"
"strconv"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/udp.api.json
// Package udp contains generated bindings for API file udp.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service udp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/udp_ping.api.json
// Package udp_ping contains generated bindings for API file udp_ping.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/urpf.api.json
// Package urpf contains generated bindings for API file urpf.api.
//
package urpf
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
_ "git.fd.io/govpp.git/binapi/fib_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/vhost_user.api.json
// Package vhost_user contains generated bindings for API file vhost_user.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service vhost_user.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/virtio.api.json
// Package virtio contains generated bindings for API file virtio.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service virtio.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/virtio_types.api.json
// Package virtio_types contains generated bindings for API file virtio_types.api.
//
package virtio_types
import (
- api "git.fd.io/govpp.git/api"
"strconv"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/vmxnet3.api.json
// Package vmxnet3 contains generated bindings for API file vmxnet3.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service vmxnet3.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/vpe.api.json
// Package vpe contains generated bindings for API file vpe.api.
//
import (
"context"
"fmt"
- api "git.fd.io/govpp.git/api"
"io"
+
+ api "git.fd.io/govpp.git/api"
)
// RPCService defines RPC service vpe.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/vpe_types.api.json
// Package vpe_types contains generated bindings for API file vpe_types.api.
//
package vpe_types
import (
- api "git.fd.io/govpp.git/api"
"strconv"
+
+ api "git.fd.io/govpp.git/api"
)
// This is a compile-time assertion to ensure that this generated file
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/vrrp.api.json
// Package vrrp contains generated bindings for API file vrrp.api.
//
package vrrp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
ethernet_types "git.fd.io/govpp.git/binapi/ethernet_types"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service vrrp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/vxlan.api.json
// Package vxlan contains generated bindings for API file vxlan.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service vxlan.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/vxlan_gbp.api.json
// Package vxlan_gbp contains generated bindings for API file vxlan_gbp.api.
//
package vxlan_gbp
import (
+ "strconv"
+
api "git.fd.io/govpp.git/api"
interface_types "git.fd.io/govpp.git/binapi/interface_types"
ip_types "git.fd.io/govpp.git/binapi/ip_types"
codec "git.fd.io/govpp.git/codec"
- "strconv"
)
// This is a compile-time assertion to ensure that this generated file
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service vxlan_gbp.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/core/vxlan_gpe.api.json
// Package vxlan_gpe contains generated bindings for API file vxlan_gpe.api.
//
import (
"context"
"fmt"
+ "io"
+
api "git.fd.io/govpp.git/api"
vpe "git.fd.io/govpp.git/binapi/vpe"
- "io"
)
// RPCService defines RPC service vxlan_gpe.
// versions:
// binapi-generator: v0.4.0-dev
// VPP: 20.05-release
-// source: /usr/share/vpp/api/plugins/vxlan_gpe_ioam_export.api.json
// Package vxlan_gpe_ioam_export contains generated bindings for API file vxlan_gpe_ioam_export.api.
//
import (
"context"
+
api "git.fd.io/govpp.git/api"
)
return g.injectImports(g.buf.Bytes())
}
+func getImportClass(importPath string) int {
+ if !strings.Contains(importPath, ".") {
+ return 0 /* std */
+ }
+ return 1 /* External */
+}
+
// injectImports parses source, injects import block declaration with all imports and return formatted
func (g *GenFile) injectImports(original []byte) ([]byte, error) {
// Parse source code
}
// Sort imports by import path
sort.Slice(importPaths, func(i, j int) bool {
- return importPaths[i].Path < importPaths[j].Path
+ ci := getImportClass(importPaths[i].Path)
+ cj := getImportClass(importPaths[j].Path)
+ if ci == cj {
+ return importPaths[i].Path < importPaths[j].Path
+ }
+ return ci < cj
})
// Inject new import block into parsed AST
if len(importPaths) > 0 {
}
// Prepare the import block
impDecl := &ast.GenDecl{Tok: token.IMPORT, TokPos: pos, Lparen: pos, Rparen: pos}
- for _, importPath := range importPaths {
+ for i, importPath := range importPaths {
var name *ast.Ident
if importPath.Name == "_" || strings.Contains(importPath.Path, ".") {
name = &ast.Ident{Name: importPath.Name, NamePos: pos}
}
+ value := strconv.Quote(importPath.Path)
+ if i < len(importPaths)-1 {
+ if getImportClass(importPath.Path) != getImportClass(importPaths[i+1].Path) {
+ value += "\n"
+ }
+ }
impDecl.Specs = append(impDecl.Specs, &ast.ImportSpec{
Name: name,
- Path: &ast.BasicLit{Kind: token.STRING, Value: strconv.Quote(importPath.Path), ValuePos: pos},
+ Path: &ast.BasicLit{Kind: token.STRING, Value: value, ValuePos: pos},
EndPos: pos,
})
}
)
const (
- VPPVersionEnvVar = "VPP_VERSION"
+ VPPVersionEnvVar = "VPP_VERSION"
+ VPPDirEnvVar = "VPP_DIR"
+ versionScriptPath = "./src/scripts/version"
)
// ResolveVPPVersion resolves version of the VPP for target directory.
func ResolveVPPVersion(apidir string) string {
// check env variable override
if ver := os.Getenv(VPPVersionEnvVar); ver != "" {
- logrus.Debugf("VPP version was manually set to %q via %s env var", ver, VPPVersionEnvVar)
+ logrus.Infof("VPP version was manually set to %q via %s env var", ver, VPPVersionEnvVar)
return ver
}
if err != nil {
logrus.Warnf("resolving VPP version from version script failed: %v", err)
} else {
- logrus.Debugf("resolved VPP version from version script: %v", version)
+ logrus.Infof("resolved VPP version from version script: %v", version)
return version
}
}
return strings.TrimSpace(string(out)), nil
}
-const versionScriptPath = "./src/scripts/version"
-
// GetVPPVersionRepo retrieves VPP version using script in repo directory.
func GetVPPVersionRepo(repoDir string) (string, error) {
- if _, err := os.Stat(versionScriptPath); err != nil {
+ scriptPath := path.Join(repoDir, versionScriptPath)
+ if _, err := os.Stat(scriptPath); err != nil {
return "", err
}
- cmd := exec.Command(versionScriptPath)
+ cmd := exec.Command(scriptPath)
cmd.Dir = repoDir
out, err := cmd.CombinedOutput()
if err != nil {
}
func findGitRepoRootDir(dir string) (string, error) {
+ if conf := os.Getenv(VPPDirEnvVar); conf != "" {
+ logrus.Infof("VPP directory was manually set to %q via %s env var", conf, VPPDirEnvVar)
+ return conf, nil
+ }
cmd := exec.Command("git", "rev-parse", "--show-toplevel")
cmd.Dir = dir
out, err := cmd.CombinedOutput()
func init() {
flag.Usage = func() {
- fmt.Fprintf(os.Stderr, "Usage: %s [OPTION] API_FILES\n", os.Args[0])
- fmt.Fprintln(os.Stderr, "Provide API_FILES by file name, or with full path including extension.")
- fmt.Fprintln(os.Stderr, "Parse API_FILES and generate Go bindings based on the options given:")
+ fmt.Fprintf(os.Stderr, "USAGE\n")
+ fmt.Fprintf(os.Stderr, " Parse API_FILES and generate Go bindings\n")
+ fmt.Fprintf(os.Stderr, " Provide API_FILES by file name, or with full path including extension.\n")
+ fmt.Fprintf(os.Stderr, " %s [OPTION] API_FILES\n\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, "OPTIONS\n")
flag.PrintDefaults()
+ fmt.Fprintf(os.Stderr, "\nEXAMPLES:\n")
+ fmt.Fprintf(os.Stderr, " %s \\\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, " --input-dir=$VPP/build-root/install-vpp-native/vpp/share/vpp/api/ \\\n")
+ fmt.Fprintf(os.Stderr, " --output-dir=~/output \\\n")
+ fmt.Fprintf(os.Stderr, " interface ip\n")
+ fmt.Fprintf(os.Stderr, " Assuming --input-dir contains interface.api.json & ip.api.json\n")
}
}
+func printErrorAndExit(msg string) {
+ fmt.Fprintf(os.Stderr, "Error: %s\n\n", msg)
+ flag.Usage()
+ os.Exit(1)
+}
+
func main() {
var (
- theApiDir = flag.String("input-dir", vppapi.DefaultDir, "Input directory containing API files.")
- theInputFile = flag.String("input-file", "", "DEPRECATED: Use program arguments to define files to generate.")
+ theApiDir = flag.String("input-dir", vppapi.DefaultDir, "Input directory containing API files. (e.g. )")
theOutputDir = flag.String("output-dir", "binapi", "Output directory where code will be generated.")
- importPrefix = flag.String("import-prefix", "", "Define import path prefix to be used to import types.")
+ importPrefix = flag.String("import-prefix", "", "Prefix imports in the generated go code. \nE.g. other API Files (e.g. api_file.ba.go) will be imported with :\nimport (\n api_file \"<import-prefix>/api_file\"\n)")
generatorPlugins = flag.String("gen", "rpc", "List of generator plugins to run for files.")
+ theInputFile = flag.String("input-file", "", "DEPRECATED: Use program arguments to define files to generate.")
printVersion = flag.Bool("version", false, "Prints version and exits.")
debugLog = flag.Bool("debug", false, "Enable verbose logging.")
var filesToGenerate []string
if *theInputFile != "" {
if flag.NArg() > 0 {
- fmt.Fprintln(os.Stderr, "input-file cannot be combined with files to generate in arguments")
- os.Exit(1)
+ printErrorAndExit("input-file cannot be combined with files to generate in arguments")
}
filesToGenerate = append(filesToGenerate, *theInputFile)
} else {