Subject: [Rift] Running draft -03 incorporated notes from the hackathon ...

From: Tony Przygienda <[email-masked]>
Date: Thu, 26 Jul 2018 12:28:45 -0700

I incorporated the notes I got from hackathon discussions after I did
something thinking/prototyping around a bit while stuck on planes ;-) Here
are my notes

Hackathon Notes

* no hold down timer constant was defined: added in common.thrift, I was
tempted to repeat that in the Constants Appendix but it's just unnecessary
redundancy
* no initial state for ZTP FSM: added to document, caused by fact that real
implemenation FSM has an 'Init' state for couple reasons that need not
exposing in the interop spec
* clarify as store _configured_ level on ZTP transition: added to spec
* it was suggested to change default ZTP strategy from HAL being highest
available level to use level that optimizes number parents times bandwidth
when leafs are picking which level to join. This could prevents a single
miscabling to the root node from abandoning its aggregation switches and
building adjacency to the top. After some serious thinking we have to
reject this since it could “invert” the fabric for non-leaf levels
depending on timing of offers  (imagine in the reference figure what would
happen if Node111 ZTP having received offers from leaf111 and leaf112
before offers from the spines or even later but it has more leaves then
spines). If a node is leaf a sentence has been added that other strategies
to choose HAL can be pursued since they are risk-free.
* missing ShortTic transitions on ZTP: added, clarified offer lifetime
* clarify multiple ZTP offers from same system on parallel interfaces &
interfaces being in different states (3-way): clarified what an offer
constitutes off and what happens on collisions
* indentation on the clauses in some actions where if/else where nested
wasn’t clear: clarified
* The dependencies between leaf flags are a little hard to understand but
the problem is that leaf-only is a flag but leaf-2-leaf is really a
capability that implies leaf-only. Moreover, configured levels are implied
by those flags or can prevent those flags from being configured. After some
thinking no better schema seems possible to me but I added some language in
the text to clarify.
* overload bit configuration should disaggregate local prefixes: spec
updated
* clarify localleafindication event: spec updated

Implementors/authors will find the updates in the bitbucket draft repo

Since Bruno/others did good amount of work on the ZTP FSM he came back with
bunch of comments I'll address those next.  You can find the comments on
the git public domain RIFT repo

https://github.com/brunorijsman/rift-python

Helpful if you star the repo ;-)

Other unrelated things after input from other sides:

* added link bandwidth on the LIE, some people think it's helpful for them
to see that even if L3 is not formed and link in the node TIE
* PGP will be moved a parallel draft and marked as "optional to implement"
albeit contained in main protocol spec. Mixture of complexity and low
practical interest so far.
* External routes will be added, I'm interested in people's opinion on
that. We can add them @ the leafs of course, adding @ the top of fabric
seems of little interest unlss we propagate them at least one level down
(and that only is intersting if not all superspines have them, probably
fairly fragile fabric design anyway).

--- tony

---

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Sat, 28 Jul 2018 09:13:00 +0000

Hello Tony

For the rejected proposal: the discussion was to play this game only for leaves, and the hackathon code I wrote for it had the test, or at least I wanted to do it.

So I’m unclear that the objection is really valid.

All in all ZTP could detect anomalies and alarm the admin. There’s probably more we can do there, to be studied 🤒

Regards,

Pascal

Le 26 juil. 2018 à 21:29, Tony Przygienda <[email-masked]<mailto:[email-masked]>> a écrit :

I incorporated the notes I got from hackathon discussions after I did something thinking/prototyping around a bit while stuck on planes ;-) Here are my notes

Hackathon Notes

* no hold down timer constant was defined: added in common.thrift, I was tempted to repeat that in the Constants Appendix but it's just unnecessary redundancy
* no initial state for ZTP FSM: added to document, caused by fact that real implemenation FSM has an 'Init' state for couple reasons that need not exposing in the interop spec
* clarify as store _configured_ level on ZTP transition: added to spec
* it was suggested to change default ZTP strategy from HAL being highest available level to use level that optimizes number parents times bandwidth when leafs are picking which level to join. This could prevents a single miscabling to the root node from abandoning its aggregation switches and  building adjacency to the top. After some serious thinking we have to reject this since it could “invert” the fabric for non-leaf levels depending on timing of offers  (imagine in the reference figure what would happen if Node111 ZTP having received offers from leaf111 and leaf112 before offers from the spines or even later but it has more leaves then spines). If a node is leaf a sentence has been added that other strategies to choose HAL can be pursued since they are risk-free.
* missing ShortTic transitions on ZTP: added, clarified offer lifetime
* clarify multiple ZTP offers from same system on parallel interfaces & interfaces being in different states (3-way): clarified what an offer constitutes off and what happens on collisions
* indentation on the clauses in some actions where if/else where nested wasn’t clear: clarified
* The dependencies between leaf flags are a little hard to understand but the problem is that leaf-only is a flag but leaf-2-leaf is really a capability that implies leaf-only. Moreover, configured levels are implied by those flags or can prevent those flags from being configured. After some thinking no better schema seems possible to me but I added some language in the text to clarify.
* overload bit configuration should disaggregate local prefixes: spec updated
* clarify localleafindication event: spec updated

Since Bruno/others did good amount of work on the ZTP FSM he came back with bunch of comments I'll address those next.  You can find the comments on the git public domain RIFT repo

* added link bandwidth on the LIE, some people think it's helpful for them to see that even if L3 is not formed and link in the node TIE
* PGP will be moved a parallel draft and marked as "optional to implement" albeit contained in main protocol spec. Mixture of complexity and low practical interest so far.
* External routes will be added, I'm interested in people's opinion on that. We can add them @ the leafs of course, adding @ the top of fabric seems of little interest unlss we propagate them at least one level down (and that only is intersting if not all superspines have them, probably fairly fragile fabric design anyway).

--- tony

_______________________________________________
RIFT mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/rift

---

From: Tony Przygienda <[email-masked]>
Date: Sat, 28 Jul 2018 15:02:32 -0700

Aha, so it's a misunderstanding, I added language that leafs can do what
they want. I thought the proposal was generic ...

Yepp, play with stuff & add to Bruno's comments on the git pls ...

On Sat, Jul 28, 2018 at 2:13 AM Pascal Thubert (pthubert) <
[email-masked]> wrote:

> Hello Tony
>
> For the rejected proposal: the discussion was to play this game only for
> leaves, and the hackathon code I wrote for it had the test, or at least I
> wanted to do it.
>
> All in all ZTP could detect anomalies and alarm the admin. There’s
> probably more we can do there, to be studied 🤒
>
>
> Regards,
>
> Pascal
>
> Le 26 juil. 2018 à 21:29, Tony Przygienda <[email-masked]> a écrit :
>
> * no initial state for ZTP FSM: added to document, caused by fact that
> real implemenation FSM has an 'Init' state for couple reasons that need not
> Since Bruno/others did good amount of work on the ZTP FSM he came back
> with bunch of comments I'll address those next.  You can find the comments
> on the git public domain RIFT repo
>
> [email-masked]