Fix SR-IOV configuration generation and PCI address mapping - v1.3.5#23
Merged
Conversation
added 2 commits
May 27, 2025 22:43
- Fix ENI Manager incorrectly generating SR-IOV config for regular ENI configurations - Implement proper PCI address mapping for SR-IOV configurations - Prioritize PCI address matching over device index for SR-IOV interfaces - Add comprehensive test coverage for interface-to-NodeENI mapping - Resolve PCI address mismatches in SR-IOV device plugin configuration Fixes #22
Deletes the binary executable file 'eni-manager' from version control. Binary files should not typically be tracked in Git repositories.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes critical issues in the AWS Multi-ENI Controller's SR-IOV configuration generation and PCI address mapping logic, bumping the version to v1.3.5.
Issues Fixed
Fixes #22 - ENI Manager incorrectly generates SR-IOV config for regular ENI configurations
Issue 1: Incorrect SR-IOV Configuration Generation
Problem: Regular ENI configurations (Case 1) were incorrectly generating SR-IOV device plugin configuration when they should only perform basic ENI attachment.
Solution: Modified the
updateSRIOVConfigurationmethod to only process interfaces wheredpdkPCIAddressis explicitly specified.Issue 2: PCI Address Mapping Mismatch
Problem: Interface-to-NodeENI mapping was prioritizing device index over PCI address, causing incorrect associations:
0000:00:08.0incorrectly mapped tosriov_kernel_1(should besriov_kernel_2)0000:00:07.0incorrectly mapped tosriov_kernel_2(should besriov_kernel_1)Solution: Modified
findNodeENIForInterfacemethod to prioritize PCI address matching for SR-IOV configurations.Changes Made
Core Fixes
pkg/eni-manager/coordinator/manager.go:dpdkPCIAddresspresenceTesting
test/integration/regular_eni_test.go:TestRegularENINoSRIOVConfigurationto verify Case 1 behaviorTestPCIAddressMappingto verify correct PCI address mappingVersion Updates
Version bumped to v1.3.5 across all files:
cmd/main.gocharts/aws-multi-eni-controller/Chart.yamldeploy/deployment.yamldeploy/eni-manager-daemonset.yamldocs/documentation.htmlUpdated CHANGELOG.md with detailed v1.3.5 release notes
Use Cases Verified
✅ Case 1: Regular ENI (Basic Configuration)
✅ Case 2: Regular SR-IOV (Non-DPDK SR-IOV)
enableDPDK: falseanddpdkPCIAddressspecified✅ Case 3: SR-IOV with DPDK Binding
enableDPDK: truewith DPDK fieldsTesting Results
Expected Impact
Before Fix:
After Fix:
Verification Steps
Regular ENI Test: Deploy NodeENI without DPDK fields
SR-IOV Mapping Test: Deploy NodeENI with
dpdkPCIAddress/etc/pcidp/config.jsonfor accurate configurationBreaking Changes
None. This is a bug fix that preserves all existing functionality while correcting incorrect behavior.
Checklist