I have following questions/comments. I'll have a separate email on Sue's 
question 3).


   When writing an object to a RIB, the external entity SHOULD try to

   write all dependencies of the object prior to sending that object.

   The data-model MUST support requesting identifiers for nexthops and

   collecting the identifiers back in the response.



Apparently this is different from Sue's understanding (see other email thread 
"RE: [i2rs] RIB Info/Data model questions: nexthop-id", so this needs to be 
straightened out.



   The RIB data-model SHOULD support

   a way to optionally receive a nexthop identifier for a given nexthop.



Earlier it says "MUST" and now it's "SHOULD".



2.4.3.  Nexthop content



   At the lowest level, a nexthop can be one of:

   o  identifier: This is an identifier returned by the network device

      representing another nexthop or another nexthop chain.



"or another nexthop chain" should be removed. "another nexthop" covers 
everything.



   o  tunnel encap: This can be an encap representing an IP tunnel or

      MPLS tunnel or others as defined in this document.  An optional

      egress interface can be specified to indicate which interface to

      send the packet out on.  The egress interface is useful when the

      network device contains Ethernet interfaces and one needs to

      perform address resolution for the IP packet.



I don't think an egress interface should be part of the tunnel encap. The 
egress interface and optionally a nbr address should be in a separate chain 
member.



2.4.3's title is "nexthop content" but it focuses on nexthops at the "lowest 
level". 2.4.4 is about "special nexthops" and that should be folded into 2.4.3 
(since special nexthops are at the "lowest level").



       <match> ::= <route-type> (<ipv4-route> | <ipv6-route> | <mpls-route> |

                           <mac-route> | <interface-route>)

       <match> ::= <IPV4> <ipv4-route> | <IPV6> <ipv6-route> |

             <MPLS> <MPLS_LABEL> | <IEEE_MAC> <MAC_ADDRESS> |

             <INTERFACE> <INTERFACE_IDENTIFIER>



We have two rules for <match> here. They are equivalent and one should be 
removed.



       <ip-route-type> ::= <SRC> | <DEST> | <DEST_SRC>



Is there a real need for <src> routes? What's the real difference between <src> 
and <dest> routes?



    <nexthop-base> ::= <nexthop-special> | <nexthop-chain>





    <nexthop-chain> ::= <nexthop-chain-member> ...

    <nexthop-chain-identifier> ::= <NEXTHOP_CHAIN_NAME> |

                                <NEXTHOP_CHAIN_ID>



When would you use "chain_name"? What's the difference/relationship between 
<NEXTHOP_CHAIN_ID> and nexthop-identifier?



    <nexthop-chain-member> ::= <nexthop-chain-member-identifier> |

                <EGRESS_INTERFACE> |

                <ipv4-address> | <ipv6-address> |

                (<EGRESS_INTERFACE> (<ipv4-address> | <ipv6-address>)) |

                (<EGRESS_INTERFACE> <IEEE_MAC_ADDRESS>) |

                (<tunnel-encap> [<EGRESS_INTERFACE>]) |

                <logical-tunnel> |

                <RIB_NAME>)



The above model makes it that even the very basic nexthops are defined through 
nexthop-chain - unnecessary twist and it leads to unnatural representation when 
it comes to the data model (e.g. the chain is a list and each list entry has a 
client-assigned ID as key).



As section 2.4.2 alluded to, all the above "nexthop-chain-member" are just 
basic nexthops shoulder to shoulder with "nexthop-special". Therefore, the 
following model would be more natural?



  <nexthop> ::= <nexthop-base> |

                <nexthop-chain> |      <-- new

                <nexthop-replicate> |

                <nexthop-lb> |

                <nexthop-protection>



  <nexthop-base> ::= <nexthop-special> |

                     <nexthop-identifier> |

                     <egress-interface> |

                     ...

                     <logical-tunnel> |

                     <RIB_NAME>



  <nexthop-chain> ::= <nexthop>...



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



<mpls-header> ::= (<mpls-label-operation> ...)

<mpls-label-operation> ::= (<MPLS_PUSH> <MPLS_LABEL> [<S_BIT>]

                            [<TOS_VALUE>] [<TTL_VALUE>]) |

                            (<MPLS_POP> [<TTL_ACTION>])



<mpls-header> is part of <tunnel-encap> - so <MPLS_POP> does not make sense?



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



   A backup can also have another backup.  In such a case, the list will

   look like:



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

                 <2> <nexthop> <3> <nexthop>)



Unless it meant "A PRIMAY can also have another backup", shouldn't the above be 
the following?



      <nexthop> :: = <NEXTHOP_PROTECTION> (<1> <nexthhop> <2> 
<NEXTHOP_PROTECTION>(<1> <nexthop> <2> <nexhop>))

Jeffrey

From: i2rs [mailto:[email protected]] On Behalf Of Susan Hares
Sent: Tuesday, October 06, 2015 8:36 PM
To: [email protected]
Cc: 'Nitin Bahadur' <[email protected]>; [email protected]
Subject: [i2rs] draft-ietf-i2rs-rib-info-model-07 - WG LC from (10/6 to 
10/20/2015)

This begins a 2 week WG LC on draft-ietf-i2rs-rib-info-model-07.txt.   You can 
obtain the document by going to:
http://datatracker.ietf.org/doc/draft-ietf-i2rs-rib-info-model/

The question you should consider:


1)      Does this RIB info-model work will for read query and write query for 
small number of routes (1-10 routes)?

2)      Does this RIB info-model work for a large number of routes 100,000 
routes?

3)      Is the next-hop methodology support everything you wish in the I2RS RIB?

4)      The default mode for I2RS transport is a secure encrypted transport.  
Does this information model need to have any portion of the model available 
over an insecure transport?

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

Reply via email to