PAPI: Cache connected client instances 79/30179/48
authorVratko Polak <vrpolak@cisco.com>
Tue, 15 Dec 2020 12:39:56 +0000 (13:39 +0100)
committerVratko Polak <vrpolak@cisco.com>
Thu, 17 Dec 2020 12:28:57 +0000 (12:28 +0000)
commita33b52ae0f255021d89307ebc694f6e907906151
tree133f7cc93cd5475d211982c952244e96a223ba59
parent37877d670e7e2d81673222b6c3d9e7649ccd5cd5
PAPI: Cache connected client instances

Disconnect+connect cycle is expensive and slow.
This change tracks connected client instances
so later "connect" to the same target uses it.

Explicit disconnects are allowed (and executed before VPP ends),
but once again disconnected instances are cached and reused,
as creating a new instance is more expensive than just connect.

+ Add missing checks on interfaces being up to appropriate keyword.
 + Use appropriate keywords.
 + Add a comment explaining why a simpler keyword is not appropriate.
+ Improve VPP checks in containers.
 + Fix the vppctl check to actually work.
 + Add PAPI check to ensure VPP is really ready.
 + Delay/reorder checks to make them faster with multiple containers.
 + Leave some TODOs to improve various lifecycles later.
+ As we do not stop VPP in test/suite teardown:
 + One final disconnect is needed, added to __init__.robot teardowns.
 - Import of the final disconnect keyword is ugly, but it works.
- We could use a hashable class for distinguishing node+socket pairs.
- Are we connecting to VPP inside VMs?

Change-Id: I49cd726740c3e8cae1591c7c84b85a447241228f
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
resources/libraries/python/ContainerUtils.py
resources/libraries/python/PapiExecutor.py
resources/libraries/python/VPPUtil.py
resources/libraries/python/topology.py
resources/libraries/robot/l2/l2_bridge_domain.robot
tests/vpp/device/__init__.robot
tests/vpp/device/container_memif/eth2p-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot
tests/vpp/device/container_memif/eth2p-ethipv6-ip6base-eth-2memif-1dcr-dev.robot
tests/vpp/perf/__init__.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot
tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.