I2RS WG and draft authors,

Below is some feedback on the text of draft-ietf-i2rs-rib-data-model-03.

Thanks,
Chris

------------------------
It would be good to provide a way to get the yang model text file without ietf 
draft headers interspersed throughout, so that people can run it through pyang 
more easily.
One way to do this is to publish the xml of the draft via the draft submission 
tool.
Another common way is github, but  I couldn't find it there.

------------------------
The description of the nexthop-preference-def (see below) is confusing.  First, 
I assume there is an error in the text since the example of downloading 
primary/standby/tertiary nexthops to the FIB should presumably select three 
nexthops, but the text refers to selecting the two resolved nexthops with the 
highest preference .  More fundamentally, this example seems to  imply that 
only two next-hops will get downloaded to the FIB, whereas  one could imagine 
an implementation that uses three, four, five or more nexthops of different 
preferences.  If hardware supports more than two next-hop preferences being 
installed in the FIB, then what is the mechanism for the client to learn how 
many preference values are supported?  This should all be made clearer in the 
text.

     typedef nexthop-preference-def {
       type uint8 {
         range "1..99";
       }
       description
         "Nexthop-preference is used for protection schemes.
          It is an integer value between 1 and 99.  A lower
          value indicates higher preference.  To download a
          primary/standby/tertiary group to the FIB, the
          nexthops that are resolved and have two highest
          preferences are selected.";
     }

------------------------
If I understand the yang syntax and semantics correctly, the "nh-add" RPC 
creates a nexthop in a given RIB that is not associated with any match 
condition on a route.  I assume the intention is to create a nexthop with a 
nexthop-id but not associated with any prefix that can then be referenced by 
multiple other route match conditions.   This seems like a reasonable thing to 
do.  However, I can see two possible issues with this.

The first issue is that the structure of the data model doesn't seem to not 
allow this.   "grouping route" uses "grouping route-prefix"  next to "container 
next-hop".  It appears to me that as currently written "container match" in  
"grouping route-prefix" is a mandatory node based on section 3.1 of RFC6020 , 
since the "mandatory" statements below choice/cases cascade up to the 
container.    So the current form of the "nh-add" RPC may not be consistent 
with the data model as currently defined.

The second issue is that creating a next-hop without an associated match 
appears to differ from the RIB grammar defined in section 6 of 
draft-ietf-i2rs-rib-info-model-08. In the RIB info model, it seems that the 
only way for a <nexthop> to appear is together with a <match>.

  <route> ::= <match> <nexthop>
              [<route-attributes>]
              [<route-vendor-attributes>]

It would be good to address these inconsistencies in some way.

------------------------
In the definition of nh-add, "rpc nh-add { input { "  uses "grouping next-hop"  
which has the leaf nexthop-id as a mandatory element.  Based on section 7.13.2 
of RFC 6020, it seems that the nexthop-id would need to be present in the RPC 
invocation defined by "rpc nh-add".  This seems inconsistent with the 
description of nh-add in section 2.5 of this document where no nexthop-id is 
supplied in the input, and instead the network element allocates a nexthop-id 
and returns it in the output of the rpc.

It would be good to address this inconsistency.

------------------------
Treating tunnel-decap as a type of next-hop doesn't make sense to me. I assume 
the desire to include tunnel-decap as well as tunnel-encap is to have a usable 
stand-alone data model module which to deal with some use cases without having 
to rely on another module that defines tunnel-decap.  However, the result 
doesn't make sense.  I think the most common scenario involving routers would 
be to install a route on router A for prefix P whose nexthop is a tunnel-encap 
whose destination is router B.   One router B one would need to install a 
corresponding tunnel-decap whose source is router A.  The most common scenario 
is then that router B does a normal route lookup on the decapsulated packet 
independent of the interface it entered on.  I don't see how this most common 
use case would be handled with the tunnel-decap next-hop in this document.

Section 7.2.5. of draft-ietf-i2rs-rib-info-model-08 gives an example usage for 
tunnel-decap where the tunnel-decap nexthop is used to pop an MPLS label and 
send the traffic out an egress interface next-hop.  This example is not the 
most common scenario. And if we want to accomplish this scenario of  
decapsulating and sending to a particular nexthop, it makes more sense to treat 
tunnel-decap as a route match condition similar to an interface-route in the 
existing data model.  However, I think the model should be able to handle the 
more common scenario described above when traffic needs to be decapsulated and 
routed based on a normal route lookup.

Treating tunnel-decap as a next-hop type really makes no sense to me.  I think 
this aspect of the model should be changed.

------------------------
The description of "identity ttl-action" on p.22 is missing the action 
"decrease-and-copy-to-next".  I suggest either adding  it to the description or 
getting rid of the other 3 from the description.  Listing only 3 of 4 options 
is confusing.

------------------------
These are some typos that I noticed as well.

------------------------
s/Struture/Structure/
Figure 2: Routing Instance Stuture

------------------------
s/nexhtop/nexthop/

There are several occurrences of this misspelling.
------------------------
s/tunnel-decap-nexthp/tunnel-decap-nexthop/

------------------------
s/attribtes/attributes/

------------------------
s/nexhop/nexthop/

------------------------
s/usesd/used/
on p34.

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



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

Reply via email to