Merge pull request #8339 from fidencio/topic/stable-3.2-backports-oct-31st-2023

stable-3.2 | Backport everything needed after the release till Oct 31st 2023
This commit is contained in:
Fabiano Fidêncio
2023-10-31 14:36:38 +01:00
committed by GitHub
15 changed files with 534 additions and 73 deletions

View File

@@ -125,14 +125,42 @@ func (endpoint *IPVlanEndpoint) Detach(ctx context.Context, netNsCreated bool, n
})
}
// HotAttach for ipvlan endpoint not supported yet
func (endpoint *IPVlanEndpoint) HotAttach(ctx context.Context, h Hypervisor) error {
return fmt.Errorf("IPVlanEndpoint does not support Hot attach")
span, ctx := ipvlanTrace(ctx, "HotAttach", endpoint)
defer span.End()
if err := xConnectVMNetwork(ctx, endpoint, h); err != nil {
networkLogger().WithError(err).Error("Error bridging ipvlan ep")
return err
}
if _, err := h.HotplugAddDevice(ctx, endpoint, NetDev); err != nil {
networkLogger().WithError(err).Error("Error hotplugging ipvlan ep")
return err
}
return nil
}
// HotDetach for ipvlan endpoint not supported yet
func (endpoint *IPVlanEndpoint) HotDetach(ctx context.Context, h Hypervisor, netNsCreated bool, netNsPath string) error {
return fmt.Errorf("IPVlanEndpoint does not support Hot detach")
if !netNsCreated {
return nil
}
span, ctx := ipvlanTrace(ctx, "HotDetach", endpoint)
defer span.End()
if err := doNetNS(netNsPath, func(_ ns.NetNS) error {
return xDisconnectVMNetwork(ctx, endpoint)
}); err != nil {
networkLogger().WithError(err).Warn("Error un-bridging ipvlan ep")
}
if _, err := h.HotplugRemoveDevice(ctx, endpoint, NetDev); err != nil {
networkLogger().WithError(err).Error("Error detach ipvlan ep")
return err
}
return nil
}
func (endpoint *IPVlanEndpoint) save() persistapi.NetworkEndpoint {

View File

@@ -122,14 +122,42 @@ func (endpoint *MacvlanEndpoint) Detach(ctx context.Context, netNsCreated bool,
})
}
// HotAttach for bridged macvlan endpoint not supported yet
func (endpoint *MacvlanEndpoint) HotAttach(ctx context.Context, h Hypervisor) error {
return fmt.Errorf("MacvlanEndpoint does not support Hot attach")
span, ctx := macvlanTrace(ctx, "HotAttach", endpoint)
defer span.End()
if err := xConnectVMNetwork(ctx, endpoint, h); err != nil {
networkLogger().WithError(err).Error("Error bridging macvlan ep")
return err
}
if _, err := h.HotplugAddDevice(ctx, endpoint, NetDev); err != nil {
networkLogger().WithError(err).Error("Error hotplugging macvlan ep")
return err
}
return nil
}
// HotDetach for bridged macvlan endpoint not supported yet
func (endpoint *MacvlanEndpoint) HotDetach(ctx context.Context, h Hypervisor, netNsCreated bool, netNsPath string) error {
return fmt.Errorf("MacvlanEndpoint does not support Hot detach")
if !netNsCreated {
return nil
}
span, ctx := macvlanTrace(ctx, "HotDetach", endpoint)
defer span.End()
if err := doNetNS(netNsPath, func(_ ns.NetNS) error {
return xDisconnectVMNetwork(ctx, endpoint)
}); err != nil {
networkLogger().WithError(err).Warn("Error un-bridging macvlan ep")
}
if _, err := h.HotplugRemoveDevice(ctx, endpoint, NetDev); err != nil {
networkLogger().WithError(err).Error("Error detach macvlan ep")
return err
}
return nil
}
func (endpoint *MacvlanEndpoint) save() persistapi.NetworkEndpoint {