Internet-Draft LISP Canonical Address Format January 2026
Retana, et al. Expires 11 July 2026 [Page]
Workgroup:
Internet Engineering Task Force
Internet-Draft:
draft-ietf-lisp-rfc8060bis-03
Obsoletes:
8060 (if approved)
Published:
Intended Status:
Standards Track
Expires:
Authors:
A. Retana, Ed.
Futurewei Technologies, Inc.
D. Farinacci
lispers.net
J. Snijders
A. Rodriguez-Natal
Cisco

LISP Canonical Address Format (LCAF)

Abstract

This document defines a canonical address format encoding used in Locator/ID Separation Protocol (LISP) control messages and in the encoding of lookup keys for the LISP Mapping Database System.

This document obsoletes RFC 8060.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 11 July 2026.

Table of Contents

1. Introduction

The LISP architecture and protocol [RFC9300] [RFC9301] introduces two namespaces: Endpoint Identifiers (EIDs) and Routing Locators (RLOCs). To provide flexibility for current and future applications, these values can be encoded in LISP control messages using a general syntax that includes Address Family Identifier (AFI), length, and value fields.

The defined AFIs include IPv4 and IPv6 addresses, which are formatted as follows:


 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 = 1            |       IPv4 Address ...        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     ...  IPv4 Address         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: IPv4-Encoded Address

 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 = 2            |       IPv6 Address ...        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     ...  IPv6 Address  ...                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     ...  IPv6 Address  ...                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     ...  IPv6 Address  ...                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     ...  IPv6 Address         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 2: IPv6-Encoded Address

This document describes the AFIs used by LISP along with their encodings and introduces the LISP Canonical Address Format (LCAF) that can be used to define the LISP-specific encodings for arbitrary AFI values.

Specific detailed uses for the LCAF Types defined in this document may be found in separate use-case documents. The same LCAF Type may be used by more than one use-case.

This document obsoletes [RFC8060].

2. Terminology

2.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2.2. Definition of Terms

Readers are expected to be familiar with the terminology defined in [RFC9300].

3. LISP Canonical Address Format Encoding

IANA has assigned AFI value 16387 (0x4003) to the LISP Canonical Address Format (LCAF). This specification defines the encoding format of the LISP Canonical Address (LCA).

The AFI definitions in [AFN] only allocate code-points for the AFI value itself. The length of the address or entity that follows is not defined and is implied based on conventional experience. LISP uses the following AFIs:

Table 1: LISP Address Families
AFI Value Name Address Length (octets)
0 Unspecified Encoded Address Null (see Section 3 of [RFC9300])
1 IPv4 4
2 IPv6 16
6 802 MAC Address 6
17 Distinguished Name Variable: can be derived from the Length field. (see Section 4.1.3)
16387 LCAF Variable. (see Section 4)

The first 6 octets of a LISP Canonical Address Format are followed by a variable number of fields of variable length (Payload):


 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       |     Rsvd2     |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     . . . (Payload) . . .                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 3: LISP Canonical Address Format Header
Rsvd1:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

Flags:

this 8-bit field is for future definition and use. It MUST be set to zero on transmission and ignored on receipt.

Type:

indicates the Type of the LISP Canonical Address Format encodings. The values are summarized in Table 2 (Section 6). Unrecognized Types MUST be silently ignored.

Rsvd2:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt. This field is Type-specific.

Length:

this 16-bit field indicates the length in octets of the LISP Canonical Address Payload.

[RFC9301] states RLOC-records based on an IP address are sorted when encoded in control messages, so the locator-set has consistent order across all xTRs for a given EID. The sort order is based on sort-key {AFI, RLOC-address}. When an RLOC based on an IP address is LCAF encoded, the sort-key is {AFI, LCAF-Type, RLOC-address}. Therefore, when a locator-set has a mix of AFI records and LCAF records, they are ordered from smallest to largest AFI value.

4. LISP Canonical Address Types

The following sections specify the format of the currently defined set of Type values.

Type 0 is used to indicate a "Null Body", which requires the Length value to be set to 0. If the Length value is not 0, the Type 0 MUST be silently ignored.

4.1. The AFI List LCAF Type

