<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?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="std" docName="draft-chen-pce-h-connect-access-08" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="H-Connect-Access">PCEP Link State Abstraction</title>
    <author initials="H" surname="Chen" fullname="Huaimo Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street> </street>
          <city>Boston, MA</city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>Huaimo.chen@futurewei.com</email>
      </address>
    </author>

 <author initials="M" fullname="Mehmet Toy" 
            surname="Toy">
      <organization>Verizon</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code> </code>
          <country>USA</country>
        </postal>
        <email>mehmet.toy@verizon.com</email>
      </address>
 </author>


 <author initials="X" fullname="Xufeng Liu" 
            surname="Liu">
      <organization>Volta Networks</organization>
      <address>
        <postal>
          <street> </street>
          <city>McLean</city>
          <region>VA</region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

 <author initials="L" fullname="Lei Liu" 
            surname="Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>liulei.kddi@gmail.com</email>
      </address>
    </author>

  <author fullname="Zhenqiang Li" initials="Z" surname="Li">
    	<organization>China Mobile</organization>
    	<address>
        <postal>
          <street>No.32 Xuanwumenxi Ave., Xicheng District</street>
          <city>Beijing</city>
          <code>100032</code>
          <country>P.R. China</country>
        </postal>
        <email>li_zhenqiang@hotmail.com</email>
      </address>
    </author>

    <date year="2021" />
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup> 

<abstract>
<t>
This document presents extensions to 
the Path Computation Element Communication Protocol (PCEP) 
for a child PCE to abstract its domain information to its parent 
for supporting a hierarchical PCE system.
</t>
</abstract>

  </front>
  <middle>

    <section title="Introduction" toc="default">


    <t>A hierarchical PCE architecture is described in RFC 6805, in which a parent PCE maintains an abstract domain topology, which contains its child domains (seen as vertices in the topology) and the connections among them.  
</t>

    <t>For a domain for which a child PCE is responsible, connections attached to the domain may comprise inter-domain links and Area Border Routers (ABRs).  
For a parent PCE to have the abstract domain topology, each of its child PCEs needs to advertise its connections to the parent PCE. 
</t>

    <t>In addition to the connections attached to the domain, there may be some access points in the domain, which are the addresses in the domain to be accessible outside of the domain. For example, an address of a server in the domain that provides a number of services to users outside of the domain is an access point.</t>

    <t>This document presents extensions to the Path Computation Element Communication Protocol (PCEP) for a child PCE to advertise the information about its connections and access points to its parent PCE and 
for the parent PCE to build and maintain the abstract domain topology based on the information. 

    The extensions may reduce configurations, 
thus simplify operations on a PCE system. 
</t>

<t>
A child PCE is simply called a child 
and a parent PCE is called a parent in the following sections.
</t>

    </section>


    <section title="Terminology" toc="default">
    <t>
    <list style="hanging">
       <t hangText="ABR:">Area Border Router. Router used to connect two IGP areas (Areas in OSPF or levels in IS-IS).</t>

       <t hangText="ASBR:">Autonomous System (AS) Border Router. Router used to connect together ASes via inter-AS links.</t>

       <t hangText="TED:">Traffic Engineering Database.</t>
     </list>
   </t>
   <t>This document uses terminology defined in <xref target="RFC5440"/>.</t>

    </section>


    <section title="Conventions Used in This Document" 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 title="Connections and Accesses" toc="default"> 

    <t>A connection is an inter-domain link between two domains 
in general. 
An ABR is also a connection, which connects two special domains 
called areas in a same Autonomous System (AS).
</t>

    <t>An access point in a domain is an address in the domain 
to be accessible to the outside of the domain. 
An access point is simply called an access.
</t>


    <section title="Information on Inter-domain Link" toc="default"> 

    <t>An inter-domain link connects two domains 
in two different ASes.
Since there is no IGP running over an inter-domain link, 
we may not obtain the information about the link generated 
by an IGP. 
We may suppose 
that IP addresses are configured on inter-domain links. 
</t>

    <t>For a point-to-point (P2P) link connecting two ABSRs A and B 
in two different domains, 
from A's point of view, the following information about 
the link may be obtained:
<figure>
  <artwork> <![CDATA[ 
  1)  Link Type: P2P
  2)  Local IP address 
  3)  Remote IP address 
  4)  Traffic engineering metric
  5)  Maximum bandwidth 
  6)  Maximum reservable bandwidth 
  7)  Unreserved bandwidth 
  8)  Administrative group 
  9)  SRLG
  ]]>
  </artwork>
</figure>

We will have a link ID if it is configured;
otherwise no link ID (i.e., the Router ID of the neighbor) may 
be obtained since no IGP adjacency over the link is formed. 
</t>

    <t>For a broadcast link connecting multiple ASBRs 
in a number of domains, 
on each of the ASBRs X, the same information about the link 
as above may be obtained 
except for the followings:
<figure>
  <artwork> <![CDATA[ 
  a)  Link Type: Multi-access,
  b)  Local IP address with mask length, and
  c)  No Remote IP address.
  ]]>
  </artwork>
</figure>
In other words, 
the information about the broadcast link obtained by ASBR X
comprises a), b), 4) to 9), 
but does not include any remote IP address or link ID.

We will have a link ID if it is configured;
otherwise no link ID (i.e., the interface address of the designated
router for the link) may be obtained since no IGP selects it.
</t>

    <t>A parent constructs an abstract AS domain topology
after receiving the information about each of the inter-domain links 
described above from its children.
</t>

<!--
    <t>A PCE such as a child PCE can constructs a TED for the domain 
for which the PCE is responsible after receiving the information
described above 
about each of the links attached to the nodes in the domain
from the PCCs running on the nodes without running IGP.
</t>
-->

    <t>RFC 5392 and RFC 5316 describe the distributions 
of inter-domain links in OSPF and IS-IS respectively. 
For each inter-domain link, 
its neighboring AS number and 
neighboring ASBR Identity (TE Router ID) need to be configured
in IGP (OSPF or IS-IS). </t>

    <t>In addition, 
an IGP adjacency between a network node running IGP and 
a PCE running IGP as a component needs to be configured 
and fully established 
if we want the PCE to obtain the inter-domain link
information from IGP.</t>

    <t>These configurations and IGP adjacency establishment 
are not needed if the extensions in this draft are used.
</t>

    <t>RFC 7752 (BGP-LS) describes the distributions of TE link state 
information including inter-domain link state. 
A BGP peer between a network node running BGP and
a PCE running BGP as a component needs to be configured and
the peer relation must be established 
before the PCE can obtain the inter-domain link information
from BGP. 
However, some networks may not run BGP. 
</t>

    </section>


    <section title="Information on ABR" toc="default"> 
    <t>For an AS running IGP and containing multiple areas,  
an ABR connects two or more areas. 
For each area connected to the ABR, 
the PCE as a child responsible for the area sends its parent
the information about the ABR, 
which indicates the identifier (ID) of the ABR. 
</t>

    <t>A parent has the information about each of its children,
which includes the domain such as the area 
for which the child is responsible. 
The parent knows all the areas to which each ABR connects
after receiving the information on the ABR from each of its children.
</t>
    </section>


    <section title="Information on Access Point" toc="default"> 
    <t>For an IP address in a domain to be accessible outside 
of the domain, 
the PCE as a child responsible for the domain sends its parent
the information about the address. 
</t>

    <t>The parent has all the access points (i.e., IP addresses) 
to be accessible outside of all its children' domains
after receiving the information on the access points 
from each of its children.
</t>
    </section>

    </section>



    <section title="Extensions to PCEP" toc="default"> 
<!-- 
    <t>This section describes the extensions to PCEP 
for a child to abstract its domain information 
to its parent, 
which includes inter-domain links, ABRs and access points. 
</t>
-->

    <t>This section focuses on procedures for abstracting domain
information after briefing messages containing the abstract 
information.
</t>

    <section title="Messages for Abstract Information" toc="default">

    <t>A child abstracts its domain to its parent through
sending its parent a message containing the abstract information
on the domain. 
After the relation between the child and the parent is determined, 
the parent has some information on the child, which includes
the child's ID and domain.
The message does not need to contain this information.
It comprises the followings:

<list style="hanging">
  <t hangText="o"> For new or updated Connections and Accesses, 

  <list style="hanging">
    <t hangText="*"> Indication of Update Connections and Accesses</t>
    <t hangText="*"> Detail Information about Connections and Accesses</t>
  </list> </t>

  <t hangText="o"> For Connections and Accesses down,
  <list style="hanging">
    <t hangText="*"> Indication of Withdraw Connections and Accesses</t>
    <t hangText="*"> ID Information about Connections and Accesses</t>
  </list> </t>
</list>
</t>

    <t>For a P2P link from ASBR A to B and a broadcast link connecting to A, 
the detail information on the links includes 
A's ID, the information on the P2P link and 
the information on the broadcast link 
described in Section 4.
The ID information on the links includes
A's ID, 1) to 3) for the P2P link and a) to b) for the broadcast link
described in Section 4. 
A link ID for a link is included if it is configured.
</t>

    <t>For an ABR X, 
the information on X includes X's ID and a flag indicating that X is ABR.
</t>
 
    <t>For an Access X (address), 
the detail information on X includes X and a cost associated with it.
The ID information on X is X itself.
</t>

    <t>There are a few ways to encode the information above 
into a message. 
For example, one way is to extend an existing Notification message for
including the information. 
Another way is to use a new message. 
These are put in Appendix A for your reference.
</t>



</section>


    <section title="Procedures" toc="default"> 

    <section title="Child Procedures" toc="default"> 

    <section title="New or Changed Connections and Accesses" toc="default"> 

    <t>After a child determines its parent, it sends the parent 
a message containing the information about 
the connections (i.e., inter-domain links and ABRs) 
from its domain to its adjacent domains and 
the access points in its domain.</t>

    <t>For any new or changed inter-domain links, ABRs and 
access points in the domain for which a child is responsible,
the child sends its parent a message containing the information 
about these links, ABRs and access points
with indication of Update Connections and Accesses.
</t>

    <t>For example, for a new inter-domain P2P link 
from ASBR A in a child's domain to ASBR B in another domain,
the child sends its parent a message containing 
an indication of Update Connections and Accesses,
A's ID, and the detail information on the link described 
in section 4.1.
</t>

    <t>For multiple new or changed inter-domain links from ASBR A, 
the child sends its parent a message having 
an indication of Update Connections and Accesses,
and A's ID  
followed by the detail information about each of the links.
</t>

    <t>In another example,
for a new or changed inter-domain broadcast link connected
to ASBR X, an ABR Y and an access point 10.10.10.1/32 with cost 10
in a child's domain, 
the child sends its parent a message containing 
an indication of Update Connections and Accesses,
and X's ID 
followed by the detail information about the link attached to X 
and the detail information about ABR Y, and
the information on access 10.10.10.1/32 with cost 10.
</t>

    <t>For changes on the attributes (such as bandwidth) 
of an inter-domain link, 
a threshold may be used to control the frequency of updates
that are sent from a child to its parent.
At one extreme, the threshold is set to let 
a child send its parent a update message for any change on
the attributes of an inter-domain link.
At another extreme, the threshold is set to make 
a child not to send its parent any update message 
for any change on the attributes of an inter-domain link.
Typically, the threshold is set to allow 
a child to send its parent a update message 
for a significant change 
on the attributes of an inter-domain link.
</t>
</section>

    <section title="Connections and Accesses Down" toc="default"> 

    <t>For any inter-domain links, ABRs and access points down 
in the domain for which a child is responsible,
the child sends its parent a message containing the information 
about these links, ABRs and access points 
with indication of Withdraw Connections and Accesses.
</t>

<t>For example, for the inter-domain P2P link 
from ASBR A down,
the child sends its parent a message containing 
an indication of Withdraw Connections and Accesses,
and A's ID, which is 
followed by the ID information about the link.
</t>

<t>For multiple inter-domain links from ASBR A down, 
the child sends its parent a message having 
an indication of Withdraw Connections and Accesses,
and A's ID, which is  
followed by the ID information about each of the links.
</t>
</section>

     <section title="Child and Parent in Same Organization" toc="default"> 

    <t>If a child and its parent are in a same organization, 
the child may send its parent the information inside its domain.
For a parent, 
after all its children in its organization send their parent
the information in their domains, connections and access points,
it has in its TED the detail information inside each of 
its children's domains and the connections among these domains.
The parent can compute a path crossing these domains directly 
and efficiently
without sending any path computation request to its children.  
</t>
</section>

    <section title="Child as a Parent" toc="default"> 

    <t>There are a few ways in which a child as a parent 
abstracts its domain information to its parent.
</t>

    <t>One way is that the child sends its parent
all its domain information 
if the child and the parent are in a same organization.
The information includes the detail network topology 
inside each of the child's domains, 
the inter-domain links connecting the domains 
that the child's children are responsible
and the inter-domain links connecting these domains to other
adjacent domains.
</t>

    <t>In another way, the child abstracts 
each of the domains that its children are responsible
as a cloud (or say abstract node) and 
these clouds are connected by the inter-domain
links attached to the domains.
The child sends its parent 
all the inter-domain links attached to any of the domains.
</t>

    <t>In a third way, the child abstracts 
all its domains including the domains 
for which its children are responsible
as a cloud. 
This abstraction is described below in details.
</t>

    <t>If a parent P1 is also a child of another parent P2, 
P1 as a child sends its parent P2 a message containing 
the information about the connections and access points. 
P1 as a parent has the connections among its children's domains.
But these connections are hidden from its parent P2. 
P1 may have connections from its children's domains to other domains. 
P1 as a child sends its parent P2 these connections.
</t>

    <t>P1 as a parent has the access points in its children's 
domains to be accessible outside of the domains. 
P1 as child may not send all of these to its parent P2. 
It sends its parent some of these access points 
according to some local policies.
</t>

    <t>From P2's point of view, its child P1 is responsible 
for one domain, which has some connections to its adjacent 
domains and some access points to be accessible.
</t>
</section>
</section>

    <section title="Parent Procedures" toc="default"> 

    <section title="Process Connections and Accesses" toc="default"> 

    <t>A parent stores into its TED 
the connections and accesses for each of its children 
according to the messages containing connections and 
accesses received. 
For a message containing Update Connections and Accesses, 
it updates the connections and accesses in the TED accordingly.
For a message containing Withdraw Connections and Accesses,
it removes the connections and accesses from the TED.
</t>

    <t>After receiving the messages for connections and accesses
from its children, 
the parent builds and maintains the TED 
for the topology of its children's domains, 
in which each of the domains is seen as a cloud or an abstract node. 
The information inside each of the domains is hidden from the parent. 
There are connections among the domains and 
the access points in the domains to be accessible in the topology. 
</t>

    <t>For a new P2P link from node A to B with no link ID configured,
when receiving a message containing the link from a child,
the parent stores the link from A into its TED, 
where A is attached to the child's domain as a cloud.
It finds the link's remote end B using the remote IP address of the link.  
After finding B, it associates the link attached to A
with B and the link attached to B with A.  
This creates a bidirectional connection between A and B.
</t>

    <t>For a new P2P link from node A to B with link ID configured,
when receiving a message containing the link,
the parent stores the link from A into its TED.
It finds the link's remote end B using the link ID (i.e., B's ID). 
</t>

    <t>For a new broadcast link connecting multiple nodes with no link ID
configured, when the parent receives a message containing the link 
attached to node X, it stores the link from X into its TED.  
It finds the link's remote end P
using the link's local IP address with network mask. P is a Pseudo
node identified by the local IP address of the designated node
selected from the nodes connected to the link. After finding P, it
associates the link attached to X with P and 
the link connected to P with X. 
If P is not found, a new Pseudo node P is created.
The parent associates the link attached to X with P and 
the link attached to P with X.
This creates a bidirectional connection between X and P.
</t>

    <t>The first node and second node from which the parent receives 
a message containing the link is selected as the designed node and 
backup designed node respectively. After the designed node is down, the
backup designed node becomes the designed node and the node other
than the designed node with the largest local IP address connecting
to the link is selected as the backup designed node.
</t>

    <t>When the old designed node is down and the backup designed node
becomes the new designed node, the parent updates its TED through
removing the link between each of nodes X and old P (the Pseudo node
corresponding to the old designed node) and adding a link between
each of nodes X (still connecting to the broadcast link) and new P
(the Pseudo node corresponding to the new designed node).
</t>
</section>


    <section title="Detail Topology in a Domain" toc="default"> 

    <t>If a parent is in a same organization as its child,
it stores into its TED the detail information inside the child's 
domain when receiving a message containing the information
from the child; 
otherwise, it discards the information and issues a warning
indicating that the information is sent to a wrong place.
</t>

</section>


<!--
    <section title="Multiple Domains as a Cloud" toc="default"> 
</section>

    <t>For example, for a new inter-domain P2P link
from ASBR A to ASBR B 
in a message received from a child responsible for a domain,
the parent adds the link into the TED.
It tries to find the remote router B of the link through matching 
the remote IP address on A with the local IP address on B 
for the link and vice versa.
If a match is found, it creates a pointer pointing to B from A
and a pointer pointing to A from B.
</t>

    <t>For a new inter-domain broadcast link attached to ASBR X 
in a message received from a child responsible for a domain,
the parent adds the link into the TED and 
associates node X with the other nodes attached to the link.
</t>
-->

<!--
<t>
In one way, it creates a pseudo node P in the TED through 
using the local IP address and the mask length in the message.
Node P is identified by the masked local IP address
(i.e., the first mask length bits of the local IP address).
A link from node X to P is created with the information 
in the message. 
A link from node P to X is also created and assumed with 0 metric and 
unlimited resources. 
For each of the other nodes attached to the broadcast link,
a link from it to P is created with the information in a message,
and a link from P to it is created and assumed with 0 metric and 
unlimited resources.
There is a count associated with node P, 
which records the number of nodes attached to the broadcast link.
Initially, the count is zero.
When a node such as node X is added, 
the count is increased by one.
When a node is removed from the broadcast link,
the count is decreased by one.
When the count is decreased to zero, 
node P is removed with the count.
</t>  

    <t>In another way, 
the parent creates a pseudo node P in the TED through 
using the local IP address and the router ID of 
the first node attached to the broadcast link received 
in a message.
Node P is identified by the combination of 
the router-ID and the local IP address.
A link from node X to P is created with the information 
in the message. 
A link from node P to X is also created and assumed with 0 metric and 
unlimited resources. 
For each of the other nodes attached to the broadcast link,
a link from it to P is created with the information in a message,
and a link from P to it is created and assumed with 0 metric and 
unlimited resources.

Node X and the other nodes attached to the broadcast link
are stored and associated with node P.

When the first node is down, 
another node attached to the link is selected and 
the combination of the local IP address and the router-ID of 
this node is used to identify node P. 
When the last node attached to the link is down,
node P is removed.
</t>  
-->

</section>

</section>


</section>  
 


    <section title="Security Considerations" toc="default">
    <t> The mechanism described in this document does not raise any new security issues for the PCEP protocols.</t>
    </section>


    <section title="IANA Considerations" toc="default">
      <t>This section specifies requests for IANA allocation.</t>
    </section>
    
    
    <section title="Acknowledgement" toc="default">
      <t>The authors would like to thank Jescia Chen, Adrian Farrel, 
and Eric Wu  for their valuable comments on this draft.</t>
    </section>


  </middle>
  <back>
    <references title="Normative References">
    <?rfc include="reference.RFC.2119.xml" ?>
    <?rfc include="reference.RFC.6805.xml" ?>
    <?rfc include="reference.RFC.5440.xml" ?>
    <?rfc include="reference.RFC.3630.xml" ?>

    </references>
    <references title="Informative References">
<!--
      <?rfc include="reference.RFC.4105.xml" ?>
      <?rfc include="reference.RFC.4216.xml" ?>
      <?rfc include="reference.RFC.4655.xml" ?>
-->
      <?rfc include="reference.RFC.5305.xml" ?>
      <?rfc include="reference.RFC.5392.xml" ?>
      <?rfc include="reference.RFC.5316.xml" ?>
      <?rfc include="reference.RFC.7752.xml" ?>

       
    </references>

<section title="Message Encoding" toc="default">

    <section title="Extension to Existing Message" toc="default">
 
    <t>An existing Notification message may be extended 
to advertise the information about connections and access points. 
The following new Notification-type (NT) and Notification-value (NV) 
of a NOTIFICATION object in the message are defined:

<list style="hanging">
  <t hangText="o"> NT=8 (TBD): Connections and Accesses 

  <list style="hanging">
    <t hangText="*"> NV=1: Update Connections and Accesses. 
A NT=8 and NV=1 indicates that the
child sends its parent updates on the information 
about Connections and Accesses, and 
TLVs containing the information are in the object.
</t>

    <t hangText="*"> NV=2: Withdraw Connections and Accesses.
A NT=8 and NV=2 indicates that the
child asks its parent to remove Connections and Accesses 
indicated by TLVs in the object.</t>
  </list> </t>
</list>
</t> 


    <section title="TLVs" toc="default">

    <t>Four TLVs are defined for connections and accesses. 
They are Inter-Domain link TLV, Router-ID TLV,
Access IPv4/IPv6 Prefix TLV.
</t>

    <t>The format of the Inter-Domain link TLV is illustrated below.
<figure>
  <artwork> <![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 (tTBD1)          |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 Inter-Domain Link Sub-TLVs                    |
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
An Inter-Domain link TLV describes a single inter-domain link. 
It comprises a number of inter-domain link sub-TLVs 
for the information described in section 4, 
which are the sub-TLVs defined in RFC 3630 or their equivalents
except for the local IP address with mask length defined below.  
</t>

    <t>The format of the Router-ID TLV is shown below.
Undefined flags MUST be set to zero. 
The ID indicates the ID of a router.
For a router running OSPF, the ID may be the 32-bit OSPF router ID
of the router.
For a router running IS-IS, the ID may be the 48-bit IS-IS router ID
of the router.
For a router not running OSPF or IS-IS, 
the ID may be the 32-bit ID of the router configured.
<figure>
  <artwork> <![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 (tTBD2)          |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |B|E|I|      Flags              |                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
  |                          32-bit/48-bit ID                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  Flag B:     Set to 1 indicating ABR (B is for Border)
  Flag E:     Set to 1 indicating ASBR (E is for External)
  Flag I:     Set to 1 indicating ID of local router (I is for ID)
  ]]>
  </artwork>
</figure>
</t>

    <t>The format of the Access IPv4/IPv6 Prefix TLV is shown as follows.
