tech-invite   World Map
3GPP     Specs     Glossaries     UICC       T+       IETF     RFCs     Groups     SIP     ABNFs       Search     Home

RFC 8060

 
 
 

LISP Canonical Address Format (LCAF)

Part 2 of 2, p. 19 to 36
Prev Section

 


prevText      Top      ToC       Page 19 
4.10.  Applications for AFI List LCAF Type

4.10.1.  Binding IPv4 and IPv6 Addresses

   When header translation between IPv4 and IPv6 is desirable, a LISP
   Canonical Address can use the AFI List LCAF Type to carry a variable
   number of AFIs in one LCAF AFI.

Top      Up      ToC       Page 20 
   Address Binding LISP Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 1    |     Rsvd2     |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            AFI = 1            |       IPv4 Address ...        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     ...  IPv4 Address         |            AFI = 2            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          IPv6 Address ...                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     ...  IPv6 Address  ...                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     ...  IPv6 Address  ...                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     ...  IPv6 Address                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  length in bytes starting and including the byte after this
      Length field.

   This type of address format can be included in a Map-Request when the
   address is being used as an EID, but the LISP Mapping Database System
   lookup destination can use only the IPv4 address.  This is so a
   Mapping Database Service Transport System, such as LISP-ALT
   [RFC6836], can use the Map-Request destination address to route the
   control message to the desired LISP site.

   Usage: This encoding can be used in EID-records or RLOC-records in
   Map-Request, Map-Reply, Map-Register, and Map-Notify messages.  See
   the other subsections in this section for specific use cases.

4.10.2.  Layer 2 VPNs

   When Media Access Control (MAC) addresses are stored in the LISP
   Mapping Database System, the AFI List LCAF Type can be used to carry
   AFI 6.

Top      Up      ToC       Page 21 
   MAC Address LISP Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 1    |     Rsvd2     |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             AFI = 6           |    Layer 2 MAC Address  ...   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    ... Layer 2 MAC Address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  length in bytes starting and including the byte after this
      Length field.

   This address format can be used to connect Layer 2 domains together
   using LISP over an IPv4 or IPv6 core network to create a Layer 2 VPN.
   In this use case, a MAC address is being used as an EID, and the
   locator-set that this EID maps to can be an IPv4 or IPv6 RLOC, or
   even another MAC address being used as an RLOC.  See [EID-MOBILITY]
   for how Layer 2 VPNs operate when doing EID mobility.

   Care should be taken to protect privacy against the adverse use of a
   Layer 2 MAC address by ensuring policy controls are used during EID
   registrations that use AFI=6 encodings in RLOC-records.  Refer to the
   use-case documents for additional information.

4.10.3.  ASCII Names in the Mapping Database

   If DNS names [RFC1035] or URIs [RFC3986] are stored in the LISP
   Mapping Database System, the AFI List LCAF Type can be used to carry
   an ASCII string.

   ASCII LISP Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 1    |     Rsvd2     |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             AFI = 17          |      DNS Name or URI  ...     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Top      Up      ToC       Page 22 
   Length:  length in bytes starting and including the byte after this
      Length field.

   An example for using DNS names is when an ETR registers a mapping
   with an EID-record encoded as (AFI=1, 10.0.0.0/8) with an RLOC-record
   (AFI=17, "router.abc.com").

4.10.4.  Using Recursive LISP Canonical Address Encodings

   When any combination of above is desirable, the AFI List LCAF Type
   value can be used to carry within the LCAF AFI another LCAF AFI (for
   example, Application-Specific Data in Section 5.1).

   Recursive LISP Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 1    |     Rsvd2     |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 4    |     Rsvd2     |            Length2            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   IP TOS, IPv6 TC or Flow Label               |    Protocol   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Local Port (lower-range)   |    Local Port (upper-range)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Remote Port (lower-range)   |   Remote Port (upper-range)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            AFI = 1            |       IPv4 Address ...        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     ...  IPv4 Address         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  length in bytes starting and including the byte after this
      Length field.

   Length2:  length in bytes starting and including the byte after this
      Length2 field.

   This format could be used by a Mapping Database Service Transport
   System, such as LISP-ALT [RFC6836], where the AFI=1 IPv4 address is
   used as an EID and placed in the Map-Request destination address by
   the sending LISP system.  The ALT system can deliver the Map-Request
   to the LISP destination site independent of the Application Data LCAF

Top      Up      ToC       Page 23 
   Type AFI payload values.  When this AFI is processed by the
   destination LISP site, it can return different locator-sets based on
   the type of application or level of service that is being requested.

4.10.5.  Compatibility Mode Use Case

   A LISP system should use the AFI List LCAF Type format when sending
   to LISP systems that do not support a particular LCAF Type used to
   encode locators.  This allows the receiving system to be able to
   parse a locator address for encapsulation purposes.  The list of AFIs
   in an AFI List LCAF Type has no semantic ordering and a receiver
   should parse each AFI element no matter what the ordering.

   Compatibility Mode Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 1    |     Rsvd2     |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 5    |     Rsvd2     |           Length2             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |N|     Latitude Degrees        |    Minutes    |    Seconds    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |E|     Longitude Degrees       |    Minutes    |    Seconds    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Altitude                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = 0          |           AFI = 1             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          IPv4 Address                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  length in bytes starting and including the byte after this
      Length field.

   Length2:  length in bytes starting and including the byte after this
      Length2 field.

   If a system does not recognized the Geo-Coordinates LCAF Type that is
   accompanying a locator address, an encoder can include the Geo-
   Coordinates LCAF Type embedded in an AFI List LCAF Type where the AFI

Top      Up      ToC       Page 24 
   in the Geo-Coordinates LCAF Type is set to 0 and the AFI encoded next
   in the list is encoded with a valid AFI value to identify the locator
   address.

   A LISP system is required to support the AFI List LCAF Type to use
   this procedure.  It would skip over 10 bytes of the Geo-Coordinates
   LCAF Type to get to the locator address encoding (an IPv4 locator
   address).  A LISP system that does support the Geo-Coordinates LCAF
   Type can support parsing the locator address within the Geo-
   Coordinates LCAF Type encoding or in the locator encoding that
   follows in the AFI List LCAF Type.

5.  Experimental LISP Canonical Address Applications

   The following sections describe experimental LCAF encodings.  These
   LCAF Types are not approved (i.e., not registered with IANA).  The
   inclusion of these encodings in this document is in support of
   further study and experimentation to determine whether these
   encodings are functional, if there is a demand for these use cases,
   and to better understand deployment considerations.  As noted
   previously, these LCAF Types are restricted to cautious use in self-
   contained environments in support of the corresponding use-case
   documents.

5.1.  Convey Application-Specific Data

   When a locator-set needs to be conveyed based on the type of
   application or the Per-Hop Behavior (PHB) of a packet, the
   Application Data LCAF Type can be used.

   Application Data LISP Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 4    |     Rsvd2     |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       IP TOS, IPv6 TC, or Flow Label          |    Protocol   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Local Port (lower-range)   |    Local Port (upper-range)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Remote Port (lower-range)   |   Remote Port (upper-range)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = x          |         Address  ...          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Top      Up      ToC       Page 25 
   Length:  length in bytes starting and including the byte after this
      Length field.

   IP TOS, IPv6 TC, or Flow Label:  this field stores the 8-bit IPv4 TOS
      field used in an IPv4 header, the 8-bit IPv6 Traffic Class or Flow
      Label used in an IPv6 header.

   Local Port/Remote Port Ranges:  these fields are from the TCP, UDP,
      or Stream Control Transmission Protocol (SCTP) transport header.
      A range can be specified by using a lower value and an upper
      value.  When a single port is encoded, the lower and upper value
      fields are the same.

   AFI = x:  x can be any AFI value from [AFN].

   The Application Data LCAF Type is used for an EID encoding when an
   ITR wants a locator-set for a specific application.  When used for an
   RLOC encoding, the ETR is supplying a locator-set for each specific
   application is has been configured to advertise.

   Usage: This encoding can be used in EID-records in Map-Request, Map-
   Reply, Map-Register, and Map-Notify messages.  When LISP-DDT
   [LISP-DDT] is used as the mapping system mechanism, extended EIDs are
   used in Map-Referral messages.  This LCAF Type is used as a lookup
   key to the mapping system that can return a longest-match or exact-
   match entry.

5.2.  Generic Database Mapping Lookups

   When the LISP Mapping Database System holds information accessed by a
   generic formatted key (where the key is not the usual IPv4 or IPv6
   address), an opaque key may be desirable.

   Opaque Key LISP Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 6    |     Rsvd2     |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Key Field Num |      Key Wildcard Fields      |   Key . . .   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       . . . Key                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Top      Up      ToC       Page 26 
   Length:  length in bytes starting and including the byte after this
      Length field.

   Key Field Num:  the value of this field is the number of "Key" sub-
      fields minus 1, the Key field can be broken up into.  So, if this
      field has a value of 0, there is one sub-field in the "Key".  The
      width of the sub-fields are fixed length.  So, for a key size of 8
      bytes, with a Key Field Num of 3, four sub-fields of 2 bytes each
      in length are allowed.  Allowing for a reasonable number of 16
      sub-field separators, valid values range from 0 to 15.

   Key Wildcard Fields:  describes which fields in the key are not used
      as part of the key lookup.  This wildcard encoding is a bitfield.
      Each bit is a don't-care bit for a corresponding field in the key.
      Bit 0 (the low-order bit) in this bitfield corresponds the first
      field, the low-order field in the key, bit 1 the second field, and
      so on.  When a bit is set in the bitfield, it is a don't-care bit
      and should not be considered as part of the database lookup.  When
      the entire 16 bits are set to 0, then all bits of the key are used
      for the database lookup.

   Key:  the variable length key used to do a LISP Mapping Database
      System lookup.  The length of the key is the value n (as shown
      above).

   Usage: This is an experimental Type where the usage has not yet been
   defined.

5.3.  PETR Admission Control Functionality

   When a public Proxy Egress Tunnel Router (PETR) device wants to
   verify who is encapsulating to it, it can check for a specific nonce
   value in the LISP-encapsulated packet.  To convey the nonce to
   admitted ITRs or PITRs, this LCAF is used in a Map-Register or Map-
   Reply locator-record.

Top      Up      ToC       Page 27 
   Nonce Locator Canonical Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 8    |     Rsvd2     |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Reserved    |                  Nonce                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = x          |         Address  ...          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  length in bytes starting and including the byte after this
      Length field.

   Reserved:  must be set to zero and ignored on receipt.

   Nonce:  a nonce value returned by an ETR in a Map-Reply locator-
      record to be used by an ITR or PITR when encapsulating to the
      locator address encoded in the AFI field of this LCAF Type.  This
      nonce value is inserted in the nonce field in the LISP header
      encapsulation.

   AFI = x:  x can be any AFI value from [AFN].

   Usage: This is an experimental Type where the usage has not yet been
   defined.

5.4.  Data Model Encoding

   This Type allows a JSON data model to be encoded as either an EID or
   an RLOC.

   JSON Data Model Type Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 14   |    Rsvd2    |B|            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           JSON length         | JSON binary/text encoding ... |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = x          |       Optional Address ...    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Top      Up      ToC       Page 28 
   Length:  length in bytes starting and including the byte after this
      Length field.

   B bit:  indicates that the JSON field is binary encoded according to
      [JSON-BINARY] when the bit is set to 1.  Otherwise, the encoding
      is based on text encoding according to [RFC7159].

   JSON length:  length in octets of the following JSON binary/text
      encoding field.

   JSON binary/text encoding:  a variable-length field that contains
      either binary or text encodings.

   AFI = x:  x can be any AFI value from [AFN].  A specific AFI has its
      own encoding of either a unicast or multicast locator address.
      All RTR/ETR entries for the same level should be combined by a
      Map-Server to avoid searching through the entire multilevel list
      of locator entries in a Map-Reply message.

   Usage: This is an experimental Type where the usage has not yet been
   defined.  An example mapping is an EID-record encoded as a
   distinguished-name "cpe-router" and an RLOC-record encoded as a JSON
   string "{ "router-address" : "1.1.1.1", "router-mask" : "8" }".