The AFI List LCAF Type (Type 1) is used to carry a variable number of addresses in a single LCAF instance. The Payload of this LCAF Type is a sequence of one or more AFI-encoded addresses. The AFI List LCAF Type can be used in a variety of applications, some of which are described in the following subsections.


 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              |          Address ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      ...    Address           |              AFI              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Address ...                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 4: AFI List LISP Canonical Address Format
AFI:

an AFI value from Table 1.

Address:

this field contains an address value in accordance to the AFI preceding it. It's length is variable and is determined by the AFI. See Table 1 for details.

The AFI List LCAF can contain one or more AFI/Address pairs.

4.1.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.


 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                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 5: Address Binding LISP Canonical Address Format

This type of address format can be included in a Map-Request when, for example, the IPv6 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.

This encoding can be used in EID-records or RLOC-records in Map-Request, Map-Reply, Map-Register, and Map-Notify messages.

4.1.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.


 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                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 6: MAC Address LISP Canonical Address Format

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 [I-D.ietf-lisp-eid-mobility] for an example.

4.1.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.


 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  ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 7: ASCII Name LISP Canonical Address Format

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

4.1.4. Using Recursive LISP Canonical Address Encodings

When any combination of the 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 4.4).


 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     |            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 = 1            |       IPv4 Address ...        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     ...  IPv4 Address         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 8: Recursive LISP Canonical Address Format

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 LISP-ALT system can deliver the Map-Request to the LISP destination site independent of the Application Data LCAF Type AFI payload values (Section 4.4). 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.1.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.


 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 = 3    |     Rsvd2     |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           AS Number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              AFI = 0          |           AFI = 1             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          IPv4 Address                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 9: Compatibility Mode LISP Canonical Address Format

For example, if a system does not recognize the AS Number LCAF Type (Section 4.3) that accompanies a locator address, an encoder can include the AS Number LCAF Type embedded in an AFI List LCAF Type where the AFI in the AS Number 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 octets of the AS Number LCAF Type to get to the locator address encoding (an IPv4 locator address). A LISP system that does support the AS Number LCAF Type can support parsing the locator address in the encoding that follows in the AFI List LCAF Type.

4.2. The Instance ID LCAF Type

The Instance ID LCAF Type (Type 2) is used to carry an Instance ID along with an AFI-based address. The Instance ID can be used when virtualization and segmentation are needed; see see Section 8 of [RFC9300] and [I-D.ietf-lisp-vpn] for more details.


 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 = 2    | IID mask-len  |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Instance ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |         Address  ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 10: Instance ID LISP Canonical Address Format
IID mask-len:

if the AFI is set to 0, then this LCAF is encoding an Instance ID range where this field indicates the number of high-order bits used in the Instance ID field for the range. The low-order bits of the Instance ID field MUST be 0 and ignored.

If the AFI is set to any other value, then this LCAF is encoding an extended EID prefix [I-D.ietf-lisp-8111bis]. In this case, this field is not used and MUST be set to 0 on transmission and ignored on receipt.

Instance ID:

32-bit unstructured field.

AFI:

as specified in Section 4.1. Only AFI values for the Unspecified Encoded Address (0), IPv4 (1), and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored.

Address:

as specified in Section 4.1.

4.3. The AS Number LCAF Type

The AS Number LCAF Type (Type 3) is used to carry an Autonomous System (AS) number, which can be stored in the LISP Mapping Database System for either policy or documentation reasons.


 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 = 3    |     Rsvd2     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           AS Number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |         Address  ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 11: AS Number LISP Canonical Address Format
AS Number:

the 32-bit AS number of the autonomous system that has been assigned to either the EID or RLOC that follows. Two-octet AS numbers are encoded by setting the two high-order octets of the field to zero as specified in [RFC6793].

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored.

Address:

as specified in Section 4.1.

The AS Number LCAF Type can be used to encode either EID or RLOC addresses. The former is used to describe the LISP-ALT AS number the EID prefix for the site is being carried for. The latter is used to describe the AS that is carrying RLOC based prefixes in the underlying routing system.

4.4. The Application Data LCAF Type

The Application Data LCAF Type (Type 4) is used to carry information about the type of application or Per-Hop Behavior (PHB) [RFC2475] of packets.

