Last Call Review of draft-ietf-lisp-lcaf-15
review-ietf-lisp-lcaf-15-genart-lc-yee-2016-10-04-00

Request Review of draft-ietf-lisp-lcaf
Requested rev. no specific revision (document currently at 22)
Type Last Call Review
Team General Area Review Team (Gen-ART) (genart)
Deadline 2016-10-04
Requested 2016-09-22
Authors Dino Farinacci, David Meyer, Job Snijders
Draft last updated 2016-10-04
Completed reviews Genart Last Call review of -15 by Peter Yee (diff)
Genart Last Call review of -17 by Peter Yee (diff)
Secdir Last Call review of -15 by David Mandelberg (diff)
Opsdir Last Call review of -15 by Sarah Banks (diff)
Rtgdir Early review of -14 by Stig Venaas (diff)
Assignment Reviewer Peter Yee
State Completed
Review review-ietf-lisp-lcaf-15-genart-lc-yee-2016-10-04
Reviewed rev. 15 (document currently at 22)
Review result Ready with Issues
Review completed: 2016-10-04

Review
review-ietf-lisp-lcaf-15-genart-lc-yee-2016-10-04

I am the assigned Gen-ART reviewer for this draft.  The General Area Review
Team (Gen-ART) reviews all IETF documents being processed by the IESG for
the IETF Chair.  Please treat these comments just like any other last call
comment.  For background on Gen-ART, please see the FAQ at
<

http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>

Document: draft-ietf-lisp-lcaf-16
Reviewer: Peter Yee
Review Date: October 9, 2016
IETF LC End Date: October 4, 2016
IESG Telechat date: October 13, 2016

My apologies for the lateness in getting this review out.  Nonetheless, I
hope you will find the comments useful.

Summary: This draft is basically ready for publication as an Experimental
specification, but has some issues that should be fixed before publication.
[Ready with issues]


Major issues: None

Minor issues: 

There's a general problem with the definitions of the Length field used in
specific LCAF Types.  Sometimes there's a "number + n" format used to
specify all of the fields after the fields covered by "number".  But the
definitions get this wrong frequently and indicate that the "Length value n"
covers all of the fields after it, even when the figure shows a number plus
n.  An example is on page 14, section 4.5, but there are several of these
mistakes in the document.  I would prefer not to use a "number + n" in the
figure, but just label Length as Length in the figure.  This may reduce the
number of times that the definition gets it wrong.  It's hardly critical to
count of the number of bytes that cover some but not all of the following
fields, especially when they are quite evident in the figure itself, which
is 4 bytes wide.

Page 6, Rsvd2 definition: the definition both says "reserved for future use"
and then says some types actually use it.  That sounds like present use.
And to generically say that it should be sent as zero and ignored, but then
to give uses (such as Type 2)  for it  is confusing.  I suggest rethinking
the wording here.

Page 6, Length definition: there's mention of a "Reserved" field that's
included in the minimum length of 8 bytes that are not part of the length
value.  Since there are actually Rsvd1 and Rsvd2 fields in the generic
version of the LCAF and sometimes even Rsvd3 and Rsvd4 fields when using
specific Types, it might be better to spell out which reserved fields (Rsvd1
and Rsvd2) are meant here rather than giving the field a summary name that
doesn't actually appear in the format.  This is also important because any
Rsvd3 and Rsvd4 fields are included in the Length field, so using a generic
"Reserved" description is ambiguous at best.

Page 13, RTR RLOC Address definition, 4th sentence: The ability to determine
the number of RTRs encoded by the value of LCAF length implies a single
value for AFI = x is required.  If so, why not only use one AFI=x value
rather than repeating it for each address?  And if there can be different
AFI = x value, then the number of RTRs that are encoded cannot be determined
without parsing through each AFI/address pair.

Page 13, RTR RLOC Address definition, 5th sentence: this sentence gives two
means to indicate that there RTR field values.  What's the point of having
two different means of doing so?  This just seems to introduce complexity
and increase the chance for implementations that may not handle both schemes
correctly.  One scheme ought to suffice.  I prefer the Length field method
since it requires fewer bytes transmitted, but either works.

Nits:

General:

Change "AFI encoded" to "AFI-encoded".

Change "AFI based" to "AFI-based".

Change "LCAF format" to "LCAF".

Change "use-case" to "use case".  Change "use-cases" to "use cases".

Expand acronyms/initialisms on first use unless they are really well known.
For example: PA (Provider-Assigned).

Change "ignore on  receipt" to "ignored on receipt".

Specific:

Page 5, RLOC definition, 2nd sentence: change "a" to "an".

Page 5, generic LCAF figure: the figure looks like a fixed 8 byte block,
while the text preceding it indicates that there are a variable number of
fields of variable length.  Perhaps adding an open-ended field to the figure
might make it clearer what is meant.

Page 5, Type definition: change the comma to a semicolon.

Page 6, Rsvd2 definition: replace the space between "Type" and "dependent"
with a hyphen.

Page 6, Length definition, 6th sentence: insert "an" before "encoded".

Page 8, Usage, 1st sentence: change the second "a" to "an".

Page 9, AS Number definition: insert "to" before "either".

Page 10, Longitude degrees definition: change "Value" to "Valid".

Page 12, Length value n definition: insert "ETR" before "UDP".

Page 13, RTR RLOC Address definition, 3rd sentence: change "these" to
"this".

Page 14, section 4.5, 1st paragraph, 2nd sentence: change "an" to "a".

Page 14, section 4.5, 2nd paragraph: I can't parse the sentence as written
and I'm not sure what's the correct fix.  Perhaps "when each EID is away
from its"?  Or "when all EIDs are away from their"?

Page 14, section 4.5, Source MaskLen definition: give the units of measure
here (be it bytes or bits), for clarity, unless mask lengths are well known
to be only of a specific unit.

Page 15, Source/Subnet Address and Group Address definitions: delete an
extra space before "is" in each definition.

Page 16, Strict bit (S) definition, 1st sentence: change "Rencap" to
"Reencap".

Page 18, Key Count definition, 2nd sentence: change "the" to "of".

Page 18, AFI = x definition: insert two spaces before the second sentence.

Page 19, section 4.8, 1st paragraph, 1st sentence: change "needs" to "need".

Page 20, Length definition: here's another one of those length errors
mentioned in the minor issues section above.

Page 20, Source-ML and Dest-ML definitions: provide the unit of measure in
use.

Page 24, section 4.10.3, 1st paragraph and Length value n definition: these
two statements do not agree with each other.  One includes the AFI value in
'n', the other does not.

Page 24, Length value n definition: insert "of the" before "AFI=17".

Page 27, section 5.1, Length value n definition: I'm not sure what qualifies
as "8-byte Application Data fields", but there appear to be 12 bytes before
the AFI and that's reflected in the Length field in the figure.  So the
local and remote port ranges are the 8-byte Application Data fields?  This
comes back to my minor issue with how Length values are described in the
text and in the figures.  Please clarify what's meant here.

Page 28, section 5.2, Length value n definition: here's another length
description error, although of a slightly different ilk.

Page 29, Key Field Num definition: change "the the" to "the".

Page 32, section 5.5, 1st paragraph, 1st sentence: set off "for example"
with commas fore and aft.

Page 32, section 5.5, 1st paragraph, 2nd sentence: insert "a" before "key".

Page 34, L definition: change "layer3" to "layer 3".

Page 34, l definition: change "layer2" to "layer 2".