Early Review of draft-ietf-babel-rfc6126bis-04

Request Review of draft-ietf-babel-rfc6126bis
Requested rev. no specific revision (document currently at 20)
Type Early Review
Team Routing Area Directorate (rtgdir)
Deadline 2017-11-16
Requested 2017-10-28
Requested by Donald Eastlake
Authors Juliusz Chroboczek, David Schinazi
Draft last updated 2018-01-03
Completed reviews Rtgdir Early review of -04 by Susan Hares (diff)
Opsdir Early review of -04 by Mehmet Ersue (diff)
Rtgdir Early review of -04 by Nicolai Leymann (diff)
Genart Last Call review of -10 by Russ Housley (diff)
Secdir Last Call review of -10 by Charlie Kaufman (diff)
Rtgdir Telechat review of -11 by Yingzhen Qu (diff)
QA review. Sorry for the short notice. This document is expected to be WG LC'ed soon. Current revision is -03 but -04 expected to be uploaded before the draft deadline before IETF 100.
Assignment Reviewer Susan Hares 
State Completed
Review review-ietf-babel-rfc6126bis-04-rtgdir-early-hares-2018-01-03
Reviewed rev. 04 (document currently at 20)
Review result Not Ready
Review completed: 2018-01-03


Juliusz and David:


This is a Routing QA review of draft-ietf-babel-rfc6126bis.   The normal
form of this routing review is: 


Status:  (no ready, ready with issues, ready with nits) 


Editorial comments 


However, reviewing the amazing work you have done in babel just does not fit
this mold.   


Personal view on your work: 

I am personally excited about your work because it represents some "of the
box" thinking we will need in the upcoming decades.  Physical infrastructure
(802.11, Ethernet, fiber, and 5G networks) and computing technology sizes
(sensors, tiny-OS, phone computing, and datacenters change) emerge every 2-3
years and change our routing within 5 years.   You are rethinking and
adapting a very old style of protocol to a new environment fixing some of
the obvious problems with lessons we've learned in the last 15-20 years.
Kudos to you! 


Have you've solved and deployed babel with all of these fixes in a home
environment?  It appears from your transition from Experimental to protocol
standard work - that you've really made it work in deployments.   Kudos!

My comments are simply a way to help you refine your specification (or
family of specifications) to be published as standard.  I am glad to help
work on the refinement. 


Technology status: Not ready - due to management issues 


You've missed two important features in your discussion in

1)      How to handle the policy for these routes (RIP was ripe for a lot of
policy, it is appears you allow it), 

2)      How to manage all the normal data and the knobs. 


Did your deployments have a widely diverse equipment population and user
population? If so, you may have solved these issues - but not put them in
this document.  If you expected to write another document to cover these
issues, please let me know.   


The current babel info-model (draft-ietf-babel-information-model-01)
provides information on the data structures you included in chapter 3.  To e
specific - the structures are the protocol info (babel-information-object,
constants (babel-constants-obj), interfaces (babel-interface-obj), neighbors
(babel-neighbors-obj), babel sources and routes (babel-sources-obj,
babel-routes-obj)).   However, I am not seeing a many of the knobs you
mentioned (E.g. timer knobs,  policy).  The info-model includes
babel-security (babel-security-obj), but how will your protocol use it? 


As someone who used to sell routing code to vendors for insertion in low-end
home routers, we spent lots of time getting the management and policy right.
I'm hopeful you are smarter than I am.  It takes careful designs within the
protocol and outside of the protocol in Yang modules to allow for a simpler
user-interface, defaults that work 80% of the time, and policy to cover the
other 20%.  The default have to cover the normal user and the policy the
sophisticated user/program. 


One of the problems with massive deployment in the home is the exposure of
information that should stay private.  It may be necessary to define a
default mandatory security suite that goes with this (e.g.) for home use.
If you run it over a secured Ethernet or Wifi with an existing high level of
encryption - this may also be ok.   For home use, I am uncomfortable without
a default profile. 


Technology nice-things: 

1)      feasibility condition and algorithm ("reset" by sequence number) 

2)      Neighbor being interface + router - but I am not sure you've caught
all the problems 

3)      Hello/IHU timers 

4)      Bi-direction reachability metrics

5)       Target request for route, seqno 

6)      Routes from multiple routers and overlapping routes, 

7)       Garbage collections - however the details are not there.  

8)      Parser-state (section 4.5) - pro/cons to this approach need to be
handled in section 2.0 

9)      Section 4.6.9 - update with "omitted octets" 

10)   Concern for the switching of routers (router-a to router-b to
router-a) for a route - but you lack details in how it can be prevented. 


Document status: Great start, needs work to refine knobs and details  


Your document has a lovely form (intro), conceptual view of protocol,
protocol operations, protocol encoding, IANA, Security considerations, but
it leaves out manageability.   The optimization "knobs" are everywhere in
your document, but the reader has no sense of how they can monitor, manage
or otherwise handle all these knob settings.  If you intend to have this all
in a Yang model, you need to discuss this. 


Your document suggests is provides a summary in section 2 of the algorithms.
However, here are the pieces it misses:

a)      There is no list in the beginning on what algorithms, 

b)      The cool Hello/IHU timer issues with triggers 

c)       The use of split horizon 

d)      The router updates that allow optimized bytes to be omitted and
assumed to be copied 

e)      Explicit request (section 3.8) - you really make sure all the
sub-section are summarized in the algorithm.

It is important to differentiate route-request from seqno-requests.  It is
also important to cover sections and in the top summary. 

f)       Expansion of the text in 2.5, 2.6, and 2.7 to provide route
distribution of normal routes

a short table and description which covers the feasible route, unfeasible
route, and infinity route

g)      Discussion of what policy will be allowed, what policy is prohibited
(due to breaking algorithm), and what policy is "not a good idea". 


It is also important to bring forward when things are ignored or silently
ignored (examples - see 4.5, 4.6.8, 


Editorial issues: 

I resisted the urge to take out my professorial red pen.  A great deal of
the text is readable, but some portions repeat and confuse.  Especially in
the timers, feasibility, and route update sections.  You are very
intelligent and your vocabulary range is extensive.  I suspect that we can
quickly resolve the editorial issue after you fix the manageability issues
and fill out the details in the sections. 


I will be glad to do a second pass review for editorial once you've fixed.
I'm sorry this took a long time to do in December.


Keep going!  This is a wonderful addition to the Internet suite of routing


Susan Hares