-func (s *VethsSuite) TestTcpWithLoss() {
- serverContainer := s.getContainerByName("server-vpp")
-
- serverVpp := NewVppInstance(serverContainer)
- s.assertNotNil(serverVpp)
- 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 := s.getContainerByName("client-vpp")
-
- clientVpp := NewVppInstance(clientContainer)
- s.assertNotNil(clientVpp)
- 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)