[i2rs] Problem using rib-data-model RPC with rib-info-model Information (draft-ietf-i2rs-rib-data-model-05 + draft-ietf-i2rs-rib-info-model-08)

Edwin Cordeiro <edwinsc@gmail.com> Wed, 22 June 2016 07:44 UTC

Return-Path: <edwinsc@gmail.com>
X-Original-To: i2rs@ietfa.amsl.com
Delivered-To: i2rs@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7DE5E12B054 for <i2rs@ietfa.amsl.com>; Wed, 22 Jun 2016 00:44:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YibYLFrpVv_V for <i2rs@ietfa.amsl.com>; Wed, 22 Jun 2016 00:44:16 -0700 (PDT)
Received: from mail-lb0-x22d.google.com (mail-lb0-x22d.google.com [IPv6:2a00:1450:4010:c04::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1EE51128E19 for <i2rs@ietf.org>; Wed, 22 Jun 2016 00:44:16 -0700 (PDT)
Received: by mail-lb0-x22d.google.com with SMTP id oe3so17215129lbb.1 for <i2rs@ietf.org>; Wed, 22 Jun 2016 00:44:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=5H5JH2KH3Qy5OlENvYWG/dDZmyC+M3TifchQ/h3CSqo=; b=fUB8TRI0lFSoI9C/Fi0B/9+BuSyf6fFMdr7yDopmkZSBjy062ltolsaJI0x3+J+pG3 tY9gMcS4yNQuvcltTXXiNKvU3oz2bMqKMoegBUX2ilhqnscmg0V9deopQc6iPoQCouHi w+WAM3fDaQ/45xJbRXmHu2Q4nR8t7wzgJHD31CqH76ReHqOJ9F9NhCBbuUvQN9Va0MKk Wx0miEuU7gJLv1undXVJKgwT227nH5CA2UmpcKrNOD4PaUmkYe5JdtHVI/vZj8iJn0MD 4imUEJpV8kEZ2/Yq1E3H8hMxyG3LTV7crjLFfoZHqXMQ3ofO8jVdeVgF+Kt7Mx5oFeC8 NxWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5H5JH2KH3Qy5OlENvYWG/dDZmyC+M3TifchQ/h3CSqo=; b=kKavB4XbcSvaIzVndyHfgsVdWk4RhUatNdgWeaioQk1i3GckQ4QE831Zt4hJQrzmS4 Hm6LMbP2Z13zTzBWK0/Y9Gk3XIZ2LJwesIUiFtrRogf94gye439Z1bRu7ua37Rs3Qvgb nHBSofS+c6hoNjZHOYxhfwCGDRgmWQOvWupSLdxfrs9yeALrE2iIV02oQQmH2mrQY0Jo AaYd6wMH3h42cMPQKT9oUbMXnSHKFsACIq22iZ4DhNWFNS86gSu808NlIKH0p+SGGMdR xkOZRiEG8oP+WkFWh2GCKEksEUgovIWnlgkFgUbTSOg+wWekJAmWY7BT8xPaizGcn95u K3wQ==
X-Gm-Message-State: ALyK8tKDNuytBN4283DUtLnwG+NWf+Se/QbDd+uOv4OMRHMZlDtQSAyNqGQ/0/uL7zU6f4eP+gr5dK4Jcz1TGw==
X-Received: by 10.194.134.230 with SMTP id pn6mr23299783wjb.165.1466581453820; Wed, 22 Jun 2016 00:44:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.113.74 with HTTP; Wed, 22 Jun 2016 00:43:44 -0700 (PDT)
From: Edwin Cordeiro <edwinsc@gmail.com>
Date: Wed, 22 Jun 2016 09:43:44 +0200
Message-ID: <CAERpkxAbLVf5OkGPOkixGh9xi3qMutqp1puJzTbZzvn+VhOhqg@mail.gmail.com>
To: i2rs <i2rs@ietf.org>
Content-Type: multipart/alternative; boundary="089e01175e8196d7a90535d91a8c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2rs/eq65jFNjTowoF8g0x-i37JCpRcE>
Subject: [i2rs] Problem using rib-data-model RPC with rib-info-model Information (draft-ietf-i2rs-rib-data-model-05 + draft-ietf-i2rs-rib-info-model-08)
X-BeenThere: i2rs@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Interface to The Internet Routing System \(IRS\)" <i2rs.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2rs>, <mailto:i2rs-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2rs/>
List-Post: <mailto:i2rs@ietf.org>
List-Help: <mailto:i2rs-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2rs>, <mailto:i2rs-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 22 Jun 2016 07:44:18 -0000

Hello all,

When trying to implement I2RS we are faced the following problem:

In draft-ietf-i2rs-rib-data-model-05#section-2.5 the RPC offer the
following Nexthop operations:
      +---x nh-add
      |  +---w input
      |  |  +---w rib-name              string
      |  |  +---w nexthop-id?           uint32
      |  |  +---w sharing-flag?         boolean
      |  |  +---w (nexthop-type)?
      |  |     ...
      |  +--ro output
      |     +--ro result        uint32
      |     +--ro reason?       string
      |     +--ro nexthop-id?   uint32
      +---x nh-delete
         +---w input
         |  +---w rib-name              string
         |  +---w nexthop-id?           uint32
         |  +---w sharing-flag?         boolean
         |  +---w (nexthop-type)?
         |     ...
         +--ro output
            +--ro result uint32
            +--ro reason? string

In these operations the Nexthop is directly connected to a RIB, but
in draft-ietf-i2rs-rib-info-model-08#section-2: RIB(s) contains Route(s)
and Route(s) contains Nexthop(s):

            routing-instance
            |             |
            |             |
      0..N  |             | 1..N
            |             |
        interface(s)     RIB(s)
                          |
                          |
                          | 0..N
                          |
                        route(s)
                        | | |
              +---------+ | +----------+
              |           |            |
         0..N |           |            |
route-attribute         match         nexthop
                          |
                         ...

Our questions are:
- How can we add a Nexthop without informing the parent Route?
- Looking at the RIB grammar (draft-ietf-i2rs-rib-info-model-08#section-6)
the Nexthop is also attached to a Route. Shouldn't Nexthop be part of RIB?
Maybe something like:

  <rib> ::= <RIB_NAME> <rib-family>
                      [<route> ... ]
                      [<nexthop> ...]
                      [ENABLE_IP_RPF_CHECK]

            routing-instance
            |      |
            |      |
      0..N  |      | 1..N
            |      |
    interface(s)  RIB(s)
                   |  | 0..N
                   |  +--------------+
              0..N |                 |
                   |                 |
                 route(s) ------> nexthop(s)
                 | |       1..N
       +---------+ |
       |           |
  0..N |           |
route-attribute  match
                   |
                  ...

If we misunderstood the model, could someone please explain why our
understanding is incorrect?

Best Regards,

Edwin Cordeiro