Hi,
See attached two fixes for virtual links:
- SPF backlink: ospf_lsa_has_link() modified to return index of the
backlink, or -1 if none. ospf_spf_next() modified to save this backlink
in the vertex. ospf_vl_set_params() modified to use the backlink to
determine the peer address to use for the virtual link
(UNH3.15f/g)
- Neighbour and read cleanup: Cleanup ospf_associate_packet_vl and its
caller a wee bit, so that aforementioned function returns either a
virtual link oi, or NULL. Caller, ospf_read, is responsible for checks.
Index ospf_interface neighbour table by router-id for virtual-link
ospf_interfaces, not by peer_addr (which breaks for asymmetric vlinks)
and adjust ospf_packet.c, add a wrapper for nbr lookups to deal with
this and modify ospf_packet.c to suit.
NB: tested, but not with Quagga CVS.
--paulj
See attached two fixes for virtual links:
- SPF backlink: ospf_lsa_has_link() modified to return index of the
backlink, or -1 if none. ospf_spf_next() modified to save this backlink
in the vertex. ospf_vl_set_params() modified to use the backlink to
determine the peer address to use for the virtual link
(UNH3.15f/g)
- Neighbour and read cleanup: Cleanup ospf_associate_packet_vl and its
caller a wee bit, so that aforementioned function returns either a
virtual link oi, or NULL. Caller, ospf_read, is responsible for checks.
Index ospf_interface neighbour table by router-id for virtual-link
ospf_interfaces, not by peer_addr (which breaks for asymmetric vlinks)
and adjust ospf_packet.c, add a wrapper for nbr lookups to deal with
this and modify ospf_packet.c to suit.
NB: tested, but not with Quagga CVS.
--paulj