For example, 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.


 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            |         Address  ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 12: Application Data LISP Canonical Address Format
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 the 20-bit Flow Label used in an IPv6 header. The corresponding field is selected based on the AFI value used in the Address field. The unused bits in this field MUST be set to 0 on transmission. The value MUST be included in the low-order bits of the field.

Protocol:

this field stores the protocol number for TCP (6), UDP (17), or Stream Control Transmission Protocol (SCTP) (132). Any other value is invalid and the LCAF Type MUST be silently ignored.

Local Port/Remote Port:

these fields are from the TCP [RFC9293], UDP [RFC768], or SCTP [RFC9260] transport header. A range can be specified by using a lower-range and an upper-range. When a single port is encoded, the lower-range and upper-range fields MUST be the same. If the lower-range field is not equal to the upper-range field, then the lower-range field MUST be less than the upper-range field or the LCAF Type MUST be silently ignored.

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored.

Address:

as specified in Section 4.1.

4.5. The Opaque Key LCAF Type

The Opaque Key LCAF Type (Type 6) is used to carry a generic formatted key that can be used to do a LISP Mapping Database System lookup.


 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                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 13: Opaque Key LISP Canonical Address Format
Key Field Num:

the value of this field is the number of "Key" sub-fields minus 1, the key can be broken up into. For example, if this field has a value of 0, there is one "Key" sub-field. The valid values range is 0 to 15. If the value is greater than 15, the LCAF Type MUST be silently ignored.

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 Key field. Bit 0 (the low-order bit) in this bitfield corresponds the first Key field, the low-order field in the key, bit 1 the second Key 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. Any bits set to 1 that correspond to non-existent Key fields (for example, bit 5 set when there are only 3 Key fields) MUST be ignored.

Key:

a series of Key sub-fields contain the variable length key. The length of each sub-field is determined by dividing the total length of the key (Length - 3) by the number of fields (Key Field Num + 1). For example, for a key size of 8 octets (the Length field is set to 11), with a Key Field Num of 3, four sub-fields of 2 octets each are present. The number of Key fields MUST evenly divide (without remainder) into the total length of the key or the LCAF Type MUST be silently ignored.

4.6. The NAT-Traversal LCAF Type

The NAT-Traversal LCAF Type (Type 7) can be used to carry information about global and private addresses and port numbers when a LISP system is traversing a Network Address Translation (NAT) device. See [I-D.ietf-lisp-nat-traversal] and [I-D.farinacci-lisp-lispers-net-nat] for examples of its use.


 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 = 7    |     Rsvd2     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       MS UDP Port Number      |      ETR UDP Port Number      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |  Global ETR RLOC Address  ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |       MS RLOC Address  ...    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            | Private ETR RLOC Address  ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |      RTR RLOC Address 1 ...   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |      RTR RLOC Address k ...   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 14: NAT-Traversal LISP Canonical Address Format
MS UDP Port Number:

this is the UDP port number of the Map-Server and is set to 4342 [RFC9301]. Any other value is invalid and the LCAF Type MUST be silently ignored.

ETR UDP Port Number:

this is the port number returned to a LISP system that was copied from the source port from a packet that has flowed through a NAT device.

AFI:

as specified in Section 4.1. Except for the last set of addresses (RTR RLOC Addresses, where AFI = 0 is also allowed), only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored. All the AFI fields (including the RTR RLOC Addresses, if not using AFI = 0) MUST be the same. Otherwise, the LCAF Type MUST be silently ignored.

Global ETR RLOC Address:

this is an address (as specified in Section 4.1) known to be globally unique built by NAT-traversal functionality in a LISP router.

MS RLOC Address:

this is the address (as specified in Section 4.1) of the Map-Server used in the destination RLOC of a packet that has flowed through a NAT device.

Private ETR RLOC Address:

this is an address (as specified in Section 4.1) known to be a private address inserted in this LCAF by a LISP router that resides on the private side of a NAT device.

RTR RLOC Address:

this is an encapsulation address (as specified in Section 4.1) used by an Ingress Tunnel Router (ITR) or Proxy Ingress Tunnel Router (PITR) that resides behind a NAT device. This address is known to have state in a NAT device so packets can flow from it to the LISP ETR behind the NAT. There can be zero or more NAT Re-encapsulating Tunnel Router (RTR) [RFC9300] addresses supplied in this set of fields. The number of RTRs encoded is determined by the Length field. When there are no RTRs supplied, the RTR fields can be omitted and reflected in the LCAF Length field or an AFI of 0 can be used to indicate zero RTRs encoded.

4.7. The Nonce Locator LCAF Type

The Nonce Locator LCAF Type (Type 8) is used to carry a nonce value along with an AFI-based address. This LCAF Type can be used, for example, by a public Proxy-ETR [RFC6832] device to verify who is encapsulating to it: it can check for a specific nonce value in the LISP-encapsulated packet.


 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            |         Address  ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 15: Nonce Locator LISP Canonical Address Format
Reserved:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

Nonce:

a 24-bit nonce value returned in a Map-Reply locator-record to be used by an ITR/Proxy-ITR when encapsulating to the locator address encoded in the AFI field of this LCAF Type. This nonce value is inserted in the LISP Nonce field in the LISP header encapsulation [RFC9300].

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored.

Address:

as specified in Section 4.1.

4.8. The Multicast Info LCAF Type

The Multicast Info LCAF Type (Type 9) is used to carry multicast group information.

Multicast group information can be published in the mapping database using the Multicast Info LCAF Type. This LCAF encoding can also be used to send broadcast packets to all members of a subnet when an EID is away from its home subnet location.


 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 = 9    |     Rsvd2     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Instance ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Reserved           | Source MaskLen| Group MaskLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |   Source/Subnet Address  ...  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |       Group Address  ...      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 16: Multicast Info LISP Canonical Address Format
Instance ID:

as defined in Section 4.2. The Instance ID in this LCAF can be used to associate a multicast forwarding entry for a given VPN.

Reserved:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

Source MaskLen:

the mask length of the Source/Subnet Address that follows. The length is the number of high-order mask bits set.

Group MaskLen:

the mask length of the Group Address that follows. The length is the number of high-order mask bits set.

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored. All the AFI fields MUST be the same. Otherwise, the LCAF Type MUST be silently ignored.

Source/Subnet Address:

the source address (as specified in Section 4.1) or prefix for encoding an (S,G) multicast entry [RFC4607]. A special wildcard value consisting of an address field of all zeros can be used to indicate any source.

Group Address:

the group address or group prefix for encoding (S,G) or (*,G) multicast entries [RFC7761]. This field MUST be either a multicast address or a broadcast address. Otherwise, the LCAF Type MUST be silently ignored.

4.9. The Explicit Locator Path LCAF Type

The Explicit Locator Path (ELP) LCAF Type (Type 10) is used to carry a list of locators in an explicit re-encapsulation path. See [I-D.ietf-lisp-te] for an example.


 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 = 10   |     Rsvd2     |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Reserved        |L|P|S|             AFI               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Reencap Hop 1  ...                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Reserved        |L|P|S|             AFI               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Reencap Hop k  ...                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 17: Explicit Locator Path LISP Canonical Address Format
Reserved:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

L (Lookup bit):

this bit indicates that the address (in the Reencap Hop field) should not be used for encapsulation, but to look it up in the mapping database system to obtain an encapsulating RLOC address.

P (RLOC Probe bit):

this bit indicates the Reencap Hop allows RLOC-probe messages [RFC9301] to be sent to it. When the P bit is set to 0, RLOC-probes MUST NOT be sent. If the Reencap Hop is an anycast address then the bit SHOULD be set to 0.

S (Strict bit):

this bit, which indicates that the associated Reencap Hop is REQUIRED to be used. If this bit is 0, the re-encapsulator MAY skip this Reencap Hop and go to the next one in the list.

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored. All the AFI fields MUST be the same. Otherwise, the LCAF Type MUST be silently ignored.

Reencap Hop:

this is the address (as specified in Section 4.1) for reencapsulation.

One or more Reencap Hops can be encoded in this LCAF. Each hop is encoded with its own set of Reserved, L, P, S, AFI, and Address fields.

4.10. The Security Key LCAF Type

The Security Key LCAF Type (Type 11) is used to carry security key material when a locator in a locator-set has a security key associated with it. See [I-D.ietf-lisp-8111bis] or [RFC8061] for an example.


 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 = 11   |      Rsvd2    |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Key Count   |    Reserved   | Key Algorithm |   Reserved  |R|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Key Length          |       Key Material ...        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        ... Key Material                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |       Locator Address ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 18: Security Key LISP Canonical Address Format
Key Count:

the Key Count field declares the number of Key Sections included in this LCAF. A Key Section is made up of the Key Length and Key Material fields.

Reserved:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

Key Algorithm:

the Key Algorithm field identifies the key's cryptographic algorithm and specifies the format of the Public Key field. Specific use cases can specify the values for the supported algorithms. Refer to [RFC8061] for an example.

R bit:

this is the Revoke bit and, if set, it specifies that this key is being revoked.

Key Length:

this field determines the length in octets of the Key Material field.

Key Material:

this field stores the key material. The format of the key material stored depends on the Key Algorithm field.

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored.

Locator Address:

this is the address (as specified in Section 4.1) that owns the encoded security key.

4.11. The Source/Destination LCAF Type

The Source/Destination LCAF Type (Type 12) is used to carry a source and destination address pair.

For example, when both a source and destination address of a flow need consideration for different locator-sets, this 2-tuple key is used in EID fields in LISP control messages. When the Source/Dest key is registered to the mapping database, it can be encoded as a source- prefix and destination-prefix. When the Source/Dest is used as a key for a mapping database lookup, the source and destination come from a data packet. Refer to [I-D.ietf-lisp-te] for an example of its use.


 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 = 12   |     Rsvd2     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Reserved           |   Source-ML   |    Dest-ML    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |         Source-Prefix ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |     Destination-Prefix ...    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 19: Source/Destination LISP Canonical Address Format
Reserved:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

Source-ML:

the mask length of the Source Prefix that follows. The length is the number of high-order mask bits set.

Dest-ML:

the mask length of the Destination Prefix that follows. The length is the number of high-order mask bits set.

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored. All the AFI fields MUST be the same. Otherwise, the LCAF Type MUST be silently ignored.

Source-Prefix:

the source address prefix (as specified in Section 4.1).

Destination-Prefix:

the destination address prefix (as specified in Section 4.1).

4.12. The Replication List LCAF Type

The Replication List LCAF Type (Type 13) is used to carry a list of locators for unicast replication. See [I-D.coras-lisp-re] for an example.


 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 = 13   |    Rsvd2      |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Reserved                 |  Level Value  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |           RTR/ETR #1 ...      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Reserved                 |  Level Value  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |           RTR/ETR  #n ...     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 20: Replication List Entry LISP Canonical Address Format
Reserved:

this field is reserved for future use and MUST be transmitted as 0 and ignored on receipt.

Level Value:

this value is associated with the level within the overlay distribution tree hierarchy where the RTR resides. See [I-D.coras-lisp-re] for an example.

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored. All the AFI fields MUST be the same. Otherwise, the LCAF Type MUST be silently ignored.

RTR/ETR:

the address (as specified in Section 4.1) of the Re-encapsulating Tunnel Router (RTR) or Egress Tunnel Router (ETR) participating in the overlay distribution tree. Can be either a unicast or multicast address.

One or more RTR/ETR values can be encoded in this LCAF. Each one is encoded with its own set of Reserved, Level Value, AFI, and RTR/ETR fields.

4.13. The JSON Data Model LCAF Type

The JSON Data Model LCAF Type (Type 14) is used to carry a JavaScript Object Notation (JSON) data model that can be encoded as either an EID or an RLOC.


 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 ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |       Optional Address ...    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 21: JSON Data Model LISP Canonical Address Format
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 [RFC8259].

The rest of the Rsvd2 field is as specified in Section 3

JSON length:

length in octets of the JSON field.

JSON:

a variable-length field that contains either binary or text encodings.

AFI:

as specified in Section 4.1.

Optional Address:

an address (as specified in Section 4.1) that can be associated with the JSON data model.

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" : "192.0.2.1", "router-mask" : "24" }".

4.14. The Key/Value Address Pair LCAF Type

The Key/Value Address Pair LCAF Type (Type 15) is used to carry a key/value address pair. This LCAF Type can be useful, for example, when attaching attributes to other elements of LISP packets, such as EIDs or RLOCs.


 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            |       Address as Key ...      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |       Address as Value ...    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 22: Key/Value Address Pair LISP Canonical Address Format
AFI:

as specified in Section 4.1. All the AFI fields MUST be the same. Otherwise, the LCAF Type MUST be silently ignored.

Address as Key:

an address (as specified in Section 4.1) that will be attached with the attributes associated with the Address as Value field.

Address as Value:

an address (as specified in Section 4.1) that will be the attribute address for the Address as Key field.

4.15. The Encapsulation Format LCAF Type

The Encapsulation Format LCAF Type (Type 16) is used to advertise the encapsulation formats supported by an RLOC.


 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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Encapsulations               |U|G|N|v|V|l|L|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                AFI            |          Address ...          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 23: Encapsulation Format LISP Canonical Address Format
Encapsulations:

the bits in this field are reserved for future use and MUST be transmitted as 0 and ignored on receipt.

U:

The RLOC listed in the Address field can accept Generic UDP Encapsulation (GUE) using destination UDP port 6080 [I-D.ietf-intarea-gue].

G:

The RLOCs listed in the Address field can accept Geneve encapsulation using destination UDP port 6081 [RFC8926].

N:

The RLOCs listed in the Address field can accept NV-GRE (Network Virtualization - Generic Routing Encapsulation) using IPv4/IPv6 protocol number 47 [RFC7637].

v:

The RLOCs listed in the Address field can accept VXLAN-GPE (Generic Protocol Extension) encapsulation using destination UDP port 4790 [I-D.ietf-nvo3-vxlan-gpe].

V:

The RLOCs listed in the Address field can accept Virtual eXtensible Local Area Network (VXLAN) encapsulation using destination UDP port 4789 [RFC7348].

l:

The RLOCs listed in the Address field can accept Layer 2 LISP encapsulation using destination UDP port 8472 [I-D.smith-lisp-layer2].

L:

The RLOCs listed in the Address field can accept Layer 3 LISP encapsulation using destination UDP port 4341 [RFC9300].

AFI:

as specified in Section 4.1. Only AFI values for IPv4 (1) and IPv6 (2) are valid in this LCAF Type. Any other AFI value is invalid and the LCAF Type MUST be silently ignored.

Address:

as specified in Section 4.1.

5. Security Considerations

The security considerations discussed in [RFC9300], [RFC9301], and [RFC9303] apply to the LCAF encodings defined in this document and their use. An in-depth threat analysis of LISP is provided in [RFC7835].

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 and document additional considerations that may result from their particular use case. As with any protocol extension, the addition of new LCAF Types increases the attack surface of the protocol. Implementers and operators should be aware of this when deploying new LCAF Types.

Care should be taken to protect against the adverse use of information that should remain private or contained by ensuring policy controls are in place. Any such mechanism is out of scope for this document.

Additionally, implementers should ensure that proper validation and error handling are in place for all LCAF Types to prevent potential attacks such as malformed data injections.

6. IANA Considerations

Because this document obsoletes RFC 8060, IANA is asked to change all registration information that references [RFC8060] to instead reference [[this RFC]].

IANA is also requested to update the contents of the "LISP Canonical Address Format (LCAF) Types" registry as indicated in Table 2. Future assignments are to be made using the Specification Required policy [RFC8126]. Assignments consist of a LISP LCAF Type Name and its associated value:

Table 2: "LISP Canonical Address Format (LCAF) Types" Registry
Value LISP LCAF Type Name Reference
0 Null Body [[this RFC],Section 3]
1 AFI List [[this RFC],Section 3]
2 Instance ID [[this RFC],Section 3]
3 AS Number [[this RFC],Section 3]
4 Application Data [[this RFC],Section 3]
5 Deprecated [I-D.ietf-lisp-geo]
6 Opaque Key [[this RFC],Section 3]
7 NAT-Traversal [[this RFC],Section 3]
8 Nonce Locator [[this RFC],Section 3]
9 Multicast Info [[this RFC],Section 3]
10 Explicit Locator Path [[this RFC],Section 3]
11 Security Key [[this RFC],Section 3]
12 Source/Dest Key [[this RFC],Section 3]
13 Replication List Entry [[this RFC],Section 3]
14 JSON Data Model [[this RFC],Section 3]
15 Key/Value Address Pair [[this RFC],Section 3]
16 Encapsulation Format [[this RFC],Section 3]

