govpp

package module
v0.0.0-...-140e075 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2024 License: Apache-2.0 Imports: 0 Imported by: 0

README

govpp is a go binding for the vpp api

This repo provides the go binding for a version of vpp.

import "github.com/networkservicemesh/govpp/binapi"

This repo also provides minimal docker container for running vpp:

How to match the version of vpp you want to the go bindings.

Whenever a combination of VPP_VERSION and cherrypicks/patches is used to build govpp/vpp docker container, they will be tagged in the docker repo. The corresponding tag will be laid on the main branch containing the corresponding binapi.

So simply run in the same directory as your go.mod file:

go get github.com/networkservicemesh/govpp/binapi@${tag}

Where ${tag} is the tag of the govpp/vpp container you are consuming.

For example:

go get github.com/networkservicemesh/govpp/binapi@v21.06.0-9-16f166164

To set your go dependency for govpp to match the docker container you are using.

What to do if you need a different version of vpp:

If you want a version of VPP, you can fork this repo and add it yourself. Because things are very heavily patterned and generated, its really quite easy:

  1. Change default value for ARG VPP_VERSION in Dockerfile to the vpp tag or commit id you want to build.
  2. go generate ./...
  3. Push a PR to your fork and merge it. This will push the govpp/vpp image to your repo.

What to do if you need to cherrypick into VPP

See [patch/patch.sh]. Simply add your cherrypicks to that file.

What to do if you need to patch vpp:

If you want to add patches to vpp simply add them with the .patch suffix to the patch/ directory.

What to do if you need a different version of govpp

Change the version of govpp in the go.mod file

How the magic works

See How the Magic Works.

