Hello,
As bird makes 6.6 panic, I tested it on 6.6-current. The kernel does
not panic, but after bird runs, networking deos not work anymore.
Bird seems to work correctly, it inserts routes in the kernel as
intended :
(before bird)
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default 10.42.42.1 UG1 0 0 - 56 em0
224/4 127.0.0.1 URS 0 17 32768 8 lo0
10.42.2/24 10.42.42.21 UG1 0 0 - 56 em0
10.42.42/24 10.42.42.69 U1h 1 51 - 56 em0
10.42.42.3 10.42.42.69 UGHD 1 51 - L 56 em0
10.42.42.69 08:00:27:d6:6e:dd UHLhl 1 26 - 1 em0
10.42.42.255 10.42.42.69 UHb 0 10 - 1 em0
127/8 127.0.0.1 UGRS 0 0 32768 8 lo0
127.0.0.1 127.0.0.1 UHhl 1 2 32768 1 lo0
(with bird)
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default 10.42.42.1 UGS 5 12 - 8 em0
default 10.42.42.1 UG1 0 0 - 56 em0
224/4 127.0.0.1 URS 0 15 32768 8 lo0
10.0.42.21 10.42.42.21 UGH1 0 0 - 56 em0
10.42.0/24 10.42.42.1 UG1 0 0 - 56 em0
10.42.1.56/30 10.42.42.21 UG1 0 0 - 56 em0
10.42.1.64/30 10.42.42.21 UG1 0 0 - 56 em0
10.42.1.76/30 10.42.42.21 UG1 0 0 - 56 em0
10.42.2/24 10.42.42.21 UGS 0 4 - 8 em0
10.42.2/24 10.42.42.21 UG1 0 0 - 56 em0
10.42.2.254 10.42.42.21 UGH1 0 0 - 56 em0
10.42.7.6 10.42.42.21 UGH1 0 0 - 56 em0
10.42.7.7 10.42.42.21 UGH1 0 0 - 56 em0
[...]
Bird config is simple (stripped comments):
router id 10.42.42.69;
protocol device {
}
protocol direct {
disabled; # Disable by default
ipv4; # Connect to default IPv4 table
ipv6; # ... and to default IPv6 table
}
protocol kernel {
ipv4 { # Connect protocol to IPv4 table by channel
import none; # Import to table, default is import all
export all; # Export to protocol. default is export none
};
}
protocol ospf v2 ospfv2 {
rfc1583compat yes;
tick 2;
ipv4 {};
area 0 {
interface "em0" { cost 10; };
};
}
But although bird adjacencies are ok, the box cannot communicate with
others, via TCP (ssh) or ping, even on the same link :
BIRD 2.0.6 ready.
ospfv2:
Router ID Pri State DTime Interface Router IP
10.42.42.21 1 ExStart/DR 39.261 em0 10.42.42.21
10.42.42.1 1 ExStart/BDR 38.635 em0 10.42.42.1
BIRD 2.0.6 ready.
ospfv3:
Router ID Pri State DTime Interface Router IP
10.42.42.21 1 Full/DR 35.854 em0
fe80::225:22ff:fe1e:bb7
10.42.42.1 1 Full/BDR 36.525 em0
fe80::4262:31ff:fe01:4b66
PING fe80::225:22ff:fe1e:bb7 (fe80::225:22ff:fe1e:bb7): 56 data bytes
ping6: sendmsg: Network is unreachable
ping: wrote fe80::225:22ff:fe1e:bb7 64 chars, ret=-1
ping6: sendmsg: Network is unreachableping: wrote fe80::225:22ff:fe1e:bb7 64
chars, ret=-1
ping6: sendmsg: Network is unreachableping: wrote fe80::225:22ff:fe1e:bb7 64
chars, ret=-1
ping6: sendmsg: Network is unreachableping: wrote fe80::225:22ff:fe1e:bb7 64
chars, ret=-1
--- fe80::225:22ff:fe1e:bb7 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
PING 10.42.42.1 (10.42.42.1): 56 data bytes
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1
--- 10.42.42.1 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
Stopping bird does not let network recover, nor does flushing routes
(route -n flush) or restarting interface with netstart em0
I've done theses tests on various VMs, as I didn't want to upgrade my
real router to snapshot (the bug is reproductible on virtual box &
qemu-kvm, with intel pro/1000 or virtio interfaces)
here is the dmesg (with errors that may be relevant):
OpenBSD 6.6-current (GENERIC) #94: Thu Apr 2 14:10:04 MDT 2020
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
real mem = 2130640896 (2031MB)
avail mem = 2053619712 (1958MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.5 @ 0xe1000 (10 entries)
bios0: vendor innotek GmbH version "VirtualBox" date 12/01/2006
bios0: innotek GmbH VirtualBox
acpi0 at bios0: ACPI 4.0
acpi0: sleep states S0 S5
acpi0: tables DSDT FACP APIC SSDT
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 3100.79 MHz, 06-3c-03
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,PCID,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,RDRAND,NXE,RDTSCP,LONG,LAHF,ABM,ITSC,FSGSBASE,AVX2,INVPCID,MELTDOWN
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: CPU supports MTRRs but not enabled by BIOS
cpu0: apic clock running at 999MHz
cpu0: mwait min=64, max=64
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins, remapped
acpiprt0 at acpi0: bus 0 (PCI0)
acpicpu0 at acpi0: C1(@1 halt!)
acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
acpiac0 at acpi0: AC unit online
acpivideo0 at acpi0: GFX0
cpu0: using Broadwell MDS workaround
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02
pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00
pciide0 at pci0 dev 1 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0
configured to compatibility, channel 1 configured to compatibility
wd0 at pciide0 channel 0 drive 0: <VBOX HARDDISK>
wd0: 128-sector PIO, LBA, 16384MB, 33554432 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <VBOX, CD-ROM, 1.0> removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
vga1 at pci0 dev 2 function 0 "InnoTek VirtualBox Graphics Adapter" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
em0 at pci0 dev 3 function 0 "Intel 82540EM" rev 0x02: apic 1 int 19, address
08:00:27:d6:6e:dd
"InnoTek VirtualBox Guest Service" rev 0x00 at pci0 dev 4 function 0 not
configured
auich0 at pci0 dev 5 function 0 "Intel 82801AA AC97" rev 0x01: apic 1 int 21,
ICH
ac97: codec id 0x83847600 (SigmaTel STAC9700)
audio0 at auich0
ohci0 at pci0 dev 6 function 0 "Apple Intrepid USB" rev 0x00: apic 1 int 22,
version 1.0
piixpm0 at pci0 dev 7 function 0 "Intel 82371AB Power" rev 0x08: apic 1 int 23
iic0 at piixpm0
ehci0 at pci0 dev 11 function 0 "Intel 82801FB USB" rev 0x00: apic 1 int 19
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00
addr 1
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
usb1 at ohci0: USB revision 1.0
uhub1 at usb1 configuration 1 interface 0 "Apple OHCI root hub" rev 1.00/1.00
addr 1
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on wd0a (93ce6f2269537131.a) swap on wd0b dump on wd0b
arp_rtrequest: bad gateway value: em0
nd6_rtrequest: bad gateway value: em0
nd6_rtrequest: bad gateway value: em0
nd6_rtrequest: bad gateway value: em0
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.1: route contains no arp information
arpresolve: 10.42.42.1: route contains no arp information
[...]