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)

Projects

Status
Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions