be79ce250fb691ed211dd3fd5c07e0eb244985c8
[vpp.git] / extras / hs-test / suite_veth_test.go
1 package main
2
3 import (
4         "time"
5 )
6
7 const (
8         // These correspond to names used in yaml config
9         serverInterfaceName = "vppsrv"
10         clientInterfaceName = "vppcln"
11 )
12
13 type VethsSuite struct {
14         HstSuite
15 }
16
17 func (s *VethsSuite) SetupSuite() {
18         time.Sleep(1 * time.Second)
19
20         s.configureNetworkTopology("2peerVeth")
21
22         s.loadContainerTopology("2peerVeth")
23 }
24
25 func (s *VethsSuite) SetupTest() {
26         s.skipIfUnconfiguring()
27
28         s.setupVolumes()
29         s.setupContainers()
30
31         // Setup test conditions
32
33         var startupConfig Stanza
34         startupConfig.
35                 newStanza("session").
36                 append("enable").
37                 append("use-app-socket-api").close()
38
39         // ... For server
40         serverContainer := s.getContainerByName("server-vpp")
41
42         serverVpp, _ := serverContainer.newVppInstance(startupConfig)
43         s.assertNotNil(serverVpp)
44
45         s.setupServerVpp()
46
47         // ... For client
48         clientContainer := s.getContainerByName("client-vpp")
49
50         clientVpp, _ := clientContainer.newVppInstance(startupConfig)
51         s.assertNotNil(clientVpp)
52
53         s.setupClientVpp()
54 }
55
56 func (s *VethsSuite) setupServerVpp() {
57         serverVpp := s.getContainerByName("server-vpp").vppInstance
58
59         err := serverVpp.start()
60         s.assertNil(err)
61
62         serverVeth := s.netInterfaces[serverInterfaceName]
63         idx, err := serverVpp.createAfPacket(serverVeth)
64         s.assertNil(err)
65         s.assertNotEqual(0, idx)
66
67         namespaceSecret := "1"
68         err = serverVpp.addAppNamespace(1, idx, namespaceSecret)
69         s.assertNil(err)
70
71 }
72
73 func (s *VethsSuite) setupClientVpp() {
74         clientVpp := s.getContainerByName("client-vpp").vppInstance
75
76         err := clientVpp.start()
77         s.assertNil(err)
78
79         clientVeth := s.netInterfaces[clientInterfaceName]
80         idx, err := clientVpp.createAfPacket(clientVeth)
81         s.assertNil(err)
82         s.assertNotEqual(0, idx)
83
84         clientNamespaceSecret := "2"
85         err = clientVpp.addAppNamespace(2, idx, clientNamespaceSecret)
86         s.assertNil(err)
87 }