One document matched: draft-palle-pce-controller-labeldb-sync-00.xml


<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc ipr="trust200902" category="exp" docName="draft-palle-pce-controller-labeldb-sync-00" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="LABEL-DB-SYNC">LABEL-DB Synchronization Procedures for a PCE as a central controller(PCECC)</title>
    <author initials="U" surname="Palle" fullname="Udayasree Palle">
      <organization>Huawei Technologies</organization>
        <address>
        <postal>
          <street>Divyashree Techno Park, Whitefield</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560066</code>
          <country>India</country>
        </postal>
        <email>udayasree.palle@huawei.com</email>
      </address>
    </author>
    <author initials="D" surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Divyashree Techno Park, Whitefield</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560066</code>
          <country>India</country>
        </postal>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>

    <date month="May" year="2016" />
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
   <t><xref target="I-D.zhao-pce-pcep-extension-for-pce-controller"/> specify the procedures
   and PCEP protocol extensions for using the PCE as the central controller <xref target="I-D.zhao-teas-pce-control-function"/> where LSPs are
   calculated/setup/initiated and label forwarding entries are downloaded through a centralized
   PCE server to each network devices along the LSP path while leveraging the existing PCE
   technologies as much as possible.</t>

   <t>Labels downloaded to forwarding entries requires a reliable synchronization
   mechanism  between the path computation clients (PCCs) and the PCECC.
   This draft specify the label database synchronization mechanism for managing
   of label database (LABEL-DB) at node (PCC) aligning with LABEL-DB at PCECC
   on initial session UP or session flap and specifies the required Path
   Computation Element Communication Protocol (PCEP) extensions.</t>
   </abstract>
  </front>
  <middle>
    <section title="Introduction" toc="default">
    <t><xref target="I-D.zhao-pce-pcep-extension-for-pce-controller"/>  specify the procedures and PCEP protocol extensions for
   using the PCE as the central controller <xref target="I-D.zhao-teas-pce-control-function"/> and user cases where LSPs are
   calculated/setup/initiated/downloaded through extending the existing
   PCE architectures and PCEP.</t>

    <t>Labels downloaded to forwarding entries requires a reliable synchronization
   mechanism  between the path computation clients (PCCs) and the PCECC.
   This draft specify the PCECC maintenance of label database per session,
   and describes the label database(LABEL-DB) synchronization mechanism for managing
   of label database at node (PCC) aligning with label database at PCECC
   on initial session UP or session flap and specifies the required Path
   Computation Element Communication Protocol (PCEP) extensions.</t>
   <t> This draft specify the optimizations for LABEL-DB synchronization and the corresponding PCEP
   procedures and extensions.</t>
   <section title="Requirements Language"
               toc="default">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
        "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
        and "OPTIONAL" in this document are to be interpreted as
        described in
        <xref target="RFC2119" />.</t>
      </section>
    </section>


	<section title="LABEL-DB Synchronization">
		<t>PCECC MUST maintains the LABEL-DB for each PCEP session separately.
		The purpose of LABEL-DB synchronization is to make sure that the
		PCECC's view of LABEL-DB matches with the PCC's LABEL-DB. The LABEL-DB
		synchronization MUST be performed from PCECC to PCC immediately after the LSP state synchronization.
		<xref target="I-D.ietf-pce-stateful-pce"/> describes the basic
		mechanism for LSP state synchronization. <xref target="I-D.ietf-pce-stateful-sync-optimizations"/> describes the optimizations for LSP state synchronization.</t>

		<t> By default a Full LABEL-DB is performed from PCECC to PCC  on Initial session UP or every session flap.
		see <xref target="SEC_FULL_LABEL_DB"/> for detail procedures.</t>

		<t>But a Full LABEL-DB synchronization is not always necessary following a PCEP
		session restart and providing an Optimizations for LABEL-DB synchronization can result
		in significant savings in both control-plane data exchanges and the time it takes
		for the PCC to become fully operational.</t>

		<t>Optimizations for LABEL-DB synchronization describes the need that both PCEP
		speakers support label database version capability and maintain
		label database version for each session. See <xref target="SEC_OPT_LABEL_DB"/> for detail procedures.</t>

	</section>

    <section title="Full LABEL-DB Synchronization procedure" anchor="SEC_FULL_LABEL_DB">
    <t>During Full LABEL-DB Synchronization, a PCECC first takes a snapshot of the
   label database for the session, then sends this snapshot to the PCC in a
   sequence of Label Update message (PCLabelUpd message defined in <xref target="I-D.zhao-pce-pcep-extension-for-pce-controller"/>).
    Each PCLabelUpd message sent during LABEL-DB Synchronization has the SYNC Flag
    in the SRP Object(see <xref target="SEC_SRP_OBJ"/>) set to 1.</t>

   <t>The end of synchronization marker is a PCLabelUpd message with the SYNC
   Flag set to 0 for SRP Object with Label equal to reserved value 0 in the LABEL object (<xref target="I-D.zhao-pce-pcep-extension-for-pce-controller"/>).
   If the PCECC has no label to synchronize, it will only send the
   end of synchronization marker.</t>

    <t>
   A PCECC SHOULD NOT send PCUpd messages to a PCC before LABEL-DB
   Synchronization is complete.</t>

    <t>Either the PCECC or the PCC MAY terminate the session using the PCEP
   session termination procedures during the LABEL-DB synchronization phase.  If
   the session is terminated, the PCC MUST clean up label(s) it received
   from this PCECC.  The session reestablishment MUST be re-attempted as per
   the procedures defined in <xref target="RFC5440"/>, including use of a back-off
   timer.</t>
   <t>The PCC does not send positive acknowledgements for properly received
   label database synchronization messages.  It MUST respond with a PCErr message with
   Error-type TBD1 (Label Database Synchronization Error) and Error-value 1
   (indicating an error in processing the PCLabelUpd) if it
   encounters a problem with the Label Update it received from the
   PCECC and it MUST terminate the session.</t>
   <t>If the PCECC encounters a problem which prevents it from completing the
   label transfer, it MUST send a PCErr message with Error-type TBD1 (Label
   Database Synchronization Error) and Error-value 2 (indicating an
   internal PCECC Error) to the PCC and terminate the session.</t>

   <t> The successful LABEL-DB Synchronization sequence is shown in <xref target="SEC_FULL_LABEL_DB_SUCC"/>.</t>
 <t>
          <figure title="Successful LABEL-DB synchronization" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_FULL_LABEL_DB_SUCC">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[
