Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor vpplink #519

Closed
wants to merge 113 commits into from
Closed

Conversation

ondrej-fabry
Copy link
Collaborator

@ondrej-fabry ondrej-fabry commented Jan 26, 2023

This PR contains refactored of vpplink. It is still WIP and I will be updating the PR gradually when group of methods is done with refactor.

onong and others added 30 commits January 19, 2023 09:55
Fix some of the missing fields of CALICOVPP_INTERFACES in EKS
Set vppDriver to af_packet
* Set vppDriver to "dpdk" explicitly
* Remove the deprecated CALICOVPP_NATIVE_DRIVER
For the default-huge manifest yaml, set vppDriver to "" so that uplink driver
is autodetected
Generate the yamls with the latest fixes
This upgrade of VPP's version contains fixes for af_packet. Notable included fixes are :
8a0fd0669 - af_packet: add the missing header-len for packets with checksum offload
6a07348f4 - pci: add option to force uio binding
bca76580b - af_packet: move to plugin

And a cherry pick of a pending patch
git_cherry_pick refs/changes/31/37931/1 # 37931: ip: add the missing offload check | https://gerrit.fd.io/r/c/vpp/+/37931

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This patch enables get_feature_gates which was missing in kustomize.sh

It also adds a make rebuild-vpp target in vpp-manager to do a local
rebuild of VPP whithout the debs to shorten build iterations in dev

