Subject: [Gen-art] gen-art review of draft-ietf-pce-comm-protocol-gen-reqs-06.txt

From: Robert Sparks <[email-masked]>
Date: Tue, 23 May 2006 18:58:21 -0500

I am the assigned Gen-ART reviewer for
draft-ietf-pce-comm-protocol-gen-reqs-06.txt

For background on Gen-ART, please see the FAQ at
<http://www.alvestrand.no/ietf/gen/art/gen-art-FAQ.html>.

Please wait for direction from your document shepherd or AD
before posting a new version of the draft.

===============================================
Summary: This draft is on the right track but has open issues
          to resolve before publication.
===============================================

This draft is well written and is accessible to readers, like
myself, who are not routing (particularly MPLS) experts.

The current version has some rough edges that I feel need attention
before publication. They are listed here in priority order. These
are followed by a few nits that should also be addressed.

ISSUE 1:
   The summary of requirements in section 6.4 are inconsistant with
   the requirements in the document.

    Example: 6.4 contains:
         Functionality added to PCECP if transport
         protocol provides it                      SHOULD NOT 6.1.8
      while 6.1.8 says
	Functionality MUST NOT be added to the PCECP where
         the chosen transport protocol already provides it.

    Example: 6.4 contains:
         Maintain PCC-PCE session                 NON-RQMT   6.1.2
      but 6.1.2 is silent on maintaining sessions

   I have not done an exhaustive comparison of the table vs the text.
   This is what I found spot-checking a few. A more thorough  
reconcilliation
   is needed.

ISSUE 2:
   The extensibility requirements demand arbitrary objective
   functions. A discussion of the security implications of this
   requirement is needed. There are probably additional requirements
   on the protocol to be identified focusing on mitigating the risk
   of, for example, a PCC using complex objetives to intentionally drive
   a PCE into resource exhaustion. Does the protocol need to give the  
PCE
   tools to say "I tried to do that, but it's turning out to be harder
   than my policies allow."?

ISSUE 3:
   There is an incorporation of MUST requirements by incomplete
   reference in section 6.1.14:
     "The PCECP MUST support the requirements specified in the
      application-specific requirements documents."
   But it's not clear what these requirements documents are. There
   is a list in the preceeding paragraph, but only a subset of the
   elements in that list have concrete references.

   One possible resolution is to state that the protocol must be
   extensible, explicitly call out the kinds of extensibility (adding
   to the first paragraph of 6.1.14 perhaps) and calling out these
   other documents as examples of the users of the extensibility  
mechanism
   instead of directly requiring support of their requirements here.

ISSUE 4:
   There are several requirements of PCEs that have been captured
   here as requirements of the PCECP. Section 6.1.15 requires that
   the protocol "scale well", where it really means that the system
   using the protocol scales well. The numbers in this section are
   capacity and performance numbers for a PCE, and they are useful
   when designing the PCECP to make sure the protocol itself makes
   achieving those numbers sane. This section should be reworded to
   make this obvious.

   Similarly, section 8 should separate requirements on the protocol
   from the motivational requirements on CPE implementations (2119
   words shouldn't be used in that motivation).

ISSUE 5 (Apologies if my lack of domain expertise led me to miss
          something obvious here):
   Section 6.3.3 requires the protocol to carry information about
   the state of the network to the PCE that would normally come from
   the TED. Does this not introduce security concerns? Could a PCC
   use this poison CPE calculations for other PCCs? If this capability
   exists, there needs to be discussion about how the data gets used
   by the PCE (does it cache it?), but that discussion doesn't belong
   in this document. I suggest at a minimum that some discussion of
   the ramifications of this capability be included in the security
   consideration section of this document.

ISSUE 6 (not as major as the above, but should still be addressed):
   There are several places where 2119 terms are used where they
   shouldn't be. The large difference in the number of occurances of
   MUST outside section 6.4 and inside section 6.4 points to this and
   could be used as a mechanism to help find these places.
     Examples from 6.1.4:
       A list of core objective functions that MUST be supported by the
       PCECP is supplied in Section 6.1.17. Specification of objective
       functions MUST be future-proofed as described in Section 6.1.14.

ISSUE 7:
    The purpose of 6.2.1 is not clear. What is the real requirement
    being placed on the protocol, and how can we evaluate the protocol
    against that requirement. If there are no such explicit  
requirements,
    I suggest this be rewritten as advice on where the protocol is  
expected
    to be used and not use 2119 terms at all.
    I'm particularly puzzled about what impact operating in environments
    including
     "- packet and non-packet networks"
    is intended to have on the protocol itself.

Nits:
The draft passes the idnits checker (in spirit at least).
The checker complains about the reference to 2119 in the
boilerplate, and the unexpected use of
"Authors' and Contributors' Addresses".

These nits are in no particular order:

NIT 1:
   The references to I-Ds that are works in progress do not
   include draft names, Please add them.

NIT 2:
    Please expand PCE in the title.

NIT 3:
   Section 6.1.6 uses "notification message" which is not yet
   defined - a forward reference would be helpful.

NIT 3:
    Section 6.1.11 requires unsolicited notifications, but doesn't
    really define them. Are these reliable messages? Do they get
    responses?  More detail about what's really being required would
    make the document more useful.

NIT 4:
   The final requirement in 6.1.15 is redundant with requirements
   in both 6.1.8 and section 8. Consolodating those would make the
   document stronger.

NIT 5:
    I suggest deleting "easily" in section 6.1.14:
     The PCECP MUST be easily extensible -> The PCECP MUST be extensible

NIT 6:
   Sections 6.1.16 and .17 share some language that confuses me:
    "does not mean that the constraint must not be supported"
    and
    "does not mean that the objective function may not be supported"

   Is there a way to say this with fewer negations?

   You are trying to reinforce that these sets are extensible. Maybe
   you could just say that instead?

NIT 7:
   The first sentence of 6.2.2 has at least two discrete requirements
   embedded in it. It would be easier to evaluate against the eventual
   protocol definition if these were separated.

NIT 8:
   It's not clear to me what "resynchronization of information" means in
   section 6.3.2. Is there any way to add detail? Is it obvious to the
   community using this document what information is being  
resynchronized?

NIT 9:
   Section 6.3.3, third paragraph. I suggest changing
   "large number of PCCs is going to simultaneously" to
   "large number of PCCs will simultaneously".

A couple of final comments that I didn't think worthy of
being called an issue or a nit:

The draft requires response aggregation, but doesn't discuss
the ramifications this will have on the reliability mechanisms
that you will either use from a selected transport or have to
build above it. Pointing out that there are non-trivial issues
here would probably be useful.

The security consideration section doesn't capture any thinking
your group may have put in so far towards threats from elements
that are part of the architecture. Capturing early thinking here
will go a long way.

Thanks for reading,

RjS

_______________________________________________
Gen-art mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/gen-art