Sue,

> The protection id - identifies of preference, nexthop-id.  Preference ID 
> identifies the tuple.   You might have multiple tuples with a nexthop-id.

>

> Protection-id 1:  preference=10, nexthop-id=1

> Protection-id 2:  preference = 2, nexthop-id=1

> Protection-id 3:  preference=1, nexthop-id = 1

> Protection-id 4: preference =1, nexthop-id=2



Why would we have the first three tuples with the same nexthop-id?



Assuming that each tuple has a different nexthop-id. For nexthop-lb, 
nexthop-protection, and nexthop-replicate, the order of each tuple would not 
matter (ordered-by-system). Why bother using an additional 
protection/lb/replicate-id as the key?



Using a client-assigned ID as the protection/lb/replicate-id means a router 
will have to store it, and be able find the tuple given that ID. I'd rather 
using the nexthop-id for the purpose?



Jeffrey

From: Jeffrey (Zhaohui) Zhang
Sent: Wednesday, October 07, 2015 8:51 AM
To: 'Susan Hares' <[email protected]>; [email protected]
Subject: RE: [i2rs] RIB Info/Data model questions: nexthop-id

Hi Sue,

Before I posted the questions, I searched "nexthop-id" in the IM draft and did 
not find anything definition; then this morning I found the following:

   Nexthops can be identified by an identifier to create a level of
   indirection.  The identifier is set by the RIB manager and returned
   to the external entity on request.

Is the above "identifier" the same as "nexthop-id"? If yes, then it conflicts 
with your text below?

Jeffrey

From: Susan Hares [mailto:[email protected]]
Sent: Wednesday, October 07, 2015 8:01 AM
To: Jeffrey (Zhaohui) Zhang <[email protected]<mailto:[email protected]>>; 
[email protected]<mailto:[email protected]>
Subject: RE: [i2rs] RIB Info/Data model questions: nexthop-id


Jeffrey:



to start this discussion going, I would like to provide you with the answer 
that was given when the I2RS RIB Information Model was designed.



*        All I2RS RIB information is intended config (see 
ietf-chairs-netmod-opstate-reqs-01 or ietf-openconfig-netmod-opstat for the 
definition of intended config),

*        nexthop-id is assigned by the I2RS client, and inserted into the I2RS 
agent,

*        the I2RS agent installs the I2RS RIB ephemeral state, and provides 
back status (installed, not installed).



nexthop id  allows for all types of next hops (chains, inet-v4, inet-v6, 
mac-address, interface tunnels) to be indicated  with a single id that can be 
directly accessed.  This allows these different types of next-hop to be 
directly referenced with the nexthop-id.



As to protection,  Let's base our discussion on I2RS RIB IM p. 19 (see below)



The protection id - identifies of preference, nexthop-id.  Preference ID 
identifies the tuple.   You might have multiple tuples with a nexthop-id.



Protection-id 1:  preference=10, nexthop-id=1

Protection-id 2:  preference = 2, nexthop-id=1

Protection-id 3:  preference=1, nexthop-id = 1

Protection-id 4: preference =1, nexthop-id=2



I do not understand how the protection-id should be linked by nexthop.



Sue

======================

I2RS RIB IM p. 19 for your reference:

----------------------------


<nexthop> ::= <NEXTHOP_PROTECTION> <1> <interface-primary>
                                   <2> <interface-backup>)



Derived as follows:



<nexthop> ::= <nexthop-protection>

<nexthop> ::= <NEXTHOP_PROTECTION> (<NEXTHOP_PREFERENCE> <nexthop>

                      (<NEXTHOP_PREFERENCE> <nexthop>)...)

<nexthop> ::= <NEXTHOP_PROTECTION> (<NEXTHOP_PREFERENCE> <nexthop>

                      (<NEXTHOP_PREFERENCE> <nexthop>))

<nexthop> ::= <NEXTHOP_PROTECTION> ((<NEXTHOP_PREFERENCE> <nexthop-base>

                      (<NEXTHOP_PREFERENCE> <nexthop-base>))

<nexthop> ::= <NEXTHOP_PROTECTION> (<1> <interface-primary>

                      (<2> <interface-backup>))



Traffic can be load-balanced among multiple primary nexthops and a

single backup.  In such a case, the nexthop will look like:



   <nexthop> ::= <NEXTHOP_PROTECTION> (<1>

                 (<NEXTHOP_LOAD_BALANCE>

                  (<NEXTHOP_LB_WEIGHT> <nexthop-base>

                  (<NEXTHOP_LB_WEIGHT> <nexthop-base>) ...))

                   <2> <nexthop-base>)





-----Original Message-----
From: i2rs [mailto:[email protected]] On Behalf Of Jeffrey (Zhaohui) Zhang
Sent: Monday, October 05, 2015 9:59 AM
To: [email protected]<mailto:[email protected]>
Subject: [i2rs] RIB Info/Data model questions: nexthop-id



Hi,



Both the RIB info and data model mentions nexthop-id, but neither specifies who 
manages/assigns the ID. Can the specs point that out?



It seems that it could be both ways - the IDs could be allocated by routers 
(servers) or could be allocated by clients. Different ID spaces would be used 
depending on who allocates the IDs.



Related to the above, a specific question on the data model:



  grouping nexthop {

    leaf nexthop-id {

      mandatory true;

      type uint32;

    }

    choice nexthop-type {

       ...

       case nexthop-protection {

        list nexthop-protection-list {

            key "nexthop-protection-id";

            leaf nexthop-protection-id {

              mandatory true;

              type uint32;

            }

           leaf nexthop-preference {

             ...

           }

           leaf nexthop {

             mandatory true;

             type nexthop-ref;

           }

        }

      }



Here a nexthop-protection is a list. Being a list it requires a key and we 
defined this uint32 nexthop-protection-id, which I assume the controller needs 
to assign and both the controller and the router needs to remember. The list 
entry has a member "nexthop" which is a nexthop-ref, which is a nexthop-id:



  typedef nexthop-ref {

    type leafref {

      path  "/i2rs-rib:routing-instance/i2rs-rib:rib-list" +

            "/i2rs-rib:route-list/i2rs-rib:nexthop/i2rs-rib:nexthop-id";

    }

  }



So - why can't we use the nexthop-id itself as the key?



Thanks.



Jeffrey



_______________________________________________

i2rs mailing list

[email protected]<mailto:[email protected]>

https://www.ietf.org/mailman/listinfo/i2rs
_______________________________________________
i2rs mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/i2rs

Reply via email to