This also adds more context to the errors returned by the net_watcher.

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This patch makes it so that the policy allowing traffic from host
to pods also applies on vpptap0. This addresses the case when we want
to do healthchecks on pods by sending traffic from host to pods.
this fixes the case where an empty (without policy) host endpoint
is created, on vpptap0 ingress policies default policies are
configured (defaultendpointtohostaction and allow the rest of traffic)
adding a startup watchdog that logs every 5 seconds
what we are missing for agent to start (felixconfig,
bgpspec)
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This patch makes it so that JsonEnvVars implementing Validate() error
will also have their method called even if the envvar is not defined.
This allows to set defaults at the start of the program and avoid NPE
when the propertie's type is a pointer.

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
ondrej-fabry and others added 2 commits February 9, 2023 09:55
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
Bumps [github.com/emicklei/go-restful](https://github.com/emicklei/go-restful) from 2.11.2-0.20200112161605-a7c079c43d51+incompatible to 2.16.0+incompatible.
- [Release notes](https://github.com/emicklei/go-restful/releases)
- [Changelog](https://github.com/emicklei/go-restful/blob/v3/CHANGES.md)
- [Commits](https://github.com/emicklei/go-restful/commits/v2.16.0)

---
updated-dependencies:
- dependency-name: github.com/emicklei/go-restful
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
AloysAugustin and others added 26 commits February 10, 2023 17:05
This patch forwards the multicast traffic originiating from the pods
to the calico-pods-46 VRF, so that this traffic might be configured
by users without knowleged of the pod's VRF table_id.

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This patch migrates the wiki to a docs/ folder inside this
repository. It also adapts to the migrated tigera docs website

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.4.0 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](golang/net@v0.4.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This patch fixes the api-proxy build that could result in a mismatch between
the glibc version used for linking when building and the one used in the run
environment (i.e. the calico container where the image is run).

This also makes dev build produce :latest images in addition to the new
:commit-hash tags, to maintain old behavior.

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
This default to WITH_GDB=yes to have GDB present in all the build
as it is low footprint (~40Mb), and quite handy to troubleshoot VPP related
issues.

This also makes the integration-tests script inherit the TAG from the
makefile .ci/common.mk

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
The socket name was not properly null terminated when passed
via the API. This should go away with the next rebase of VPP.

Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
# Conflicts:
#	calico-vpp-agent/cni/cni_node_test.go
#	calico-vpp-agent/cni/network_vpp.go
#	calico-vpp-agent/cni/network_vpp_routes.go
#	calico-vpp-agent/cni/pod_interface/loopback.go
#	calico-vpp-agent/common/common.go
#	calico-vpp-agent/connectivity/ipip.go
#	calico-vpp-agent/connectivity/srv6.go
#	calico-vpp-agent/connectivity/vxlan.go
#	calico-vpp-agent/routing/bgp_watcher.go
#	calico-vpp-agent/watchers/net_watcher.go
#	calico-vpp-agent/watchers/srv6_localsid_watcher.go
#	go.mod
#	vpp-manager/uplink/af_packet.go
#	vpp-manager/uplink/af_xdp.go
#	vpp-manager/uplink/dpdk.go
#	vpp-manager/utils/utils.go
#	vpp-manager/vpp_runner.go
#	vpplink/abf.go
#	vpplink/acl.go
#	vpplink/af_packet.go
#	vpplink/af_xdp.go
#	vpplink/arp.go
#	vpplink/avf.go
#	vpplink/capo.go
#	vpplink/cnat.go
#	vpplink/crypto_sw_scheduler.go
#	vpplink/feature.go
#	vpplink/generated/bindings/abf/abf.ba.go
#	vpplink/generated/bindings/abf/abf_rpc.ba.go
#	vpplink/generated/bindings/acl/acl.ba.go
#	vpplink/generated/bindings/acl/acl_rpc.ba.go
#	vpplink/generated/bindings/acl_types/acl_types.ba.go
#	vpplink/generated/bindings/af_packet/af_packet.ba.go
#	vpplink/generated/bindings/af_packet/af_packet_rpc.ba.go
#	vpplink/generated/bindings/af_xdp/af_xdp.ba.go
#	vpplink/generated/bindings/arp/arp.ba.go
#	vpplink/generated/bindings/arp/arp_rpc.ba.go
#	vpplink/generated/bindings/avf/avf.ba.go
#	vpplink/generated/bindings/capo/capo.ba.go
#	vpplink/generated/bindings/cnat/cnat.ba.go
#	vpplink/generated/bindings/cnat/cnat_rpc.ba.go
#	vpplink/generated/bindings/feature/feature.ba.go
#	vpplink/generated/bindings/fib_types/fib_types.ba.go
#	vpplink/generated/bindings/gso/gso.ba.go
#	vpplink/generated/bindings/ikev2/ikev2.ba.go
#	vpplink/generated/bindings/ikev2/ikev2_rpc.ba.go
#	vpplink/generated/bindings/ikev2_types/ikev2_types.ba.go
#	vpplink/generated/bindings/interface/interface.ba.go
#	vpplink/generated/bindings/interface/interface_rpc.ba.go
#	vpplink/generated/bindings/ip/ip.ba.go
#	vpplink/generated/bindings/ip/ip_rpc.ba.go
#	vpplink/generated/bindings/ip6_nd/ip6_nd.ba.go
#	vpplink/generated/bindings/ip6_nd/ip6_nd_rpc.ba.go
#	vpplink/generated/bindings/ip_neighbor/ip_neighbor.ba.go
#	vpplink/generated/bindings/ip_neighbor/ip_neighbor_rpc.ba.go
#	vpplink/generated/bindings/ipip/ipip.ba.go
#	vpplink/generated/bindings/ipip/ipip_rpc.ba.go
#	vpplink/generated/bindings/ipsec/ipsec.ba.go
#	vpplink/generated/bindings/ipsec/ipsec_rpc.ba.go
#	vpplink/generated/bindings/ipsec_types/ipsec_types.ba.go
#	vpplink/generated/bindings/memif/memif.ba.go
#	vpplink/generated/bindings/memif/memif_rpc.ba.go
#	vpplink/generated/bindings/mfib_types/mfib_types.ba.go
#	vpplink/generated/bindings/nat44_ed/nat44_ed.ba.go
#	vpplink/generated/bindings/nat44_ed/nat44_ed_rpc.ba.go
#	vpplink/generated/bindings/pbl/pbl.ba.go
#	vpplink/generated/bindings/pbl/pbl_rpc.ba.go
#	vpplink/generated/bindings/punt/punt.ba.go
#	vpplink/generated/bindings/punt/punt_rpc.ba.go
#	vpplink/generated/bindings/rdma/rdma.ba.go
#	vpplink/generated/bindings/session/session.ba.go
#	vpplink/generated/bindings/session/session_rpc.ba.go
#	vpplink/generated/bindings/sr/sr.ba.go
#	vpplink/generated/bindings/sr/sr_rpc.ba.go
#	vpplink/generated/bindings/tapv2/tapv2.ba.go
#	vpplink/generated/bindings/tapv2/tapv2_rpc.ba.go
#	vpplink/generated/bindings/tunnel_types/tunnel_types.ba.go
#	vpplink/generated/bindings/urpf/urpf.ba.go
#	vpplink/generated/bindings/virtio/virtio.ba.go
#	vpplink/generated/bindings/virtio/virtio_rpc.ba.go
#	vpplink/generated/bindings/vmxnet3/vmxnet3.ba.go
#	vpplink/generated/bindings/vmxnet3/vmxnet3_rpc.ba.go
#	vpplink/generated/bindings/vpe/vpe.ba.go
#	vpplink/generated/bindings/vpe/vpe_rpc.ba.go
#	vpplink/generated/bindings/vxlan/vxlan.ba.go
#	vpplink/generated/bindings/vxlan/vxlan_rpc.ba.go
#	vpplink/generated/bindings/wireguard/wireguard.ba.go
#	vpplink/generated/bindings/wireguard/wireguard_rpc.ba.go
#	vpplink/generated/patches/0005-memif-fix-socket-name-null-termination.patch
#	vpplink/ikev2.go
#	vpplink/interfaces.go
#	vpplink/ip.go
#	vpplink/ip6_nd.go
#	vpplink/ipip.go
#	vpplink/ipsec.go
#	vpplink/memif.go
#	vpplink/nat44.go
#	vpplink/pbl.go
#	vpplink/rdma.go
#	vpplink/routes.go
#	vpplink/session.go
#	vpplink/srv6.go
#	vpplink/stats.go
#	vpplink/types/acl.go
#	vpplink/types/capo.go
#	vpplink/types/cnat.go
#	vpplink/types/ip_types.go
#	vpplink/types/memif.go
#	vpplink/types/nat.go
#	vpplink/types/neigh.go
#	vpplink/types/route.go
#	vpplink/types/sr.go
#	vpplink/types/vpp_interface.go
#	vpplink/urpf.go
#	vpplink/virtio.go
#	vpplink/vlib.go
#	vpplink/vmxnet3.go
#	vpplink/vxlan.go
#	vpplink/wireguard.go
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants