home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-ion-tn-00.txt < prev    next >
Text File  |  1997-03-24  |  82KB  |  1,860 lines

  1.  
  2. Internet-Draft                                       Grenville Armitage
  3.                                                              (Bellcore)
  4.                                                          Peter Schulter
  5.                                                                      ()
  6.                                                             Markus Jork
  7.                                                        Geraldine Harter
  8.                                                               (Digital)
  9.                                                          March 20, 1997
  10.  
  11.  
  12.                  Transient Neighbors for IPv6 over ATM
  13.                        <draft-ietf-ion-tn-00.txt>
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.    This document was submitted to the IETF Internetworking over NBMA
  19.    (ION) WG.  Publication of this document does not imply acceptance by
  20.    the ION WG of any ideas expressed within.  Comments should be
  21.    submitted to the ion@nexen.com mailing list.
  22.  
  23.    Distribution of this memo is unlimited.
  24.  
  25.    This memo is an internet draft. Internet Drafts are working documents
  26.    of the Internet Engineering Task Force (IETF), its Areas, and its
  27.    Working Groups. Note that other groups may also distribute working
  28.    documents as Internet Drafts.
  29.  
  30.    Internet Drafts are draft documents valid for a maximum of six
  31.    months. Internet Drafts may be updated, replaced, or obsoleted by
  32.    other documents at any time. It is not appropriate to use Internet
  33.    Drafts as reference material or to cite them other than as a "working
  34.    draft" or "work in progress".
  35.  
  36.    To learn the current status of any Internet-Draft, please check the
  37.    "lid-abstracts.txt" listing contained in the Internet-Drafts shadow
  38.    directories on ds.internic.net (US East Coast), nic.nordu.net
  39.    (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  40.    Rim).
  41.  
  42. Abstract
  43.  
  44.    This document describes a model for IPv6 over ATM.  The model allows
  45.    conventional host-side operation of the Neighbor Discovery protocol,
  46.    while also supporting the establishment of 'shortcut' ATM routes.
  47.    This is achieved through the use of Redirects to create Transient
  48.    Neighbors, standard IPv6 protocol operation within the IPv6 Logical
  49.    Link, and partial NHRP for location of off-Link destinations.  The
  50.    egress router detects flows that are suitable candidates for
  51.    shortcut, uses NHRP to locate a better link level first hop, and then
  52.    issues a Redirect message to the source.
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. Armitage, et al.            Expires September 20, 1997           [Page 1]
  60.  
  61. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  62.  
  63.  
  64. Revision History
  65.  
  66.  
  67.       March 1997, version 00 as an official ION working group work item.
  68.          Augmented MARS now required, add SVC signalling procedures,
  69.          host token, and other issues raised at December 1996 IETF and
  70.          on the ION mailing list.  Name changed to draft-ietf-ion-tn-
  71.          00.txt.
  72.  
  73.       October 1996, version 01 under ION working group.
  74.          Significantly expanded description of IPv6 Neighbor Discovery,
  75.          DHCPv6, IGMPv6 protocol operation (based on IPv6 specific
  76.          material from draft-ietf-ion-ipv6atm-framework-00.txt). New
  77.          authors added.
  78.  
  79.       June 1996, version 00 (again)
  80.          Reissued under the ION working group.  No substantive changes.
  81.          Prelude to June 1996 IETF.  Name changed to draft-armitage-
  82.          ion-tn-00.txt
  83.  
  84.       April 1996, version 00 under IP-ATM working group.
  85.          Documents and expands on an informal presentation at the March
  86.          1996 IETF.
  87.  
  88.  
  89.  
  90. 1. Introduction.
  91.  
  92.    The IPv4 world evolved an approach to address resolution that
  93.    focussed on 'link layer' level protocol operation.  ATMARP [3], and
  94.    more currently NHRP [8], are the consequences of this model when
  95.    applied to the IP over ATM world.  IPv6 developers opted to migrate
  96.    away from a link layer specific approach, chosing to combine a number
  97.    of tasks into a protocol known as Neighbor Discovery [7], intended to
  98.    be non-specific across a number of link layer technologies.
  99.  
  100.    A key assumption made by Neighbor Discovery's actual protocol is that
  101.    the link technology underlying a given IP interface is capable of
  102.    native multicasting. This is not immediately true of ATM interfaces,
  103.    a fact that is generating a number of attempts to bypass or modify
  104.    some of ND's assumptions.
  105.  
  106.    It has also not been clear to the IP/ATM community how Neighbor
  107.    Discovery can be applied to services such as locating 'shortcut'
  108.    routes (where IP routing boundaries are 'shortcut' if they are found
  109.    to be merely logical boundaries between nodes attached to the same
  110.    physical link network). A general overview of the issues facing IPv6
  111.    over ATM is provided in [10].
  112.  
  113.    This document looks at a number of evolving models in the IP world,
  114.    and attempts to synthesize a general solution of IPv6 ND over ATM
  115.    that supports shortcut routing without requiring large scale
  116.    multicasting of ND messages around an ATM network.  The salient
  117.    models are:
  118.  
  119.  
  120.  
  121. Armitage, et al.            Expires September 20, 1997           [Page 2]
  122.  
  123. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  124.  
  125.  
  126.       - The IPv6 Neighbor model, refined as in [10], where neighbors are
  127.         discovered through the use of messages multicast to members of
  128.         an IP interface's local Logical Link.
  129.       - The MARS model, allowing emulation of general multicast using
  130.         multicast servers and point to multipoint calls provided by the
  131.         underlying link network.
  132.       - The NHRP service for seeking out the link layer identities of IP
  133.         interfaces who are logically distant in an IP topological sense.
  134.       - The modeling of IP traffic as 'flows', and using the existence
  135.         of a flow as the basis for attempting to set up a shortcut link
  136.         level connection.
  137.  
  138.    In summary, this document proposes that:
  139.  
  140.       IPv6 over ATM interfaces utilize the MARS itself to distribute
  141.       discovery messages around their Logical Link.
  142.  
  143.       For destinations not currently considered to be Neighbors
  144.       (initially this will include just about any destination not in the
  145.       Logical Link), a host sends the packets to its default router.
  146.  
  147.       The egress router from a Logical Link is responsible for detecting
  148.       the existence of an IP packet flow through it that might benefit
  149.       from a shortcut connection.
  150.  
  151.       While continuing to conventionally forward the flow's packets, the
  152.       router initiates an NHRP query for the flow's destination IP
  153.       address.
  154.  
  155.       The last router/NHS before the target of the NHRP query ascertains
  156.       the target interface's preferred ATM address.
  157.  
  158.       The originally querying router then issues a Redirect to the IP
  159.       source, identifying the flow's destination as a transient
  160.       Neighbor.
  161.  
  162.    A number of key advantages are claimed for this approach. These are:
  163.  
  164.       The IPv6 stacks on hosts do not implement separate ND protocols
  165.       for each link layer technology.
  166.  
  167.       When the destination of a flow is solicited as a transient
  168.       neighbor, the returned ATM address will be the one it chose when
  169.       the flow was originally established through hop-by-hop processing
  170.       (for destination interface load sharing).
  171.  
  172.  
  173. 2. Logical Links, and Transient Neighbors.
  174.  
  175.    (To review the model of 'link' used in this document, the following
  176.    text is borrowed straight from section 5 of [10].)
  177.  
  178.    IPv6 contains a concept of on-link and off-link. Neighbors are those
  179.    nodes that are considered on-link and whose link-layer addresses may
  180.  
  181.  
  182.  
  183. Armitage, et al.            Expires September 20, 1997           [Page 3]
  184.  
  185. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  186.  
  187.  
  188.    therefore be located using Neighbor Discovery.  Borrowing from the
  189.    terminology definitions in the ND text:
  190.  
  191.    on-link   - an address that is assigned to a neighbor's interface on
  192.                a shared link.  A host considers an address to be on-link
  193.                if:
  194.                  - it is covered by one of the link's prefixes, or
  195.                  - a neighboring router specifies the address as the
  196.                    target of a Redirect message, or
  197.                  - a Neighbor Advertisement message is received for the
  198.                    target address, or
  199.                  - a Router Advertisement message is received from the
  200.                    address.
  201.  
  202.    off-link  - the opposite of "on-link"; an address that is not
  203.                assigned to any interfaces attached to a shared link.
  204.  
  205.    Off-link nodes are considered to only be accessible through one of
  206.    the routers directly attached to the link.
  207.  
  208.    The preceding descriptions may need refinement in the context of
  209.    Logical Links (or equivalent concept). The LL is the same set of
  210.    hosts that make up a given MARS Cluster - an administratively defined
  211.    group.  These are an IPv6 interface's initial set of neighbors, and
  212.    each interface's Link-Local address only needs to be unique amongst
  213.    this set.
  214.  
  215.    Events such as the receipt of ND advertisement messages, or the
  216.    operation of some alternative discovery protocol, may result in the
  217.    expansion of an IPv6 interface's set of Neighbors. However, this
  218.    should not be considered to have changed the set of interfaces that
  219.    make up its LL. This leads to three possible relationships between
  220.    any two IPv6 interfaces:
  221.  
  222.       - On LL, Neighbor.
  223.       - Off LL, Neighbor.
  224.       - Off LL, not Neighbor.
  225.  
  226.    Off LL Neighbors are the 'shortcut' connections, where some dynamic
  227.    protocol activity has ascertained that although a target IPv6
  228.    interface is not a member of the source's LL, it is possible to
  229.    achieve link level connectivity.
  230.  
  231.    Neighbors 'discovered' through the operation of unsolicited messages,
  232.    such as Redirects, may be termed 'Transient Neighbors'.
  233.  
  234.  
  235.  
  236. 3. Intra-LL and Inter-LL Discovery.
  237.  
  238.    This document makes a distinction between the discovery of neighbors
  239.    within a Logical Link (intra-LL) and neighbors beyond the LL (inter-
  240.    LL). The goal is to allow both inter- and intra-LL neighbor discovery
  241.    to involve no changes to the host-side IPv6 stack for ATM.
  242.  
  243.  
  244.  
  245. Armitage, et al.            Expires September 20, 1997           [Page 4]
  246.  
  247. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  248.  
  249.  
  250. 3.1 Intra-LL - ND over emulated multicast.
  251.  
  252.    The basic model of ND assumes that a link layer interface will do
  253.    something meaningful with an ICMPv6 packet sent to a multicast IP
  254.    destination address. As noted in [10], IPv6 assumes that multicasting
  255.    is an integral part of the Internet service. Section 2.1 of [10]
  256.    shows how this can be provided using the MARS [5] service currently
  257.    being developed for IPv4 multicast over ATM.
  258.  
  259.    The goal of intra-LL operation is that the IPv6 layer must be able to
  260.    simply pass multicast ICMPv6 packets down to the IPv6/ATM driver
  261.    without any special, ATM specific processing. The underlying
  262.    mechanism for distributing Neighbor Discovery and Router Discovery
  263.    messages then works as expected.
  264.  
  265.    Sections 3.1.1 and 3.1.2 explore the tradeoffs of various mechanisms
  266.    below the IP layer for distributing ND and RD messages. Section 3.1.3
  267.    describes the additional functionality that SHALL be required of any
  268.    MARS used in conformance with this document.
  269.  
  270. 3.1.1 Simplistic approach - MARS as 'black box'.
  271.  
  272.    The IPv6/ATM driver utilizes the standard MARS protocol to establish
  273.    a VC forwarding path out of the interface on which it can transmit
  274.    the ICMPv6 packet.  The ICMPv6 packet is then transmitted, and is
  275.    received by the intended destination set.
  276.  
  277.    With such an approach all the protocol elements in [5] should work
  278.    'as is'.  However, VC resource consumption must be taken into
  279.    consideration.  Unfortunately, the issues that affect VC resource
  280.    consumption when supporting ND are not amenable to simply shifting
  281.    from VC mesh to Multicast Server modes of emulating multicast.
  282.  
  283. 3.1.2 MARS as a Link (Multicast) Server.
  284.  
  285.    ND assumes that link level multicast resources are best conserved by
  286.    generating a sparsely distributed set of Solicited Node multicast
  287.    addresses (to which discovery queries are initially sent). The
  288.    original goal was to minimize the number of innocent nodes that
  289.    simultaneously received discovery messages really intended for
  290.    someone else.
  291.  
  292.    However, in an ATM environment it becomes equally (or more) important
  293.    to minimize the number of independent VCs that a given ATM interface
  294.    is required to originate or terminate. If we treat a MARS solution as
  295.    a 'black box' the sparse Solicited Node address space can lead to a
  296.    large number of short-use, but longer lived, pt-mpt VCs (generated
  297.    whenever the node is transmitting Neighbor Solicitations). Even more
  298.    annoying, these VCs are likely to be useful _only_ for additional
  299.    packets being sent to the Solicited Node multicast address that
  300.    caused the VC to be created in the first place. This means a new pt-
  301.    pt VC is established to actually carry the unicast IPv6 traffic that
  302.    prompted the Neighbor Solicitation.
  303.  
  304.  
  305.  
  306.  
  307. Armitage, et al.            Expires September 20, 1997           [Page 5]
  308.  
  309. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  310.  
  311.  
  312.    The axis of inefficiency brought about by the sparse Solicited Nodes
  313.    address space is orthogonal to the VC mesh vs Multicast Server
  314.    tradeoff. Typically a multicast server aggregates traffic flow to a
  315.    common multicast group onto a single VC. To reduce the VC consumption
  316.    for ND, we need to aggregate across the Solicited Node address space
  317.    - performing aggregation on the basis of a packet's function rather
  318.    than its explicit IPv6 destination.  The trade-off here is that the
  319.    aggregation removes the original value of scattering nodes sparsely
  320.    across the Solicited Nodes space. This is a price of the mismatch
  321.    between ND and connection oriented networks.
  322.  
  323.    One possible mechanism for aggregation is for every node's IPv6/ATM
  324.    driver to trap multicast ICMPv6 packets carrying multicast ND or RD
  325.    messages, and remap their destinations to the All Nodes group (link
  326.    local scope). By ensuring that the All Nodes group is supported by an
  327.    MCS, the resultant VC load within the LL will be significantly
  328.    reduced.
  329.  
  330.    A further optimization is for every node's IPv6/ATM driver to trap
  331.    multicast ICMPv6 packets carrying multicast ND or RD messages, and
  332.    send them to the MARS itself for retransmission on ClusterControlVC
  333.    (involving a trivial extension to the MARS itself.) This approach
  334.    recognizes that in any LL where IPv6 multicasting is supported:
  335.  
  336.       - Nodes already have a pt-pt VC to their MARS.
  337.  
  338.       - The MARS has a pt-mpt VC (ClusterControlVC) out to all Cluster
  339.         members (LL members registered for multicast support).
  340.  
  341.    Because the VCs between MARS and MARS clients carry LLC/SNAP
  342.    encapsulated packets we can multiplex ICMP packets in addition to its
  343.    original MARS control messages. In essence the MARS behaves as a
  344.    multicast server for non-MARS control message packets that it
  345.    receives from around the LL.
  346.  
  347.    (Indeed, if we used this approach of 'MARS as MCS' to support the All
  348.    Nodes multicast group, then the preceding two ideas boil down to the
  349.    same thing.)
  350.  
  351.    As there is no requirement that a MARS client only accepts MARS
  352.    messages on ClusterControlVC, ICMP messages received in this fashion
  353.    may be passed to every node's IP layer without further comment.
  354.    Within the IP layer filtering will occur based on the packet's actual
  355.    destination IP address, and only the targeted node will end up
  356.    responding.
  357.  
  358.    Regrettably this approach does result in the entire Cluster's
  359.    membership having to receive a variety of ICMPv6 messages that they
  360.    will always throw away.
  361.  
  362. 3.1.3 Mandatory augmented MARS behavior.
  363.  
  364.    To minimise unwanted traffic delivery across ClusterControlVC, the
  365.    following augmention to MARS functionality SHALL be employed for
  366.  
  367.  
  368.  
  369. Armitage, et al.            Expires September 20, 1997           [Page 6]
  370.  
  371. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  372.  
  373.  
  374.    conformance with this document:
  375.  
  376.       - Clients register with the MARS as members of their Solicited
  377.         Nodes multicast group.
  378.  
  379.       - When the MARS receives a data packet (identified by its LLC/SNAP
  380.         encapsulation), it scans the group membership database to find
  381.         the ATM addresses of the destination group's members.
  382.  
  383.       - The MARS then checks to see if every group member currently has
  384.         its pt-pt control VC open to the MARS. If so, the MARS sends a
  385.         copy of the data packet directly to each group member over the
  386.         existing pt-pt VCs.
  387.  
  388.       - If one or more of the discovered group members do not have an
  389.         open pt-pt VC to the MARS, or if there are no group members
  390.         listed, the packet is sent out ClusterControlVC instead. No
  391.         copies of the packet are sent over the existing (if any) pt-pt
  392.         VCs.
  393.  
  394.    Section 4.4.2 describes the matching client-side behavior.
  395.  
  396. 3.2 Inter-LL - Redirects, and their generation.
  397.  
  398.    The key to creating transient neighbors is the Redirect message
  399.    (section 8 [7]).  IPv6 allows a router to inform the members of an LL
  400.    that there is a better 'first hop' to a given destination (section
  401.    8.2 [7]).  The advertisement itself is achieved through a Router
  402.    Redirect message, which may carry the link layer address of this
  403.    better hop.
  404.  
  405.    A transmitting host only listens to Router Redirects from the router
  406.    that is currently acting as the default router for the IP destination
  407.    that the Redirect refers to. If a Redirect arrives that indicates a
  408.    better first hop for a given destination, and supplies a link layer
  409.    (ATM) address to use as the better first hop, the associated Neighbor
  410.    Cache entry in the source host is updated and its reachability set to
  411.    STALE. Updating the cache in this context involves building a new VC
  412.    to the new ATM address. If this is successful, the old VC is torn
  413.    down only if it no longer required (as this VC was to the router, it
  414.    may still be required by other packets from the host that are leaving
  415.    the LL).
  416.  
  417.    The manner by which a router determines a better first-hop is not
  418.    specified or constrained in [7]. The model in this document suggests
  419.    a mechanism.
  420.  
  421. 3.2.1 Redirect Triggers.
  422.  
  423.    Technology to support shortcut connections is justified on the
  424.    grounds that demanding flows of IP packets may exist between
  425.    source/destination pairs that are separated by IP routing boundaries.
  426.    NHRP [8] is built on the premise that the source itself decides to
  427.    seek a shortcut connection.  The Cell Switch Router [11] and the IP
  428.  
  429.  
  430.  
  431. Armitage, et al.            Expires September 20, 1997           [Page 7]
  432.  
  433. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  434.  
  435.  
  436.    Switch [12] models place the detection and management of IP packet
  437.    flows into the routers (where flows cross the edges of IP routing
  438.    boundaries).
  439.  
  440.    This document suggests that router-based flow identification
  441.    mechanisms can be used to trigger the eventual generation of an IPv6
  442.    Router Redirect.  The actual algorithm(s) for determining when a flow
  443.    should trigger an attempt to resolve a better first hop are not
  444.    defined in this document yet.
  445.  
  446.    A router SHALL only track flows that originate from a directly
  447.    attached host (a host that is within the LL-local scope of one of the
  448.    router's interfaces).  IP packets arriving from another router are
  449.    never used to trigger the generation of a Router Redirect.
  450.  
  451. 3.2.2 Partial NHRP between routers.
  452.  
  453.    Once flow detection has occurred, a router needs some mechanism for
  454.    establishing the IP to link level address mapping of a better first
  455.    hop.  An obvious approach is for routers to incorporate part of the
  456.    Next Hop Server (NHS) function that is proposed for them in NHRP. The
  457.    routers must be able to:
  458.  
  459.       - Construct NHRP Requests and Replies.
  460.  
  461.       - Parse incoming NHRP Requests and Replies.
  462.  
  463.       - Forward NHRP Requests towards an NHS that is topologically
  464.         closer to the IP target.
  465.  
  466.       - Forward NHRP Replies towards an NHS that is topologically closer
  467.         to the requester.
  468.  
  469.       - Perform syntax translation between Neighbor Solicitations and
  470.         outbound NHRP Requests.
  471.  
  472.       - Perform syntax translation between inbound NHRP Replies and
  473.         Neighbor Redirects or Neighbor Advertisements.
  474.  
  475.    The destination of the flow that caused the trigger is used as the
  476.    target for resolution in a NHRP Request. The router then forwards
  477.    this NHRP Request to the next closest NHS. The process continues (as
  478.    it would for normal NHRP) until the Request reaches an NHS that
  479.    believes the IP target is within link-local scope of one of its
  480.    interfaces.  (This may potentially occur within a single router.)
  481.  
  482.    To understand the next step it is important to remember that the NHRP
  483.    Request originates _after_ normal hop-by-hop routing has resulted in
  484.    IP connectivity between the source and destination. That means the
  485.    last hop router already has a VC open to the final destination
  486.    (established by the conventional use of Neighbor Discovery on the
  487.    destination's LL).  As a consequence the NHRP Request may be
  488.    satisfied using mapping information contained in the router's own
  489.    neighbor cache. (This assumes that Neighbor Unreachability Detection
  490.  
  491.  
  492.  
  493. Armitage, et al.            Expires September 20, 1997           [Page 8]
  494.  
  495. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  496.  
  497.  
  498.    at the router considers the final destination currently reachable.
  499.    If not, the final router verifies the reachability of the
  500.    destination, and builds a NHRP Reply with the validated mapping.)
  501.  
  502.    The NHRP Reply is propagated back to the source of the NHRP Request,
  503.    using a hop-by-hop path as it would for normal NHRP. When it reaches
  504.    the originating router, the resolved address mapping is used to
  505.    construct a Router Redirect message. The Router Redirect is then
  506.    unicast to the IP packet flow's source (using the VC on which the
  507.    flow is arriving at the router, if it's a pt-pt VC).
  508.  
  509.    It is worth noting that the router constructing the NHRP Reply does
  510.    so using the ATM address returned by the target host when the target
  511.    host first accepted the flow of IP traffic. This retains a useful
  512.    feature of ND - destination interface load sharing.
  513.  
  514.    (The use of NHRP between the routers is not meant to be normative.
  515.    Any protocol that the routers understood, and was capable of carrying
  516.    IP to link layer mappings, would suffice. However, current efforts to
  517.    deploy NHRP in routers means it is the most likely technology on
  518.    which to build the inter-LL mechanism.)
  519.  
  520. 3.2.3 Host Triggered Redirection
  521.  
  522.    In some cases, the sending host may want to trigger a redirection to
  523.    a transient neighbor.  To support host-triggered redirects, routers
  524.    would have to recognize specific Neighbor Discovery messages sent by
  525.    hosts which would then trigger NHRP resolutions of off-link
  526.    addresses.  All routers which support NHRP in an IPv6 ATM network
  527.    should have this capability.
  528.  
  529.    To perform host-triggered redirects, a sending host would create a
  530.    Neighbor Solitication message which contains the destination unicast
  531.    address (and not the solicited node multicast address) of the off-
  532.    link node to which the sending host wants to be redirected.  Because
  533.    this NS packet is addressed to a unicast address, the sending host
  534.    would then send this ND packet to a default router, which must also
  535.    be running NHRP. The router would recognize the unicast NS to an
  536.    off-link address as a request for a host-triggered redirect and would
  537.    turn the NS into an NHRP resolution request.  The NS message must not
  538.    be forwarded.  The router would then use NHRP to resolve the
  539.    transient neighbor's address.  Once the NHRP address resolution was
  540.    complete, the router would construct a Neighbor Advertisement message
  541.    which contained the IPv6 address of the transient neighbor, the ATM
  542.    datalink address returned by the NHRP resolution process, and have
  543.    the Overide bit set to 1.  If NHRP returns the address of an egress
  544.    router rather than of the destination node its self, then the Router
  545.    bit must be set to 1 in the NA message and the egress router must
  546.    behave as a proxy router as defined in [7].
  547.  
  548.    When the soliciting node receives the NA message it will update its
  549.    Neighbor and Destination caches so that when it has a packet to sent
  550.    to the transient neighbor it will create a direct VC to that neighbor
  551.    (or to the best egress router towards that neighbor as determined by
  552.  
  553.  
  554.  
  555. Armitage, et al.            Expires September 20, 1997           [Page 9]
  556.  
  557. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  558.  
  559.  
  560.    NHRP).
  561.  
  562. 3.3. Neighbor Unreachability Detection.
  563.  
  564.    Neighbor Solicitations sent for the purposes of Neighbor
  565.    Unreachability Detection (NUD) are unicast to the Neighbor in
  566.    question, using the VC that is already open to that Neighbor. This
  567.    suggests that as far as NUD is concerned, the Transient Neighbor is
  568.    indistinguishable from an On-LL Neighbor.
  569.  
  570. 3.4. Duplicate Address Detection.
  571.  
  572.    Duplicate Address Detection is only required within the link-local
  573.    scope, which in this case is the LL-local scope. Transient Neighbors
  574.    are outside the scope of the LL. No particular interaction is
  575.    required between the mechanism for establishing shortcuts and the
  576.    mechanism for detection of duplicate link local addresses.
  577.  
  578. 4 Node Operation Concepts
  579.  
  580.    This section provides a basic description of node operations for
  581.    performing basic functions (such as sending and receiving data) on an
  582.    LL to aid in understanding how nodes perform these operations in the
  583.    LL model.  The application of these basic functions to the operation
  584.    of the various IPv6 protocols such as Neighbor Discovery is described
  585.    in Appendix A.
  586.  
  587. 4.1.Connecting to a LL
  588.  
  589.    Before a node can send or receive IPv6 datagrams it must first join a
  590.    Logical Link.  This is done by the node's MARS client establishing a
  591.    pt-pt VC to the MARS and registering as a Cluster Member [5].  The
  592.    MARS will then add the node's MARS client to ClusterControlVC. After
  593.    this is done the node is a member of the LL and IPv6 ND operations
  594.    can then be performed.
  595.  
  596.  
  597. 4.2 Joining a Multicast Group
  598.  
  599.    This section describes the node's behavior when it gets a
  600.    JoinLocalGroup request from the IPv6 Network Layer. The IPv6 over ATM
  601.    layer will have to examine each group address joined to determine how
  602.    the join request is to be handled.
  603.  
  604.    If a JoinLocalGroup for a node-local address is received then no
  605.    action is taken and the JoinLocalGroup function returns success to
  606.    the caller.  Node-local addresses are not handled by the IPv6 over
  607.    ATM layer.
  608.  
  609.    When the MARS clients receive a request to join a non node-local
  610.    multicast group, it will send to the MARS the appropriate MARS_JOIN
  611.    request to register its membership of the specified group.
  612.  
  613.    Only one special action is required of MARS Clients supporting router
  614.  
  615.  
  616.  
  617. Armitage, et al.           Expires September 20, 1997           [Page 10]
  618.  
  619. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  620.  
  621.  
  622.    interfaces. They MUST issue a block MARS_JOIN for the range(s) of
  623.    IPv6 multicast addresses that the router is required to listen
  624.    promiscously across (analogous to the IPv4 description in section 8
  625.    of [5]).
  626.  
  627.  
  628. 4.3. Leaving a Multicast Group
  629.  
  630.    This  section  describes  the  node's  behavior   when  it  gets  a
  631.    LeaveLocalGroup request from the IPv6 Network Layer.  The IPv6 over
  632.    ATM layer will have to examine each group address joined to determine
  633.    how the leave request is to be handled.
  634.  
  635.    If a LeaveLocalGroup for a node-local address is received then no
  636.    action is taken and the LeaveLocalGroup function returns success to
  637.    the caller.  Node-local addresses are not handled by the IPv6 over
  638.    ATM layer.
  639.  
  640.    All other requests to leave multicast groups will be handled in the
  641.    normal manner by the MARS client.  When the MARS clients receive a
  642.    request to leave a non node-local multicast group, it will send to
  643.    the MARS the appropriate MARS_LEAVE request to de-register its
  644.    membership of the specified group.
  645.  
  646. 4.4.  Sending Data
  647.  
  648.    When the IPv6 over ATM layer is given a packet from the local IPv6
  649.    Network Layer, it has to determine whether the packet is being sent
  650.    to a unicast or multicast link-layer address. The following sections
  651.    describe the node operations when sending unicast and multicast
  652.    packets.
  653.  
  654. 4.4.1. Sending Unicast Data
  655.  
  656.    When a node is given an IPv6 Network Layer  unicast packet to send,
  657.    the node must map the next hop address  to a PtP VC over which the
  658.    packets are to be sent.  Minimally, the mapping may be based on the
  659.    destination address, but may also include the flow label information
  660.    to facilitate handling QoS based flows.  How the flow labels are used
  661.    is a topic still being discussed by the IPv6 community.  If a PtP VC
  662.    for the next hop address exists, then the packet is encapsulated in
  663.    the following LLC/SNAP header, and sent over that VC.
  664.  
  665.       [0xAA-AA-03][0x00-00-00][0x86-DD][IPv6 packet]
  666.  
  667.    If no PtP VC exists for the next hop address for the packet, then the
  668.    node will have to place a call to set up a VC to the next hop
  669.    destination.  Any time the IPv6 layer receives a unicast packet for
  670.    transmission the IPv6 Network layer should already have performed
  671.    Neighbor Discovery on the next hop to determine the link-layer
  672.    address (e.g. ATM Address) of the next hop.  Thus, the information
  673.    needed to place the call to the next hop will already be available on
  674.    the sending node.
  675.  
  676.  
  677.  
  678.  
  679. Armitage, et al.           Expires September 20, 1997           [Page 11]
  680.  
  681. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  682.  
  683.  
  684.    During call placement, the sending node will queue the packet that
  685.    triggered the call request so that it can be sent when the circuit is
  686.    established.
  687.  
  688.    If the call to the next hop destination node fails the sending node
  689.    will discard the packet that triggered the call setup.  Persistent
  690.    failure to create a VC to the next hop destination will be detected
  691.    and handled at the IPv6 Network Layer through NUD.
  692.  
  693. 4.4.2. Sending Multicast Data
  694.  
  695.  
  696.    All multicast packets are transmitted using the following
  697.    encapsulation:
  698.  
  699.       [0xAA-AA-03][0x00-00-5E][0x00-01][pkt$cmi][0x86DD][IPv6 packet]
  700.  
  701.    The client's Cluster Member ID (CMI) is copied into the pkt$cmi field
  702.    prior to transmission.
  703.  
  704.    A packet is sent over the MARS client's PtP VC to the MARS if its
  705.    destination is one of the following multicast addresses:
  706.  
  707.       - A Solicited-node address with link-local scope.
  708.       - The All-nodes address with link-local scope.
  709.       - The All-routers address with link-local scope.
  710.       - A DHCP-v6 relay or server multicast address.
  711.  
  712.    If the VC to the MARS has been idle timed out for some reason, it
  713.    must be re-established before forwarding the IPv6 packet to the MARS.
  714.    The MARS will redistribute the IPv6 packet appropriately as described
  715.    in section 3.1.3.  If the destination multicast group address of the
  716.    packet to be sent is any other address, then the usual MARS client
  717.    mechanisms are used to select and/or establish the pt-mpt VC on which
  718.    the packet is to be sent.
  719.  
  720. 4.5. Receiving Data
  721.  
  722.  
  723.    All IPv6 packets received on any unicast PtP  VC are simply de-
  724.    encapsulated and passed up to the IPv6 Network later.  The IPv6
  725.    network layer then determines how the incoming packet is to be
  726.    handled.
  727.  
  728.    Packets received using the encapsulation shown in section 4.4.2 have
  729.    their pkt$cmi field compared to the receiving client's CMI.  If the
  730.    CMI in the header matches the receiver's CMI then the packet was sent
  731.    by the receiver and is silently dropped [5].  Otherwise, the packet
  732.    is accepted and passed to the IPv6 network layer.  The IPv6 Network
  733.    layer then determines if the packet should be accepted, routed, or
  734.    discarded.
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741. Armitage, et al.           Expires September 20, 1997           [Page 12]
  742.  
  743. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  744.  
  745.  
  746. 4.6. Unicast Data VC Setup and  Release
  747.  
  748.  
  749.    Since the setup and maintenance of multicast VCs are handled by the
  750.    MARS client on each IPv6 node,  and this is described [5], only the
  751.    setup and maintenance of unicast VCs will be described here.  Unicast
  752.    VCs are maintained separately from multicast VCs.  Currently, only
  753.    best effort unicast VCs are described here.  The creation of non-best
  754.    effort, or flow based VCs is an area which requires more discussion
  755.    and study.
  756.  
  757.    Unlike the IPv4 over ATM mechanisms (Classical IP and NHRP) which
  758.    place calls from a sending node towards the receiving node, IPv6 will
  759.    cause receiving nodes to place calls towards sending nodes in the
  760.    most common case.  This is a natural consequence of the way in which
  761.    IPv6 resolves datalink addresses.  For all cases, it is the
  762.    transmission of a unicast packet by any node which will trigger that
  763.    node's call to the destination or next hop node.
  764.  
  765.    When one node in an LL has a packet to send to another node in the
  766.    same LL it will first perform a Neighbor Discovery on the destination
  767.    address.  This is done to resolve the IPv6 destination address into a
  768.    link-layer address which the sender can then use to send unicast
  769.    packets. The Neighbor Discovery operation is performed by the sending
  770.    node transmitting a Neighbor Solicitation packet to the appropriate
  771.    solicited-node multicast address associated with the destination or
  772.    next hop address for the outgoing packet.  When the solicited node
  773.    receives this packet it will respond with a Neighbor Advertisement
  774.    packet which it will unicast to the soliciting node. Since the
  775.    Neighbor Solicitation packet contains the data-link address of the
  776.    soliciting node, the solicited node has all the information it
  777.    requires to unicast the Neighbor Advertisement.  Thus, since the
  778.    solicited node is generally the first to send a unicast packet in any
  779.    exchange between two nodes, it will be the one which will initiate
  780.    the setup of the PtP VC between the two.
  781.  
  782.    The creation of a PtP VC is coupled with the Neighbor Discovery
  783.    mechanism. Because IPv6 will not attempt to send a unicast data
  784.    packet until it has completed the Neighbor Solicitation process and
  785.    has a valid Neighbor cache entry for the next hop destination, there
  786.    will be no need to try to create a PtP VC until IPv6 has resolved the
  787.    next hop address to an ATM datalink address.  Thus, if the IPv6 over
  788.    ATM layer receives a unicast packet for transmission, it can expect
  789.    that the IPv6 Network layer will also provide the datalink address
  790.    for the immediate destination (just as a MAC address is provided to
  791.    Ethernet, for example).  The IPv6 over ATM layer can then use this
  792.    information to either create a new VC, or to determine if there is
  793.    already a suitable VC set up to the destination.  Note that the
  794.    datalink address supplied by IPv6 will be that of the next hop, which
  795.    is not necessarily the same as that of the destination (i.e., the
  796.    destination node is reachable only through a router).
  797.  
  798.    Creation of a new PtP VC as the result of a Redirect message (either
  799.    a redirect to a node on the same LL, or a shortcut redirect to a node
  800.  
  801.  
  802.  
  803. Armitage, et al.           Expires September 20, 1997           [Page 13]
  804.  
  805. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  806.  
  807.  
  808.    outside the LL) results in the sending (redirected) node creating a
  809.    VC to a new receiving node.  The redirected node does not know, or
  810.    care if the new node to which it has been redirected is on it's LL or
  811.    not since it has all the information necessary to set up the new PtP
  812.    VC in the redirect message (this includes the link-layer address
  813.    option).  Since no further Neighbor Discovery operations are required
  814.    after a redirect, the target does not need to be on the LL, but does
  815.    need to be reachable at the link layer (in fact, the target of the
  816.    redirect may be an egress router, or a router closer to the
  817.    destination).  When redirected, the sending node will set up a PtP VC
  818.    to the new node if one does not previously exist.  The redirected
  819.    node will then use the new VC to send data rather than whatever VC it
  820.    had previously been using.
  821.  
  822.    Redirects are unidirectional.  That is, the redirected node will
  823.    create a new PtP VC over which it will send data previously sent on
  824.    another VC (sending data to a different router for example), but the
  825.    destination node will continue to send data back to the redirected
  826.    node on the old path.  This happens because the destination node has
  827.    no way of determining the IPv6 address of the other end of a new VC
  828.    in the absence of Neighbor Discovery. Thus, redirects will not result
  829.    in both ends of a connection using the new VC.  The non-redirected
  830.    node will continue to send data to the redirected node over the old
  831.    path.  This is consistent with the way IPv6 redirects operate, in
  832.    that they are not intended to provide symetrical redirection.  If the
  833.    non-redirected node eventually receives a redirect it should discover
  834.    the existing VC to the target node and use that rather than creating
  835.    a new VC.
  836.  
  837.    Once a PtP VC is established it is desirable that it be released
  838.    when no longer needed to save both node and network resources.  The
  839.    simplest option would be to release the VC after some period of
  840.    inactivity.  Another would be to tie the VC to the IPv6 Destination
  841.    or Neighbor cache entries so that the VC was released as the result
  842.    of a state change in the caches.  This is another area which requires
  843.    discussion in the WG and on the mailing list.
  844.  
  845. 4.7 UNI 3.0/3.1 SVC Signalling Support
  846.  
  847.    When an IPv6 node places a call to another IPv6 node, it should
  848.    follow the procedures in [13] and [14] for signalling UNI 3.0/3.1
  849.    SVCs and negotiating MTU.  The default MTU size on a LL is 9188 bytes
  850.    as specified in [14].
  851.  
  852.    Because of the nature of both IPv6 and transient neighbor discovery,
  853.    the IPv6 to ATM layer will not know if the called party is on the
  854.    calling node's LL.  Thus, the calling party can not assume that
  855.    called party will have the same default MTU as its LL.  Thus, MTU
  856.    MUST be negotiated for each call placed using the procedures
  857.    described in [14].  This will permit two nodes which are connected
  858.    via a shortcut VC to establish an MTU which will allow them to
  859.    exchange data without having to perform fragmentation.
  860.  
  861.    Note that while the procedures in [14] still apply to IPv6 over ATM,
  862.  
  863.  
  864.  
  865. Armitage, et al.           Expires September 20, 1997           [Page 14]
  866.  
  867. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  868.  
  869.  
  870.    IPv6 Path MTU Discovery [15] is used by nodes and routers rather than
  871.    IPv4 MTU discovery. Additionally, IPv6 nodes are not required to
  872.    implement Path MTU Discovery, but ATM nodes SHOULD implement it.
  873.    Also, since IPv6 nodes will negoatiate an appropriate MTU for each
  874.    VC, Path MTU should never be triggered since niether node should ever
  875.    receive a Packet Too Big message to trigger Path MTU Discovery.  When
  876.    nodes are communicating via one or more routers Path MTU Discovery
  877.    will be used just as it is for legacy networks.
  878.  
  879. 5. Host Tokens and Link Layer Address Options
  880.  
  881. 5.1 Host Tokens
  882.  
  883.    Each IPv6 interface must have a host token which is used to form IPv6
  884.    autoconfigured addresses. This host token must be unique within an
  885.    IPv6 Link (subnet) to prevent the creation of duplicate addresses
  886.    when stateless address configuration is used.
  887.  
  888.    In cases where two nodes on the same LL produce the same host token
  889.    then one interface MUST choose another host-token.  All
  890.    implementations MUST support manual configuration of host tokens to
  891.    allow operators to manually change a host token on a per-LL basis.
  892.    Operators may choose to manually set host tokens for reasons other
  893.    than eliminating duplicate addresses.
  894.  
  895. 5.1.1 Host Tokens Based on MAC or ESI values
  896.  
  897.    Where the underlying ATM NIC driver has access to a set of one or
  898.    more 48 bit values unique to the ATM NIC (e.g. MAC addresses
  899.    configured into the NIC's ROM), the IPv6/ATM interface SHALL use one
  900.    of these values to create a unique host token.  (These values may or
  901.    may not also correspond to the ESI(s) registered with the local ATM
  902.    switch by the ATM driver.)
  903.  
  904. 5.1.2 Host Tokens Based on E.164 Addresses
  905.  
  906.    If an interface using E.164 addressing has no available MAC address
  907.    for use as a host token (as described above), then the E.164 address
  908.    will be used after conversion to a 48 bit format.  To convert an
  909.    E.164 address to a 48 bit format the series of 15 E.164 BCD encoded
  910.    digits will be interpreted as a 15 digit decimal number and converted
  911.    to its binary representation and truncated to 48 bits.
  912.  
  913. 5.1.3 Multiple Logical Links on a Single Interface
  914.  
  915.    Physical ATM interfaces are commonly used to provide multiple logical
  916.    ATM interfaces. Each logical ATM interface might be associated with a
  917.    different SEL field of a common NSAPA prefix, or a set of entirely
  918.    separate ESIs might have been registered with the local ATM switch to
  919.    create a range of unique NSAPAs.
  920.  
  921.    In either case, the minimum information required to uniquely identify
  922.    each logical ATM interface is (within the context of the local switch
  923.    port) their ESI+SEL combination.  Since each logical ATM interface
  924.  
  925.  
  926.  
  927. Armitage, et al.           Expires September 20, 1997           [Page 15]
  928.  
  929. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  930.  
  931.  
  932.    can support an independent IPv6 interface, two separate scenarios are
  933.    possible:
  934.  
  935.       - A single host with IPv6/ATM interfaces onto a number of
  936.         independent Logical Links.
  937.  
  938.       - A set of 2 or more 'virtual hosts' (vhosts) might share a common
  939.         ATM NIC and driver. Each vhost is free to establish IPv6/ATM
  940.         interfaces associated with different or common LLs. However,
  941.         vhosts are bound by the same requirement as normal hosts - no
  942.         two interfaces to the same LL can share the same host token.
  943.  
  944.    In the first scenario, since each IPv6/ATM interface is associated
  945.    with a different LL, each interface's external identity can be
  946.    differentiated by the LL prefix.  Thus, the host can re-use a single
  947.    unique host token across all such IPv6/ATM interfaces. This token
  948.    SHALL be constructed using the rules in section 5.1.1 (ignoring the
  949.    possible variations in SEL).  (Internally the host will tag received
  950.    packets in some locally specific manner to identify what IPv6/ATM
  951.    interface they arrived on [16].  However, this is an issue generic to
  952.    all IPv6 interfaces, and does not required definition in this
  953.    document.)
  954.  
  955.    The second scenario is more complex, but likely to be rarer. For the
  956.    purpose of conformance with this document, each vhost SHALL select a
  957.    different host token from the range of 48 bit values available to the
  958.    ATM NIC (as described in 5.1.1). Each vhost SHALL implement IPv6/ATM
  959.    interfaces in such a way that no two or more vhosts end up
  960.    advertising the same host token onto the same LL.
  961.  
  962.  
  963. 5.2 Link Layer Address Options
  964.  
  965.    Neighbor Discovery defines two options for carrying link-layer
  966.    specific source and target addresses. In this case these options must
  967.    carry full ATM addresses.
  968.  
  969.    The source and target link-layer address options must carry any one
  970.    of the three possibilities, and indicate which one it is.
  971.  
  972.    The format for these two options when in an ATM environment is
  973.    adapted from the MARS [5] and NHRP [8] specs, and SHALL be:
  974.  
  975.           [Type][Length][NTL][STL][..ATM Number..][..ATM Subaddress..]
  976.           |   Fixed    ||            Link layer address              |
  977.  
  978.    [Type] is a one octet field.
  979.  
  980.           1 for Source link-layer address.
  981.           2 for Target link-layer address.
  982.  
  983.    [Length] is a one octet field.
  984.  
  985.    The total length of the option in multiples of 8 octets. Zeroed bytes
  986.  
  987.  
  988.  
  989. Armitage, et al.           Expires September 20, 1997           [Page 16]
  990.  
  991. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  992.  
  993.  
  994.    are added to the end of the option to ensure its length is a multiple
  995.    of 8 octets. (For example, a single ATM address in NSAPA format would
  996.    result in 24 bytes of real data, require no padding, and result in
  997.    [Length] being set to 3.)
  998.  
  999.    [NTL] is a one octet 'Number Type & Length' field.
  1000.  
  1001.    Defines the type and length of the ATM number immediately following
  1002.    the [STL] field. The format is as follows:
  1003.  
  1004.             7 6 5 4 3 2 1 0
  1005.             +-+-+-+-+-+-+-+-+
  1006.             |0|x|  length   |
  1007.             +-+-+-+-+-+-+-+-+
  1008.  
  1009.    The most significant bit is reserved and MUST be set to zero.  The
  1010.    second most significant bit (x) is a flag indicating whether the ATM
  1011.    number is in:
  1012.  
  1013.           ATM Forum NSAPA format (x = 0).
  1014.           Native E.164 format (x = 1).
  1015.  
  1016.    The bottom 6 bits is an unsigned integer value indicating the length
  1017.    of the associated ATM address in octets.
  1018.  
  1019.    The [STL] is a one octet 'Subaddress Type & Length' field.
  1020.  
  1021.       Format is the same as the [NTL] field. Defines the length of the
  1022.       subaddress field, if it exists. If it does not exist this entire
  1023.       octet field MUST be zero. If the subaddress exists it will be in
  1024.       NSAPA format, so flag x SHALL be zero.
  1025.  
  1026.    [ATM Number] is a variable length field. It is always present.
  1027.  
  1028.    [ATM Subaddress] is a variable length field. It may or may not be
  1029.    present. When it is not, the option ends after the [ATM Number] (or
  1030.    any additional padding for 8 byte alignment).
  1031.  
  1032. 6. Flow Detection
  1033.  
  1034.    Flow detection is not required for IPv6 over ATM to operate, but is
  1035.    desirable to facilitate both QoS based connections between nodes
  1036.    (both intra-LL and shortcut) and to more efficiently use network
  1037.    resources (such as IPv6 routers).
  1038.  
  1039.    In some cases, the establishment of flows may require more
  1040.    information than is currently specified for IPv6 Neighbor Discovery
  1041.    packets.  In these cases, the IPv6 Neighbor Discover protocols can be
  1042.    extended to include new TLV options (see [7]).  However, if new TLV
  1043.    options are required, the specification of these options must be co-
  1044.    ordinated with the IPNG working group so that they do not conflict
  1045.    with other new options which may be defined (mainly preventing
  1046.    collisions of the option type value).  Since [7] specifies that any
  1047.    node must silently ignore any options it does not understand, new
  1048.  
  1049.  
  1050.  
  1051. Armitage, et al.           Expires September 20, 1997           [Page 17]
  1052.  
  1053. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1054.  
  1055.  
  1056.    options can be added at any time without breaking backward
  1057.    compatability with existing implementations.
  1058.  
  1059.    In this way, the protocols described here are at least as flexible as
  1060.    NHRP in terms of extensibility.
  1061.  
  1062.    The issue of how to detect flows and what to do once flows are
  1063.    detected is still being discussed in many IETF working groups
  1064.    including ISSL and RSVP in addition to the continuing discussions in
  1065.    the ION WG around QoS and flow based shortcuts.  The methods used for
  1066.    IPv6 may differ somewhat from those used for IPv4 since IPv6 has the
  1067.    flow label field in the header.  Depending on how the use of this
  1068.    field is specified, it might aid in flow detection (for example, a
  1069.    router could use a non-zero flow label as a hint to set up a flow).
  1070.  
  1071. 7. Conclusion and Open Issues.
  1072.  
  1073.  
  1074.    This document provides a moderately low-level view of an approach to
  1075.    IPv6 over ATM. The proposed solution requires no ATM-specific changes
  1076.    to the Neighbor Discovery and Router Discovery protocols within hosts
  1077.    (or routers if a shortcut mechanism is not implemented). Indeed, no
  1078.    special protocol is required at all in the hosts to support the use
  1079.    of shortcut routes.  Some extensions to the functionality of a MARS
  1080.    are required to minimize the VC resource cost associated with
  1081.    distributing Discovery messages around a Logical Link.  It is
  1082.    suggested that we explore the model of router-identified IP flows for
  1083.    triggering shortcut connections. It is noted that the IPv6 Router
  1084.    Redirect message is designed with the precise intention of supporting
  1085.    the advertisement of new Neighbors in NBMA environments - and
  1086.    proposes to use the Redirect message in exactly that role. Finally,
  1087.    parts of the NHRP architecture are used to support the discovery of
  1088.    shortcut routes to Transient Neighbors.
  1089.  
  1090.    There are a number of open issues, both in general and specific
  1091.    senses:
  1092.  
  1093.       - Need to clarify further the conditions under which sources may
  1094.         ignore a Redirect.
  1095.  
  1096.       - Need to specify more clearly how a shortcut route may be
  1097.         invalidated or purged.
  1098.  
  1099.       - More detailed text is required for Router Redirect packets, NHRP
  1100.         Request/Reply packets, and the sharing of MARS ClusterControlVC
  1101.         by MARS control messages and Discovery related ICMPv6 packets.
  1102.  
  1103.    As with all open issues, contributions to the mailing list are
  1104.    solicited.
  1105.  
  1106.  
  1107. 8. Security Consideration
  1108.  
  1109.    While this proposal does not introduce any new security mechanisms
  1110.  
  1111.  
  1112.  
  1113. Armitage, et al.           Expires September 20, 1997           [Page 18]
  1114.  
  1115. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1116.  
  1117.  
  1118.    all current IPv6 security mechanisms will work without modification
  1119.    for ATM.  This includes both authentication and encryption for both
  1120.    Neighbor Discovery protocols as well as the exchange of IPv6 data
  1121.    packets.
  1122.  
  1123.  
  1124. Acknowledgments
  1125.  
  1126.    Eric Nordmark confirmed the usefulness of ND Redirect messages in
  1127.    private email during the March 1996 IETF. The discussions with
  1128.    various ION WG members during the June and December 1996 IETF helped
  1129.    solidify the architecture described here.
  1130.  
  1131. Author's address
  1132.  
  1133.    Grenville Armitage
  1134.    Internetworking Research Group,
  1135.    Bellcore.
  1136.    445 South Street
  1137.    Morristown, NJ, 07960
  1138.    USA
  1139.    Email: gja@bellcore.com
  1140.  
  1141.    Peter Schulter
  1142.    Email: paschulter@acm.org
  1143.  
  1144.    Markus Jork
  1145.    European Applied Research Center
  1146.    Digital Equipment Corporation
  1147.    CEC Karlsruhe
  1148.    Vincenz-Priessnitz-Str. 1
  1149.    D-76131 Karlsruhe
  1150.    Germany
  1151.    email: jork@kar.dec.com
  1152.  
  1153.    Geraldine Harter
  1154.    Digital UNIX Networking
  1155.    Digital Equipment Corporation
  1156.    110 Spit Brook Road
  1157.    Nashua, NH 03062
  1158.    Email: harter@zk3.dec.com
  1159.  
  1160. References.
  1161.  
  1162.    [1] S. Deering, R. Hinden, "Internet Protocol, Version 6 (IPv6)
  1163.    Specification", RFC-1883, December 1995.
  1164.  
  1165.    [2] ATM Forum, "ATM User Network Interface (UNI) Specification
  1166.    Version 3.1", ISBN 0-13-393828-X, Prentice Hall, Englewood Cliffs,
  1167.    NJ, June 1995.
  1168.  
  1169.    [3] M. Crawford, "A Method for the Transmission of IPv6 Packets over
  1170.    Ethernet Networks", RFC 1972, August 1996.
  1171.  
  1172.  
  1173.  
  1174.  
  1175. Armitage, et al.           Expires September 20, 1997           [Page 19]
  1176.  
  1177. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1178.  
  1179.  
  1180.    [4] J. Heinanen, "Multiprotocol Encapsulation over ATM Adaption Layer
  1181.    5", RFC 1483, USC/Information Science Institute, July 1993.
  1182.  
  1183.    [5] G.J. Armitage, "Support for Multicast over UNI 3.1 based ATM
  1184.    Networks", RFC 2022, Bellcore, November 1996.
  1185.  
  1186.    [6] S. Deering, R. Hinden, "IP Version 6 Addressing Architecture",
  1187.    RFC-1884, December 1995.
  1188.  
  1189.    [7] T. Narten, E. Nordmark, W.A. Simpson, "Neighbor Discovery for IP
  1190.    Version 6 (IPv6)", RFC 1970, August 1996.
  1191.  
  1192.    [8] J. Luciani, et al, "NBMA Next Hop Resolution Protocol (NHRP)",
  1193.    INTERNET DRAFT, draft-ietf-rolc-nhrp-11.txt, March 1997.
  1194.  
  1195.    [9] S. Thomson, T. Nartin, "IPv6 Stateless Address
  1196.    Autoconfiguration", RFC 1971, August 1996.
  1197.  
  1198.    [10] G.J. Armitage, "IPv6 and Neighbor Discovery over ATM",
  1199.    INTERNET-DRAFT, draft-ietf-ion-ipv6nd-00.txt, ION WG, June 1996.
  1200.  
  1201.    [11] Yasuhiro Katsube, Ken-ichi Nagami, Hiroshi Esaki, "Router
  1202.    Architecture Extensions for ATM : Overview", INTERNET-DRAFT, draft-
  1203.    katsube-router-atm-overview-02.txt, March 1996.
  1204.  
  1205.    [12] Ipsilon, "IP Switch Technology", http://www.ipsilon.com/ips.html
  1206.  
  1207.    [13] M. Perez, et al, "ATM Signalling Support for IP over ATM", RFC
  1208.    1755, February 1995
  1209.  
  1210.    [14] R. Atkinson, "Default IP MTU for use over ATM AAL5", RFC 1626,
  1211.    May 1994
  1212.  
  1213.    [15] J. McCann, et al, "Path MTU Discovery for IP version 6", RFC
  1214.    1981, August 1996
  1215.  
  1216.    [16] Robert Elz, "Identifying IPv6 Interfaces in Link-Local
  1217.    Addresses", INTERNET DRAT, draft-ietf-ipngwg-iid-02.txt, May 1996
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237. Armitage, et al.           Expires September 20, 1997           [Page 20]
  1238.  
  1239. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1240.  
  1241.  
  1242. Appendix A.  IPv6 Protocol Operation Description
  1243.  
  1244.  
  1245.    The IPv6 over  ATM model described  in this  document maintains the
  1246.    complete semantics of the IPv6 protocols. No changes need to be made
  1247.    to the IPv6 Network  Layer. Since the concept  of the security
  1248.    association is not being changed for  ATM, this framework maintains
  1249.    complete IPv6 security  semantics and features.   This  allows IPv6
  1250.    nodes to choose their responses to  solicitations based on security
  1251.    information as is  done with  other datalinks,  thereby maintaining
  1252.    the  semantics  of  Neighbor  Discovery  since  it  is  always  the
  1253.    solicited node  that chooses  what (and  even if)  to reply  to the
  1254.    solicitation.  Thus, ATM  will be transparent to  the network layer
  1255.    except in cases where extra services (such as QoS VCs) are offered.
  1256.  
  1257.    The  remainder  of  this  Appendix  describes  how  the  core  IPv6
  1258.    protocols will operate within the model described here.
  1259.  
  1260. A.1 Neighbor Discovery Operations
  1261.  
  1262.  
  1263.    Before performing any sort of Neighbor discover operation, each node
  1264.    must first join the all-node multicast group, and it's solicited node
  1265.    multicast address (the use of this address in relation to DAD is
  1266.    described in A.1.4).  The IPv6 Network layer will join these
  1267.    multicast groups as described in 4.2.
  1268.  
  1269. A.1.1 Performing Address Resolution
  1270.  
  1271.  
  1272.    An IPv6  host performs  address resolution  by  sending a  Neighbor
  1273.    Solicitation to the solicited-node multicast address  of the target
  1274.    host, as described in [7]. The  Neighbor Solicitation message will
  1275.    contain  a  Source  Link-Layer  Address  Option  set  to  the
  1276.    soliciting node's ATM address on the LL.
  1277.  
  1278.    When the  local  node  IPv6/ATM driver is passed the  Neighbor
  1279.    Solicitation message from the IPv6 network layer, it follows the
  1280.    steps described in section 4.4.2 Sending Multicast Data.
  1281.  
  1282.    One or more nodes will receive the Neighbor Solicitation message. The
  1283.    nodes will process the data as described in section 4.5 and pass the
  1284.    de-encapsulated packets to the IPv6 network layer.
  1285.  
  1286.    If the receiving node is the target of the Neighbor Solicitation it
  1287.    will update its Neighbor Cache with the soliciting node's ATM
  1288.    address, contained in the  Neighbor  Solicitation  message's  Source
  1289.    Link-Layer  Address Option as described in [7].
  1290.  
  1291.    The solicited IPv6 host will respond to the Neighbor Solicitation
  1292.    with a Neighbor Advertisement message sent to the IPv6 unicast
  1293.    address of the  soliciting  node.  The  Neighbor  Advertisement
  1294.    message  will contain a  Target Link-Layer  Address Option  set to
  1295.    the solicited node's ATM address on the LL.
  1296.  
  1297.  
  1298.  
  1299. Armitage, et al.           Expires September 20, 1997           [Page 21]
  1300.  
  1301. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1302.  
  1303.  
  1304.    The solicited node's IPv6/ATM driver will be  passed the Neighbor
  1305.    Advertisement and  the  soliciting  node's link-layer address from
  1306.    the IPv6 network layer.  It will then follow the steps described in
  1307.    section section 4.4.1 to send the NA message to the soliciting node.
  1308.    This will create a VC between the solicited and soliciting node if
  1309.    one did not already exist.
  1310.  
  1311.    The soliciting node will then receive the Neighbor Advertisement
  1312.    message over the new PtP VC, de-encapsulate the message, and pass it
  1313.    to the IPv6 Network layer for processing as described in section 4.5.
  1314.    The soliciting node will then make the appropriate entries in it's
  1315.    Neighbor cache, including caching the ATM link-layer address of the
  1316.    solicited node as described in [7].
  1317.  
  1318.    At this point each system has a complete Neighbor cache entry for the
  1319.    other system so that they can exchange data over the newly created
  1320.    PtP VC.
  1321.  
  1322.    An IPv6 host can also send an Unsolicited Neighbor Advertisement to
  1323.    the all-nodes multicast  address. When  the local  node IPv6/ATM
  1324.    driver is passed  the  Neighbor  Advertisement from the IPv6 network
  1325.    layer, it  follows  the  steps described in section 4.4.2 to send the
  1326.    NA message to the all-nodes multicast address.  Each node wil process
  1327.    the incoming packet as described in section 4.5 and then pass the
  1328.    packet to the IPv6 Network layer where it will be processed as
  1329.    described in [7].
  1330.  
  1331. A.1.2 Performing Router Discovery
  1332.  
  1333.  
  1334.    Router Discovery  is  described  in  [7]. To  support  Router
  1335.    Discovery an IPv6 router will join the IPv6 all-routers multicast
  1336.    group address.  When the IPv6/ATM driver gets the  JoinLocalGroup
  1337.    request  from the  IPv6 Network Layer, it follows the process
  1338.    described  in section 4.2. Joining a Multicast Group.
  1339.  
  1340.    IPv6 routers  periodically send  unsolicited Router  Advertisements
  1341.    announcing their  availability on  the LL.  When  an IPv6 router
  1342.    sends an unsolicited  Router Advertisement, it sends  a data packet
  1343.    addressed to the IPv6 all-nodes  multicast address. When the local
  1344.    node IPv6/ATM driver gets  the  Router Advertisement message from the
  1345.    IPv6 Network layer,  it transmits the message by following steps
  1346.    described  in  section 4.4.2.  The MARS server will transmit the
  1347.    packet on the LL's ClusterControlVC, which sends the packets to all
  1348.    nodes on the LL. Each node on the LL will then process the incoming
  1349.    packet as described in section 4.5 and pass the received packet to
  1350.    the IPv6 Network layer for processing as appropriate.
  1351.  
  1352.    To  perform  Router  Discovery,   an  IPv6  host  sends   a  Router
  1353.    Solicitation message to the all-routers multicast address. When the
  1354.    local node IPv6/ATM driver gets the request from the IPv6 Network
  1355.    Layer to send the packet,  it follows the steps  described in section
  1356.    4.4.2.  The RS message will be sent to either those nodes which have
  1357.    joined the all-routers multicast group or to all nodes.  The nodes
  1358.  
  1359.  
  1360.  
  1361. Armitage, et al.           Expires September 20, 1997           [Page 22]
  1362.  
  1363. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1364.  
  1365.  
  1366.    which receive the RA message will process the message as described in
  1367.    section 4.5 and pass the RA message up to the IPv6 datalink layer for
  1368.    processing.  Only those nodes which are routers will process the
  1369.    message and respond to it.
  1370.  
  1371.    An IPv6  router responds  to  a Router  Solicitation  by sending  a
  1372.    Router Advertisement  addressed  to  the IPv6  all-nodes  multicast
  1373.    address if the source address of the Router Solicitation was the
  1374.    unspecified address.  If the source address in the Router
  1375.    Solicitation is not the unspecified address, the the router will
  1376.    unicast the Router Advertisement to the soliciting node.  If the
  1377.    router sends the Router Advertisement to the all-nodes multicast
  1378.    address then it follows the steps  described above for unsolicited
  1379.    Router Advertisements.
  1380.  
  1381.    If the Router Advertisement is to be unicast to the  soliciting node,
  1382.    the IPv6 Network Layer  will give the node IPv6/ATM driver the Router
  1383.    Advertisement and link-layer address of the soliciting node (obtained
  1384.    through Address Resolution if necessary) which will send the packet
  1385.    according to the steps described in section 4.4.1  This will result
  1386.    in a new PtP VC being created between the router and the soliciting
  1387.    node if one did not already exist.
  1388.  
  1389.    The  soliciting   node will  receive and process  the Router
  1390.    Advertisement as described in section 4.5 and will pass the RA
  1391.    message to the IPv6 Network layer.  The IPv6 Network Layer may,
  1392.    depending on the state of the Neighbor Cache entry, update the
  1393.    Neighbor Cache  with the  router's ATM  address,  contained in  the
  1394.    Router Advertisement message's Source Link-Layer Address Option.
  1395.  
  1396.    If a PtP VC is  set  up during  Router  Discovery, subsequent  IPv6
  1397.    best effort unicast data between  the soliciting  node and  the
  1398.    router will be transmitted  over  the  new PtP VC.
  1399.  
  1400. A.1.3 Performing Neighbor Unreachability Detection (NUD)
  1401.  
  1402.  
  1403.    Neighbor Unreachability Detection (NUD) is the  process by which an
  1404.    IPv6 host determines  that a  neighbor is  no longer  reachable, as
  1405.    described  in  [7].    Each  Neighbor  Cache  entry  contains
  1406.    information used  by  the  NUD  algorithm  to  detect  reachability
  1407.    failures. Confirmation  of a  neighbor's reachability  comes either
  1408.    from upper-layer protocol  indications that  data recently  sent to
  1409.    the neighbor  was  received,  or from  the  receipt  of a  Neighbor
  1410.    Advertisement message in response to a Neighbor Solicitation probe.
  1411.  
  1412.    Connectivity failures  at  the  node  IPv6/ATM driver, such  as
  1413.    released VCs (see section 4.6. Unicast Data VC Setup and  Release)
  1414.    and the inability to create a VC to a neighbor (see section 4.4.1.
  1415.    Sending Unicast Data), are detected and handled at the  IPv6 Network
  1416.    Layer, through Neighbor Unreachability Detection.  The node IPv6/ATM
  1417.    driver does not attempt to detect or recover from these conditions.
  1418.  
  1419.    A persistent failure to  create a VC from  the IPv6 host to  one of
  1420.  
  1421.  
  1422.  
  1423. Armitage, et al.           Expires September 20, 1997           [Page 23]
  1424.  
  1425. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1426.  
  1427.  
  1428.    its IPv6 neighbors will  be detected and  handled through NUD.   On
  1429.    each attempt to send data from  the IPv6 host to  its neighbor, the
  1430.    node IPv6/ATM driver will attempt to set up a VC to the neighbor, and
  1431.    failing  to do  so,  will drop  the  packet. IPv6  reachability
  1432.    confirmation timers  will  eventually  expire, and  the  neighbor's
  1433.    Neighbor Cache entry  will enter the  PROBE state. The  PROBE state
  1434.    will cause the IPv6  host to unicast Neighbor  Solicitations to the
  1435.    neighbor, which will be dropped by the local node IPv6/ATM driver
  1436.    after again failing to setup  the VC. The IPv6  host will therefore
  1437.    never receive  the  solicited  Neighbor Advertisements  needed  for
  1438.    reachability confirmation,  causing  the  neighbor's  entry  to  be
  1439.    deleted from the Neighbor Cache.  The next time the IPv6 host tries
  1440.    to  send  data  to  that  neighbor,   address  resolution  will  be
  1441.    performed.   Depending  on the  reason  for  the previous  failure,
  1442.    connectivity to the neighbor could be  re-established (for example,
  1443.    if the previous VC  setup failure was  caused by an  obsolete link-
  1444.    layer address in the Neighbor Cache).
  1445.  
  1446.    In the event that a VC from an IPv6 neighbor is released, the next
  1447.    time  a packet is sent  from the IPv6  host to  the neighbor,  the
  1448.    node  IPv6/ATM driver  will recognize that it no longer has a VC to
  1449.    that neighbor and attempt to setup a new VC to the  neighbor.  If,
  1450.    on the first  and on subsequent transmissions, the node is unable to
  1451.    create  a VC to the neighbor, NUD will  detect and handle the
  1452.    failure as described earlier (handling the  persistent failure to
  1453.    create a VC  from the IPv6 host to one  of its IPv6  neighbors).
  1454.    Depending on  the reason for the previous failure,  connectivity to
  1455.    the neighbor  may or may not be re-established.
  1456.  
  1457. A.1.4 Performing Duplicate Address Detection (DAD)
  1458.  
  1459.  
  1460.    An  IPv6  host  performs  Duplicate  Address   Detection  (DAD)  to
  1461.    determine that the  address it  wishes to use  on the  LL (i.e. a
  1462.    tentative address) is  not already in use,  as described in [IPV6-
  1463.    ADDRCONF] and  [7].    Duplicate Address  Detection  is performed on
  1464.    all  addresses the host  wishes to use,  regardless of the
  1465.    configuration mechanism used to obtain the address.
  1466.  
  1467.    Prior to performing Duplicate  Address Detection, a host  will join
  1468.    the all-nodes  multicast address  and the  solicited-node multicast
  1469.    address corresponding to  the host's  tentative address  (see 4.2.
  1470.    Joining a  Multicast  Group). The  IPv6  host  initiates  Duplicate
  1471.    Address Detection by sending a Neighbor  Solicitation to solicited-
  1472.    node  multicast  address  corresponding  to  the  host's  tentative
  1473.    address, with the tentative  address as the target.  When the local
  1474.    node IPv6/ATM driver gets  the Neighbor Solicitation message from the
  1475.    IPv6 Network layer,  it follows the steps outlined in section 4.4.2.
  1476.    The NS message will be sent to those nodes which joined the target
  1477.    solicited-node multicast group or to all nodes.  The DAD NS message
  1478.    will be received by one or more nodes on the LL and processed by each
  1479.    as described in section 4.5.  Note that the MARS client of the
  1480.    sending node will filter out the message so that the sending node's
  1481.    IPv6 Network layer will not be sent the message.  The   IPv6  Network
  1482.  
  1483.  
  1484.  
  1485. Armitage, et al.           Expires September 20, 1997           [Page 24]
  1486.  
  1487. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1488.  
  1489.  
  1490.    Layer  of any node which is not a member of the target solicited-node
  1491.    multicast group will   discard the   Neighbor Solicitation message.
  1492.  
  1493.    If no other hosts have joined  the solicited-node multicast address
  1494.    corresponding to  the tentative  address, then  the  host will  not
  1495.    receive a Neighbor  Advertisement containing its  tentative address
  1496.    as the  target.  The host  will  perform  the retransmission  logic
  1497.    described   in   [IPV6-ADDRCONF],   terminate   Duplicate   Address
  1498.    Detection, and  assign the  tentative address  to the  NBMA
  1499.    interface.
  1500.  
  1501.    Otherwise, other hosts  on the  LL  that have  joined the solicited-
  1502.    node multicast  address  corresponding  to the  tentative address
  1503.    will  process the  Neighbor Solicitation.   The  processing will
  1504.    depend on  whether or  not receiving  IPv6 host  considers the target
  1505.    address to be tentative.
  1506.  
  1507.    If the receiving  IPv6 host's  address is  not tentative,  the host
  1508.    will respond with  a Neighbor  Advertisement containing  the target
  1509.    address. Because  the source  of the  Neighbor Solicitation  is the
  1510.    unspecified address, the host  sends the Neighbor  Advertisement to
  1511.    the all-nodes multicast address following the steps outlined in
  1512.    section 4.4.2.  The DAD NA message will be received and processed by
  1513.    the MARS clients on all nodes in the LL as described in section 4.5.
  1514.    Note that the sending node will filter the incoming message since the
  1515.    CMI in the message header will match that of the receiving node.  All
  1516.    other nodes will de-encapsulate the message and pass it to the IPv6
  1517.    Network layer.  The host  performing DAD will detect that  its
  1518.    tentative  address   is  the  target  of   the  Neighbor
  1519.    Advertisement, and  determine  that the  tentative  address is  not
  1520.    unique and cannot be assigned to its NBMA interface.
  1521.  
  1522.    If the receiving IPv6 host's address is  tentative, then both hosts
  1523.    are performing DAD using the same  tentative address. The receiving
  1524.    host will determine  that the tentative  address is not  unique and
  1525.    cannot be assigned to its NBMA interface.
  1526.  
  1527. A.1.5 Processing Redirects
  1528.  
  1529.  
  1530.    An IPv6 router uses a Redirect Message to inform an  IPv6 host of a
  1531.    better  first-hop  for   reaching  a  particular   destination,  as
  1532.    described in [7].  This can be used to direct hosts to a better first
  1533.    hop router, another host on the same LL, or to a transient neighbor
  1534.    on another LL.  The  IPv6 router will unicast  the Redirect to the
  1535.    IPv6  source  address  that  triggered  the  Redirect.  The router's
  1536.    IPv6/ATM driver will transmit the Redirect message using the
  1537.    procedure described in section 4.4.1.  This will create a VC between
  1538.    the router and the redirected host if one did not previously exist.
  1539.  
  1540.    The node's IPv6/ATM driver  of the  IPv6 host  that triggered  the
  1541.    Redirect will  receive  the encapsulated  Redirect  over one of it's
  1542.    PtP VCs.  It will the de-encapsulate the packet, and  pass the
  1543.    Redirect message to the IPv6 Network Layer, as described section 4.5.
  1544.  
  1545.  
  1546.  
  1547. Armitage, et al.           Expires September 20, 1997           [Page 25]
  1548.  
  1549. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1550.  
  1551.  
  1552.    Subsequent data sent from the IPv6 host to  the destination will be
  1553.    sent to  the next-hop  address specified  in the  Redirect Message.
  1554.    For NBMA networks, the Redirect Message should contain the link-layer
  1555.    address option as described in [7], thus the redirected node will not
  1556.    have to perform a Neighbor Solicitation to learn the link-layer
  1557.    address of the node to which it has been redirected.  Thus, the
  1558.    redirect can be to any node on the ATM network, regardless of the LL
  1559.    membership of the new target node. This allows NBMA hosts to be
  1560.    redirected off their LL to achieve shortcut by using standard IPv6
  1561.    protocols.
  1562.  
  1563.    Once redirected, the IPv6 Network  Layer will  give the  node's
  1564.    IPv6/ATM driver the IPv6 packet  and  the  link-layer  address  of
  1565.    the  next-hop  node when it sends data to the redirected destination.
  1566.    The  node IPv6/ATM driver will determine if a VC to the next-hop
  1567.    destination exists.  If a PtP VC does not exist, then the IPv6/ATM
  1568.    driver will queue the data packet and initiate a setup of a VC to the
  1569.    destination.  When the VC is created, or if one already exists, then
  1570.    the node will encapsulate the outgoing data packet and send it on the
  1571.    VC.
  1572.  
  1573.    Note that Redirects are unidirectional.  The redirected host will
  1574.    create a VC to the next-hop destination as specified in the Redirect
  1575.    message, but the next-hop will not be redirected to the source host.
  1576.    Because no Neighbor Discovery takes place, the next-hop destination
  1577.    has no way of determining the identity of the caller when it receives
  1578.    the new VC.  Also, since ND does not take place on redirects, the
  1579.    next-hop receives no event that would cause it to update it's
  1580.    neighbor or destination caches.  However, it will continue to
  1581.    transmit data back to the redirected host on the former path to the
  1582.    redirected host.  The next-hop node should be able to use the new VC
  1583.    from the redirected destination if it too receives a redirect
  1584.    redirecting it to the redirected node.  This behavior is consistent
  1585.    with [7].
  1586.  
  1587. A.2 Address Configuration
  1588.  
  1589.  
  1590.    IPv6 addresses are auto-configured using the  stateless or stateful
  1591.    address  auto-configuration  mechanisms,  as  described  in  [IPV6-
  1592.    ADDRCONF] and  [IPV6-DHCP].  The  IPv6  auto-configuration  process
  1593.    involves creating  and  verifying the  uniqueness  of a  link-local
  1594.    address on  an LL, determining  whether to  use stateless and/or
  1595.    stateful configuration  mechanisms to obtain  addresses, and
  1596.    determining  if   other   (non-address)   information  is   to   be
  1597.    autoconfigured. IPv6 addresses can also be  manually configured, if
  1598.    for example,  auto-configuration fails  because the  autoconfigured
  1599.    link-local address  is not  unique.   An LL administrator specifies
  1600.    the type  of autoconfiguration  to use;   the hosts  on an LL
  1601.    receive  this  autoconfiguration information  through Router
  1602.    Advertisement messages.
  1603.  
  1604.    The following sections describe how stateless,  stateful and manual
  1605.    address configuration  will work  over the  framework described  in
  1606.  
  1607.  
  1608.  
  1609. Armitage, et al.           Expires September 20, 1997           [Page 26]
  1610.  
  1611. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1612.  
  1613.  
  1614.    this document.
  1615.  
  1616. A.2.1 Stateless Address Configuration
  1617.  
  1618.  
  1619.    IPv6 stateless  address configuration  is the  process by  which an
  1620.    IPv6 host  autoconfigures its  interfaces, as  described in  [IPV6-
  1621.    ADDRCONF].
  1622.  
  1623.    When an  IPv6  host  first starts  up,  it  generates a  link-local
  1624.    address for the interface  attached to the  Logical Link.   It then
  1625.    verifies the uniqueness of  the link-local address  using Duplicate
  1626.    Address Detection (DAD).  If the IPv6  host detects that  the link-
  1627.    local  address  is   not  unique,  the   autoconfiguration  process
  1628.    terminates.  The IPv6 host must then be manually configured.
  1629.  
  1630.    After the  IPv6  host determines  that  the  link-local address  is
  1631.    unique and has assigned  it to the  interface on the  Logical Link,
  1632.    the IPv6  host  will  perform  Router  Discovery  to  obtain  auto-
  1633.    configuration information.   The IPv6 host  will send out  a Router
  1634.    Solicitation and will  receive a Router  Advertisement, or  it will
  1635.    wait for an unsolicited  Router Advertisement.  The  IPv6 host will
  1636.    process the M and O bits of the Router Advertisement,  as described
  1637.    in [IPV6-ADDRCONF]  and as  a result  may  invoke stateful  address
  1638.    auto-configuration.
  1639.  
  1640.    If there are no routers on the Logical Link, the  IPv6 host will be
  1641.    able to   communicate  with other  IPv6 hosts  on the  Logical Link
  1642.    using link-local addresses. The IPv6 host  will obtain a neighbor's
  1643.    link-layer address  using Address  Resolution. The  IPv6 host  will
  1644.    also attempt to invoke  stateful auto-configuration, unless  it has
  1645.    been explicitly configured not to do so.
  1646.  
  1647. A.2.2 Stateful  Address Configuration (DHCP)
  1648.  
  1649.  
  1650.    IPv6 hosts use  the Dynamic Host  Configuration Protocol  (DHCPv6) to
  1651.    perform stateful address auto-configuration, as described in [IPV6-
  1652.    DHCP].
  1653.  
  1654.    A DHCPv6 server or relay agent is present on a  Logical Link that has
  1655.    been configured with manual or stateful auto-configuration.   The
  1656.    DHCPv6 server or  relay  agent  will  join  the  IPv6  DHCPv6
  1657.    Server/Relay-Agent multicast group  on the  Logical Link.  When  the
  1658.    node ATM/IPv6 driver gets the JoinLocalGroup request from  the IPv6
  1659.    Network Layer, it follows  the  process described  in  section 4.2.
  1660.  
  1661.    An IPv6 host  will invoke  stateful auto-configuration  if M and  O
  1662.    bits of Router  Advertisements indicate  it should  do so,  and may
  1663.    invoke stateful auto-configuration  if it  detects that  no routers
  1664.    are present on  the Logical  Link. An IPv6  host that  is obtaining
  1665.    configuration  information  through  the  stateful  mechanism  will
  1666.    hereafter be referred to as a DHCPv6 client.
  1667.  
  1668.  
  1669.  
  1670.  
  1671. Armitage, et al.           Expires September 20, 1997           [Page 27]
  1672.  
  1673. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1674.  
  1675.  
  1676.    A DHCPv6  client  will  send  a  DHCPv6 Solicit  message  to  the
  1677.    DHCPv6 Server/Relay-Agent multicast address to  locate a DHCPv6
  1678.    Agent. When the soliciting node's  IPv6/ATM driver  gets the  request
  1679.    from  the IPv6 Network Layer to send the packet, it follows the steps
  1680.    described in section 4.4.2. Sending Multicast Data. This will result
  1681.    in one or more nodes on the LL receiving the message.  Each node that
  1682.    receives the solicitation packet will process it as described in
  1683.    section section 4.5 and will pass the message up to the IPv6 network
  1684.    layer. Only the IPv6 network layer of the DHCPv6 server/relay-agent
  1685.    will accept the packet and process it.
  1686.  
  1687.    A DHCPv6 Server  or Relay Agent  on the Logical  Link will  unicast a
  1688.    DHCPv6 Advertisement to the DHCPv6 client. The  IPv6 Network Layer
  1689.    will give the node's IPv6 to ATM IPv6/ATM driver the packet and
  1690.    link-layer address of  the  DHCPv6  client  (obtained  through
  1691.    Neighbor Discovery  if necessary).  The node  IPv6/ATM driver  will
  1692.    then transmit the packet as described in section 4.4.1.  This will
  1693.    result a new PtP VC being created between the server and the client
  1694.    if one did not previously exist.
  1695.  
  1696.    The  DHCP  client's  node   IPv6/ATM driver  will   receive  the
  1697.    encapsulated packet from the DHCP Server  or Relay Agent, as
  1698.    described in  section 4.5. Receiving Data . The node will de-
  1699.    encapsulate the multicast packet and then pass it up  to the IPv6
  1700.    Network Layer for processing. The IPv6 Network Layer  will deliver
  1701.    the DHCPv6 Advertise message to the DHCPv6 client.
  1702.  
  1703.    Other DHCPv6 messages (Request,  Reply, Release and  Reconfigure) are
  1704.    unicast between the DHCPv6 client and the DHCPv6  Server.  Depending
  1705.    on the reachability of the  DHCPv6 client's address,  messages
  1706.    exchanged between a DHCPv6 client and a DHCPv6 Server on another LL
  1707.    are sent either via a router or DHCPv6 Relay-Agent.  Prior to sending
  1708.    the DHCPv6  message,  the  IPv6   Network  Layer  will   perform
  1709.    Neighbor` Discovery (if  necessary)   to  obtain  the   link-layer
  1710.    address corresponding to  the packet's  next-hop. An  PtP VCwill  be
  1711.    set  up between the sender  and the next  hop, and the  encapsulated
  1712.    packet transmitted over it,  as described in 4.4. Sending Data.
  1713.  
  1714. A.2.3 Manual Address Configuration
  1715.  
  1716.  
  1717.    An IPv6 host  will be manually  configured if it  discovers through
  1718.    DAD that its link-local address is not unique.   Once the IPv6 host
  1719.    is configured with a unique interface token, the auto-configuration
  1720.    mechanisms can then be invoked.
  1721.  
  1722. A.3 Internet Group Management Protocol (IGMP)
  1723.  
  1724.    IPv6 multicast routers will use the IGMPv6 protocol to periodically
  1725.    determine group memberships of local hosts.  In the framework
  1726.    described here, the IGMPv6 protocols can be used without any special
  1727.    modifications for ATM.  While these protocols might not be the most
  1728.    efficient in this environment, they will still work as described
  1729.    below.  However, IPv6 multicast routers connected to an ATM LL could
  1730.  
  1731.  
  1732.  
  1733. Armitage, et al.           Expires September 20, 1997           [Page 28]
  1734.  
  1735. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1736.  
  1737.  
  1738.    optionally optimize the IGMP functions by sending
  1739.    MARS_GROUPLIST_REQUEST messages to the MARS serving the LL and
  1740.    determining group memberships by the MARS_GROUPLIST_REPLY messages.
  1741.    Querying the MARS for multicast group membership is an optional
  1742.    enchancement and is not required for routers to determine IPv6
  1743.    multicast group membership on a LL.
  1744.  
  1745.    There are  three ICMPv6  message types  that carry  multicast group
  1746.    membership  information:   the   Group   Membership  Query,   Group
  1747.    Membership Report  and  Group  Membership Reduction  messages.  The
  1748.    Internet Group  Management Protocol  (IGMPv6) will  continue to  work
  1749.    unmodified over the framework described in this document.
  1750.  
  1751.    An IPv6 multicast router receives all IPv6 multicast packets on the
  1752.    LL joining  all multicast groups in promiscuous mode [5].  The MARS
  1753.    server will then cause the multicast router to be added to all
  1754.    existing and future multicast VCs.  The IPv6  multicast router will
  1755.    thereafter be the recipient of  all IPv6  multicast packets  sent
  1756.    within  the Logical Link.
  1757.  
  1758.    An IPv6  multicast  router discovers  which  multicast groups  have
  1759.    members  in  the  Logical   Link  by  periodically   sending  Group
  1760.    Membership Query messages to the IPv6  all-nodes multicast address.
  1761.    When the local  node IPv6/ATM driver gets  the request  from the IPv6
  1762.    Network  Layer  to  send the Group Membership Query packet, it
  1763.    follows  the  steps described in  4.4.2. Sending  Multicast Data .
  1764.    The  node  determines  that the destination address of the packet is
  1765.    the all-nodes multicast address and passes the packet to the node's
  1766.    MARS client where the packet is encapsulated and transmitted to the
  1767.    MARS server over the PtP VC connecting the mutlicast router to the
  1768.    MARS server.  The MARS server then relays the packet to it's
  1769.    ClusterControlVC, sending the packet to all nodes in the LL.  Each
  1770.    node's IPv6/ATM drivers will receive the packet from the
  1771.    ClusterControlVC via it's MARS client.  The incoming packet will be
  1772.    de-encapsulated and passed up to the IPv6 Network layer.  If  the
  1773.    originating node receives the encapsulated packet,  the packet will
  1774.    be filtered out by the MARS client since the Cluster Member ID of the
  1775.    receiving node will match the CMI in the packet header.
  1776.  
  1777.    IPv6 hosts in the Logical  Link will respond to  a Group Membership
  1778.    Query with a Group Membership Report for  each IPv6 multicast group
  1779.    joined by  the  host.    IPv6  hosts  can  also  transmit  a  Group
  1780.    Membership Report when the host joins a new IPv6 multicast group.
  1781.    The Group Membership  Report is sent  to the multicast  group whose
  1782.    address is being  reported. When the  local node  IPv6/ATM driver
  1783.    gets the request from the IPv6 Network Layer to send the packet, it
  1784.    follows the  steps  described  in  4.4.2. Sending  Multicast Data.
  1785.    The  node determines that the  packet is being  sent to a  multicast
  1786.    address so forwards it to the node's MARS client for sending on the
  1787.    appropriate VC.
  1788.  
  1789.    The Group Membership Report packets will arrive at every node which
  1790.    is a member of the group being reported through one of the VC
  1791.    attached to each node's MARS client.  The MARS client will de-
  1792.  
  1793.  
  1794.  
  1795. Armitage, et al.           Expires September 20, 1997           [Page 29]
  1796.  
  1797. Internet Draft          draft-ietf-ion-tn-00.txt          March 20, 1997
  1798.  
  1799.  
  1800.    encapsulate the incoming packet and the packet will be passed to the
  1801.    IPv6 Network layer for processing.  The MARS client of the sending
  1802.    node will filter out the packet when it receives it.
  1803.  
  1804.    An IPv6 host  sends a Group  Membership Reduction message  when the
  1805.    host  leaves  an  IPv6  multicast  group.    The  Group  Membership
  1806.    Reduction is sent to the multicast group the IPv6 host is leaving.
  1807.    The transmission and receipt of Group Membership Reduction messages
  1808.    are handled in the same manner as Group Membership Reports.
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857. Armitage, et al.           Expires September 20, 1997           [Page 30]
  1858.  
  1859.  
  1860.