Skip to content

feat: add mac address pool config to nico-machine-a-tron helm chart #3698

Description

@akorobkov-nvda

Is this a new feature, an enhancement, or a change to existing functionality?

Enhancement

How would you describe the priority of this feature request

High

Please provide a clear description of problem this feature solves

In multi-pod machine-a-tron deployments, each pod independently generates mac addresses starting from the same default base (02:00:00:00:00:00). This causes duplicate MAC addresses across pods, leading to:

  1. Conflicting machine registrations in NICo
  2. DHCP lease conflicts
  3. Unpredictable behavior in site-explorer

Real-world example: Deploying 2 pods with 100 hosts each would generate:

  • Pod 0: MACs 02:00:00:00:00:01 through 02:00:00:00:00:64
  • Pod 1: MACs 02:00:00:00:00:01 through 02:00:00:00:00:64 (duplicates!)

Feature Description

When deploying multiple machine-a-tron pods, the Helm chart should generate unique mac address pools configurations per pod, ensuring each pod allocates from a distinct mac address range to prevent collisions.

Key capabilities:

  1. Per-pod MAC pool base - Each pod gets a unique base MAC address derived from pod index
  2. Configurable pool size - host_bits controls the size of each pod's MAC pool
  3. Optional explicit config - Users can override auto-generated pools with explicit values

Two MAC address pools are auto-generated per pod:

  1. mac_address_pool - Standalone MACs for BMC and management interfaces:
  2. hw_mac_address_ranges - Contiguous MAC blocks for NICs

Describe your ideal solution

Add mac pool configuration to machineDefaults:

machineDefaults:
  # MAC address pool for simulated machines
  macAddressPool:
    # Base prefix (first 2 bytes). Pod index is added to byte 3.
    # Uses locally administered address (02:xx:xx:xx:xx:xx)
    basePrefix: "02:00"
    # Number of host bits per pod (~1M macs per pod)
    hostBits: 20

Allow per-pod override:

pods:
  mat-0:
    macAddressPool:
      basePrefix: "02:01"
      hostBits: 16 # ~65k mac addresses per pod

Additional context

MAC Address Format:

02:YY:PP:XX:XX:XX
02 - Locally Administered Address (LAA) (required for virtual mac addresses)
YY - Fixed prefix
PP - Pod index (0x00, 0x01, 0x02, ...)
XX:XX:XX - Host bits (allocated sequentially)

Code of Conduct

  • I agree to follow NVIDIA Infra Controller's Code of Conduct
  • I have searched the open feature requests and have found no duplicates for this feature request

Metadata

Metadata

Labels

featureFeature (deprecated - use issue type, but it's needed for reporting now)

Fields

No fields configured for Enhancement.

Projects

Status
Verify

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions