Re: [OSPF] draft-ietf-ospf-yang-03 questions and doubts

Alan Davey <> Tue, 12 April 2016 06:58 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9BF7F12E569; Mon, 11 Apr 2016 23:58:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id GhwGCVv0EcBC; Mon, 11 Apr 2016 23:58:02 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id D322612E5E4; Mon, 11 Apr 2016 23:57:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=PgjYED4Q3dc4Vb8y36FFzQ3HE/NOwMbdRBZN9insuQk=; b=IpP/uUBchmkZm8A8toTbl34ukZTEEHjJK1A+X6IsqqQTZBrqEiFYaXCdc71L2Ud4N94gYt+LjLF0djELDjVXidb4X2OxmPCDWPAILqy6CRTkDdl/t3YVLinRJ1Ns0QfONnp+j0zYEyuA95S+OMq63PYVBNLfCAKY7EgramtR/uQ=
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.1.447.15; Tue, 12 Apr 2016 06:57:56 +0000
Received: from ([]) by ([]) with mapi id 15.01.0447.028; Tue, 12 Apr 2016 06:57:56 +0000
From: Alan Davey <>
To: "Derek Man-Kit Yeung (myeung)" <>, "" <>
Thread-Topic: draft-ietf-ospf-yang-03 questions and doubts
Thread-Index: AdE3NLGjjtMGuql0QfiSt+s9ulh9zgoPjYmAAiVQNuADX5obgAcESYLg
Date: Tue, 12 Apr 2016 06:57:56 +0000
Message-ID: <>
References: <> <> <> <>
In-Reply-To: <>
Accept-Language: en-GB, en-US
Content-Language: en-US
authentication-results:; dkim=none (message not signed) header.d=none;; dmarc=none action=none;
x-originating-ip: []
x-ms-office365-filtering-correlation-id: 0e50fec5-8cb9-41ac-651d-08d3629fc6c7
x-microsoft-exchange-diagnostics: 1; BN3PR0201MB1057; 5:TzgzW4s1Dvz5FmKfGRr++6qkj2PpQguMYUAh4d4igvXosrC6we+/0xjEj8prnbXlR6tfu/oRJyPqqTz+Xezwae9u4CwhxnedpJ9T4rf/IEvap/lIc2bTR8CTWLOAPD9/1o13O0OefZ/1wfCbY4GAEQ==; 24:8Cz9Fo7Xvgul57yZO23+7hO/VVdDhAY1QQpTYkAUxEBmqlYiAY3ojmybzpJFoDITnTIEylO2T554ScFQGJNaynh9MQYiB1MvkXNQUVPlhqg=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0201MB1057;
x-microsoft-antispam-prvs: <>
x-exchange-antispam-report-test: UriScan:(95692535739014);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:BN3PR0201MB1057; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0201MB1057;
x-forefront-prvs: 0910AAF391
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(51444003)(43544003)(51914003)(377454003)(19625215002)(33656002)(2950100001)(2501003)(5008740100001)(586003)(92566002)(2906002)(3660700001)(5890100001)(10400500002)(50986999)(86362001)(74316001)(1220700001)(189998001)(2900100001)(19580395003)(345774005)(102836003)(3846002)(19580405001)(790700001)(164054004)(19300405004)(11100500001)(4326007)(87936001)(16236675004)(5001770100001)(6116002)(66066001)(9686002)(5004730100002)(230783001)(54356999)(5003600100002)(81166005)(76576001)(122556002)(76176999)(93886004)(3280700002)(99286002)(15975445007)(1096002)(77096005)(5002640100001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0201MB1057;; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN3PR0201MB10597DBA718D60998EA82E0FF9950BN3PR0201MB1059_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2016 06:57:56.1931 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 9d9e56eb-f613-4ddb-b27b-bfcdf14b2cdb
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0201MB1057
Archived-At: <>
Cc: OSPF WG List <>
Subject: Re: [OSPF] draft-ietf-ospf-yang-03 questions and doubts
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 12 Apr 2016 06:58:05 -0000

Hi Derek

Thanks for your email, apologies for the delay in getting back to you.  I have followed up on a couple of points from our email exchange.  Please let me know your thoughts on the following.

On the subject of separate containers for OSPFv2 and OSPFv3 interfaces, conditional statements add complexity.

My analogy here is writing program code.  In a similar situation, to support OSPFv2 and OSPFv3, I would have different top level functions for the two versions and then call common functions where possible.  This gives a straightforward top-level with no conditional statements; simpler to write and easier to read and understand.

Therefore, I think that a simpler definition would follow from having version-specific top level containers which then include common and version-specific common definitions.

In interface-common-operation, I think that the DR and BDR information is provided to show the DR or BDR for a link as identified by the protocol.  Therefore, for OSPFv3, this identification consists of the Router ID plus the interface ID.  Note the following.

-          On the use of interface ID, as per RFC 5340, this is used in OSPFv3 to uniquely identify (among its own interfaces) the DR's interface to the link.  (Recall that a router may have multiple interfaces to the link.)

-          Using the link-local IPv6 address may not be the most user-friendly way of identifying the link.  The link-local address is normally auto-generated by the system, not assigned by the user, and therefore the user is likely to have to search the system configuration to identify the link to which it is associated.

-          The leaf bdr-ip-addr still has "type inet:ipv4-address" in version 04 of the draft.

Alan Davey

From: Derek Man-Kit Yeung (myeung) []
Sent: 03 March 2016 21:55
To: Alan Davey <>;
Cc: OSPF WG List <>
Subject: Re: draft-ietf-ospf-yang-03 questions and doubts

Hi Alan,

Please see DY> below.

From: Alan Davey <<>>
Date: Thursday, February 18, 2016 at 3:28 AM
To: myeung <<>>, "<>" <<>>
Cc: OSPF WG List <<>>
Subject: RE: draft-ietf-ospf-yang-03 questions and doubts

Hi Derek

Thank you for your response, and apologies for the delay in getting back to you.  Have you considered distinct ospfv3-interface-operation and ospfv2-interface-operation?  Or even distinct "container ospfv2" and "container ospfv3"?

DY> No, we do not plan to have explicit ospfv2 and ospfv3 container. We used when statement or if-feature to take care of OSPFv2 vs OSPFv3 specific fields in general.

There are a number of differences between the Interface Data Structure defined in RFC2328 and in RFC5340.  In particular, the following.  Do you plan to add all of these differences to the interface-operation grouping?

-          DR and BDR identification.

o   As you wrote, section 9 of RFC2328 specifies that the Interface Data Structure includes the Router ID and IP address for the DR and BDR.

o   Section 4.1.2 of RFC5340 does not specify how to identify the DR and BDR, but given the OSPFv3 protocol, it seems reasonable that the router ID and interface ID would be stored.

DY> In OSPFv3, the DR/BDR is still identified by a router ID. The interface ID of the DR is used when generating LSA and by itself do not identify the DR/BDR.
DY> Given the DR/BDR router ID/ip address, one can locate the corresponding neighbor information and find the interface ID there.
DY> So we are not going the duplicate the interface ID of the DR in the interface container again.

-          Section 4.1.2 of RFC5340 specifies a number of objects that do not appear in the RFC2328 version of the Interface Data Structure, as follows.

o   Interface ID.

o   Instance ID.

DY> The two above will be added. It is missing now. To be clear. It is the interface ID of the local router, not the one of the DR,  for the interface.

o   List of LSAs with link-local scope.

DY> The model already have link-local LSA database.

o   List of IPv6 prefixes configured for the attached link.

DY> Understood that it is mentioned in the OSPFv3 RFC.
DY> However, looking at a few implementations there is no explicit display of such information with the interface related OSPF show command.
DY> The IPv6 prefixes (or IPv4 prefix in OSPFv2) advertised by the router could be found already either from the interface module (IPv4/IPv6 augment) or from the LSA database itself.
DY> Extracting it again in OSPF model interface operation data seems redundant.
DY> We don't think we need it in the base model, but vendors could augment it if they find it useful.

- Derek


From: Derek Man-Kit Yeung (myeung) []
Sent: 04 February 2016 19:39
To: Alan Davey <<>>;<>
Subject: Re: draft-ietf-ospf-yang-03 questions and doubts

Hi Alan,

Thanks for the comments.
As you have pointed out, there are OSPFv3 specific fields missing in the model now. For example, instance ID and interface ID. We will add them in the next update.

As for the DR, DR is conceptually one of the neighbor.
In OSPFv2, the DR's router ID and IP address are used in protocol operation.
While in OSPFv3, the DR's router ID and interface ID are used in protocol operation.
According to OSPFv2 and OSPFv3 RFC, the interface structure should keep both the DR's router ID and IP address.

We have the following in the current model.

  grouping interface-operation {
    leaf dr {
      type inet:ipv4-address;
      description "Designated Router (DR) IP address.";
  grouping neighbor-operation {
    leaf dr {
      type yang:dotted-quad;
        "Designated Router.";

To better match the RFC and accommodate both OSPFv2 and OSPFv3 in a cleaner way, we plan to make the following changes.

  grouping interface-operation {
    leaf dr-router-id {
      type yang:dotted-quad;
        "Designated Router (DR) router ID.";
    leaf dr-ip-address {
      type inet:ip-address;
      description "Designated Router (DR) IP address.";
  grouping neighbor-operation {
    leaf dr-router-id {
      type yang:dotted-quad;
        "Neighbor's Designated Router (DR) router ID.";
    leaf dr-ip-address {
      type inet:ip-address;
      description "Neighbor's Designated Router (DR) IP address.";

If one need the DR's interface ID in the OSPFv3 case, it could be found by locating the neighbor entry for the DR and get the interface ID (To be added) field there.

Comments welcome.

- Derek

From: Alan Davey <<>>
Date: Tuesday, December 15, 2015 8:23 AM
To: "<>" <<>>
Cc: "<>" <<>>
Subject: draft-ietf-ospf-yang-03 questions and doubts


I have a doubt about draft-ietf-ospf-yang-03.  Please let me know your thoughts on the following.

The text is OSPFv2-specific in places.  I think that it would be better to define separate top-level groupings and containers for OSPFv2 and OSPFv3 and define common groupings and containers, where possible, that are used by both.

For example, grouping interface-operation contains the following, which is incorrect for OSPFv3.

-          leaf dr with type ipv4-address

-          leaf bdr with type ipv4-address.

I think that it would be better to define something along the following lines.

-          ospfv3-interface-operation {

o   uses interface-config

o   uses ospf-common-interface-operation

o   leaf dr {

?  type if:interface-ref

?  description:

*                   "The remote interface ID used by the Designated Router on

*                   this link.  This is the interface index of the interface local to the DR.";

o   etc

-          ospfv2-interface-operation {

o   uses interface-config

o   uses ospf-common-interface-operation

o   leaf dr {

?           type inet:ipv4-address;

?           description "Designated Router (DR) IP address.";

o   etc.

Alan Davey