Subject: dhcp6leased: RTM_ADD "File exists" conflict with kernel-inserted 
Priority 56 prefix route

Description:
On an OpenBSD 7.8 gateway providing Prefix Delegation (PD) to multiple internal 
interfaces, dhcp6leased consistently fails to install the delegated prefix 
route. The kernel proactively inserts a "reject" route for the delegated /61 
prefix at Priority 56 as soon as the prefix is assigned to any internal 
interface. dhcp6leased then attempts to manage this same prefix at its 
hardcoded Priority 48 using RTM_ADD, resulting in an EEXIST error.

This occurs even when internal interfaces are configured without inet6 autoconf 
and persists across reboots.

1. System Environment:

OS: OpenBSD 7.8 (GENERIC.MP) #4: Tue Mar 3 10:00:16 MST 2026

Hardware: Supermicro X10SLH-F (Intel Xeon E3-1241 v3)

Interfaces: * WAN: rge0 (Realtek RTL8126)

LAN/VLANs: ix0 (Intel 82599), vlan5, vlan10, vlan100, em0 (Intel I210)

2. Configuration (/etc/dhcp6leased.conf):

request rapid commit
request prefix delegation on rge0 for {
ix0/64
vlan5/64
vlan10/64
vlan100/64
em0/64
wg0/64
}

3. Observed Routing Table Conflict (netstat -rn -f inet6):

The kernel engine claims the prefix at Priority 56, blocking the daemon:

Destination Gateway Flags Refs Use Mtu Prio Iface
2601:245:4780:e700::/61 ::1 UGRS 0 0 32768 56 lo0
2601:245:4780:e700::/64 ...::1 UCn 0 0 - 4 ix0

4. Daemon Log Errors (/var/log/daemon):

Mar 9 20:01:40 gateway dhcp6leased[44626]: prefix delegation #0 
2601:245:4780:e700::/61 received on rge0
Mar 9 20:01:40 gateway dhcp6leased[62859]: failed to send route message: File 
exists
Mar 9 20:34:13 gateway dhcp6leased[44626]: prefix delegation #0 
2601:245:4780:e700::/61 received on rge0
Mar 9 20:34:13 gateway dhcp6leased[62859]: failed to send route message: File 
exists

5. dmesg:

