From 5b746319d84854f942a48f0fb48a0f02af57f420 Mon Sep 17 00:00:00 2001 From: Maros Ondrejicka Date: Wed, 16 Nov 2022 12:51:11 +0100 Subject: hs-test: test tcp with loss This adds basic, functional-only, test of TCP connection with delay and packet loss introduced by Network Delay Simulator. Type: test Signed-off-by: Maros Ondrejicka Change-Id: Ibedf4c680c152921b733cf39d99b178412748d3c --- extras/hs-test/vcl_test.go | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/extras/hs-test/vcl_test.go b/extras/hs-test/vcl_test.go index e1d23bda020..b68385a884c 100755 --- a/extras/hs-test/vcl_test.go +++ b/extras/hs-test/vcl_test.go @@ -187,3 +187,50 @@ func (s *VethsSuite) testRetryAttach(proto string) { } fmt.Println("Done.") } + +func (s *VethsSuite) TestTcpWithLoss() { + serverContainer, err := s.NewContainer("server") + s.assertNil(err, "creating container failed") + err = serverContainer.run() + s.assertNil(err) + + serverVpp := NewVppInstance(serverContainer) + s.assertNotNil(serverVpp) + serverVpp.setCliSocket("/var/run/vpp/cli.sock") + serverVpp.set2VethsServer() + err = serverVpp.start() + s.assertNil(err, "starting VPP failed") + + _, err = serverVpp.vppctl("test echo server uri tcp://10.10.10.1/20022") + s.assertNil(err, "starting echo server failed") + + clientContainer, err := s.NewContainer("client") + s.assertNil(err, "creating container failed") + err = clientContainer.run() + s.assertNil(err, "starting container failed") + + clientVpp := NewVppInstance(clientContainer) + s.assertNotNil(clientVpp) + clientVpp.setCliSocket("/var/run/vpp/cli.sock") + clientVpp.set2VethsClient() + err = clientVpp.start() + s.assertNil(err, "starting VPP failed") + + // Ensure that VPP doesn't abort itself with NSIM enabled + // Warning: Removing this ping will make the test fail! + _, err = serverVpp.vppctl("ping 10.10.10.2") + s.assertNil(err, "ping failed") + + // Add loss of packets with Network Delay Simulator + _, err = clientVpp.vppctl("set nsim poll-main-thread delay 0.01 ms bandwidth 40 gbit packet-size 1400 packets-per-drop 1000") + s.assertNil(err, "configuring NSIM failed") + _, err = clientVpp.vppctl("nsim output-feature enable-disable host-vppcln") + s.assertNil(err, "enabling NSIM failed") + + // Do echo test from client-vpp container + output, err := clientVpp.vppctl("test echo client uri tcp://10.10.10.1/20022 mbytes 50") + s.assertNil(err) + s.assertEqual(true, len(output) != 0) + s.assertNotContains(output, "failed: timeout") + fmt.Println(output) +} -- cgit 1.2.3-korg