in machine.go [756:798]
func (m *Machine) createNetworkInterface(ctx context.Context, iface NetworkInterface, iid int) error {
ifaceID := strconv.Itoa(iid)
if iface.StaticConfiguration == nil {
// this should not be possible, but check nil anyways to prevent a panic
// if there is a bug
return errors.New("invalid nil state for network interface")
}
m.logger.Printf("Attaching NIC %s (hwaddr %s) at index %s",
iface.StaticConfiguration.HostDevName, iface.StaticConfiguration.MacAddress, ifaceID)
ifaceCfg := models.NetworkInterface{
IfaceID: &ifaceID,
GuestMac: iface.StaticConfiguration.MacAddress,
HostDevName: String(iface.StaticConfiguration.HostDevName),
AllowMmdsRequests: iface.AllowMMDS,
}
if iface.InRateLimiter != nil {
ifaceCfg.RxRateLimiter = iface.InRateLimiter
}
if iface.OutRateLimiter != nil {
ifaceCfg.TxRateLimiter = iface.OutRateLimiter
}
if iface.InRateLimiter != nil {
ifaceCfg.RxRateLimiter = iface.InRateLimiter
}
if iface.OutRateLimiter != nil {
ifaceCfg.TxRateLimiter = iface.OutRateLimiter
}
resp, err := m.client.PutGuestNetworkInterfaceByID(ctx, ifaceID, &ifaceCfg)
if err == nil {
m.logger.Debugf("PutGuestNetworkInterfaceByID: %s", resp.Error())
}
m.logger.Debugf("createNetworkInterface returned for %s", iface.StaticConfiguration.HostDevName)
return err
}