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)

From: Edwin Cordeiro <[email-masked]>
Date: Wed, 22 Jun 2016 09:43:44 +0200

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

---

From: Mach Chen <[email-masked]>
Date: Fri, 24 Jun 2016 03:08:01 +0000

Hi Edwin,

Thanks for your great question!

I think this is a bug of the current model, there should be a list in a rib to maintain the nexthops of the rib.

Regarding your question: “How can we add a Nexthop without informing the parent Route?” Yes, a nexthop can be created without informing the parent routes. In the current design, the nexthop is decoupled from the routes. A nexthop can be shared by multiple routes or is dedicated to a single route.

Best regards,
Mach

From: i2rs [mailto:[email-masked]] On Behalf Of Edwin Cordeiro
Sent: Wednesday, June 22, 2016 3:44 PM
To: i2rs
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)

Hello all,

In draft-ietf-i2rs-rib-data-model-05#section-2.5 the RPC offer the following Nexthop operations:
      +---x nh-add
      |  +---w input

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)
                        | | |

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:

            routing-instance
            |      |
            |      |
      0..N  |      | 1..N
            |      |
    interface(s)  RIB(s)
                   |  | 0..N
                   |  +--------------+
              0..N |                 |
                   |                 |

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

Best Regards,

Edwin Cordeiro

---

From: Edwin Cordeiro <[email-masked]>
Date: Sat, 25 Jun 2016 09:24:39 +0200

Hi Mach,

Thanks for the explanation. We thought that nexthops should be handled
separated to routes, but that wasn't reflected in the draft.

Best Regards,

Edwin Cordeiro

On Fri, Jun 24, 2016 at 5:08 AM, Mach Chen <[email-masked]> wrote:

> Regarding your question: “How can we add a Nexthop without informing the
> parent Route?” Yes, a nexthop can be created without informing the parent
> routes. In the current design, the nexthop is decoupled from the routes. A
> nexthop can be shared by multiple routes or is dedicated to a single route.
>
>
>
> Best regards,
>
> Mach
>
>
>
> *From:* i2rs [mailto:[email-masked]] *On Behalf Of *Edwin Cordeiro
> *Sent:* Wednesday, June 22, 2016 3:44 PM
> *To:* i2rs
> *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)
>
>
>
> Hello all,
>
>
>

---

From: Mach Chen <[email-masked]>
Date: Mon, 27 Jun 2016 02:22:02 +0000

Hi Edwin,

Could you elaborate more about the mean of “nexthops should be handled separated to routes” ?

In my understanding, the nexthop-add/delete RPC s are designed to operate the nexthop separately.  Of cause, a nexthop list node should be added to the rib, hence to maintain the added nexthops.

Best regards,
Mach

From: Edwin Cordeiro [mailto:[email-masked]]
Sent: Saturday, June 25, 2016 3:25 PM
To: Mach Chen
Cc: i2rs
Subject: Re: [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)

Hi Mach,

Thanks for the explanation. We thought that nexthops should be handled separated to routes, but that wasn't reflected in the draft.

Best Regards,

Edwin Cordeiro

On Fri, Jun 24, 2016 at 5:08 AM, Mach Chen <[email-masked]<mailto:[email-masked]>> wrote:
Hi Edwin,

Best regards,
Mach

From: i2rs [mailto:[email-masked]<mailto:[email-masked]>] On Behalf Of Edwin Cordeiro
Sent: Wednesday, June 22, 2016 3:44 PM
To: i2rs
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)

Hello all,

            routing-instance
            |             |
            |             |
      0..N  |             | 1..N
            |             |
        interface(s)     RIB(s)
                          |
                          |
                          | 0..N
                          |
                        route(s)
                        | | |

Our questions are:

            routing-instance
            |      |
            |      |
      0..N  |      | 1..N
            |      |
    interface(s)  RIB(s)
                   |  | 0..N
                   |  +--------------+
              0..N |                 |
                   |                 |

Best Regards,

Edwin Cordeiro

---

From: Edwin Cordeiro <[email-masked]>
Date: Mon, 27 Jun 2016 10:02:12 +0200

Hi Mach,

I mean the RIB should have a group of a nexthops and a group of routes and
while the draft stated nexthop as part of the route.

I my understanding each route would indicate which of the existing nexthops
it uses, allowing a nexthop to be shared by multiple routes without having
multiple copies of the same next hop.

I don't think my statement contradicts your understand.

Best Regards,

Edwin Cordeiro

On Mon, Jun 27, 2016 at 4:22 AM, Mach Chen <[email-masked]> wrote:

> In my understanding, the nexthop-add/delete RPC s are designed to operate
> the nexthop separately.  Of cause, a nexthop list node should be added to
> the rib, hence to maintain the added nexthops.
>
>
>
> Best regards,
>
> Mach
>
>
>
> *From:* Edwin Cordeiro [mailto:[email-masked]]
> *Sent:* Saturday, June 25, 2016 3:25 PM
> *To:* Mach Chen
> *Cc:* i2rs
> *Subject:* Re: [i2rs] Problem using rib-data-model RPC with
> rib-info-model Information (draft-ietf-i2rs-rib-data-model-05 +

---

From: Mach Chen <[email-masked]>
Date: Mon, 27 Jun 2016 08:38:19 +0000

Hi Edwin,

OK, thanks for the clarification!

We will add a nexthop list under the rib node in the next revision.  Then with the nh-add/delete , route-add/delete, and route-update RPCs, an implementation can flexibly operate the route and nexthop.

Hope this addresses your concern.

Best regards,
Mach

From: Edwin Cordeiro [mailto:[email-masked]]
Sent: Monday, June 27, 2016 4:02 PM
To: Mach Chen
Cc: i2rs
Subject: Re: [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)

Hi Mach,

I mean the RIB should have a group of a nexthops and a group of routes and while the draft stated nexthop as part of the route.

I my understanding each route would indicate which of the existing nexthops it uses, allowing a nexthop to be shared by multiple routes without having multiple copies of the same next hop.

Best Regards,

Edwin Cordeiro

On Mon, Jun 27, 2016 at 4:22 AM, Mach Chen <[email-masked]<mailto:[email-masked]>> wrote:
Hi Edwin,

Best regards,
Mach

From: Edwin Cordeiro [mailto:[email-masked]<mailto:[email-masked]>]
Sent: Saturday, June 25, 2016 3:25 PM
To: Mach Chen
Cc: i2rs
Subject: Re: [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)

Hi Mach,

Best Regards,

Edwin Cordeiro

Best regards,
Mach

Hello all,

            routing-instance
            |             |
            |             |
      0..N  |             | 1..N
            |             |
        interface(s)     RIB(s)
                          |
                          |
                          | 0..N
                          |
                        route(s)
                        | | |

Our questions are:

            routing-instance
            |      |
            |      |
      0..N  |      | 1..N
            |      |
    interface(s)  RIB(s)
                   |  | 0..N
                   |  +--------------+
              0..N |                 |
                   |                 |

Best Regards,

Edwin Cordeiro