IANA is also requested to update the description for AFI 16387 in the "Address Family Numbers" registry [AFN] to reference [[this RFC]].

7. References

7.1. Normative References

[I-D.ietf-intarea-gue]
Herbert, T., Yong, L., and O. Zia, "Generic UDP Encapsulation", Work in Progress, Internet-Draft, draft-ietf-intarea-gue-09, , <https://datatracker.ietf.org/doc/html/draft-ietf-intarea-gue-09>.
[I-D.ietf-lisp-8111bis]
Iannone, L. and L. Jakab, "Locator/ID Separation Protocol Delegated Database Tree (LISP-DDT)", Work in Progress, Internet-Draft, draft-ietf-lisp-8111bis-00, , <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-8111bis-00>.
[JSON-BINARY]
"Universal Binary JSON Specification", <http://ubjson.org>.
[RFC768]
Postel, J., "User Datagram Protocol", STD 6, RFC 768, DOI 10.17487/RFC0768, , <https://www.rfc-editor.org/info/rfc768>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC6793]
Vohra, Q. and E. Chen, "BGP Support for Four-Octet Autonomous System (AS) Number Space", RFC 6793, DOI 10.17487/RFC6793, , <https://www.rfc-editor.org/info/rfc6793>.
[RFC8126]
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, , <https://www.rfc-editor.org/info/rfc8126>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8259]
Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, , <https://www.rfc-editor.org/info/rfc8259>.
[RFC8926]
Gross, J., Ed., Ganga, I., Ed., and T. Sridhar, Ed., "Geneve: Generic Network Virtualization Encapsulation", RFC 8926, DOI 10.17487/RFC8926, , <https://www.rfc-editor.org/info/rfc8926>.
[RFC9260]
Stewart, R., Tüxen, M., and K. Nielsen, "Stream Control Transmission Protocol", RFC 9260, DOI 10.17487/RFC9260, , <https://www.rfc-editor.org/info/rfc9260>.
[RFC9293]
Eddy, W., Ed., "Transmission Control Protocol (TCP)", STD 7, RFC 9293, DOI 10.17487/RFC9293, , <https://www.rfc-editor.org/info/rfc9293>.
[RFC9300]
Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A. Cabellos, Ed., "The Locator/ID Separation Protocol (LISP)", RFC 9300, DOI 10.17487/RFC9300, , <https://www.rfc-editor.org/info/rfc9300>.
[RFC9301]
Farinacci, D., Maino, F., Fuller, V., and A. Cabellos, Ed., "Locator/ID Separation Protocol (LISP) Control Plane", RFC 9301, DOI 10.17487/RFC9301, , <https://www.rfc-editor.org/info/rfc9301>.
[RFC9303]
Maino, F., Ermagan, V., Cabellos, A., and D. Saucez, "Locator/ID Separation Protocol Security (LISP-SEC)", RFC 9303, DOI 10.17487/RFC9303, , <https://www.rfc-editor.org/info/rfc9303>.

7.2. Informative References

[AFN]
IANA, "Address Family Numbers", <http://www.iana.org/assignments/address-family-numbers/>.
[I-D.coras-lisp-re]
Coras, F., Cabellos-Aparicio, A., Domingo-Pascual, J., Maino, F., and D. Farinacci, "LISP Replication Engineering", Work in Progress, Internet-Draft, draft-coras-lisp-re-08, , <https://datatracker.ietf.org/doc/html/draft-coras-lisp-re-08>.
[I-D.farinacci-lisp-lispers-net-nat]
Farinacci, D., "lispers.net LISP NAT-Traversal Implementation Report", Work in Progress, Internet-Draft, draft-farinacci-lisp-lispers-net-nat-11, , <https://datatracker.ietf.org/doc/html/draft-farinacci-lisp-lispers-net-nat-11>.
[I-D.ietf-lisp-nat-traversal]
Iannone, L., "NAT traversal for LISP", Work in Progress, Internet-Draft, draft-ietf-lisp-nat-traversal-00, , <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-nat-traversal-00>.
[I-D.ietf-lisp-geo]
Farinacci, D., "LISP Geo-Coordinates", Work in Progress, Internet-Draft, draft-ietf-lisp-geo-18, , <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-geo-18>.
[I-D.ietf-lisp-eid-mobility]
Portoles-Comeras, M., Ashtaputre, V., Maino, F., Moreno, V., and D. Farinacci, "LISP L2/L3 EID Mobility Using a Unified Control Plane", Work in Progress, Internet-Draft, draft-ietf-lisp-eid-mobility-17, , <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-eid-mobility-17>.
[I-D.ietf-lisp-te]
Farinacci, D., Kowal, M., Lahiri, P., and P. Pillay-Esnault, "LISP Traffic Engineering", Work in Progress, Internet-Draft, draft-ietf-lisp-te-23, , <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-te-23>.
[I-D.ietf-lisp-vpn]
Moreno, V. and D. Farinacci, "LISP Virtual Private Networks (VPNs)", Work in Progress, Internet-Draft, draft-ietf-lisp-vpn-13, , <https://datatracker.ietf.org/doc/html/draft-ietf-lisp-vpn-13>.
[I-D.ietf-nvo3-vxlan-gpe]
Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol Extension for VXLAN (VXLAN-GPE)", Work in Progress, Internet-Draft, draft-ietf-nvo3-vxlan-gpe-13, , <https://datatracker.ietf.org/doc/html/draft-ietf-nvo3-vxlan-gpe-13>.
[I-D.smith-lisp-layer2]
Smith, M., Dutt, D., Farinacci, D., and F. Maino, "Layer 2 (L2) LISP Encapsulation Format", Work in Progress, Internet-Draft, draft-smith-lisp-layer2-03, , <https://datatracker.ietf.org/doc/html/draft-smith-lisp-layer2-03>.
[RFC1035]
Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, , <https://www.rfc-editor.org/info/rfc1035>.
[RFC2475]
Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., and W. Weiss, "An Architecture for Differentiated Services", RFC 2475, DOI 10.17487/RFC2475, , <https://www.rfc-editor.org/info/rfc2475>.
[RFC3986]
Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, , <https://www.rfc-editor.org/info/rfc3986>.
[RFC4607]
Holbrook, H. and B. Cain, "Source-Specific Multicast for IP", RFC 4607, DOI 10.17487/RFC4607, , <https://www.rfc-editor.org/info/rfc4607>.
[RFC6832]
Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, "Interworking between Locator/ID Separation Protocol (LISP) and Non-LISP Sites", RFC 6832, DOI 10.17487/RFC6832, , <https://www.rfc-editor.org/info/rfc6832>.
[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, , <https://www.rfc-editor.org/info/rfc6836>.
[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, , <https://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, , <https://www.rfc-editor.org/info/rfc7637>.
[RFC7761]
Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, , <https://www.rfc-editor.org/info/rfc7761>.
[RFC7835]
Saucez, D., Iannone, L., and O. Bonaventure, "Locator/ID Separation Protocol (LISP) Threat Analysis", RFC 7835, DOI 10.17487/RFC7835, , <https://www.rfc-editor.org/info/rfc7835>.
[RFC8060]
Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060, , <https://www.rfc-editor.org/info/rfc8060>.
[RFC8061]
Farinacci, D. and B. Weis, "Locator/ID Separation Protocol (LISP) Data-Plane Confidentiality", RFC 8061, DOI 10.17487/RFC8061, , <https://www.rfc-editor.org/info/rfc8061>.

Acknowledgements

The authors would like to thank all the people who have provided feedback on the various LCAF Types over the years.

In no particular order, the authors would like to thank Vince Fuller, Gregg Schudel, Jesper Skriver, Luigi Iannone, Isidor Kouvelas, Sander Steffann, Victor Moreno, Parantap Lahiri, Michael Kowal, Fabio Maino, Vina Ermagan, Albert Cabellos-Aparicio, Michiel Blokzijl, Terry Manderson, Stephen Farrell, and Deborah Brungard.

Contributors

The following people have made significant contributions to the content of this document.

Dave Meyer
Individual Contributor

Appendix A: Change Log

This section is to be removed before publishing as an RFC.

Version -00

This initial version is the same as RFC8060, but with updated references and using the rfcxmlv3 formatting.

Version -01

Version -02

Version -03

Authors' Addresses

Alvaro Retana (editor)
Futurewei Technologies, Inc.
Dino Farinacci
lispers.net
Job Snijders
Alberto Rodriguez-Natal
Cisco
Barcelona
Spain