+-+-+-+                         +-+-+
|PCECC|                         |PCC|
+-+-+-+                         +-+-+
   |                             |
   |-----PCLabelUpd, SYNC=1----->| (Sync start)
   |                             |
   |-----PCLabelUpd, SYNC=1----->|
   |            .                |
   |            .                |
   |            .                |
   |-----PCLabelUpd, SYNC=1----->|
   |            .                |
   |            .                |
   |            .                |
   |                             |
   |-----PCLabelUpd, SYNC=0----->| (End of sync marker
   |                             |  Label Update
   |                             |  LABEL=0)
   |                             | (Sync done)
]]></artwork>
          </figure>
        </t>

  <t> The sequence where the PCC fails during the LABEL-DB Synchronization
   phase is shown in <xref target="SEC_FULL_LABEL_DB_PCC_FAIL"/>.</t>
 <t>
          <figure title="Failed LABEL-DB synchronization(PCC failure)" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_FULL_LABEL_DB_PCC_FAIL">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[
+-+-+-+                           +-+-+
|PCECC|                           |PCC|
+-+-+-+                           +-+-+
   |                                |
   |--------PCLabelUpd, SYNC=1----->| (Sync start)
   |                                |
   |--------PCLabelUpd, SYNC=1----->|
   |               .                |
   |               .                |
   |               .                |
   |--------PCLabelUpd, SYNC=1----->|
   |                                |
   |---PCLabelUpd, SYNC=1          |
   |            \    ,----PCErr ----|
   |             \  /               |
   |              \/                |
   |              /\                |
   |             /   `------------->| (Ignored)
   |<-----------`                 	|

]]></artwork>
          </figure>
        </t>
        <t> The sequence where the PCECC fails during the LABEL-DB Synchronization
   phase is shown in <xref target="SEC_FULL_LABEL_DB_PCE_FAIL"/>.</t>
 <t>
          <figure title="Failed LABEL-DB synchronization(PCECC failure)" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_FULL_LABEL_DB_PCE_FAIL">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[
+-+-+-+                         +-+-+
|PCECC|                         |PCC|
+-+-+-+                         +-+-+
   |                             |
   |-----PCLabelUpd, SYNC=1----->| (Sync start)
   |                             |
   |-----PCLabelUpd, SYNC=1----->|
   |            .                |
   |            .                |
   |            .                |
   |----------- PCErr=? -------->|
   |                             |

]]></artwork>
          </figure>
        </t>
        </section>

<section title="Optimizations for LABEL-DB Synchronization" anchor="SEC_OPT_LABEL_DB">
<t>This section add some of the optimization mechanisms for LABEL-DB
synchronization. By default, the full LABEL-DB synchronization is performed.</t>

<section title="LABEL-DB Synchronization Avoidance Procedure" anchor="SEC_OPT_LABEL_DB_AVOID">
   <t>The LABEL-DB synchronization MAY be skipped following a PCEP session restart
   if there is no change in the LABEL-DB of the session at PCECC, during the period
   prior to session re-initialization.  To be able to make this
   determination, labels must be exchanged and maintained by both PCECC and
   PCC during normal operation.  This is accomplished by keeping track
   of the changes to the label database, using a version tracking
   field called the Label Database Version Number.</t>

   <t>The Label Database Version Number, carried in LABEL-DB-VERSION TLV
   (see <xref target="SEC_LABEL_DB_VER_TLV"/>), is owned by a PCECC and it MUST be incremented by
   1 for each successive change in the PCECC's label database.  The
   Label Database Version Number MUST start at 1 and may wrap
   around.  Values 0 and 0xFFFFFFFFFFFFFFFF are reserved.  If either of
   the two values are used during LABEL-DB synchronization, the
   PCC speaker receiving this node should send back a PCErr with Error-type TBD1 Error-value 3 'Received an invalid
   Label Database Version Number', and close the PCEP session.  Operations that
   trigger a change to the Label database include an addition or deletion of labels that
   would trigger a label update to the PCC.</t>

   <t>LABEL-DB synchronization avoidance is advertised on a PCEP session
   during session startup using the INCLUDE-LABEL-DB-VERSION (I) bit in the
   PCECC capability TLV (see <xref target="SEC_PCECC_CAP"/>).
   The PCEP peer MAY include the SPEAKER-ENTITY-ID TLV described in <xref target="I-D.ietf-pce-stateful-sync-optimizations"/>
   in the OPEN message to identify the peer in case of IP address change.</t>

   <t>If both PCEP speakers set the I flag in the OPEN object's PCECC Capability TLV
   to 1, the PCECC MUST include the LABEL-DB-VERSION TLV
   in each LABEL object of the PCLabelUpd message.  If the LABEL-DB-VERSION TLV
   is missing in a PCLabelUpd message, the PCC will generate an error with
   Error-Type 6 (mandatory object missing) and Error-Value TBD2
   'LABEL-DB-VERSION TLV missing' and close the
   session.  If LABEL-DB synchronization avoidance has not been enabled on
   a PCEP session, the PCECC SHOULD NOT include the LABEL-DB-VERSION TLV in
   the LABEL Object and the PCC SHOULD ignore it were it to receive one.</t>

   <t>If a PCC's label database survived the restart of a PCEP session,
   the PCC will include the LABEL-DB-VERSION TLV in its OPEN object, and
   the TLV will contain the last Label Database Version Number
   received on an Label Update from the PCECC in the previous PCEP
   session.  If a PCECC's Label Database survived the restart of a
   PCEP session, the PCECC will include the LABEL-DB-VERSION TLV in its OPEN
   object and the TLV will contain the latest Label Database Version
   Number.  If a PCEP speaker's label database did not survive the
   restart of a PCEP session, the PCEP speaker MUST NOT include the LABEL-DB-VERSION TLV in the OPEN object.</t>

   <t>If both PCEP speakers include the LABEL-DB-VERSION TLV in the OPEN
   Object and the TLV values match, the PCECC MAY skip LABEL-DB
   synchronization.  Otherwise, the PCECC MUST perform full LABEL-DB
   synchronization (see <xref target="SEC_FULL_LABEL_DB"/>) or incremental LABEL-DB synchronization
   (see <xref target="SEC_OPT_LABEL_DB_INC"/>) to the PCC,  Incase, the PCECC attempts to skip LABEL-DB synchronization,
   by setting the SYNC Flag to 0 on the first Label Update
   from the PCECC, the PCC MUST send back a PCErr with Error-type TBD1
   (Label Database Synchronization Error) and Error-value 4(Label Database Version mismatch),
   and close the PCEP session.</t>

   <t>If LABEL-DB synchronization is required, then prior to completing the
   initialization phase, the PCC MUST mark any labels in the label database
   that were previously updated by the PCECC as stale.  When the PCECC
   updates a label during LABEL-DB synchronization, if the label already
   exists in the label database, the PCC MUST update the label database and
   clear the stale marker from the label.  When it has finished LABEL-DB
   synchronization, the PCECC MUST immediately send an end of
   synchronization marker.  The end of synchronization marker is a Path
   Computation Label Update (PCLabelUpd) message with a SRP object
   containing the SYNC flag set to 0 (see <xref target="SEC_SRP_OBJ"/>)
   and Label as 0 in the LABEL object.
   The LABEL-DB-VERSION TLV MUST be included in this PCLabelUpd message.
   On receiving this Label Update, the PCC MUST purge any labels from the label
   database that are still marked as stale.</t>

   <t>Note that a PCECC/PCC MAY force LABEL-DB synchronization by not including
   the LABEL-DB-VERSION TLV in its OPEN object.</t>

   <t><xref target="SEC_OPT_LABEL_DB_AVOID_SKIP"/> shows an example sequence where the LABEL-DB synchronization is
   skipped.</t>
   <t>
          <figure title="LABEL-DB synchronization Skipped" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_OPT_LABEL_DB_AVOID_SKIP">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[
          +-+-+-+                         +-+-+
          |PCECC|                         |PCC|
          +-+-+-+                         +-+-+
             |                 ,----Open---|
             |                /   DBv=35   |
             |--Open--,      /     I=1     |
             |  DBv=35 \    /              |
             |    I=1   \  /               |
             |           \/                |
             |           /\                |
             |          /   `------------->| (OK to skip sync)
 (Skip sync) |<--------`                   |
             |            .                |
             |            .                |
             |            .                |
             |                             |
             |--PCLabelUpd,DBv=36,SYNC=0-->| (Regular
             |                             |  Label Update)
             |--PCLabelUpd,DBv=37,SYNC=0-->| (Regular
             |                             |  Label Update)
             |--PCLabelUpd,DBv=38,SYNC=0-->|
             |                             |
]]></artwork>
          </figure>
        </t>
        <t><xref target="SEC_OPT_LABEL_DB_AVOID_PERF"/> shows an example sequence where the LABEL-DB synchronization is
   performed due to label database version mismatch during the PCEP
   session setup.  Note that the same LABEL-DB synchronization sequence
   would happen if either the PCC or the PCECC would not include the LABEL-
   DB-VERSION TLV in their respective Open messages.</t>
        <t>
          <figure title="LABEL-DB synchronization Performed" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_OPT_LABEL_DB_AVOID_PERF">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[
        +-+-+-+                         +-+-+
        |PCECC|                         |PCC|
        +-+-+-+                         +-+-+
           |                 ,----Open---|
           |                /   DBv=35   |
           |--Open--,      /     I=1     |
           |  DBv=39 \    /              |
           |    I=1   \  /               |
           |           \/                |
           |           /\                |
           |          /   `------------->| (Expect sync)
 (Do sync) |<--------`                   |
           |                             |
           |--PCLabelUpd,DBv=39,SYNC=1-->| (Sync start)
           |            .                |
           |            .                |
           |            .                |
           |--PCLabelUpd,DBv=39,SYNC=0-->| (Sync done)
           |            .                |(Purge Label
           |            .                | if applicable)
           |            .                |
           |--PCLabelUpd,DBv=40,SYNC=0-->| (Regular
           |                             |  Label Update)
           |--PCLabelUpd,DBv=41,SYNC=0-->| (Regular
           |                             |  Label Update)
           |--PCLabelUpd,DBv=42,SYNC=0-->|
           |                             |

]]></artwork>
          </figure>
        </t>
        <t><xref target="SEC_OPT_LABEL_DB_AVOID_SKIP_1"/> shows an example sequence where the LABEL-DB synchronization is
   skipped, but because one or both PCEP speakers set the I Flag to 0,
   the PCECC does not send LABEL-DB-VERSION TLVs in subsequent PCLabelUpd
   messages to the PCC.  If the current PCEP session restarts, the PCEP
   speakers will have to perform full LABEL-DB synchronization, since the PCC
   does not know the PCECC's latest Label Database Version Number
   information.</t>
   <t>
           <figure title="LABEL-DB Synchronization Skipped, no LABEL-DB-VERSION TLVs sent
                                 from PCECC" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_OPT_LABEL_DB_AVOID_SKIP_1">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[

         +-+-+-+                         +-+-+
         |PCECC|                         |PCC|
         +-+-+-+                         +-+-+
            |                 ,----Open---|
            |                /   DBv=43   |
            |--Open--,      /     I=0     |
            |  DBv=43 \    /              |
            |    I=0   \  /               |
            |           \/                |
            |           /\                |
            |          /   `------------->| (OK to skip sync)
(Skip sync) |<--------`                   |
            |            .                |
            |            .                |
            |            .                |
            |------PCLabelUpd,SYNC=0----->| (Regular
            |                             |  Label Update)
            |------PCLabelUpd,SYNC=0----->| (Regular
            |                             |  Label Update)
            |------PCLabelUpd,SYNC=0----->|
            |                             |
]]></artwork>
          </figure>
        </t>
        </section>

        <section title="Incremental LABEL-DB Synchronization Procedure" anchor="SEC_OPT_LABEL_DB_INC">
		<t>If a PCC restarts and its label database survived, PCECC with
   mismatched Label Database Version Number will send all their Labels
   information (full LABEL-DB) to the PCC, even if only a small number of
   changes happened.  It can take a long time and consume large communication
   channel bandwidth. </t>
        <t>This section extends the idea to only synchronize the delta (changes) in case of
        Label Database Version Number of both PCEP peers is non-zero and mismatch.</t>
        <t>If both PCEP speakers include the LABEL-DB-VERSION TLV in the OPEN
   object and the LABEL-DB-VERSION TLV values match, the PCECC MAY skip
   LABEL-DB synchronization.  Otherwise, the PCECC MUST perform LABEL-DB
   synchronization.  Incremental label database synchronization capability is
   advertised on a PCEP session during session startup using the DELTA-LABEL-SYNC-CAPABILITY (D) bit in the capabilities TLV (see <xref target="SEC_PCECC_CAP"/>).
   Instead of dumping full LABEL-DB to the PCC again, the PCECC
   synchronizes the delta (changes) as described in <xref target="SEC_INC_LABEL-DB_FIG"/> when D flag
   and I flag is set to 1 by both PCC and PCECC.  Other combinations of D
   and I flags setting by PCC and PCECC result in full LABEL-DB
   synchronization procedure as described in
   <xref target="SEC_FULL_LABEL_DB"/>.  The PCECC MAY force a full LABEL-DB
   synchronization by setting the D flag to zero in the OPEN message.</t>
   <t>
           <figure title="Incremental Synchronization Procedure" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_INC_LABEL-DB_FIG">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[

          +-+-+-+                         +-+-+
          |PCECC|                         |PCC|
          +-+-+-+                         +-+-+
             |                 ,----Open---|
             |                /   DBv=35   |
             |--Open--,      /     I=1     |
             |  DBv=39 \    /      D=1     |
             |    I=0   \  /               |
             |           \/                |
             |           /\                |
             |          /   `------------->| (Expect Delta sync)
    (Do sync)|<--------`                   | (DONOT Purge Label)
    (Delta)  |                             |
             |                             |
