Hi,

A few nitty comments on this draft.

Adrian

===

Abstract. Second sentence.

"In PCE-based environments, it is thus critical..."
I don't think this follows as a conclusion from the previous sentence. In
particular, there is no definition of a "path computation chain" and no
explanation of the process involved in PCE that leads to the conclusion that
certain things need to be monitored or troubleshooted.

I suggest inserting a new second sentence to give some background. Something
like...

  Path Computation Clients (PCCs) send computation requests to PCEs,
  and these may forward the requests to and cooperate with other PCEs
  forming a "path computation chain".

You can then put in a paragraph break and continue with your text.

===

Section 1

You need to expand "PCC" and "TE LSP" on first usage as the Terminology section comes later.

===

Section 3

Please include a reference to draft-farrel-rtg-common-bnf-07.txt.
At this stage you should (and can safely) make this a normative reference. The RBNF draft will go to IETF last call in early January and will be ahead of this draft in the processing queue.

===

Section 3

s/Computation Monitoring request/Computation Monitoring Request/

===

Section 3.1

<request> is shown to optionally contain the RRO.

The text that follows refers to the ERO.

I think the text is wrong.

===

Section 3.1

s/metric(s)/metrics/

===

Section 3.1

Examples 1 and 3 should also include a note that the requested information is returned in a PCMonRep.

===

Section 3.2

Are you sure that you want to send an Error message in response to a bad PCMonRep?

Sending an Error in response to a PCMonReq is useful because it cancels the request and means the sender does not continue to wait or a PCMonRep. But sending an Error in response to a PCMonRep does not seem to have any use except to load the network. For example, what is the state of the outstanding PCMonReq in this situation? What is the sender of the PCMonRep supposed to do when it receives the Error message?

More appropriate would be for the receiver of the bad PCMonRep to raise an alert to the operator and to put the sender of the bad message on a blacklist so that it never send it another PCMonReq.

===

Section 3.2

It would be useful to include references for the objects listed in the BNF as you do in Section 3.1.

===

Section 3.2

I'm slightly confused by the BNF.

  <metric-pce>::=[<PCE-ID>]
                 [<PROC-TIME>]
                 [<CONGESTION>]

This means that <metric-pce> can be completely empty.
Surely <PCE-ID> is mandatory within <metric-pce> ?

===

Section 4

You state that the P and I flags in the new objects are cleared.

I think you mean "SHOULD be set to zero and MUST be ignored"

===

Section 4
Second paragraph.

The case of "in band" monitoring seems to be described twice.

===

Section 4.2

The object has previously been referred to as the PCE-ID object. That seems like a better name. Can you check the whole I-D to make sure this is consistent.

===

Section 4.3

  If allowed by policy, the PCE includes a PROC-TIME object within a
  PCMonRep or a PCRep message if the P bit of the MONITORING object

This conflicts with Section 4.1

  P (Processing Time) - 1 bit: the P bit of the MONITORING object
  carried in a PCMonReq or a PCReq message is set to indicate that the
  processing times is a metric of interest, in which case a PROC-TIME
  object MUST be inserted in the corresponding PCMonRep or PCRep
  message.

I prefer the "if allowed by policy" which means you need to change the text Section 4.1.

===

Section 4.3
s/algorithm(s)/algorithms/  (twice)

===

Section 4.3

  Flags: 18 bits - No Flags are currently defined:

Looks like 16 bits, and one flag is defined!

===

Section 4.3
s/computation(s)/computations/

===

Section 4.3

  Unassigned bits are considered as reserved and MUST be set to zero on
  transmission.

Move this text to immediately after the definition of the E bit

===

Section 4.3

  More granularity may be introduced in further revision of this
  document to get a monitoring metric for a general request of a
  particular class (e.g. all PCReq of priority X).

I guess you decided not to do this. Delete the text.

===

Section 4.4

- Rather than one bit and a reserved field, shouldn't you have a
 flags field (with one bit assigned) and a reserved field.
- You need to explain that setting the C bit and a congestion
  duration of zero has meaning. If it has no meaning, you don't
  need the C bit.
- Although it verges on telling the implementer how to write code
 I think some advice is needed on what to do when a
 CONGESTION object is received with the C bit set. There
 are two aspects...
 - How long has the CONGESTION object taken to propagate
    from the reporting PCE to the PCC (might not be one hop)?
 - What should the receiver do with the Congestion Duration
    value?
- It may also be worth noting whether a PCE in the middle of a
  chain is allowed to look at the CONGESTION information
  that it receives from a downstream PCE and plans to pass on
  to an upstream PCE or PCC.

===

Section 6

  Reception of a PCMonReq message: upon receiving a PCMonReq message:

Can you sort out the over-use of colons?

===

Section 6, case 1)

I think you should refer explicitly to Section 6.9 of [PCEP] because that includes not only the error message, but some important back-off and shutdown procedures.

===

Section 6, case 2)

You should refer back to Section 5.
But note also that you have an explicit case (section 4.3) where policy causes the message to be processed but an object to be left out of the reply.

===

Section 6

You need a similar set of text for the in band case.

===

Section 7.2
s/MAY/may/

===

Section 7.6

  An implementation SHOULD allow handling PCReq messages with
  a higher priority than PCMonReq messages.

And when the monitoring is in band?

===

Section 8

It would be helpful to IANA if you split this into subsections for each registry/subregistry. Also nice if you could try to cut and paste from the registry naming used in [PCEP].

===

Section 8

The IANA section doesn't seem to be complete.

For example:
- The flags field in the Monitoring Object
  (be careful to get the bit numbering correct :-)
- The flags field in the PROC-TIME object
- The flags field in the CONGESTION object

===

Section 9

Does the information gathered by monitoring represent any additional vulnerability? Could an attacker gain interesting information by snooping this?

I think the Congestion object is a good and lightweight way to attack a PCE deployment. You should note this and suggest that this makes the use of security mechanisms important. You may also need to node that there is a chain of trust model here such that even if one PCE ensures that it uses security, the information it supplies can be changed on a hop further upstream. Therefore, a consistent security model across all cooperating PCEs is desirable.

===

Section 11.2

[I-D.ietf-pce-disco-proto-isis] is not referenced (did you run I-D nits?)

[I-D.ietf-pce-of] and [I-D.ietf-pce-pcep-xro] are normative since they define objects that you cite explicitly.


_______________________________________________
Pce mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/pce

Reply via email to