Subject: [OSPF] Implementation of draft-ietf-ospf-dbex-opt-02.txt

From: Richard Ogier <[email-masked]>
Date: Wed, 02 Apr 2008 14:02:22 -0800

During the recent IESG review of this draft, it was mentioned
that there are no known implementations of this database
exchange optimization (other than the OSPF-MDR implementation
available from Boeing).  It is trivial to modify an existing
OSPF implementation to use this optimization, and I am including
a patch below for the Quagga 0.99.9 implementation of OSPFv3.
This patch was tested using the GTNetS simulator.

You can download the source code for Quagga 0.99.9 at
http://www.quagga.net/download/

To incorporate the optimization, put the "diff" code below in
a file called "patch_file" (you might have to correct any
wraparound), and apply the patch to the file

quagga-0.99.9/ospf6d/ospf6_message.c

I.e., go to the above directory and run

patch ospf6_message.c < patch_file

To activate the optimization, you must define DBEX_OPT.

Richard

558a559,572
 >
 > #ifdef DBEX_OPT  // From draft-ietf-ospf-dbex-opt
 >       // If his is newer or same as mine, then remove mine
 >       // from summary_list for neighbor
 >       struct ospf6_lsa *mine_summary;
 >       if (mine != NULL && ospf6_lsa_compare (his, mine) <= 0)
 >       {
 >         mine_summary = ospf6_lsdb_lookup (his->header->type, 
his->header->id,
 >                                   his->header->adv_router, 
on->summary_list);
 >         if (mine_summary)
 >       ospf6_lsdb_remove (mine_summary, on->summary_list);
 >       }
 > #endif // DBEX_OPT
 >
780a795,808
 >
 > #ifdef DBEX_OPT  // From draft-ietf-ospf-dbex-opt
 >       // If his is newer or same as mine, then remove mine
 >       // from summary_list for neighbor
 >       struct ospf6_lsa *mine_summary;
 >       if (mine != NULL && ospf6_lsa_compare (his, mine) <= 0)
 >       {
 >         mine_summary = ospf6_lsdb_lookup (his->header->type, 
his->header->id,
 >                                   his->header->adv_router, 
on->summary_list);
 >         if (mine_summary)
 >       ospf6_lsdb_remove (mine_summary, on->summary_list);
 >       }
 > #endif // DBEX_OPT
 >
_______________________________________________
OSPF mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/ospf

---

From: "Vishwas Manral" <[email-masked]>
Date: Wed, 2 Apr 2008 14:38:37 -0700

Hi Richard,

I think the draft is good and helpful.

Besides the changes already mentioned below, one more point that could
help is to actually send the LSA's in DB description packets in
different orders. If we probably run between two similar
implementations and bring up a new link between two routers (which are
already in connected in the same area - the optimization may not
help).

Thanks,
Vishwas

---

From: "Vishwas Manral" <[email-masked]>
Date: Wed, 2 Apr 2008 14:45:56 -0700

Hi Richard,

To contradict what I just said. I think just having the LSA's in any
order will still help. As we have a Master slave model for DD exchange
the same will not affect the order in which LSA's are sent out.

The total number of LSA's exchanged will still be the total number of LSA's.

Thanks,
Vishwas