(Delta       |--PCLabelUpd,DBv=39,SYNC=1-->|
Sync starts) |            .                |
             |            .                |
             |            .                |
             |            .                |
             |--PCLabelUpd,DBv=39,SYNC=0-->| (Sync done)
             |                             |
             |                             |
             |--PCLabelUpd,DBv=40,SYNC=0-->| (Regular
             |                             |  Label Update)
             |--PCLabelUpd,DBv=41,SYNC=0-->| (Regular
             |                             |  Label Update)
             |--PCLabelUpd,DBv=42,SYNC=0-->|
             |                             |
]]></artwork>
          </figure>
          </t>
    <t>As per <xref target="SEC_OPT_LABEL_DB_AVOID"/>, the Label Database Version Number is
   incremented each time a change is made to the PCECC's label
   database.  Each label is associated with the DB version at the time of
   its addition.  This is needed to determine which label and what
   information needs to be synchronized in incremental LABEL-DB
   synchronization.</t>

   <t>It is not necessary for a PCECC to store a complete history of label
   database change, but rather remember the labels (including
   label addition and deletion) that happened between the PCEP
   session(s) restart in order to carry out incremental LABEL-DB
   synchronization.  After the synchronization procedure finishes, the
   PCECC can dump this history information.  In the example shown in
   <xref target="SEC_INC_LABEL-DB_FIG"/>, the PCECC needs to store the label changes that happened
   between DB Version 35 to 39 and synchronizes these changes only when
   performing incremental label update.  So a PCECC needs to remember
   at least the label changes that happened after an existing PCEP
   session with a PCC goes down to have any chance of doing
   incremental synchronization when the session is re-established.</t>

   <t>If a PCECC finds out it does not have sufficient information to
   complete incremental synchronization after advertising incremental
   LABEL-DB synchronization capability, it MUST send a PCErr with
   Error-Type TBD1 and Error-Value 5 'A PCECC indicates to a PCC that it can
   not complete the LABEL-DB synchronization' and terminate the session.  The PCECC
   SHOULD re-establish the session with the D bit set to 0 in the OPEN
   message.</t>

   <t>The other procedures and error checks remain unchanged from the full
   LABEL-DB synchronization defined in <xref target="SEC_FULL_LABEL_DB"/>.</t>
    </section>
	</section>

    <section title="PCEP Extensions">
        <section title="Extension of SRP object" anchor="SEC_SRP_OBJ">
			<t>SRP object is defined in <xref target="I-D.ietf-pce-stateful-pce"/> and extended in
			<xref target="I-D.ietf-pce-pce-initiated-lsp"/>. This draft defines a new 'SYNC' flag
			(S bit) to specify the LABEL-DB synchronization operation.</t>

			<t> The format of the SRP object is shown <xref target="SEC_SRP_OBJ_FIG"/>:</t>
		<t>
           <figure title="SRP Object format" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_SRP_OBJ_FIG">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[


  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                          Flags                            |S|R|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        SRP-ID-number                          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 //                      Optional TLVs                          //
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
        </t>

			<t>S (SYNC - 1 bit):  The S Flag MUST be set to 1 on each PCLabelUpd sent
		  from a PCECC during LABEL-DB Synchronization.  The S Flag MUST be set
		  to 0 in other messages sent from the PCECC.</t>
        </section>

        <section title="Extension of PCECC Capability TLV" anchor="SEC_PCECC_CAP">
			<t>PCECC Capability TLV is defined in <xref target="I-D.zhao-pce-pcep-extension-for-pce-controller"/>.
			This draft defines a new 'INCLUDE-LABEL-DB-VERSION' flag (I bit) to specify
			the label database version capability  and 'DELTA-LABEL-SYNC-CAPABILITY' to specify the
			incremental label database synchronization capability.</t>

			<t> The format of the PCECC Capability TLV is shown <xref target="SEC_PCECC_CAP_FIG"/>:</t>
		<t>
           <figure title="PCECC Capability TLV" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_PCECC_CAP_FIG">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[


  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |               Type            |            Length=4           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                       |D|I|S|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
        </t>

			<t>I (INCLUDE-LABEL-DB-VERSION - 1 bit):  if set to 1 by both PCEP Speakers,
			the PCECC will include the LABEL-DB-VERSION TLV in each LABEL Object.</t>

			<t>D (DELTA-LABEL-SYNC-CAPABILITY - 1 bit):  if set to 1 by a PCEP
			speaker, it indicates that the PCEP speaker allows incremental
			(delta) LABEL-DB synchronization.</t>
        </section>

        <section title="New LABEL-DB-VERSION TLV" anchor="SEC_LABEL_DB_VER_TLV">
			 <t>The Label Database Version Number (LABEL-DB-VERSION) TLV is an
			optional TLV that MAY be included in the OPEN object and the LABEL
			object.</t>

			<t>The format of the LABEL-DB-VERSION TLV is shown in the following figure:</t>
		<t>
          <figure title="LABEL-DB-VERSION TLV format" suppress-title="false" align="center" alt="" width="" height="" anchor="SEC_LABEL_DB_VER_TLV_FIG">
            <artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height=""><![CDATA[

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Type=[TBD3]         |            Length=8           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Label Database Version Number                 |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
        </t>

			<t> The type of the TLV is [TBD3] and it has a fixed length of 8 octets.
			The value contains a 64-bit unsigned integer, representing the Label
			Database Version Number.</t>
        </section>
    </section>

    <section title="Manageability Considerations" toc="default">
    <t>TBD</t>
    </section>
    <section title="Security Considerations" toc="default">
    <t>TBD</t>
    </section>

    <section title="IANA Considerations" toc="default">
    <t>TBD</t>
    </section>
    <section title="Acknowledgements" toc="default">
    <t>This document borrows some of the structure and text from
    <xref target="I-D.ietf-pce-stateful-sync-optimizations"/>, and
    would like to thanks the authors and contributors of the document.
    </t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
    <?rfc include="reference.RFC.2119.xml" ?>
    <?rfc include="reference.RFC.5440.xml" ?>
    <?rfc include="reference.I-D.ietf-pce-stateful-pce"?>


    <?rfc include="reference.I-D.zhao-pce-pcep-extension-for-pce-controller"?>
    </references>
    <references title="Informative References">
    <?rfc include="reference.I-D.zhao-teas-pce-control-function"?>
    <?rfc include="reference.I-D.ietf-pce-pce-initiated-lsp"?>
    <?rfc include="reference.I-D.ietf-pce-stateful-sync-optimizations"?>
    </references>

  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 17:17:58