[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