hs-test: rename address allocator

Type: test

Change-Id: I1745719315d4e0785df5a03aa4312f84c40cb18f
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
diff --git a/extras/hs-test/address_allocator.go b/extras/hs-test/address_allocator.go
new file mode 100644
index 0000000..c08f889
--- /dev/null
+++ b/extras/hs-test/address_allocator.go
@@ -0,0 +1,42 @@
+package main
+
+import "fmt"
+
+type AddressCounter = int
+
+type Ip4AddressAllocator struct {
+	networks map[int]AddressCounter
+}
+
+func (a *Ip4AddressAllocator) AddNetwork(networkNumber int) {
+	a.networks[networkNumber] = 1
+}
+
+func (a *Ip4AddressAllocator) NewIp4InterfaceAddress(inputNetworkNumber ...int) (string, error) {
+	var networkNumber int = 0
+	if len(inputNetworkNumber) > 0 {
+		networkNumber = inputNetworkNumber[0]
+	}
+
+	if _, ok := a.networks[networkNumber]; !ok {
+		a.AddNetwork(networkNumber)
+	}
+
+	numberOfAddresses := a.networks[networkNumber]
+
+	if numberOfAddresses == 254 {
+		return "", fmt.Errorf("no available IPv4 addresses")
+	}
+
+	address := fmt.Sprintf("10.10.%v.%v/24", networkNumber, numberOfAddresses)
+	a.networks[networkNumber] = numberOfAddresses + 1
+
+	return address, nil
+}
+
+func NewIp4AddressAllocator() *Ip4AddressAllocator {
+	var ip4AddrAllocator = new(Ip4AddressAllocator)
+	ip4AddrAllocator.networks = make(map[int]AddressCounter)
+	ip4AddrAllocator.AddNetwork(0)
+	return ip4AddrAllocator
+}