Remi Locherer <remi.loche...@relo.ch> writes:

> Hi,

Hi,

> ospf6d does not like beeing reloaded and exits.
>
> Below an example on -current running in VMM. I first noticed it
> on an OpenBSD 6.0 amd64 router on real hardware.

The issue has already been reported, it's not really new.  The code that
handles interfaces and addresses is different in ospfd and ospf6d.
I recently tried to sync that code but there were a few differences that
made it more difficult than expected.

> Remi
>
>
>
> r1# ifconfig -A
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
>         index 3 priority 0 llprio 3
>         groups: lo
>         inet6 ::1 prefixlen 128
>         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
>         inet 127.0.0.1 netmask 0xff000000
> vio0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 
> 1500
>         lladdr fe:e1:bb:d1:10:e1
>         index 1 priority 0 llprio 3
>         groups: egress
>         media: Ethernet autoselect
>         status: active
>         inet 192.168.250.101 netmask 0xffffff00 broadcast 192.168.250.255
>         inet6 fe80::fce1:bbff:fed1:10e1%vio0 prefixlen 64 scopeid 0x1
>         inet6 2001:db8::101 prefixlen 64
> enc0: flags=0<>
>         index 2 priority 0 llprio 3
>         groups: enc
>         status: active
> vether0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         lladdr fe:e1:ba:d0:08:cf
>         index 5 priority 0 llprio 3
>         groups: vether
>         media: Ethernet autoselect
>         status: active
>         inet6 fe80::fce1:baff:fed0:8cf%vether0 prefixlen 64 scopeid 0x5
>         inet6 2001:db8:a::101 prefixlen 64
> r1#
> r1# sysctl net.inet6.ip6.forwarding
> net.inet6.ip6.forwarding=1
> r1#
> r1# cat /etc/ospf6d.conf
> router-id 192.168.250.101
>
> area 0.0.0.0 {
>         interface vio0
>         interface vether0 { passive }
> }
> r1#
> r1#
> r1# ospf6d -dv
> if_newaddr: ifindex 3, addr fe80::1/64, dest ::
> if_newaddr: ifindex 1, addr fe80::fce1:bbff:fed1:10e1/64
> if_newaddr: ifindex 1, addr 2001:db8::101/64
> if_newaddr: ifindex 5, addr fe80::fce1:baff:fed0:8cf/64
> if_newaddr: ifindex 5, addr 2001:db8:a::101/64
> startup
> if_set_ipv6_checksum setting cksum offset to 12
> orig_rtr_lsa: area 0.0.0.0
> if_fsm: event UP resulted in action START and changing state for interface 
> vether0 from DOWN to DOWN
> if_join_group: interface vio0 addr ff02::5
> orig_rtr_lsa: area 0.0.0.0
> orig_link_lsa: interface vio0
> if_fsm: event UP resulted in action START and changing state for interface 
> vio0 from DOWN to WAIT
> orig_intra_lsa_net: area 0.0.0.0, interface vether0
> orig_intra_lsa_net: area 0.0.0.0, interface vio0
> orig_intra_lsa_rtr: area 0.0.0.0, interface vether0: 2001:db8:a::101/64
> spf_calc: area 0.0.0.0 calculated
> *(192.168.250.101, 0x2001, 0.0.0.0) cost 0 has nexthops []
> nbr_fsm: event HELLO_RECEIVED resulted in action START_INACTIVITY_TIMER and 
> changing state for neighbor ID 192.168.250.102 from DOWN to INIT
> nbr_fsm: event 2_WAY_RECEIVED resulted in action EVAL and changing state for 
> neighbor ID 192.168.250.102 from INIT to 2-WAY
> if_act_elect: interface vio0 old dr none new dr 192.168.250.102, old bdr none 
> new bdr 192.168.250.101
> if_join_group: interface vio0 addr ff02::6
> nbr_fsm: event ADJ_OK resulted in action EVAL and changing state for neighbor 
> ID 192.168.250.102 from 2-WAY to EXSTA
> orig_rtr_lsa: area 0.0.0.0
> orig_rtr_lsa: area 0.0.0.0
> orig_link_lsa: interface vio0
> orig_link_lsa: link local address fe80::fce1:bbff:fed1:10e1
> orig_link_lsa: prefix 2001:db8::
> if_fsm: event BACKUPSEEN resulted in action ELECT and changing state for 
> interface vio0 from WAIT to BCKUP
> if_act_elect: interface vio0 old dr 192.168.250.102 new dr 192.168.250.102, 
> old bdr 192.168.250.101 new bdr 192.168.250.101
> if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for 
> interface vio0 from BCKUP to BCKUP
> orig_intra_lsa_net: area 0.0.0.0, interface vether0
> orig_intra_lsa_net: area 0.0.0.0, interface vio0
> orig_intra_lsa_rtr: area 0.0.0.0, interface vether0: 2001:db8:a::101/64
> orig_intra_lsa_net: area 0.0.0.0, interface vether0
> orig_intra_lsa_net: area 0.0.0.0, interface vio0
> orig_intra_lsa_rtr: area 0.0.0.0, interface vether0: 2001:db8:a::101/64
> orig_intra_lsa_rtr: area 0.0.0.0, interface vio0: 2001:db8::101/64
> nbr_fsm: event NEGOTIATION_DONE resulted in action SNAPSHOT and changing 
> state for neighbor ID 192.168.250.102 from EXSTA to SNAP
> nbr_fsm: event SNAPSHOT_DONE resulted in action SNAPSHOT_DONE and changing 
> state for neighbor ID 192.168.250.102 from SNAP to EXCHG
> nbr_fsm: event EXCHANGE_DONE resulted in action EXCHANGE_DONE and changing 
> state for neighbor ID 192.168.250.102 from EXCHG to LOAD
> spf_calc: area 0.0.0.0 calculated
> *(192.168.250.101, 0x2001, 0.0.0.0) cost 0 has nexthops []
>  (192.168.250.102, 0x2001, 0.0.0.0) cost 16777215 has nexthops []
> ospf6d: rt_calc: Intra-Area-Prefix LSA (192.168.250.102, 1) references 
> non-existent Network LSA (192.168.250.102, 1)
> orig_intra_lsa_net: area 0.0.0.0, interface vether0
> orig_intra_lsa_net: area 0.0.0.0, interface vio0
> orig_intra_lsa_rtr: area 0.0.0.0, interface vether0: 2001:db8:a::101/64
> orig_intra_lsa_rtr: area 0.0.0.0, interface vio0: 2001:db8::101/64
> orig_rtr_lsa: area 0.0.0.0
> orig_rtr_lsa: transit net, interface vio0
> nbr_fsm: event LOADING_DONE resulted in action NOTHING and changing state for 
> neighbor ID 192.168.250.102 from LOAD to FULL
> orig_intra_lsa_net: area 0.0.0.0, interface vether0
> orig_intra_lsa_net: area 0.0.0.0, interface vio0
> orig_intra_lsa_rtr: area 0.0.0.0, interface vether0: 2001:db8:a::101/64
> spf_calc: area 0.0.0.0 calculated
> *(192.168.250.101, 0x2001, 0.0.0.0) cost 0 has nexthops []
>  (192.168.250.102, 0x2001, 0.0.0.0) cost 10 has nexthops 
> [fe80::fce1:bbff:fed1:4cfb%vio0]
>  (192.168.250.102, 0x2002, 0.0.0.1) cost 10 has nexthops [::%vio0]
> if_fsm: event WAITTIMER resulted in action NOTHING and changing state for 
> interface vio0 from BCKUP to BCKUP
>
>
> [ on another console: ospf6ctl reload ]
>
>
> if_del: interface vether0
> if_del: interface vio0
> configuration reloaded
> merge_interfaces: proc 2 area 0.0.0.0 removing interface vether0
> if_del: interface vether0
> merge_interfaces: proc 2 area 0.0.0.0 removing interface vio0
> if_del: interface vio0
> merge_interfaces: proc 1 area 0.0.0.0 removing interface vether0
> orig_rtr_lsa: area 0.0.0.0
> orig_rtr_lsa: transit net, interface vio0
> if_fsm: event DOWN resulted in action RESET and changing state for interface 
> vether0 from DOWN to DOWN
> if_del: interface vether0
> merge_interfaces: proc 1 area 0.0.0.0 removing interface vio0
> if_leave_group: interface vio0 addr ff02::5
> if_leave_group: interface vio0 addr ff02::6
> orig_rtr_lsa: area 0.0.0.0
> if_act_elect: interface vio0 old dr 192.168.250.102 new dr 192.168.250.101, 
> old bdr 192.168.250.101 new bdr none
> orig_rtr_lsa: area 0.0.0.0
> orig_rtr_lsa: area 0.0.0.0
> orig_link_lsa: interface vio0
> orig_link_lsa: link local address fe80::fce1:bbff:fed1:10e1
> orig_link_lsa: prefix 2001:db8::
> if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for 
> interface vio0 from BCKUP to DR
> nbr_fsm: event KILL_NBR resulted in action DELETE and changing state for 
> neighbor ID 192.168.250.102 from FULL to DOWN
> orig_rtr_lsa: area 0.0.0.0
> orig_link_lsa: interface vio0
> if_fsm: event DOWN resulted in action RESET and changing state for interface 
> vio0 from BCKUP to DOWN
> if_del: interface vio0
> fatal in rde: interface lost area
> kernel routing table decoupled
> waiting for children to terminate
> ospf engine exiting
> terminating
> r1#
>
>
>
> OpenBSD 6.1-beta (GENERIC.MP) #217: Wed Mar  8 11:31:33 MST 2017
>     dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 251658240 (240MB)
> avail mem = 239484928 (228MB)
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0
> acpi at bios0 not configured
> cpu0 at mainbus0: (uniprocessor)
> cpu0: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz, 2199.29 MHz
> cpu0: 
> FPU,VME,DE,PSE,MSR,PAE,MCE,CX8,SEP,PGE,MCA,CMOV,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,RDSEED,ADX,SMAP
> cpu0: smt 0, core 0, package 0
> pvbus0 at mainbus0: OpenBSD
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "OpenBSD VMM PCI Host Bridge" rev 0x00
> virtio0 at pci0 dev 1 function 0 "Qumranet Virtio RNG" rev 0x00
> viornd0 at virtio0
> virtio0: irq 3
> virtio1 at pci0 dev 2 function 0 "Qumranet Virtio Storage" rev 0x00
> vioblk0 at virtio1
> scsibus1 at vioblk0: 2 targets
> sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
> sd0: 512MB, 512 bytes/sector, 1048576 sectors
> virtio1: irq 5
> virtio2 at pci0 dev 3 function 0 "Qumranet Virtio Network" rev 0x00
> vio0 at virtio2: address fe:e1:bb:d1:10:e1
> virtio2: irq 7
> virtio3 at pci0 dev 4 function 0 "OpenBSD VMM Control Interface" rev 0x00
> vmmci0 at virtio3
> virtio3: irq 9
> isa0 at mainbus0
> isadma0 at isa0
> com0 at isa0 port 0x3f8/8 irq 4: ns8250, no fifo
> com0: console
> vmm at mainbus0 not configured
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> root on sd0a (f601f5d1ff11daae.a) swap on sd0b dump on sd0b
>

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to