summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_neighbor.h
diff options
context:
space:
mode:
authorDinesh Dutt <ddutt@cumulusnetworks.com>2013-08-24 09:55:07 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2013-11-08 03:15:42 +0100
commiteb82e9ee81792f86548d4937486b5dcbbd411a98 (patch)
tree9c1f216017923cc40af71755506dc35c5c2c0fbc /ospf6d/ospf6_neighbor.h
parentospf6d: add p2p interface support (diff)
downloadfrr-eb82e9ee81792f86548d4937486b5dcbbd411a98.tar.xz
frr-eb82e9ee81792f86548d4937486b5dcbbd411a98.zip
ospf6d: fix neighbor state machine (faster lsdb sync, RFC compliance)
The OSPFv3 code doesn't do the following things right as part of an adjacency bringup: - Transmit DbDesc frames appropriately to ensure faster state transition to Loading state - Transmit LsReq frames when switching to exchange state and on receipt of an LS update in Loading state - Requesting LSAs multiple times in LsReq. It currently uses retransmit timer expiry to send the LsReq and DbDesc frames which significantly slows down large lsdb syncs. Signed-off-by: Dinesh G Dutt <ddutt at cumulusnetworks.com> Reviewed-by: Scott Feldman <sfeldma at cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_neighbor.h')
-rw-r--r--ospf6d/ospf6_neighbor.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/ospf6d/ospf6_neighbor.h b/ospf6d/ospf6_neighbor.h
index 5f46c6f38..750e1b242 100644
--- a/ospf6d/ospf6_neighbor.h
+++ b/ospf6d/ospf6_neighbor.h
@@ -86,6 +86,8 @@ struct ospf6_neighbor
struct ospf6_lsdb *lsupdate_list;
struct ospf6_lsdb *lsack_list;
+ struct ospf6_lsa *last_ls_req;
+
/* Inactivity timer */
struct thread *inactivity_timer;
@@ -130,6 +132,7 @@ extern int seqnumber_mismatch (struct thread *);
extern int bad_lsreq (struct thread *);
extern int oneway_received (struct thread *);
extern int inactivity_timer (struct thread *);
+extern void ospf6_check_nbr_loading (struct ospf6_neighbor *);
extern void ospf6_neighbor_init (void);
extern int config_write_ospf6_debug_neighbor (struct vty *vty);