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

Richard Ogier <ogier@earthlink.net> Wed, 02 April 2008 21:01 UTC

Return-Path: <ospf-bounces@ietf.org>
X-Original-To: ospf-archive@optimus.ietf.org
Delivered-To: ietfarch-ospf-archive@core3.amsl.com
Received: from core3.amsl.com (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 30D5C3A6F4E; Wed, 2 Apr 2008 14:01:28 -0700 (PDT)
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8E6F63A68B9 for <ospf@core3.amsl.com>; Wed, 2 Apr 2008 14:01:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k2fdh27T1TFr for <ospf@core3.amsl.com>; Wed, 2 Apr 2008 14:01:23 -0700 (PDT)
Received: from elasmtp-scoter.atl.sa.earthlink.net (elasmtp-scoter.atl.sa.earthlink.net [209.86.89.67]) by core3.amsl.com (Postfix) with ESMTP id DBF343A6F26 for <ospf@ietf.org>; Wed, 2 Apr 2008 14:00:17 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=IBeSrY0xaaZacQm8/wCMrbbWPChuA/FQdQPbFL7QyZDw46smCOx7wwAk61yUwumx; h=Received:Message-ID:Date:From:User-Agent:X-Accept-Language:MIME-Version:To:CC:Subject:Content-Type:Content-Transfer-Encoding:X-ELNK-Trace:X-Originating-IP;
Received: from [4.245.100.129] by elasmtp-scoter.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <ogier@earthlink.net>) id 1JhA48-0001sD-Fe; Wed, 02 Apr 2008 17:00:17 -0400
Message-ID: <47F4026E.2060503@earthlink.net>
Date: Wed, 02 Apr 2008 14:02:22 -0800
From: Richard Ogier <ogier@earthlink.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: ospf@ietf.org
X-ELNK-Trace: a073897a9455599e74bf435c0eb9d47887a5dba1e6b14d0a1afe1e5192ad9b8cf24a35bdfdfbba7a350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 4.245.100.129
Subject: [OSPF] Implementation of draft-ietf-ospf-dbex-opt-02.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: ospf-bounces@ietf.org
Errors-To: ospf-bounces@ietf.org

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