Хорошо, а так?
http://ftp.spbu.ru/rfc/rfc4813.txt
Согласен, rfc это стало совсем недавно и только через 7 лет (практически не изменившись с первоначального драфта), однако реализация ospf у вас изначальна была неверная, потому что согласно RFC2328
Цитата:
The OSPF protocol defines several optional capabilities. A
router indicates the optional capabilities that it supports in
its OSPF Hello packets, Database Description packets and in its
LSAs. This enables routers supporting a mix of optional
capabilities to coexist in a single Autonomous System.
Some capabilities must be supported by all routers attached to a
specific area. In this case, a router will not accept a
neighbor's Hello Packet unless there is a match in reported
capabilities (i.e., a capability mismatch prevents a neighbor
relationship from forming). An example of this is the
ExternalRoutingCapability (see below).
Other capabilities can be negotiated during the Database
Exchange process. This is accomplished by specifying the
optional capabilities in Database Description packets. A
capability mismatch with a neighbor in this case will result in
only a subset of the link state database being exchanged between
the two neighbors.
то есть процесс ospf не имел права, начав обмен базами, игнорировать дальнейшую процедуру. Либо игнорирование соседа на этапе обмена Hello (что всё равно, по идее, неверно), либо принимать пакеты и строить на их основе хоть что-то.