5.5.  Encoding Key/Value Address Pairs

   The Key/Value pair is, for example, useful for attaching attributes
   to other elements of LISP packets, such as EIDs or RLOCs.  When
   attaching attributes to EIDs or RLOCs, it's necessary to distinguish
   between the element that should be used as EID or RLOC and, hence, as
   the key for lookups and additional attributes.  This is especially
   the case when the difference cannot be determined from the Types of
   the elements, such as when two IP addresses are being used.

   Key/Value Address Pair Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 15   |     Rsvd2     |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = x          |       Address as Key ...      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = y          |       Address as Value ...    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Top      Up      ToC       Page 29 
   Length:  length in bytes starting and including the byte after this
      Length field.

   AFI = x:  x is the "Address as Key" AFI that can have any value from
      [AFN].  A specific AFI has its own encoding of either a unicast or
      a multicast locator address.  All RTR/ETR entries for the same
      level should be combined by a Map-Server to avoid searching
      through the entire multilevel list of locator entries in a Map-
      Reply message.

   Address as Key:  AFI-encoded address that will be attached with the
      attributes encoded in "Address as Value", which follows this
      field.

   AFI = y:  y is the "Address of Value" AFI that can have any value
      from [AFN].  A specific AFI has its own encoding of either a
      unicast or a multicast locator address.  All RTR/ETR entries for
      the same level should be combined by a Map-Server to avoid
      searching through the entire multilevel list of locator entries in
      a Map-Reply message.

   Address as Value:  AFI-encoded address that will be the attribute
      address that goes along with "Address as Key" which precedes this
      field.

   Usage: This is an experimental Type where the usage has not yet been
   defined.

5.6.  Multiple Data-Planes

   Overlays are becoming popular in many parts of the network, which has
   created an explosion of data-plane encapsulation headers.  Since the
   LISP mapping system can hold many types of address formats, it can
   represent the encapsulation format supported by an RLOC as well.
   When an encapsulator receives a Map-Reply with an Encapsulation
   Format LCAF Type encoded in an RLOC-record, it can select an
   encapsulation format, that it can support, from any of the
   encapsulation protocols that have the bit set to 1 in this LCAF Type.

Top      Up      ToC       Page 30 
   Encapsulation Format Address Format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           AFI = 16387         |     Rsvd1     |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Type = 16   |     Rsvd2     |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Reserved-for-Future-Encapsulations       |U|G|N|v|V|l|L|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              AFI = x          |          Address ...          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length:  length in bytes starting and including the byte after this
      Length field.

   Reserved-for-Future-Encapsulations:  must be set to zero and ignored
      on receipt.  This field will get bits allocated to future
      encapsulations, as they are created.

   U: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept Generic UDP Encapsulation (GUE) using destination UDP
      port 6080 [GUE].

   G: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept Geneve encapsulation using destination UDP port 6081
      [GENEVE].

   N: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept NV-GRE (Network Virtualization - Generic Routing
      Encapsulation) using IPv4/IPv6 protocol number 47 [RFC7637].

   v: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept VXLAN-GPE (Generic Protocol Extension) encapsulation
      using destination UDP port 4790 [GPE-VXLAN].

   V: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept Virtual eXtensible Local Area Network (VXLAN)
      encapsulation using destination UDP port 4789 [RFC7348].

   l: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept Layer 2 LISP encapsulation using destination UDP port
      8472 [LISP-L2].

   L: The RLOCs listed in the AFI-encoded addresses in the next longword
      can accept Layer 3 LISP encapsulation using destination UDP port
      4341 [RFC6830].

Top      Up      ToC       Page 31 
   Usage: This encoding can be used in RLOC-records in Map-Request, Map-
   Reply, Map-Register, and Map-Notify messages.

6.  Security Considerations

   This document is classified as Experimental.  The LCAF encodings
   defined in this document are intended to be used with their
   corresponding use cases and in self-contained environments.  Users
   should carefully consider how the [LISP-SEC] threat model applies to
   their particular use case.

   The use of the Geo-Coordinates LCAF Type may raise physical privacy
   issues.  Care should be taken when configuring the mapping system to
   use specific policy parameters so geolocation information is not
   returned gratuitously.  It is recommended that any documents that
   specify the use of the Geo-Coordinates LCAF Type should consider the
   applicability of RFC 6280 (BCP 160) [RFC6280] for location-based
   privacy protection.

   Additional privacy concerns have arisen since publication of BCP 160,
   and future work on LISP should examine potential threats beyond BCP
   160 and address improving privacy and security for LISP deployments.

7.  IANA Considerations

   This document defines a canonical address format encoding used in
   LISP control messages and in the encoding of lookup keys for the LISP
   Mapping Database System.  Such an address format is based on a fixed
   AFI (16387) and a LISP LCAF Type field.

   The LISP LCAF Type field is an 8-bit field specific to the LISP
   Canonical Address Format encodings.  IANA has created a new registry
   (as outlined in [RFC5226]) titled "LISP Canonical Address Format
   (LCAF) Types".  Initial values for the "LISP Canonical Address Format
   (LCAF) Types" registry are given below.  Future assignments are to be
   made using the Specification Required policy [RFC5226].  Assignments
   consist of a LISP LCAF Type Name and its associated value:

Top      Up      ToC       Page 32 
              +-------+------------------------+-----------+
              | Value | LISP LCAF Type Name    | Reference |
              +-------+------------------------+-----------+
              | 0     | Null Body              | Section 3 |
              | 1     | AFI List               | Section 3 |
              | 2     | Instance ID            | Section 3 |
              | 3     | AS Number              | Section 3 |
              | 5     | Geo-Coordinates        | Section 3 |
              | 7     | NAT-Traversal          | Section 3 |
              | 9     | Multicast Info         | Section 3 |
              | 10    | Explicit Locator Path  | Section 3 |
              | 11    | Security Key           | Section 3 |
              | 12    | Source/Dest Key        | Section 3 |
              | 13    | Replication List Entry | Section 3 |
              +-------+------------------------+-----------+

                      Table 1: Initial Values in the
           "LISP Canonical Address Format (LCAF) Types" Registry

8.  References

8.1.  Normative References

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
              November 1987, <http://www.rfc-editor.org/info/rfc1035>.

   [RFC1918]  Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.,
              and E. Lear, "Address Allocation for Private Internets",
              BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996,
              <http://www.rfc-editor.org/info/rfc1918>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC3232]  Reynolds, J., Ed., "Assigned Numbers: RFC 1700 is Replaced
              by an On-line Database", RFC 3232, DOI 10.17487/RFC3232,
              January 2002, <http://www.rfc-editor.org/info/rfc3232>.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, DOI 10.17487/RFC3986, January 2005,
              <http://www.rfc-editor.org/info/rfc3986>.

Top      Up      ToC       Page 33 
   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              DOI 10.17487/RFC5226, May 2008,
              <http://www.rfc-editor.org/info/rfc5226>.

   [RFC6280]  Barnes, R., Lepinski, M., Cooper, A., Morris, J.,
              Tschofenig, H., and H. Schulzrinne, "An Architecture for
              Location and Location Privacy in Internet Applications",
              BCP 160, RFC 6280, DOI 10.17487/RFC6280, July 2011,
              <http://www.rfc-editor.org/info/rfc6280>.

   [RFC6830]  Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
              Locator/ID Separation Protocol (LISP)", RFC 6830,
              DOI 10.17487/RFC6830, January 2013,
              <http://www.rfc-editor.org/info/rfc6830>.

   [RFC6836]  Fuller, V., Farinacci, D., Meyer, D., and D. Lewis,
              "Locator/ID Separation Protocol Alternative Logical
              Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836,
              January 2013, <http://www.rfc-editor.org/info/rfc6836>.

   [RFC7159]  Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
              Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March
              2014, <http://www.rfc-editor.org/info/rfc7159>.

   [RFC7348]  Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
              L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
              eXtensible Local Area Network (VXLAN): A Framework for
              Overlaying Virtualized Layer 2 Networks over Layer 3
              Networks", RFC 7348, DOI 10.17487/RFC7348, August 2014,
              <http://www.rfc-editor.org/info/rfc7348>.

   [RFC7637]  Garg, P., Ed. and Y. Wang, Ed., "NVGRE: Network
              Virtualization Using Generic Routing Encapsulation",
              RFC 7637, DOI 10.17487/RFC7637, September 2015,
              <http://www.rfc-editor.org/info/rfc7637>.

8.2.  Informative References

   [AFN]      IANA, "Address Family Numbers",
              <http://www.iana.org/assignments/address-family-numbers/>.

   [EID-MOBILITY]
              Portoles-Comeras, M., Ashtaputre, V., Moreno, V., Maino,
              F., and D. Farinacci, "LISP L2/L3 EID Mobility Using a
              Unified Control Plane", Work in Progress,
              draft-portoles-lisp-eid-mobility-01, October 2016.

Top      Up      ToC       Page 34 
   [GENEVE]   Gross, J., Ganga, I., and T. Sridhar, "Geneve: Generic
              Network Virtualization Encapsulation", Work in Progress,
              draft-ietf-nvo3-geneve-03, September 2016.

   [GPE-VXLAN]
              Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol
              Extension for VXLAN", Work in Progress,
              draft-ietf-nvo3-vxlan-gpe-03, October 2016.

   [GUE]      Herbert, T., Yong, L., and O. Zia, "Generic UDP
              Encapsulation", Work in Progress, draft-ietf-nvo3-gue-05,
              October 2016.

   [JSON-BINARY]
              "Universal Binary JSON Specification",
              <http://ubjson.org>.

   [LISP-DDT] Fuller, V., Lewis, D., Ermagan, V., Jain, A., and A.
              Smirnov, "LISP Delegated Database Tree", Work in
              Progress, draft-ietf-lisp-ddt-09, January 2017.

   [LISP-L2]  Smith, M., Dutt, D., Farinacci, D., and F. Maino, "Layer 2
              (L2) LISP Encapsulation Format", Work in Progress,
              draft-smith-lisp-layer2-03, September 2013.

   [LISP-RE]  Coras, F., Cabellos-Aparicio, A., Domingo-Pascual, J.,
              Maino, F., and D. Farinacci, "LISP Replication
              Engineering", Work in Progress,
              draft-coras-lisp-re-08, November 2015.

   [LISP-SEC] Maino, F., Ermagan, V., Cabellos, A., and D. Saucez,
              "LISP-Security (LISP-SEC)", Work in Progress,
              draft-ietf-lisp-sec-12, November 2016.

   [LISP-TE]  Farinacci, D., Kowal, M., and P. Lahiri, "LISP Traffic
              Engineering Use-Cases", Work in Progress,
              draft-farinacci-lisp-te-11, September 2016.

   [NAT-LISP] Ermagan, V., Farinacci, D., Lewis, D., Skriver, J., Maino,
              F., and C. White, "NAT traversal for LISP", Work in
              Progress, draft-ermagan-lisp-nat-traversal-11, August
              2016.

Top      Up      ToC       Page 35 
   [RFC8061]  Farinacci, D. and B. Weis, "Locator/ID Separation Protocol
              (LISP) Data-Plane Confidentiality", RFC 8061,
              DOI 10.17487/RFC8061, February 2017,
              <http://www.rfc-editor.org/info/rfc8061>.

   [WGS-84]   National Imagery and Mapping Agency, "Department of
              Defense World Geodetic System 1984", NIMA TR8350.2,
              January 2000, <http://earth-info.nga.mil/GandG/
              publications/tr8350.2/wgs84fin.pdf>.

Acknowledgments

   The authors would like to thank Vince Fuller, Gregg Schudel, Jesper
   Skriver, Luigi Iannone, Isidor Kouvelas, and Sander Steffann for
   their technical and editorial commentary.

   The authors would like to thank Victor Moreno for discussions that
   led to the definition of the Multicast Info LCAF Type.

   The authors would like to thank Parantap Lahiri and Michael Kowal for
   discussions that led to the definition of the Explicit Locator Path
   (ELP) LCAF Type.

   The authors would like to thank Fabio Maino and Vina Ermagan for
   discussions that led to the definition of the Security Key LCAF Type.

   The authors would like to thank Albert Cabellos-Aparicio and Florin
   Coras for discussions that led to the definition of the Replication
   List Entry LCAF Type.

   Thanks goes to Michiel Blokzijl and Alberto Rodriguez-Natal for
   suggesting new LCAF Types.

   Thanks also goes to Terry Manderson for assistance obtaining a LISP
   AFI value from IANA.

   And finally, the authors thank Stephen Farrell (Security Area
   Director) and Deborah Brungard (Routing Area Director) for their
   suggested text to get the document through IESG review.

Top      Up      ToC       Page 36 
Authors' Addresses

   Dino Farinacci
   lispers.net
   San Jose, CA
   United States of America

   Email: farinacci@gmail.com


   Dave Meyer
   Brocade
   San Jose, CA
   United States of America

   Email: dmm@1-4-5.net


   Job Snijders
   NTT Communications
   Theodorus Majofskistraat 100
   Amsterdam  1065 SZ
   The Netherlands

   Email: job@ntt.net