mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): ovs offload interface get ifname from isolated devices tlb (#19147)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
This commit is contained in:
@@ -611,7 +611,7 @@ func (gn *SGuestnetwork) getJsonDesc() *api.GuestnetworkJsonDesc {
|
||||
if routes != nil && len(routes) > 0 {
|
||||
desc.Routes = jsonutils.Marshal(routes)
|
||||
}
|
||||
desc.Ifname = gn.Ifname
|
||||
|
||||
desc.Masklen = net.GuestIpMask
|
||||
desc.Driver = gn.Driver
|
||||
desc.NumQueues = gn.NumQueues
|
||||
@@ -626,6 +626,11 @@ func (gn *SGuestnetwork) getJsonDesc() *api.GuestnetworkJsonDesc {
|
||||
desc.TeamWith = gn.TeamWith
|
||||
|
||||
guest := gn.getGuest()
|
||||
if ifname, ok := gn.OvsOffloadIfname(); ok {
|
||||
desc.Ifname = ifname
|
||||
} else {
|
||||
desc.Ifname = gn.Ifname
|
||||
}
|
||||
if guest.GetHypervisor() != api.HYPERVISOR_KVM {
|
||||
manual := true
|
||||
desc.Manual = &manual
|
||||
@@ -657,6 +662,16 @@ func (gn *SGuestnetwork) IsSriovWithoutOffload() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (gn *SGuestnetwork) OvsOffloadIfname() (string, bool) {
|
||||
if gn.Driver != api.NETWORK_DRIVER_VFIO {
|
||||
return "", false
|
||||
}
|
||||
if dev, _ := gn.GetIsolatedDevice(); dev != nil && dev.OvsOffloadInterface != "" {
|
||||
return dev.OvsOffloadInterface, true
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
func (gn *SGuestnetwork) UpdateNicTrafficUsed(rx, tx int64) error {
|
||||
_, err := db.Update(gn, func() error {
|
||||
gn.RxTrafficUsed = rx
|
||||
|
||||
Reference in New Issue
Block a user