How to update VPP

  1. Find a commit SHA of the VPP version you want to use
  2. Replace the old commit SHA with the new commit SHA
  3. Build a new govpp image with docker build . -t ${YOUR_GOVPP_IMAGE_TAG} --target vpp
  4. Run go generate ./... to generate new binapi files
  5. Open a cmd-repo you want to update
  6. In Dockerfile: replace govpp image everywhere with the image you've built on the step 3 (for example, in cmd-forwarder-vpp here and here)
  7. In go.mod: replace github.com/networkservicemesh/govpp with govpp version which uses newly generated binapi files (from the step 4)
  8. Build a new cmd-repo image

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
binapi
abf
Package abf contains generated bindings for API file abf.api.
Package abf contains generated bindings for API file abf.api.
acl
Package acl contains generated bindings for API file acl.api.
Package acl contains generated bindings for API file acl.api.
acl_types
Package acl_types contains generated bindings for API file acl_types.api.
Package acl_types contains generated bindings for API file acl_types.api.
adl
Package adl contains generated bindings for API file adl.api.
Package adl contains generated bindings for API file adl.api.
af_packet
Package af_packet contains generated bindings for API file af_packet.api.
Package af_packet contains generated bindings for API file af_packet.api.
af_xdp
Package af_xdp contains generated bindings for API file af_xdp.api.
Package af_xdp contains generated bindings for API file af_xdp.api.
arp
Package arp contains generated bindings for API file arp.api.
Package arp contains generated bindings for API file arp.api.
arping
Package arping contains generated bindings for API file arping.api.
Package arping contains generated bindings for API file arping.api.
avf
Package avf contains generated bindings for API file avf.api.
Package avf contains generated bindings for API file avf.api.
bfd
Package bfd contains generated bindings for API file bfd.api.
Package bfd contains generated bindings for API file bfd.api.
bier
Package bier contains generated bindings for API file bier.api.
Package bier contains generated bindings for API file bier.api.
bond
Package bond contains generated bindings for API file bond.api.
Package bond contains generated bindings for API file bond.api.
bpf_trace_filter
Package bpf_trace_filter contains generated bindings for API file bpf_trace_filter.api.
Package bpf_trace_filter contains generated bindings for API file bpf_trace_filter.api.
builtinurl
Package builtinurl contains generated bindings for API file builtinurl.api.
Package builtinurl contains generated bindings for API file builtinurl.api.
capo
Package capo contains generated bindings for API file capo.api.
Package capo contains generated bindings for API file capo.api.
cdp
Package cdp contains generated bindings for API file cdp.api.
Package cdp contains generated bindings for API file cdp.api.
classify
Package classify contains generated bindings for API file classify.api.
Package classify contains generated bindings for API file classify.api.
cnat
Package cnat contains generated bindings for API file cnat.api.
Package cnat contains generated bindings for API file cnat.api.
crypto
Package crypto contains generated bindings for API file crypto.api.
Package crypto contains generated bindings for API file crypto.api.
crypto_sw_scheduler
Package crypto_sw_scheduler contains generated bindings for API file crypto_sw_scheduler.api.
Package crypto_sw_scheduler contains generated bindings for API file crypto_sw_scheduler.api.
ct6
Package ct6 contains generated bindings for API file ct6.api.
Package ct6 contains generated bindings for API file ct6.api.
det44
Package det44 contains generated bindings for API file det44.api.
Package det44 contains generated bindings for API file det44.api.
dhcp
Package dhcp contains generated bindings for API file dhcp.api.
Package dhcp contains generated bindings for API file dhcp.api.
dhcp6_ia_na_client_cp
Package dhcp6_ia_na_client_cp contains generated bindings for API file dhcp6_ia_na_client_cp.api.
Package dhcp6_ia_na_client_cp contains generated bindings for API file dhcp6_ia_na_client_cp.api.
dhcp6_pd_client_cp
Package dhcp6_pd_client_cp contains generated bindings for API file dhcp6_pd_client_cp.api.
Package dhcp6_pd_client_cp contains generated bindings for API file dhcp6_pd_client_cp.api.
dns
Package dns contains generated bindings for API file dns.api.
Package dns contains generated bindings for API file dns.api.
dslite
Package dslite contains generated bindings for API file dslite.api.
Package dslite contains generated bindings for API file dslite.api.
ethernet_types
Package ethernet_types contains generated bindings for API file ethernet_types.api.
Package ethernet_types contains generated bindings for API file ethernet_types.api.
feature
Package feature contains generated bindings for API file feature.api.
Package feature contains generated bindings for API file feature.api.
fib
Package fib contains generated bindings for API file fib.api.
Package fib contains generated bindings for API file fib.api.
fib_types
Package fib_types contains generated bindings for API file fib_types.api.
Package fib_types contains generated bindings for API file fib_types.api.
flow
Package flow contains generated bindings for API file flow.api.
Package flow contains generated bindings for API file flow.api.
flow_types
Package flow_types contains generated bindings for API file flow_types.api.
Package flow_types contains generated bindings for API file flow_types.api.
flowprobe
Package flowprobe contains generated bindings for API file flowprobe.api.
Package flowprobe contains generated bindings for API file flowprobe.api.
geneve
Package geneve contains generated bindings for API file geneve.api.
Package geneve contains generated bindings for API file geneve.api.
gre
Package gre contains generated bindings for API file gre.api.
Package gre contains generated bindings for API file gre.api.
gso
Package gso contains generated bindings for API file gso.api.
Package gso contains generated bindings for API file gso.api.
gtpu
Package gtpu contains generated bindings for API file gtpu.api.
Package gtpu contains generated bindings for API file gtpu.api.
http_static
Package http_static contains generated bindings for API file http_static.api.
Package http_static contains generated bindings for API file http_static.api.
idpf
Package idpf contains generated bindings for API file idpf.api.
Package idpf contains generated bindings for API file idpf.api.
igmp
Package igmp contains generated bindings for API file igmp.api.
Package igmp contains generated bindings for API file igmp.api.
ikev2
Package ikev2 contains generated bindings for API file ikev2.api.
Package ikev2 contains generated bindings for API file ikev2.api.
ikev2_types
Package ikev2_types contains generated bindings for API file ikev2_types.api.
Package ikev2_types contains generated bindings for API file ikev2_types.api.
interface
Package interfaces contains generated bindings for API file interface.api.
Package interfaces contains generated bindings for API file interface.api.
interface_types
Package interface_types contains generated bindings for API file interface_types.api.
Package interface_types contains generated bindings for API file interface_types.api.
ioam_cache
Package ioam_cache contains generated bindings for API file ioam_cache.api.
Package ioam_cache contains generated bindings for API file ioam_cache.api.
ioam_export
Package ioam_export contains generated bindings for API file ioam_export.api.
Package ioam_export contains generated bindings for API file ioam_export.api.
ioam_vxlan_gpe
Package ioam_vxlan_gpe contains generated bindings for API file ioam_vxlan_gpe.api.
Package ioam_vxlan_gpe contains generated bindings for API file ioam_vxlan_gpe.api.
ip
Package ip contains generated bindings for API file ip.api.
Package ip contains generated bindings for API file ip.api.
ip6_nd
Package ip6_nd contains generated bindings for API file ip6_nd.api.
Package ip6_nd contains generated bindings for API file ip6_nd.api.
ip_neighbor
Package ip_neighbor contains generated bindings for API file ip_neighbor.api.
Package ip_neighbor contains generated bindings for API file ip_neighbor.api.
ip_session_redirect
Package ip_session_redirect contains generated bindings for API file ip_session_redirect.api.
Package ip_session_redirect contains generated bindings for API file ip_session_redirect.api.
ip_types
Package ip_types contains generated bindings for API file ip_types.api.
Package ip_types contains generated bindings for API file ip_types.api.
ipfix_export
Package ipfix_export contains generated bindings for API file ipfix_export.api.
Package ipfix_export contains generated bindings for API file ipfix_export.api.
ipip
Package ipip contains generated bindings for API file ipip.api.
Package ipip contains generated bindings for API file ipip.api.
ipsec
Package ipsec contains generated bindings for API file ipsec.api.
Package ipsec contains generated bindings for API file ipsec.api.
ipsec_types
Package ipsec_types contains generated bindings for API file ipsec_types.api.
Package ipsec_types contains generated bindings for API file ipsec_types.api.
l2
Package l2 contains generated bindings for API file l2.api.
Package l2 contains generated bindings for API file l2.api.
l2tp
Package l2tp contains generated bindings for API file l2tp.api.
Package l2tp contains generated bindings for API file l2tp.api.
l3xc
Package l3xc contains generated bindings for API file l3xc.api.
Package l3xc contains generated bindings for API file l3xc.api.
lacp
Package lacp contains generated bindings for API file lacp.api.
Package lacp contains generated bindings for API file lacp.api.
lb
Package lb contains generated bindings for API file lb.api.
Package lb contains generated bindings for API file lb.api.
lb_types
Package lb_types contains generated bindings for API file lb_types.api.
Package lb_types contains generated bindings for API file lb_types.api.
lcp
Package lcp contains generated bindings for API file lcp.api.
Package lcp contains generated bindings for API file lcp.api.
lisp
Package lisp contains generated bindings for API file lisp.api.
Package lisp contains generated bindings for API file lisp.api.
lisp_gpe
Package lisp_gpe contains generated bindings for API file lisp_gpe.api.
Package lisp_gpe contains generated bindings for API file lisp_gpe.api.
lisp_types
Package lisp_types contains generated bindings for API file lisp_types.api.
Package lisp_types contains generated bindings for API file lisp_types.api.
lldp
Package lldp contains generated bindings for API file lldp.api.
Package lldp contains generated bindings for API file lldp.api.
mactime
Package mactime contains generated bindings for API file mactime.api.
Package mactime contains generated bindings for API file mactime.api.
map
Package maps contains generated bindings for API file map.api.
Package maps contains generated bindings for API file map.api.
mdata
Package mdata contains generated bindings for API file mdata.api.
Package mdata contains generated bindings for API file mdata.api.
memclnt
Package memclnt contains generated bindings for API file memclnt.api.
Package memclnt contains generated bindings for API file memclnt.api.
memif
Package memif contains generated bindings for API file memif.api.
Package memif contains generated bindings for API file memif.api.
mfib_types
Package mfib_types contains generated bindings for API file mfib_types.api.
Package mfib_types contains generated bindings for API file mfib_types.api.
mpls
Package mpls contains generated bindings for API file mpls.api.
Package mpls contains generated bindings for API file mpls.api.
mss_clamp
Package mss_clamp contains generated bindings for API file mss_clamp.api.
Package mss_clamp contains generated bindings for API file mss_clamp.api.
nat44_ed
Package nat44_ed contains generated bindings for API file nat44_ed.api.
Package nat44_ed contains generated bindings for API file nat44_ed.api.
nat44_ei
Package nat44_ei contains generated bindings for API file nat44_ei.api.
Package nat44_ei contains generated bindings for API file nat44_ei.api.
nat64
Package nat64 contains generated bindings for API file nat64.api.
Package nat64 contains generated bindings for API file nat64.api.
nat66
Package nat66 contains generated bindings for API file nat66.api.
Package nat66 contains generated bindings for API file nat66.api.
nat_types
Package nat_types contains generated bindings for API file nat_types.api.
Package nat_types contains generated bindings for API file nat_types.api.
npt66
Package npt66 contains generated bindings for API file npt66.api.
Package npt66 contains generated bindings for API file npt66.api.
nsh
Package nsh contains generated bindings for API file nsh.api.
Package nsh contains generated bindings for API file nsh.api.
nsim
Package nsim contains generated bindings for API file nsim.api.
Package nsim contains generated bindings for API file nsim.api.
one
Package one contains generated bindings for API file one.api.
Package one contains generated bindings for API file one.api.
p2p_ethernet
Package p2p_ethernet contains generated bindings for API file p2p_ethernet.api.
Package p2p_ethernet contains generated bindings for API file p2p_ethernet.api.
pbl
Package pbl contains generated bindings for API file pbl.api.
Package pbl contains generated bindings for API file pbl.api.
pci_types
Package pci_types contains generated bindings for API file pci_types.api.
Package pci_types contains generated bindings for API file pci_types.api.
pg
Package pg contains generated bindings for API file pg.api.
Package pg contains generated bindings for API file pg.api.
ping
Package ping contains generated bindings for API file ping.api.
Package ping contains generated bindings for API file ping.api.
pipe
Package pipe contains generated bindings for API file pipe.api.
Package pipe contains generated bindings for API file pipe.api.
pnat
Package pnat contains generated bindings for API file pnat.api.
Package pnat contains generated bindings for API file pnat.api.
policer
Package policer contains generated bindings for API file policer.api.
Package policer contains generated bindings for API file policer.api.
policer_types
Package policer_types contains generated bindings for API file policer_types.api.
Package policer_types contains generated bindings for API file policer_types.api.
pot
Package pot contains generated bindings for API file pot.api.
Package pot contains generated bindings for API file pot.api.
pppoe
Package pppoe contains generated bindings for API file pppoe.api.
Package pppoe contains generated bindings for API file pppoe.api.
punt
Package punt contains generated bindings for API file punt.api.
Package punt contains generated bindings for API file punt.api.
qos
Package qos contains generated bindings for API file qos.api.
Package qos contains generated bindings for API file qos.api.
rd_cp
Package rd_cp contains generated bindings for API file rd_cp.api.
Package rd_cp contains generated bindings for API file rd_cp.api.
rdma
Package rdma contains generated bindings for API file rdma.api.
Package rdma contains generated bindings for API file rdma.api.
session
Package session contains generated bindings for API file session.api.
Package session contains generated bindings for API file session.api.
span
Package span contains generated bindings for API file span.api.
Package span contains generated bindings for API file span.api.
sr
Package sr contains generated bindings for API file sr.api.
Package sr contains generated bindings for API file sr.api.
sr_mpls
Package sr_mpls contains generated bindings for API file sr_mpls.api.
Package sr_mpls contains generated bindings for API file sr_mpls.api.
sr_pt
Package sr_pt contains generated bindings for API file sr_pt.api.
Package sr_pt contains generated bindings for API file sr_pt.api.
sr_types
Package sr_types contains generated bindings for API file sr_types.api.
Package sr_types contains generated bindings for API file sr_types.api.
stn
Package stn contains generated bindings for API file stn.api.
Package stn contains generated bindings for API file stn.api.
svs
Package svs contains generated bindings for API file svs.api.
Package svs contains generated bindings for API file svs.api.
syslog
Package syslog contains generated bindings for API file syslog.api.
Package syslog contains generated bindings for API file syslog.api.
tapv2
Package tapv2 contains generated bindings for API file tapv2.api.
Package tapv2 contains generated bindings for API file tapv2.api.
tcp
Package tcp contains generated bindings for API file tcp.api.
Package tcp contains generated bindings for API file tcp.api.
teib
Package teib contains generated bindings for API file teib.api.
Package teib contains generated bindings for API file teib.api.
tls_openssl
Package tls_openssl contains generated bindings for API file tls_openssl.api.
Package tls_openssl contains generated bindings for API file tls_openssl.api.
trace
Package trace contains generated bindings for API file trace.api.
Package trace contains generated bindings for API file trace.api.
tunnel_types
Package tunnel_types contains generated bindings for API file tunnel_types.api.
Package tunnel_types contains generated bindings for API file tunnel_types.api.
udp
Package udp contains generated bindings for API file udp.api.
Package udp contains generated bindings for API file udp.api.
udp_ping
Package udp_ping contains generated bindings for API file udp_ping.api.
Package udp_ping contains generated bindings for API file udp_ping.api.
urpf
Package urpf contains generated bindings for API file urpf.api.
Package urpf contains generated bindings for API file urpf.api.
vhost_user
Package vhost_user contains generated bindings for API file vhost_user.api.
Package vhost_user contains generated bindings for API file vhost_user.api.
virtio
Package virtio contains generated bindings for API file virtio.api.
Package virtio contains generated bindings for API file virtio.api.
virtio_types
Package virtio_types contains generated bindings for API file virtio_types.api.
Package virtio_types contains generated bindings for API file virtio_types.api.
vlib
Package vlib contains generated bindings for API file vlib.api.
Package vlib contains generated bindings for API file vlib.api.
vmxnet3
Package vmxnet3 contains generated bindings for API file vmxnet3.api.
Package vmxnet3 contains generated bindings for API file vmxnet3.api.
vpe
Package vpe contains generated bindings for API file vpe.api.
Package vpe contains generated bindings for API file vpe.api.
vpe_types
Package vpe_types contains generated bindings for API file vpe_types.api.
Package vpe_types contains generated bindings for API file vpe_types.api.
vrrp
Package vrrp contains generated bindings for API file vrrp.api.
Package vrrp contains generated bindings for API file vrrp.api.
vxlan
Package vxlan contains generated bindings for API file vxlan.api.
Package vxlan contains generated bindings for API file vxlan.api.
vxlan_gpe
Package vxlan_gpe contains generated bindings for API file vxlan_gpe.api.
Package vxlan_gpe contains generated bindings for API file vxlan_gpe.api.
vxlan_gpe_ioam_export
Package vxlan_gpe_ioam_export contains generated bindings for API file vxlan_gpe_ioam_export.api.
Package vxlan_gpe_ioam_export contains generated bindings for API file vxlan_gpe_ioam_export.api.
wireguard
Package wireguard contains generated bindings for API file wireguard.api.
Package wireguard contains generated bindings for API file wireguard.api.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL