From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id A701F1FF146 for ; Tue, 23 Jun 2026 14:59:32 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 81510353E5; Tue, 23 Jun 2026 14:59:32 +0200 (CEST) Message-ID: Date: Tue, 23 Jun 2026 14:58:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: superseded: [PATCH docs/manager/network/proxmox{-ve-rs,-perl-rs} v2 00/11] sdn: evpn: add IPv6 RA / SLAAC support To: pve-devel@lists.proxmox.com References: <20260430142953.315412-1-h.laimer@proxmox.com> From: Hannes Laimer Content-Language: en-US In-Reply-To: <20260430142953.315412-1-h.laimer@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1782219526384 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.086 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: EKZWTVUILGRZNC25ZMSM5LNNGDOXVWND X-Message-ID-Hash: EKZWTVUILGRZNC25ZMSM5LNNGDOXVWND X-MailFrom: h.laimer@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: superseded-by: https://lore.proxmox.com/pve-devel/20260623125626.1195681-1-h.laimer@proxmox.com/T/ On 2026-04-30 16:37, Hannes Laimer wrote: > It adds IPv6 Router Advertisement / SLAAC support to EVPN zones. The > series depends on the evpn-rework [2] and route-maps [3] series. > > RA settings sit on the vnet (`vnets.cfg`), per-prefix overrides on > the subnet (`subnets.cfg`). Defaults are chosen so most IPv6 subnets > work without explicit per-prefix configuration. > > It also enables `accept_untracked_na=2` on every EVPN vnet bridge > that has an IPv6 subnet, to keep first-packet IPv6 return traffic > reliable in the distributed-gateway topology. The dedicated commit > has the full rationale. > > > v2: > - rebased onto the evpn-rework and route-maps series > > > [v1] https://lore.proxmox.com/pve-devel/20260218102350.211294-1-h.laimer@proxmox.com/ > [2] https://lore.proxmox.com/pve-devel/20260414163315.419384-1-s.hanreich@proxmox.com/ > [3] https://lore.proxmox.com/pve-devel/20260401143957.386809-1-s.hanreich@proxmox.com/ > > > proxmox-ve-rs: > > Hannes Laimer (2): > frr: add IPv6 router advertisement support > ve-config: add per-vnet IPv6 RA configuration > > .../templates/frr.conf.jinja | 1 + > .../templates/nd_interfaces.jinja | 33 +++++ > proxmox-frr/src/ser/mod.rs | 6 + > proxmox-frr/src/ser/nd.rs | 71 +++++++++ > proxmox-frr/src/ser/serializer.rs | 6 +- > proxmox-ve-config/src/sdn/config.rs | 122 +++++++++++++++- > proxmox-ve-config/src/sdn/mod.rs | 1 + > proxmox-ve-config/src/sdn/nd.rs | 129 +++++++++++++++++ > proxmox-ve-config/tests/nd/main.rs | 137 ++++++++++++++++++ > .../nd__explicit_lifetimes_are_preserved.snap | 9 ++ > .../nd__mixed_subnets_under_one_vnet.snap | 14 ++ > .../snapshots/nd__no_autoconfig_prefix.snap | 9 ++ > .../nd__off_link_emits_off_link_modifier.snap | 10 ++ > ...vel_optional_knobs_are_passed_through.snap | 13 ++ > .../nd__slaac_with_default_lifetimes.snap | 9 ++ > 15 files changed, 562 insertions(+), 8 deletions(-) > create mode 100644 proxmox-frr-templates/templates/nd_interfaces.jinja > create mode 100644 proxmox-frr/src/ser/nd.rs > create mode 100644 proxmox-ve-config/src/sdn/nd.rs > create mode 100644 proxmox-ve-config/tests/nd/main.rs > create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__explicit_lifetimes_are_preserved.snap > create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__mixed_subnets_under_one_vnet.snap > create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__no_autoconfig_prefix.snap > create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__off_link_emits_off_link_modifier.snap > create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__ra_level_optional_knobs_are_passed_through.snap > create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__slaac_with_default_lifetimes.snap > > > proxmox-perl-rs: > > Hannes Laimer (1): > pve-rs: sdn: add IPv6 RA builder binding > > pve-rs/Makefile | 1 + > pve-rs/src/bindings/sdn/ipv6_ra.rs | 50 ++++++++++++++++++++++++++++++ > pve-rs/src/bindings/sdn/mod.rs | 1 + > 3 files changed, 52 insertions(+) > create mode 100644 pve-rs/src/bindings/sdn/ipv6_ra.rs > > > pve-network: > > Hannes Laimer (4): > sdn: evpn: add IPv6 RA / SLAAC support > sdn: evpn: derive IP version from CIDR for gateway-less subnets > sdn: evpn: accept untracked IPv6 NA on EVPN vnet bridges > api: vnet: include zone-type in vnet list > > src/PVE/API2/Network/SDN/Vnets.pm | 13 ++++ > src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 12 +++- > src/PVE/Network/SDN/SubnetPlugin.pm | 67 +++++++++++++++++++ > src/PVE/Network/SDN/VnetPlugin.pm | 67 +++++++++++++++++++ > src/PVE/Network/SDN/Zones/EvpnPlugin.pm | 14 +++- > .../exitnode_snat/expected_sdn_interfaces | 1 + > .../exitnodenullroute/expected_sdn_interfaces | 1 + > .../evpn/ipv4ipv6/expected_sdn_interfaces | 1 + > .../ipv4ipv6nogateway/expected_sdn_interfaces | 1 + > .../zones/evpn/ipv6/expected_sdn_interfaces | 1 + > .../evpn/ipv6underlay/expected_sdn_interfaces | 1 + > .../evpn/slaac/expected_controller_config | 53 +++++++++++++++ > .../zones/evpn/slaac/expected_sdn_interfaces | 44 ++++++++++++ > src/test/zones/evpn/slaac/interfaces | 7 ++ > src/test/zones/evpn/slaac/sdn_config | 41 ++++++++++++ > 15 files changed, 322 insertions(+), 2 deletions(-) > create mode 100644 src/test/zones/evpn/slaac/expected_controller_config > create mode 100644 src/test/zones/evpn/slaac/expected_sdn_interfaces > create mode 100644 src/test/zones/evpn/slaac/interfaces > create mode 100644 src/test/zones/evpn/slaac/sdn_config > > > pve-manager: > > Hannes Laimer (2): > ui: sdn: disable SNAT for IPv6 subnets > ui: sdn: add IPv6 RA / SLAAC support > > www/manager6/form/SDNVnetSelector.js | 2 +- > www/manager6/sdn/SubnetEdit.js | 120 +++++++++++++++++++- > www/manager6/sdn/SubnetView.js | 6 +- > www/manager6/sdn/VnetEdit.js | 157 ++++++++++++++++++++++++++- > www/manager6/sdn/VnetView.js | 6 +- > 5 files changed, 283 insertions(+), 8 deletions(-) > > > pve-docs: > > Hannes Laimer (2): > sdn: document IPv6 RA / SLAAC configuration > sdn: add example for IPv6 in an EVPN zone > > pvesdn.adoc | 271 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 271 insertions(+) > > > Summary over all repositories: > 39 files changed, 1490 insertions(+), 18 deletions(-) >