Subject: Re: [Pce] Benjamin Kaduk's Discuss on draft-ietf-pce-stateful-hpce-13: (with DISCUSS and COMMENT)

From: Benjamin Kaduk <[email-masked]>
Date: Sun, 13 Oct 2019 14:46:09 -0700

On Thu, Sep 26, 2019 at 12:11:56PM +0530, Dhruv Dhody wrote:
> Hi Ben,
> 
> Snipping to the final discuss that is still open -
> 
> 
> > > > ----------------------------------------------------------------------
> > > > DISCUSS:
> > > > ----------------------------------------------------------------------
> > > >
> > > > I think this should be pretty easy to resolve, though I'm not sure what
> > > > the right way to do so it.
> > > >
> > > > Section 3 says:
> > > >
> > > >    [I-D.ietf-pce-hierarchy-extensions] defines the H-PCE Capability TLV
> > > >    that is used in the Open message to advertise the H-PCE capability.
> > > >    [RFC8231] defines the Stateful PCE Capability TLV used in the Open
> > > >    message to indicate stateful support.  The presence of both TLVs in
> > > >    an Open message indicates the support for stateful H-PCE operations
> > > >    as described in this document.
> > > >
> > > > There is no normative reference relationship (in either direction)
> > > > between draft-ietf-pce-hierarchy-extension and this document; I think
> > > > that the use of the capability TLV to imply both sets of functionality
> > > > implies some sort of normative relationship; we wouldn't want version
> > > > skew between documents to induce breaking changes.  In particular, an
> > > > implementation that already supports RFC 8231 and is implementing the
> > > > hierarchy extensions would need to know to look at this document *and
> > > > implement it*, or would unknowingly be noncompliant with this document
> > > > and fail to interoperate with a peer that is compliant with this
> > > > document.
> > > >
> > >
> > > How about we add normative text for this -
> > >
> > >    [I-D.ietf-pce-hierarchy-extensions] defines the H-PCE Capability TLV
> > >    that is used in the Open message to advertise the H-PCE capability.
> > >    [RFC8231] defines the Stateful PCE Capability TLV used in the Open
> > >    message to indicate stateful support. To indicates the support for
> > >    stateful H-PCE operations described in this document, a PCEP speaker
> > >    MUST include both TLVs in an Open message. It is RECOMMENDED that any
> > >    implementation that supports stateful operations [RFC8231] and H-PCE
> > >    [I-D.ietf-pce-hierarchy-extensions] would also implements the
> > >    stateful H-PCE operations as described in this document.
> > >
> > > This would be true in most deployments/implementations of C-PCE and
> > > P-PCE that are also stateful!
> >
> > This does remove the problematic normative requirement on implementations
> > of other documents, but I'm not sure if it does what's needed for the
> > interactions across documents.  Specifically, what will happen if two peers
> > both support/advertise stateful PCE and H-PCE but only one implements
> > stateful HPCE? Will there be a clean error handling at runtime and
> > degredation to one or the other, or will there be messy errors?  If the
> > latter, then I don't think we can just have a RECOMMENDED relationship.
> >
> 
> The assumption was that any implementation that claims to support
> stateful and H-PCE on a particular session would also support Stateful
> H-PCE and this document just describes the interaction between these
> two features as an informational document.
> 
> But, lets take a case where PCC and P-PCE support stateful H-PCE but
> the C-PCE does not. PCC would send stateful message to C-PCE and C-PCE
> would not further propagate them.
> 
> I further did a mental exercise for PCC -> C-PCE -> P-PCE and assumed
> all support stateful and H-PCE extension but what happens when any
> PCEP speaker does not support stateful H-PCE but the peer assumes that
> it does. On further PCEP message exchange, the messages may not get
> further propagated and thus at worse would not lead to the stateful
> H-PCE based 'parent' control of the LSP. This is something any peer
> should be prepared for anyways.
> 
> The "clean" solution would be to add a new flag; but then we also need
> to move this a standards track and loose the claim that this is just a
> combination of existing protocol extensions.

Thanks for going through the mental exercise; I will trust your judgment
that a new flag is not really needed in practice.

Sorry for the slow response...

-Ben