Skip to content

Commit 212232b

Browse files
Merge pull request #142 from e0ne/devlink-params-pf-only
fix: Get devlink parameters for the first device only
2 parents e80edf4 + 5634386 commit 212232b

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

pkg/host/internal/network/network.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"time"
2828

2929
"github.com/cenkalti/backoff"
30+
"github.com/vishvananda/netlink"
3031
"github.com/vishvananda/netlink/nl"
3132
"sigs.k8s.io/controller-runtime/pkg/log"
3233

@@ -399,10 +400,22 @@ func (n *network) GetDevlinkDeviceParams(pciAddr string) ([]sriovnetworkv1.Devli
399400
return nil, err
400401
}
401402

403+
// Deduplicate params by name, keeping only first occurrence
404+
seen := make(map[string]bool)
405+
var pfParams []*netlink.DevlinkParam
406+
407+
for _, p := range params {
408+
if !seen[p.Name] {
409+
seen[p.Name] = true
410+
pfParams = append(pfParams, p)
411+
}
412+
}
413+
414+
// Merge all params by name
402415
merged := make(map[string]map[uint8]interface{})
403416
devlinkParams := make([]sriovnetworkv1.DevlinkParam, 0)
404417

405-
for _, p := range params {
418+
for _, p := range pfParams {
406419
if _, ok := merged[p.Name]; !ok {
407420
merged[p.Name] = make(map[uint8]interface{})
408421
}

0 commit comments

Comments
 (0)