diff --git a/pkg/config/config.go b/pkg/config/config.go index b2b6f706e..42e150f5b 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -50,9 +50,9 @@ func LoadConf(bytes []byte) (*sriovtypes.NetConf, error) { return n, fmt.Errorf("pci address %s is already allocated", n.DeviceID) } - // Assuming VF is netdev interface; Get interface name(s) - hostIFNames, err := utils.GetVFLinkNames(n.DeviceID) - if err != nil || hostIFNames == "" { + // Assuming VF is netdev interface; Get interface name + hostIFName, err := utils.GetVFLinkName(n.DeviceID) + if err != nil || hostIFName == "" { // VF interface not found; check if VF has dpdk driver hasDpdkDriver, err := utils.HasDpdkDriver(n.DeviceID) if err != nil { @@ -61,11 +61,11 @@ func LoadConf(bytes []byte) (*sriovtypes.NetConf, error) { n.DPDKMode = hasDpdkDriver } - if hostIFNames != "" { - n.OrigVfState.HostIFName = hostIFNames + if hostIFName != "" { + n.OrigVfState.HostIFName = hostIFName } - if hostIFNames == "" && !n.DPDKMode { + if hostIFName == "" && !n.DPDKMode { return nil, fmt.Errorf("LoadConf(): the VF %s does not have a interface name or a dpdk driver", n.DeviceID) } diff --git a/pkg/sriov/sriov.go b/pkg/sriov/sriov.go index 90156d46c..7236d6bd5 100644 --- a/pkg/sriov/sriov.go +++ b/pkg/sriov/sriov.go @@ -135,7 +135,7 @@ func (s *sriovManager) SetupVF(conf *sriovtypes.NetConf, podifName string, netns }); err != nil { return "", fmt.Errorf("error setting up interface in container namespace: %q", err) } - conf.ContIFNames = podifName + conf.ContIFName = podifName return macAddress, nil } @@ -147,10 +147,6 @@ func (s *sriovManager) ReleaseVF(conf *sriovtypes.NetConf, podifName string, net return fmt.Errorf("failed to get init netns: %v", err) } - if len(conf.ContIFNames) < 1 && len(conf.ContIFNames) != len(conf.OrigVfState.HostIFName) { - return fmt.Errorf("number of interface names mismatch ContIFNames: %d HostIFNames: %d", len(conf.ContIFNames), len(conf.OrigVfState.HostIFName)) - } - return netns.Do(func(_ ns.NetNS) error { // get VF device linkObj, err := s.nLink.LinkByName(podifName) diff --git a/pkg/sriov/sriov_test.go b/pkg/sriov/sriov_test.go index 4ca960723..0ccd76bca 100644 --- a/pkg/sriov/sriov_test.go +++ b/pkg/sriov/sriov_test.go @@ -48,10 +48,10 @@ var _ = Describe("Sriov", func() { BeforeEach(func() { podifName = "net1" netconf = &sriovtypes.NetConf{ - Master: "enp175s0f1", - DeviceID: "0000:af:06.0", - VFID: 0, - ContIFNames: "net1", + Master: "enp175s0f1", + DeviceID: "0000:af:06.0", + VFID: 0, + ContIFName: "net1", OrigVfState: sriovtypes.VfState{ HostIFName: "enp175s6", }, @@ -141,10 +141,10 @@ var _ = Describe("Sriov", func() { BeforeEach(func() { podifName = "net1" netconf = &sriovtypes.NetConf{ - Master: "enp175s0f1", - DeviceID: "0000:af:06.0", - VFID: 0, - ContIFNames: "net1", + Master: "enp175s0f1", + DeviceID: "0000:af:06.0", + VFID: 0, + ContIFName: "net1", OrigVfState: sriovtypes.VfState{ HostIFName: "enp175s6", }, @@ -162,7 +162,7 @@ var _ = Describe("Sriov", func() { mocked := &mocks_utils.NetlinkManager{} fakeLink := &FakeLink{netlink.LinkAttrs{Index: 1000, Name: "dummylink"}} - mocked.On("LinkByName", netconf.ContIFNames).Return(fakeLink, nil) + mocked.On("LinkByName", netconf.ContIFName).Return(fakeLink, nil) mocked.On("LinkSetDown", fakeLink).Return(nil) mocked.On("LinkSetName", fakeLink, netconf.OrigVfState.HostIFName).Return(nil) mocked.On("LinkSetNsFd", fakeLink, mock.AnythingOfType("int")).Return(nil) @@ -181,11 +181,11 @@ var _ = Describe("Sriov", func() { BeforeEach(func() { podifName = "net1" netconf = &sriovtypes.NetConf{ - Master: "enp175s0f1", - DeviceID: "0000:af:06.0", - VFID: 0, - MAC: "aa:f3:8d:65:1b:d4", - ContIFNames: "net1", + Master: "enp175s0f1", + DeviceID: "0000:af:06.0", + VFID: 0, + MAC: "aa:f3:8d:65:1b:d4", + ContIFName: "net1", OrigVfState: sriovtypes.VfState{ HostIFName: "enp175s6", EffectiveMAC: "c6:c8:7f:1f:21:90", @@ -204,7 +204,7 @@ var _ = Describe("Sriov", func() { mocked := &mocks_utils.NetlinkManager{} fakeLink := &FakeLink{netlink.LinkAttrs{Index: 1000, Name: "dummylink"}} - mocked.On("LinkByName", netconf.ContIFNames).Return(fakeLink, nil) + mocked.On("LinkByName", netconf.ContIFName).Return(fakeLink, nil) mocked.On("LinkSetDown", fakeLink).Return(nil) mocked.On("LinkSetName", fakeLink, netconf.OrigVfState.HostIFName).Return(nil) mocked.On("LinkSetNsFd", fakeLink, mock.AnythingOfType("int")).Return(nil) @@ -224,10 +224,10 @@ var _ = Describe("Sriov", func() { BeforeEach(func() { netconf = &sriovtypes.NetConf{ - Master: "enp175s0f1", - DeviceID: "0000:af:06.0", - VFID: 0, - ContIFNames: "net1", + Master: "enp175s0f1", + DeviceID: "0000:af:06.0", + VFID: 0, + ContIFName: "net1", OrigVfState: sriovtypes.VfState{ HostIFName: "enp175s6", }, @@ -264,10 +264,10 @@ var _ = Describe("Sriov", func() { BeforeEach(func() { netconf = &sriovtypes.NetConf{ - Master: "enp175s0f1", - DeviceID: "0000:af:06.0", - VFID: 0, - ContIFNames: "net1", + Master: "enp175s0f1", + DeviceID: "0000:af:06.0", + VFID: 0, + ContIFName: "net1", OrigVfState: sriovtypes.VfState{ HostIFName: "enp175s6", }, @@ -296,18 +296,18 @@ var _ = Describe("Sriov", func() { minTxRate := 1000 netconf = &sriovtypes.NetConf{ - Master: "enp175s0f1", - DeviceID: "0000:af:06.0", - VFID: 3, - ContIFNames: "net1", - MAC: "d2:fc:22:a7:0d:e8", - Vlan: &vlan, - VlanQoS: &vlanQos, - SpoofChk: "on", - MaxTxRate: &maxTxRate, - MinTxRate: &minTxRate, - Trust: "on", - LinkState: "enable", + Master: "enp175s0f1", + DeviceID: "0000:af:06.0", + VFID: 3, + ContIFName: "net1", + MAC: "d2:fc:22:a7:0d:e8", + Vlan: &vlan, + VlanQoS: &vlanQos, + SpoofChk: "on", + MaxTxRate: &maxTxRate, + MinTxRate: &minTxRate, + Trust: "on", + LinkState: "enable", OrigVfState: sriovtypes.VfState{ HostIFName: "enp175s6", SpoofChk: false, diff --git a/pkg/types/types.go b/pkg/types/types.go index 75e08845c..ad0efa882 100644 --- a/pkg/types/types.go +++ b/pkg/types/types.go @@ -42,7 +42,7 @@ type NetConf struct { VlanQoS *int `json:"vlanQoS"` DeviceID string `json:"deviceID"` // PCI address of a VF in valid sysfs format VFID int - ContIFNames string // VF names after in the container; used during deletion + ContIFName string // VF name after in the container; used during deletion MinTxRate *int `json:"min_tx_rate"` // Mbps, 0 = disable rate limiting MaxTxRate *int `json:"max_tx_rate"` // Mbps, 0 = disable rate limiting SpoofChk string `json:"spoofchk,omitempty"` // on|off diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 6b2d723af..21829fea0 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -170,8 +170,8 @@ func GetSharedPF(ifName string) (string, error) { return pfName, fmt.Errorf("Shared PF not found") } -// GetVFLinkNames returns VF's network interface name given it's PCI addr -func GetVFLinkNames(pciAddr string) (string, error) { +// GetVFLinkName returns VF's network interface name given it's PCI addr +func GetVFLinkName(pciAddr string) (string, error) { var names []string vfDir := filepath.Join(SysBusPci, pciAddr, "net") if _, err := os.Lstat(vfDir); err != nil { diff --git a/pkg/utils/utils_test.go b/pkg/utils/utils_test.go index 81efe3fd9..8d72fc5cd 100644 --- a/pkg/utils/utils_test.go +++ b/pkg/utils/utils_test.go @@ -70,7 +70,7 @@ var _ = Describe("Utils", func() { // Expect(err).To(HaveOccurred(), "Looking for shared PF for not supported NIC should return an error") // }) }) - Context("Checking GetVFLinkNames function", func() { + Context("Checking GetVFLinkName function", func() { It("Assuming existing vf", func() { result, err := GetVFLinkNamesFromVFID("enp175s0f1", 0) Expect(result).To(ContainElement("enp175s6"), "Existing PF should have at least one VF")