The cost is the metric to the prefix.
The Prefix Length indicates the length of the prefix.
The IPv4/IPv6 Prefix indicates an access IPv4/IPv6 address prefix.
<figure>
  <artwork> <![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 (tTBD3/tTDB4)      |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              cost                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Prefix Length | IPv4/IPv6 Prefix (variable)                   ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
</t>

<!--
    <t>The format of the Access IPv6 Prefix TLV is illustrated below.
The cost is the metric to the prefix.
The Prefix Length indicates the length of the IPv6 prefix.
The IPv6 Prefix indicates an access IPv6 address prefix.
<figure>
  <artwork> <![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 (tTBD4)          |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              cost                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Prefix Length | IPv6 Prefix (variable)                        ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
</t>
-->
</section>


    <section title="Sub-TLVs" toc="default">

    <t>The format of the Sub-TLV for a local IPv4/IPv6 address with
mask length is shown as follows.
<figure>
  <artwork> <![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 (stTBD1/stTBD2)     |             Length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                       IPv4/IPv6 Address                       ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Mask Length  |
  +-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
The IPv4/IPv6 Address indicates the local IPv4/IPv6 address of a link.
The Mask Length indicates the length of the IPv4/IPv6 address mask.
</t>

</section>
</section>


    <section title="New Message" toc="default"> 

    <t>A new message may be defined to advertise the connections 
and accesses from a child to its parent. 

The format of the message containing Connections and 
Access (AC for short) is as follows:
<figure>
  <artwork> <![CDATA[ 
  <AC Message> ::= <Common Header> <NRP>
                   <Connection-List> [<Access-List>]
  where:
    <Connection-List> ::= <Connection> [<Connection-List>]
    <Connection> ::= [<Inter-Domain-Link> | <ABR>]
    <Access-List> ::= <Access-Address> [<Access-List>]
  ]]>
  </artwork>
</figure>
Where the value of the Message-Type in the Common Header 
indicates the new message type. 
The exact value is to be assigned by IANA. 
A new RP (NRP) object will be defined, 
which follows the Common Header. 
</t>

    <t>A new flag W (Withdraw) in the NRP object is defined 
to indicate whether the connections and access are withdrawn. 
When flag W is set to one, the parent removes the connections 
and accesses contained in the message after receiving it. 
When flag W is set to zero, the parent adds/updates 
the connections and accesses in the message after receiving it. 
</t>

    <t>An alternative to flag W in the NRP object is a similar flag 
in each CONNECTION and ACCESS object 
such as using one bit in Res flags for flag W. 
For example, when the flag is set to one in the object, 
the parent removes the connections and accesses in the object 
after receiving it. 
When the flag is set to zero in the object,
the parent adds/updates the connections and accesses 
in the object after receiving it.
</t>

    <t>In another option, one byte in a CONNECTION and ACCESS Object
is defined as flags field and one bit is used as flag W. 
The other undefined bits in the flags field MUST be set to zero.
</t>
 
    <t>The objects in the new message are defined below.
</t>

    <section title="CONNECTION and ACCESS Object" toc="default"> 

    <t>A new object, called CONNECTION and ACCESS Object
(CA for short), is defined. It has Object-Class ocTBD1. 
Four Object-Types are defined under CA object:
  <list style="hanging">
    <t hangText="  o">CA Inter-Domain Link: CA Object-Type is 1.</t>
    <t hangText="  o">CA ABR: CA Object-Type is 2.</t>
    <t hangText="  o">CA Access IPv4 Prefix: CA Object-Type is 3.</t>
    <t hangText="  o">CA Access IPv6 Prefix: CA Object-Type is 4.</t>
  </list>
Each of these objects are described below.
</t>
 
    <t>The format of Inter-Domain Link object body is as follows:
<figure>
  <artwork> <![CDATA[
     Object-Class = ocTBD1 (Connection and Access)  
     Object-Type = 1 (CA Inter-Domain Link)
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |W|    Flags    |             Router-ID TLV                     |
  +-+-+-+-+-+-+-+-+                                               +
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Inter-Domain Link TLVs                   |
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
The Router-ID TLV indicates an ASBR in the domain, 
which is a local end of inter-domain links.
Each of the Inter-Domain Link TLVs describes an inter-domain link 
and comprises a number of inter-domain link Sub-TLVs.
Flag W=1 indicates withdraw the links.
W=0 indicates new or changed links.
</t>

    <t>The format of ABR object body is illustrated below:
<figure>
  <artwork> <![CDATA[
     Object-Class = ocTBD1 (Connection and Access)  
     Object-Type = 2 (CA ABR)
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |W|    Flags    |             Router-ID TLVs                    |
  +-+-+-+-+-+-+-+-+                                               +
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
Each of the Router-ID TLVs indicates an ABR in the domain.
Flag W=1 indicates withdraw the ABRs.
W=0 indicates new ABRs.
</t>

    <t>The format of Access IPv4/IPv6 Prefix object body is as follows:
<figure>
  <artwork> <![CDATA[
     Object-Class = ocTBD1 (Connection and Access)  
     Object-Type = 3/4 (CA Access IPv4/IPv6 Prefix)
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |W|    Flags    |           Access IPv4/IPv6 Prefix TLVs        |
  +-+-+-+-+-+-+-+-+                                               +
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
Each of the Access IPv4/IPv6 Prefix TLVs describes an access IPv4/IPv6 address 
prefix in the domain, which is accessible to outside of the domain.
Flag W=1 indicates withdraw the address prefixes.
W=0 indicates new address prefixes.
</t>

<!--
    <t>The format of Access IPv6 Prefix object body is shown below:
<figure>
  <artwork> <![CDATA[
     Object-Class = ocTBD1 (Connection and Access)  
     Object-Type = 4 (CA Access IPv6 Prefix)
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |W|    Flags    |           Access IPv6 Prefix TLVs             |
  +-+-+-+-+-+-+-+-+                                               +
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]>
  </artwork>
</figure>
Each of the Access IPv6 Prefix TLVs describes an access IPv6 address 
prefix in the domain, which is accessible to outside.
Flag W=1 indicates withdraw the prefixes.
W=0 indicates new prefixes.
</t>
-->

<t>The TLVs in the objects are the same as those described above.
</t>

</section>


</section> 

</section> 



  </back>
</rfc>