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

extend linux plugin #1431

Merged
merged 3 commits into from
Aug 7, 2019
Merged

extend linux plugin #1431

merged 3 commits into from
Aug 7, 2019

Conversation

matus-mrekaj
Copy link
Contributor

No description provided.

Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>
Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>
Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>
@milanlenco
Copy link
Collaborator

milanlenco commented Aug 7, 2019

So far looks good, but it will need couple more things to support resync:

  • Here in Create you will need to configure alias for the interface to mark it as agent-configured and store its logical name to be able to implement the Retrieve function (i.e. function that reads the state of data-plane and returns the actual config, which is then compared with desired config to determine the set of operations to execute to get those two in-sync). For example, for TAPs (which also already exist in Create from the linux plugin point of view) this is done here. I would suggest alias like: agentPrefix + "/existing/" + logical-interface-name
  • Delete should then remove the alias, like it is done here (it will be probably better to move all the EXISTING-related stuff to interface_existing.go so that the main descriptor file contains only the code shared by all interface types)
  • here in Retrieve the first if branch should check the alias if there is the "/existing/" substring before checking if it is TAP or VETH, and return it as EXISTING interface (with the name parsed from the alias) if it is the case.

With that the resync should work - to test that you can:

  1. start agent and put some configuration into etcd (with EXISTING interface)
  2. turn off the agent and change configured EXISTING interface(s) via Linux CLI (e.g. remove/add IP address)
  3. (re)start the agent - the first transaction should re-read etcd content and get the network configuration in-sync - i.e. it should revert changes done in 2.

Similarly you can change the desired config in step 2. by changing the etcd content, but keep the network config (actual state) untouched, and then in step 3 the agent should reflect those changes.

EDIT: I realized that it is going it be somewhat more complicated than that - for EXISTING interface created by another agent, the alias is already used by that agent and cannot be changed.
Therefore keep Create/Delete as you already have and alternatively try to implement Retrieve for EXISTING as follows:

  • List interfaces in the default namespace (i.e. namespace of the agent)
  • filter out those whose alias starts with this agent's prefix (i.e. non-EXISTING interfaces configured by the same agent)
  • filter out those interfaces which are not mentioned in the correlate as desired EXISTING interfaces (i.e. we do not want to touch other existing interfaces, e.g. system interfaces)
  • dump IP addresses, state, etc. as for TAPs and VETHs.

But this algorithm for Retrieve will need more testing (using the agent restart) to check if it behaves as desired and potentially make changes as needed. The resync is actually the core functionality of the agent, therefore I always ask everyone adding a new descriptor to test it thoroughly.

EDIT 2: another issue with EXISTING being configured by another agent is that those two agents will be colliding - one may set IP address (since it is desired in his NB), but the other could remove it (because it is not desired by his NB). I think we should discuss whether we want to have multiple agents configuring the same thing - what do you think @ondrej-fabry, @rastislavszabo, @VladoLavor? IMHO, EXISTING would make sense for interfaces already created by something other than vpp-agent (e.g. add IP address to already existing eth0 interface). Then we could use the alias to store metadata for Retrieve as we do for VETHs and TAPs. But in the case of DHCP CNF I would just add this dependency for the DHCP plugin and let the vswitch agent to create AND configure IP address(es) for the interface. The CNF would not need to be run in the privileged mode. Would it make sense @matus-mrekaj?

@matus-mrekaj
Copy link
Contributor Author

matus-mrekaj commented Aug 7, 2019

I think the idea of type EXISTING should be just to configure interfaces that already existed before vpp-agent start(interfaces created by something other than the agent) or in the case that the interface is not present yet, configure it later when it is created.
In the case of resync it should be handled by the watcher descriptor, which should take care of this dependency, since we expect the interface to be in the same namespace as the agent. If the interface is not present when the agent starts, then it will wait for the SB notification

Let's say we have a stub network, and the dhcp should listen on that interface, the interface must have a ip address assigned,I think In this case the agent should be able to configure the interface.

