NetInterface struct {
NetConfigBase
- addresser *Addresser
- ip4Address string // this will have form 10.10.10.1/24
+ ip4AddrAllocator *Ip4AddressAllocator
+ ip4Address string
index InterfaceIndex
hwAddress MacAddress
networkNamespace string
}
)
-func newNetworkInterface(cfg NetDevConfig, a *Addresser) (*NetInterface, error) {
+func newNetworkInterface(cfg NetDevConfig, a *Ip4AddressAllocator) (*NetInterface, error) {
var newInterface *NetInterface = &NetInterface{}
var err error
- newInterface.addresser = a
+ newInterface.ip4AddrAllocator = a
newInterface.name = cfg["name"].(string)
- newInterface.networkNumber = defaultNetworkNumber
+ newInterface.networkNumber = DEFAULT_NETWORK_NUM
if interfaceType, ok := cfg["type"]; ok {
newInterface.category = interfaceType.(string)
if n, ok := ip.(NetDevConfig)["network"]; ok {
newInterface.networkNumber = n.(int)
}
- newInterface.ip4Address, err = newInterface.addresser.newIp4Address(
+ newInterface.ip4Address, err = newInterface.ip4AddrAllocator.NewIp4InterfaceAddress(
newInterface.networkNumber,
)
if err != nil {
cmd := appendNetns(c, ns)
err := cmd.Run()
if err != nil {
- s := fmt.Sprintf("error bringing %s device %s!", dev, op)
- return errors.New(s)
+ return fmt.Errorf("error bringing %s device %s! (cmd: '%s')", dev, op, cmd)
}
return nil
}
cmd := exec.Command("ip", "netns", op, name)
_, err := cmd.CombinedOutput()
if err != nil {
- return errors.New("add/del netns failed")
+ return fmt.Errorf("add/del netns failed (cmd: '%s')", cmd)
}
return nil
}
cmd := appendNetns(c, ns)
err := cmd.Run()
if err != nil {
- s := fmt.Sprintf("%s %s failed!", op, brName)
+ s := fmt.Sprintf("%s %s failed! err: '%s'", op, brName, err)
return errors.New(s)
}
return nil
cmd := appendNetns(c, ns)
err = cmd.Run()
if err != nil {
- s := fmt.Sprintf("error adding %s to bridge %s: %v", v, brName, err)
- return errors.New(s)
+ return fmt.Errorf("error adding %s to bridge %s: %s", v, brName, err)
}
}
err = setDevUp(brName, ns)