OpenBSD 7.8 (GENERIC.MP) #4: Tue Mar 3 10:00:16 MST 2026
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 17119092736 (16326MB)
avail mem = 16573399040 (15805MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xec280 (35 entries)
bios0: vendor American Megatrends Inc. version "3.4" date 01/21/2021
bios0: Supermicro X10SLH-F/X10SLM+-F
efi0 at bios0: UEFI 2.3.1
efi0: American Megatrends rev 0x4028f
acpi0 at bios0: ACPI 5.0
acpi0: sleep states S0 S4 S5
acpi0: tables DSDT FACP APIC FPDT FIDT SSDT SSDT SSDT SSDT SSDT MCFG PRAD HPET 
SSDT SSDT SPMI DMAR EINJ ERST HEST BERT BGRT
acpi0: wakeup devices PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) PEGP(S4) 
RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) PXSX(S4) 
RP05(S4) PXSX(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.12 MHz, 06-3c-03, patch 
00000028
cpu0: cpuid 1 
edx=bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
 
ecx=77fafbff<SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND>
cpu0: cpuid 6 eax=77<SENSOR,ARAT,PTS> ecx=9<EFFFREQ>
cpu0: cpuid 7.0 ebx=27ab<FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID> 
edx=9c000600<SRBDS_CTRL,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD>
cpu0: cpuid a vers=3, gp=4, gpwidth=48, ff=3, ffwidth=48
cpu0: cpuid d.1 eax=1<XSAVEOPT>
cpu0: cpuid 80000001 edx=2c100800<NXE,PAGE1GB,RDTSCP,LONG> ecx=21<LAHF,ABM>
cpu0: cpuid 80000007 edx=100<ITSC>
cpu0: MELTDOWN
cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB 64b/line 
8-way L2 cache, 8MB 64b/line 16-way L3 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 100MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.10 MHz, 06-3c-03, patch 
00000028
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 4 (application processor)
cpu2: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.13 MHz, 06-3c-03, patch 
00000028
cpu2: smt 0, core 2, package 0
cpu3 at mainbus0: apid 6 (application processor)
cpu3: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.23 MHz, 06-3c-03, patch 
00000028
cpu3: smt 0, core 3, package 0
cpu4 at mainbus0: apid 1 (application processor)
cpu4: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.58 MHz, 06-3c-03, patch 
00000028
cpu4: smt 1, core 0, package 0
cpu5 at mainbus0: apid 3 (application processor)
cpu5: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.45 MHz, 06-3c-03, patch 
00000028
cpu5: smt 1, core 1, package 0
cpu6 at mainbus0: apid 5 (application processor)
cpu6: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.54 MHz, 06-3c-03, patch 
00000028
cpu6: smt 1, core 2, package 0
cpu7 at mainbus0: apid 7 (application processor)
cpu7: Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz, 3500.53 MHz, 06-3c-03, patch 
00000028
cpu7: smt 1, core 3, package 0
ioapic0 at mainbus0: apid 8 pa 0xfec00000, version 20, 24 pins
acpimcfg0 at acpi0
acpimcfg0: addr 0xf8000000, bus 0-63
acpihpet0 at acpi0: 14318179 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (PEG0)
acpiprt2 at acpi0: bus 2 (PEG1)
acpiprt3 at acpi0: bus -1 (PEG2)
acpiprt4 at acpi0: bus 3 (RP01)
acpiprt5 at acpi0: bus -1 (RP02)
acpiprt6 at acpi0: bus 5 (RP03)
acpiprt7 at acpi0: bus 6 (RP04)
acpiprt8 at acpi0: bus -1 (RP05)
acpiec0 at acpi0: not present
acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
acpicmos0 at acpi0
com0 at acpi0 UAR1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo
com1 at acpi0 UAR2 addr 0x2f8/0x8 irq 3: ns16550a, 16 byte fifo
com2 at acpi0 UR12 addr 0x3e8/0x8 irq 5: ns16550a, 16 byte fifo
ipmi0 at acpi0: version 2.0 interface KCS iobase 0xca2/2 spacing 1
acpibtn0 at acpi0: SLPB
acpibtn1 at acpi0: PWRB
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
acpicpu0 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu1 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu2 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu3 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu4 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu5 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu6 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu7 at acpi0: C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpipwrres0 at acpi0: PG00, resource for PEG0
acpipwrres1 at acpi0: PG01, resource for PEG1
acpipwrres2 at acpi0: PG02, resource for PEG2
acpipwrres3 at acpi0: FN00, resource for FAN0
acpipwrres4 at acpi0: FN01, resource for FAN1
acpipwrres5 at acpi0: FN02, resource for FAN2
acpipwrres6 at acpi0: FN03, resource for FAN3
acpipwrres7 at acpi0: FN04, resource for FAN4
acpitz0 at acpi0
acpitz0: critical temperature is 105 degC
acpitz1 at acpi0
acpitz1: critical temperature is 105 degC
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD1F
ipmi at mainbus0 not configured
cpu0: using VERW MDS workaround (except on vmm entry)
cpu0: Enhanced SpeedStep 3500 MHz: speeds: 3501, 3500, 3300, 3100, 2900, 2700, 
2500, 2300, 2100, 2000, 1800, 1600, 1400, 1200, 1000, 800 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Xeon E3-1200 v3 Host" rev 0x06
ppb0 at pci0 dev 1 function 0 "Intel Core 4G PCIE" rev 0x06: msi
pci1 at ppb0 bus 1
ix0 at pci1 dev 0 function 0 "Intel 82599" rev 0x01, msix, 4 queues, address 
a0:36:9f:f1:d3:8c
ix1 at pci1 dev 0 function 1 "Intel 82599" rev 0x01, msix, 4 queues, address 
a0:36:9f:f1:d3:8e
ppb1 at pci0 dev 1 function 1 "Intel Core 4G PCIE" rev 0x06: msi
pci2 at ppb1 bus 2
rge0 at pci2 dev 0 function 0 "Realtek RTL8126" rev 0x01: msix, address 
88:c9:b3:b4:17:5a
xhci0 at pci0 dev 20 function 0 "Intel 8 Series xHCI" rev 0x05: msi, xHCI 1.0
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 
addr 1
"Intel 8 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured
"Intel 8 Series MEI" rev 0x04 at pci0 dev 22 function 1 not configured
ehci0 at pci0 dev 26 function 0 "Intel 8 Series USB" rev 0x05: apic 8 int 16
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 
addr 1
ppb2 at pci0 dev 28 function 0 "Intel 8 Series PCIE" rev 0xd5: msi
pci3 at ppb2 bus 3
ppb3 at pci3 dev 0 function 0 "ASPEED Technology AST1150 PCI" rev 0x03
pci4 at ppb3 bus 4
"ASPEED Technology AST2000" rev 0x30 at pci4 dev 0 function 0 not configured
ppb4 at pci0 dev 28 function 2 "Intel 8 Series PCIE" rev 0xd5: msi
pci5 at ppb4 bus 5
em0 at pci5 dev 0 function 0 "Intel I210" rev 0x03: msi, address 
3c:ec:ef:8a:43:ac
ppb5 at pci0 dev 28 function 3 "Intel 8 Series PCIE" rev 0xd5: msi
pci6 at ppb5 bus 6
em1 at pci6 dev 0 function 0 "Intel I210" rev 0x03: msi, address 
3c:ec:ef:8a:43:ad
ehci1 at pci0 dev 29 function 0 "Intel 8 Series USB" rev 0x05: apic 8 int 22
usb2 at ehci1: USB revision 2.0
uhub2 at usb2 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 
addr 1
pcib0 at pci0 dev 31 function 0 "Intel C226 LPC" rev 0x05
ahci0 at pci0 dev 31 function 2 "Intel 8 Series AHCI" rev 0x05: msi, AHCI 1.3
ahci0: port 1: 6.0Gb/s
ahci0: port 4: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 1 lun 0: <ATA, KINGSTON SA400S3, S3H0> naa.50026b77852d5ea1
sd0: 114473MB, 512 bytes/sector, 234441648 sectors, thin
sd1 at scsibus1 targ 4 lun 0: <ATA, KINGSTON SA400S3, S3H0> naa.50026b77852d6318
sd1: 114473MB, 512 bytes/sector, 234441648 sectors, thin
ichiic0 at pci0 dev 31 function 3 "Intel 8 Series SMBus" rev 0x05: apic 8 int 18
iic0 at ichiic0
iic0: skipping sensors to avoid ipmi0 interactions
spdmem0 at iic0 addr 0x51: 8GB DDR3 SDRAM ECC PC3-14200 with thermal sensor
spdmem1 at iic0 addr 0x53: 8GB DDR3 SDRAM ECC PC3-14200 with thermal sensor
"Intel 8 Series Thermal" rev 0x05 at pci0 dev 31 function 6 not configured
isa0 at pcib0
isadma0 at isa0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
wbsio0 at isa0 port 0x2e/2: NCT6776F rev 0x33
lm1 at wbsio0 port 0xa30/8: NCT6776F
vmm0 at mainbus0: VMX/EPT
efifb0 at mainbus0: 800x600, 32bpp
wsdisplay0 at efifb0 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
uhub3 at uhub0 port 7 configuration 1 interface 0 "ATEN International product 
0x7000" rev 2.00/0.00 addr 2
uhidev0 at uhub3 port 1 configuration 1 interface 0 "ATEN International product 
0x2419" rev 1.10/1.00 addr 3
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 variable keys, 6 key codes
wskbd0 at ukbd0: console keyboard, using wsdisplay0
uhidev1 at uhub3 port 1 configuration 1 interface 1 "ATEN International product 
0x2419" rev 1.10/1.00 addr 3
uhidev1: iclass 3/1
ums0 at uhidev1: 3 buttons, Z dir
wsmouse0 at ums0 mux 0
uhub4 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 
2.00/0.05 addr 2
uhub5 at uhub2 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" rev 
2.00/0.05 addr 2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
sd2 at scsibus3 targ 1 lun 0: <OPENBSD, SR RAID 1, 006>
sd2: 114472MB, 512 bytes/sector, 234440063 sectors
root on sd2a (456acfb88b5f809f.a) swap on sd2b dump on sd2b
syncing disks... done

Conclusion:
It appears dhcp6leased is missing logic to handle or RTM_CHANGE an existing 
kernel-generated prefix route (Prio 56). Manually deleting the route allows the 
daemon to succeed temporarily, but the conflict re-emerges upon the next prefix 
change or reboot.

I did troubleshot this for a couple of hours then tried troubleshooting with 
AI. I'm assuming it's me or my configuration. However, nothing I do/have done, 
works. Is it functional, oh yes, I love it, is it "correct"? No, I don't think 
so. Any advice or information you can give would be greatly appreciated. I'm 
more than willing to send more info/data.
Sorry, I cannot use sendbug.

Thanks in advance for your consideration,
Joseph J. Hageli

Reply via email to