@milanlenco
Copy link
Collaborator

The problem we are facing is that with the stub network the vswitch agent will create the interface, but it will not assign any IP address to it. If the agent from DHCP CNF does assign and IP address, but then later the vswitch agent restarts, it would run the resync and remove the IP address (since by the vswitch's NB configuration there should be no IP address) - i.e. I can't figure out how to solve the multiple-agents configuring the same interface scenario.
So my idea was to use a non-stub network with IP addresses (other network types to be implemented into Contiv) and let the vswitch to configure the IP address. The question is though, does dhcp depends only on interface being created, or does IP address already has to be assigned when dhcp server is started? Because this dependency does not cover interface having an IP address, so we would need to also watch for IP address add/del events into the watcher.

@matus-mrekaj
Copy link
Contributor Author

matus-mrekaj commented Aug 7, 2019

The dhcp depends on the interface to be up and have an ip address assigned otherwise it will not listen on that interface
So if we set a config, for example with ETCD, we get this error:
failed to open socket: the interface tap1 has no usable IPv4 addresses configured
So to bypass this error a make a dependency that waits until that interface is up and has a ip address assigned something like this

EDIT: The dependency on the iface state and ip address should be handled by this when the interface is configured.


EDIT2: Question if the vswitch restarts does it recreate the interface, or just configures it as in NB.
if not i can see that might be a problem if the dhcp is listening on that interface and the ip is removed.

@milanlenco
Copy link
Collaborator

Regarding vswitch restart - the dependency on the interface would be also lost and regained which would cause the delete+create sequence also for your dhcp object, i.e. the dhcp server would get restarted.

Regarding the resync: I had a talk about the issues and possible solutions with @rastislavszabo. We decided that for now we would go with the solution based on the EXISTING interface type - i.e. the interface would be created by vswitch, but IP address(es) and other parameters would be set by the agent inside CNF. Maybe in the future we would add option to tell the CNF that the IP address will be set by the vswitch and the CNF should just wait for it to appear. For now I would also suggest to disregard the resync-related issues since we do not need to support the restart scenarios for the planned demo. I will therefore merge this PR so that you are no longer blocked by this and can finalize the CNF implementation. In the meantime I hope to find some spare time that I would use to test some ideas that I have on how to approach the resync in multi-agent scenarios.

@ondrej-fabry ondrej-fabry removed the 🚧 WIP do not merge! work in progress! label Aug 7, 2019
@ondrej-fabry ondrej-fabry merged commit 33233cf into ligato:dev Aug 7, 2019
VladoLavor pushed a commit that referenced this pull request Aug 13, 2019
* Update NAT example for VPP 19.04.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Remove unused dep from Gopkg.toml

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Install vpp-plugin-dpdk package

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Install python3-cffi package (dependency for python3-vpp-api)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Rework RxPlacement and RxMode to allow per-queue configuration

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Fix build.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* remove tapv1 test and fix tests (#1339)

Signed-off-by: AndrejKilvady <andrej.kilvady@pantheon.tech>

* Use arrays instead of maps for RxMode and placement.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Fix for SRv6 localsid delete in nonzero vrf tables (#1338)

Signed-off-by: Filip Gschwandtner <filip.gschwandtner@pantheon.tech>

* fix robot test (#1340)

Signed-off-by: AndrejKilvady <andrej.kilvady@pantheon.tech>

* Add etcd ansible python plugin (#1336)

* Add etcd ansible python plugin
* Add example ansible playbook
* Fix indentation
* Update example playbook

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Fix stats publishers (#1341)

* Fix *-ifplugin config names
* Unset default stats publishers used as fallback without config

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Define datasyncs used for setting publishers from config or env

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add dependency on link-state for rx placement and rx mode.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Update and add UTs for rx placement and rx mode

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Adapter for rx mode descriptor

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Update GoVPP (#1342)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Bug fixing txn post-processing in kvscheduler.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Add example for rx-placement and rx-mode.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Pluralize rx-mode and rx-placement

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Add check for multiple descriptors matching the same key.

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Pluralize also key for all rx-modes of an interface

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Remove unnecessary LinkIsUp from interface metadata

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Refactor image building to use ligato/vpp-base (#1343)

* Refactor image builds to use ligato/vpp-base

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fixed automatic launching of SRv6 crud robot tests (#1346)

Signed-off-by: Filip Gschwandtner <filip.gschwandtner@pantheon.tech>

* remove agent-ctl and kafka (#1345)

Signed-off-by: AndrejKilvady <andrej.kilvady@pantheon.tech>

* Define env vars for overriding start/stop timeouts of agent

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Support building images with different VPP versions (#1348)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Pass image_tag

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix installing deb packages for VPP 19.01

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* DHCP proxy for VPP (#1349)

* Add DHCP proxy plugin initial commit

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Fix nil dump

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update dhcp_proxy.go

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update plugin

  fix namings

  add validate and dependecy implementation

  fix validation in write new dhcp proxy

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Change isIPv6 to 0 if IPv4

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update dump function

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update Ip formatting

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Fix older version

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Add DHCPv6 support

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Fix bugs, clean up

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Clean up and update validate implementation

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Add messages to handler

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update error message

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* remove unused ipToAddress

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update error message

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update validate implementation

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Update error message

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>

* Regenerate proto files

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix travis errors

Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>


Co-authored-by: Ondrej Fabry <ofabry@cisco.com>

* Fix caching for building docker images

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Make channel for notifications buffered (#1352)

Even though notifications are processed quickly in separate go
routines, it still may not be enough if multiple of them are
received at roughly the same time, causing potential drops.
Added small buffer for the notification channel.

* Remove default for agent version and add grpc perf to dockerignore

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add interfaces metrics to telemetry plugin (#1351)

* Add interface metrics to telemetry plugin
* Change telemetry URL for prometheus export to `/metrics/vpp`
* Cleanup metric names
* Rename node count to counter

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix IPv6 detection (#1355)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* add ABF to config data model (#1356)

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Improve error logs for invalid key value pairs (#1359)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Minor Code Fixes (#1361)

* fix panic if model is registered without name

* fix key variable shadowed

* Allow disabling interface stats reading

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* replace supervisord with vpp-agent-init (#1318)

* update cn-infra dep

* add vpp-agent-init

* fix deps

* remove logfile paths from supervisor conf

* update to latest supervisor

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Allow skipping binapi check in dev docker image

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* fix crash for iptables rulechain with default microservice

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Support for VPP 19.08-rc0 (#1357)

* Add preliminary support for VPP 19.08

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* updated govppmux to 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* updated abf and acl plugins to 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* updated ifplugin and ipsec plugin to 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* update l2 and l3 plugin to 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* updated nat and punt plugins to 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* update sr and stn plugin to 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* regenerate binapi for ip, nat and session

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* improvements

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* telemetry 1908

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Update VPP images

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix VPP version in vppcalls handlers

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add config status publishing for config items (#1364)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add some (temporary) debug logs for interface state updates (#1367)

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* vpp updated to v19.08-rc0.324-g2ecf18a55 (#1366)

* update govpp
* update vpp to v19.08-rc0~324-g2ecf18a55
* update vppcalls
* update punt tests

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Update CHANGELOG for v2.1.1

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update README.md

* add rest support for ipsec and punt (#1368)

* remove nul chars from retrieved punt socket path
* add rest support for ipsec and punt

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Fix init order of state channel (#1369)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* initialize abf plugin handler in configurator (#1371)

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Add env var (RESYNC_TIMEOUT) for setting resync timeout (#1372)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Minor enhancements in Linux interface descriptor (#1374)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* tweaked interface statistics

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* wip

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Revert "wip"

This reverts commit e993d3b.

* Revert "tweaked interface statistics"

This reverts commit 8715c96.

* Retrieve cmdline (config) after conencting to VPP (#1381)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* fix punt dump for all vpp versions (#1379)

* fix dump punt log
* fix punt dump for all vpp versions

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Fix dumps for unavailable handlers

- do not return error for dumps when some handlers are not available
- log all unavailable handlers during initialization of restapi/configurator
- remove unused dump channels from vppcalls

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Revert "fix punt dump for all vpp versions" (#1385)

This reverts commit 36636ab.

* Remove unused dump channel

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* vpp.punt: Add support for punt exceptions (#1384)

* Add support for punt exceptions

- added support for punt exceptions in puntplugin
- fixed deleting of registered sockets after resync
- forcing recreation of registered sockets using prefix '!' in socket path
- SetPunt is not used anymore

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update documentation for VPP Punt API

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add punt exceptions to clientv2

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add fixes for punt plugin (#1389)

- do not check socket path for punt exceptions to prevent recreation
- add depenency for RX interface to ip redirect punt
- implement IP redirect dump (only for 19.08)
- add workaround for publishing socket to punt exceptions as well
- properly deregister punt exeption on delete
- return pathname from registration when adding punt exception
- add workaround with ! prefix to punt exceptions
- publish socket paths to status with client TTL

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update VPP 19.08 (#1394)

* update to vpp v19.08-rc0~432-gb63dbc537 (#1390)

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* Update GoVPP and vpp.env

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix nil stats in telemetry

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Regenerate binapi for VPP 19.04

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* fix IPSec security associations tunnel mode (#1395)

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* fix building of docker images for ARM64 (make images) (#1376)

* agentctl: Add import command for importing config from file

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* agentctl: Fix import of full keys

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* agentctl: Add flag to set number of ops per transaction

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* agentctl: Add gRPC support to import command

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Move debugging into debug package (#1397)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* govppmux stats REST handler (#1396)

* Add govppmux stats handler for REST and improve stats

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Allow disabling status publishing and interface stats collection

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* agentctl: Remove unused type

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update README.md (#1400)

* Performance improvements around isNodeReady (#1402)

* Add some (temporary) debug logs for interface state updates

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Performance improvements around isNodeReady

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Update GoVPP and use pure Go client adapters by default (#1401)

* Update GoVPP and use pure Go client adapters by default

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update GoVPP with fix for duplicate objects

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add derived (property) key-value marking interface with at leas… (#1403)

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Update perf tests (#1404)

* Update perf test

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update perf test

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update perf test

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Cleanup puntplugin (#1405)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* vpp19.08 updated to rc0.581-g3eea9de89 (#1407)

* update abf plugin
* update interface plugin
* update l2 plugin
* update L3 plugin
* removed redundant log
* code improvements and cleanup
* added support for VRF index map
* l3 plugin dumps ipv4 and ipv6 routes
* add vrf proto to metadata

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>

* VPP integration tests (#1409)

* Add initial vpp integration test

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Test integration tests on travis

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Skip integration tests on travis

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update vpp integration tests

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Set govpp logger level on debug

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add integration test for interface

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Run integration tests and verify binapi for each VPP version in travis

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix env matrix

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Try fix env

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Try travis fix

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add README for vpp integration tests

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Clean stages

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix stages

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add go_import_path back

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Regenerate binapi for VPP 19.01

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update Go in docker

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add abf patch to VPP 1901 binapi

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix binapi patches for VPP 19.08

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix binapi patches for VPP 19.08

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update GoVPP & aggregated watcher (#1410)

* Update GoVPP

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add aggregated watcher from vpp1908 branch

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix key collisions for vpp routes (#1411)

* Add outgoing interface to route key

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add unit tests for vpp route key

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* added memif interface test to tests/integration (#1412)

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* Update VPP to 19.08-rc0.666-g9082b43dd (#1413)

* Update VPP to 19.08-rc0.666-g9082b43dd

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update VPP to 19.08-rc0.673-ga2e4451db

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix in Telemetry plugin and improvements for integration tests (#1414)

* Add DumpInterface to vppcalls in ifplugin

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Cleanup vpp integration tests

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix file name

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Hide iptables warning when no config found

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Print shm warning directly into stderr

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix single interface dump for older VPP

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix retrieving memory stats in telemetry for VPP 19.08

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add tests for telemetry to VPP integration tests

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix integration tests

 - Skip some telemetry integration tests for VPP<=19.04
 - Fix GetMemory in telemetry for VPP<=19.04
 - Use hard-coded config for VPP
 - Use DOCKER_ARGS for custom arguments for docker

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update GoVPP

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix URL for VPP metrics in telemetry plugin (#1416)

* Fix URL for VPP metrics in telemetry plugin

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update Gopkg.lock

* Optimize interface state dump for specific interfaces (#1415)

* Optimize interface state dump for specific interfaces

- define env var for printing debug logs about interface states
- extend interface state info in vppcalls for ifplugin
- return error when loading config fails
- minor improvements for VPP integration testing

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Remove obsolete function

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add option for skipping metrics in telemetry plugin (#1417)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Added CRUD integration tests for IPv4/IPv6 (#1419)

* Added CRUD integration tests for IPv4/IPv6 routes in default VRF and VRF=2

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* improving code

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* removed comments and parametrized value of VRF (vrfMetaIdx)

* removed redundant initialisation to default value

causes warnings in travis

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* Minor enhancements and code cleanups (#1420)

* Minor enhancement for transaction summary log

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add make target for remote debugging with delve

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Minor code cleanup in vpp ifplugin

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Fix error check when renaming tap and cleanup code

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Add integration test for IP address (#1421)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* added arp crud integration test (#1422)

* added arp crud integration test

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* comments removed

* added more asserts

- asserts related to number of arp entries in arp dump
- asserting of fields of arp entry
- assert non presence in arp dump
- hard-coded index replaced by generated one stored in the variable ifIdx

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* simplify assert (omitting assert of Static field)

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* Update VPP to 19.08-rc0.699-gf7c30df4b (#1424)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* kvscheduler: keep node in the graph during recreate (#1423)

This patch fixes issues reported in #1418.
During recreate (Delete+Create) the node would be completely
removed from the graph by Delete and all the associated flags
(metadata) were therefore lost.
When the subsequent Create fails, the scheduler needs to access
the flags, which in this case are undefined, causing the scheduler
to panic by dereferencing nil pointer.
This patch ensures that the node and its flags are preserved
during re-creation.

An in-progress refactor of the scheduling algorithm
will approach value recreation in a much cleaner
way...

Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>

* Update VPP to 19.08-rc0.706-ga58fec168 (#1426)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Define VRF as retrieve dependency for routes (#1429)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* extend linux plugin (#1431)

* add "EXISTING" interface type

Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>

* update interface descriptor

Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>

* update interface descriptor

Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>

* WIP integration test ACL IP CRUD (#1428)

* integration test ACL IP rule CRUD

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* renamed to 040_acl_test.go

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* to satisfy lint

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* Trying to loop over acl dump

* Looping over IP rule

* acl IP rule CRUD almost finished

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* acl IP rule CRUD

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* satisfy lint

* added acl integration test for MAC IP rules
fixed comments in interface definition

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* fix comments - they should start with space

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* create a helper function that returns ACL rule
- for IP rule
- for IP MAC rule

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* acl integration test - refactoring
- introducing of helper functions to eliminate declaration of acl_rule variables
- removing needless convert with uint32
- simplifying code with expect functions
- improving logged messages to improve understanding

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* satisfy lint

Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>

* Fix Retrieve for TAPv2 interface without Linux-side NB config (#1432)

Signed-off-by: Milan Lenco <milenco@cisco.com>

* Update VPP 19.08 to stable (rc1)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Update VPP 19.08 to stable (rc1) (#1433)

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Release v2.2.0-beta

Signed-off-by: Ondrej Fabry <ofabry@cisco.com>

* Changelog for vpp-agent v2.2.0-beta

Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants