hs-test: refactor netconfig

This joins separate representations of veth and tap interfaces
into a single struct. It removes the need for type interface
and embedding which simplifies the code.

Type: test
Signed-off-by: Maros Ondrejicka <mondreji@cisco.com>
Change-Id: I1b2c368bfe90a5bdfaaa9a5129c27d7d96f8fe3b
This commit is contained in:
Maros Ondrejicka
2023-02-23 13:19:15 +01:00
committed by Florin Coras
parent 9cb3e15c9f
commit 40cba405c5
8 changed files with 211 additions and 275 deletions

View File

@@ -25,7 +25,7 @@ type HstSuite struct {
containers map[string]*Container
volumes []string
netConfigs []NetConfig
netInterfaces map[string]NetInterface
netInterfaces map[string]*NetInterface
addresser *Addresser
testIds map[string]string
}
@@ -188,7 +188,7 @@ func (s *HstSuite) loadNetworkTopology(topologyName string) {
}
s.addresser = NewAddresser(s)
s.netInterfaces = make(map[string]NetInterface)
s.netInterfaces = make(map[string]*NetInterface)
for _, elem := range yamlTopo.Devices {
switch elem["type"].(string) {
case NetNs:
@@ -199,20 +199,11 @@ func (s *HstSuite) loadNetworkTopology(topologyName string) {
s.T().Fatalf("network config error: %v", err)
}
}
case Veth:
case Veth, Tap:
{
if veth, err := NewVeth(elem, s.addresser); err == nil {
s.netConfigs = append(s.netConfigs, &veth)
s.netInterfaces[veth.Name()] = &veth
} else {
s.T().Fatalf("network config error: %v", err)
}
}
case Tap:
{
if tap, err := NewTap(elem, s.addresser); err == nil {
s.netConfigs = append(s.netConfigs, &tap)
s.netInterfaces[tap.Name()] = &tap
if netIf, err := NewNetworkInterface(elem, s.addresser); err == nil {
s.netConfigs = append(s.netConfigs, netIf)
s.netInterfaces[netIf.Name()] = netIf
} else {
s.T().Fatalf("network config error: %v", err)
}
@@ -262,11 +253,6 @@ func (s *HstSuite) getTestId() string {
return s.testIds[testName]
}
type NetworkAddresses struct {
network int
numberOfAddresses int
}
type AddressCounter = int
type Addresser struct {