[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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
OSPF at ietf.org
https://www.ietf.org/mailman/listinfo/ospf