RFC 7052

Locator/ID Separation Protocol (LISP) MIB

๐Ÿ“… published October 2013, from ietf

Locator/ID Separation Protocol (LISP) MIB โœจ

Okay bestie, let's get into RFC 7052 ๐Ÿฆ‹ It's an Experimental doc, so it's published for examining, trying out, and evaluating, not as a Standards Track spec. It's RFC 7052, dated October 2013, and it's written by G. Schudel (Cisco Systems), A. Jain (Juniper Networks), and V. Moreno (Cisco Systems). It's under ISSN 2070-1721. Its header doesn't list anything it obsoletes or updates, so no drama there ๐Ÿ’…

Abstract

This doc defines the MIB module, which is a set of managed objects for supporting the monitoring of devices running the Locator/ID Separation Protocol (LISP) ๐ŸŒธ The objects give you info for keeping an eye on LISP devices: basic LISP configuration, whether LISP features are functioning, and operational counters and other statistics.

Status of This Memo

This doc is not an Internet Standards Track spec. It's published for examination, experimental implementation, and evaluation ๐Ÿงš

It defines an Experimental Protocol for the Internet community. It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 if you're curious ๐Ÿค“

Info about the doc's current status, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc7052 ๐Ÿ’–

Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the date of publication. Please actually read these, because they spell out your rights and restrictions for this doc ๐Ÿซถ Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  3
   3.  The Internet-Standard Management Framework . . . . . . . . . .  3
   4.  Definition of Terms  . . . . . . . . . . . . . . . . . . . . .  4
   5.  LISP MIB Objectives  . . . . . . . . . . . . . . . . . . . . .  5
   6.  Structure of LISP MIB Module . . . . . . . . . . . . . . . . .  5
     6.1.  Overview of Defined Notifications  . . . . . . . . . . . .  5
     6.2.  Overview of Defined Tables . . . . . . . . . . . . . . . .  5
   7.  LISP MIB Definitions . . . . . . . . . . . . . . . . . . . . .  7
   8.  Relationship to Other MIB Modules  . . . . . . . . . . . . . . 62
     8.1.  MIB Modules Required for IMPORTS . . . . . . . . . . . . . 62
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 63
   10. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 64
   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 64
     11.1. Normative References . . . . . . . . . . . . . . . . . . . 64
     11.2. Informative References . . . . . . . . . . . . . . . . . . 65
   Appendix A.  Acknowledgments . . . . . . . . . . . . . . . . . . . 66

1. Introduction ๐ŸŒˆ

This doc describes the Management Information Base (MIB) module for use with network management protocols in the Internet community. Specifically, it describes the MIB for managing devices that support the Locator/ID Separation Protocol (LISP) ๐ŸŽ€

LISP [RFC6830] is a network-based architecture with mechanisms that implement a new semantic for IP addressing. It uses two separate name spaces. Endpoint Identifiers (EIDs) are used within sites, and Routing Locators (RLOCs) are used on the transit networks that make up the Internet infrastructure. To get this separation, LISP defines protocol mechanisms for mapping from EIDs to RLOCs. It's giving split personality, but make it networking ๐Ÿ’…

From a data-plane perspective, LISP traffic is handled exclusively at the network layer by devices doing the Ingress Tunnel Router (ITR) and Egress Tunnel Router (ETR) LISP functions. The data-plane operations for these devices are described in [RFC6830]. Data-plane interworking between legacy (Internet) and LISP sites is also handled, by devices doing the Proxy ITR (PITR) and Proxy ETR (PETR) functions. The data-plane operations of these devices are described in [RFC6832] ๐Ÿฆ‹

From a control-plane perspective, LISP uses mechanisms for creating, maintaining, and resolving mappings from EIDs to RLOCs. LISP ITRs, ETRs, PITRs, and PETRs perform specific control-plane functions, and those control-plane operations are described in [RFC6830]. LISP infrastructure devices that support LISP control-plane functionality also include Map-Servers and Map-Resolvers, and the control-plane operations of those devices are described in [RFC6833] โœจ

2. Requirements Notation ๐Ÿซถ

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 [RFC2119] ๐Ÿ’œ

3. The Internet-Standard Management Framework ๐Ÿ“

For a detailed overview of the docs that describe the current Internet-Standard Management Framework, check out section 7 of RFC 3410 [RFC3410] ๐Ÿ“š

Managed objects are accessed via a virtual information store called the Management Information Base, or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP) ๐ŸŒธ

Objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] ๐Ÿ’–

4. Definition of Terms ๐Ÿฆ‹

This doc doesn't define any new terms, but all the terms it uses are listed here for completeness. The authoritative definition of each term is in the definition section of the respective specified reference, so go there for the real deal ๐Ÿค“

5. LISP MIB Objectives ๐ŸŽฏ

The objectives for this LISP MIB module are to provide a read-only mechanism that supports these three functions ๐Ÿ‘‘

  • Provide a means for obtaining (read-only) the current status of LISP features enabled on a device, plus (read-only) the current status of configuration attributes related to those features. For example, this MIB could tell you the ON/OFF status of LISP features like ITR, ETR, PITR, PETR, MS, or MR support, specifically as related to IPv4 or IPv6 address families, as well as the LISP Canonical Address Format (LCAF) [LCAF] with IANA assigned Address Family Number 16387. Other examples include getting the (read-only) status of whether RLOC-Probing is enabled, getting the status of whether the use of a PETR is configured, and getting the (read-only) values of other related attributes, like the map-cache limit value or a mapping time-to-live (TTL) value ๐ŸŒˆ
  • Provide a means for obtaining (read-only) the current attributes of various LISP tables, like the EID-to-RLOC policy data contained in the map-cache, or the local EID-to-RLOC policy data contained in the mapping-database ๐Ÿงš
  • Provide a means for obtaining (read-only) the current operational statistics of various LISP functions, like the number of packets encapsulated and decapsulated by the device. Other counters of operational interest, depending on the LISP function, include things like the current number of map-cache entries and the total number and rate of map-requests received and sent by the device ๐Ÿ“Š

6. Structure of LISP MIB Module ๐ŸŽ€

6.1. Overview of Defined Notifications

No LISP MIB notifications are defined. Quiet era ๐Ÿคซ

6.2. Overview of Defined Tables

The LISP MIB module is made up of the following tables of objects ๐Ÿ’…

  • lispFeatures: This table provides information representing the various LISP features that can be enabled on LISP devices.
  • lispIidToVrf: This table provides information representing the mapping of a LISP Instance ID to a VRF (Virtual Routing and Forwarding).
  • lispGlobalStats: This table provides global statistics for a given Instance ID per address family on a LISP device.
  • lispMappingDatabase: This table represents the EID-to-RLOC database that contains the EID-Prefix to RLOC mappings configured on an ETR. In general, this table would be representative of all such mappings for a given site to which this device belongs.
  • lispMappingDatabaseLocator: This table represents the set of routing locators contained in the EID-to-RLOC database configured on an ETR.
  • lispMapCache: This table represents the short-lived, on-demand table maintained on an ITR that stores, tracks, and times out EID-to-RLOC mappings.
  • lispMapCacheLocator: This table represents the set of locators per EID-Prefix contained in the map-cache table of an ITR.
  • lispConfiguredLocator: This table represents the set of routing locators configured on a LISP device.
  • lispEidRegistration: This table provides the properties of each EID-Prefix that is registered with this device when it's configured to be a Map-Server.
  • lispEidRegistrationEtr: This table provides the properties of the different ETRs that send registers, for a given EID-Prefix, to this device when it's configured to be a Map-Server.
  • lispEidRegistrationLocator: This table provides the properties of the different locators per EID prefix that is registered with this device when it's configured to be a Map-Server.
  • lispUseMapServer: This table provides the properties of all Map-Servers that this device is configured to use.
  • lispUseMapResolver: This table provides the properties of all Map-Resolvers that this device is configured to use.
  • lispUseProxyEtr: This table provides the properties of all Proxy ETRs that this device is configured to use.

Part 1 of 10 ๐Ÿ’– Up next is Section 7, where the actual LISP MIB definitions start. Hold on to your hats, bestie ๐Ÿงšโœจ

okay bestie, the module identity is literally the ID card for the whole MIB ๐ŸŽ€ it says who made it, when it was last updated, and where it lives in the tree ๐Ÿ’…

lispMIB MODULE-IDENTITY
    LAST-UPDATED "201310210000Z" -- 21 October 2013
    ORGANIZATION
            "IETF Locator/ID Separation Protocol (LISP) Working Group"
    CONTACT-INFO
            "Email: lisp@ietf.org
             WG charter:
             http://datatracker.ietf.org/wg/lisp/charter/"
    DESCRIPTION
            "This MIB module contains managed objects to support
             monitoring devices that support the Locator/ID Separation
             Protocol (LISP).

             Copyright (c) 2013 IETF Trust and the persons identified
             as authors of the code.  All rights reserved.

             Redistribution and use in source and binary forms, with
             or without modification, is permitted pursuant to, and
             subject to the license terms contained in, the Simplified
             BSD License set forth in Section 4.c of the IETF Trust's
             Legal Provisions Relating to IETF Documents
             (http://trustee.ietf.org/license-info)."
    REVISION     "201310210000Z" -- 21 October 2013
    DESCRIPTION  "Initial version of the IETF LISP-MIB module.
                  Published as RFC 7052."
     ::= { mib-2 220 }

ok the copyright bit is giving legal paperwork but it's important so we keep it all ๐Ÿ“œโœจ

Next up are the textual conventions. This is where the LISP address gets its shape ๐Ÿฆ‹ The LispAddressType is a four-tuple: address family, length, the address itself, and the mask-length. Then the examples show how that actually looks in practice ๐ŸŒธ

--
-- Textual Conventions
--
LispAddressType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "39a"
    STATUS current
    DESCRIPTION
      "LISP architecture can be applied to a wide variety of
       address-families.  This textual-convention is a generalization
       for representing addresses belonging to those address-families.
       For convenience, this document refers to any such address as a
       LISP address.  LispAddressType textual-convention consists of
       the following four-tuple:
       1. IANA Address Family Number: A field of length 2 octets,
          whose value is of the form following the assigned
          AddressFamilyNumbers textual-convention described in
          IANA-ADDRESS-FAMILY-NUMBERS-MIB DEFINITIONS, available from
          http://www.iana.org/assignments/ianaaddressfamilynumbers-mib.
          The enumerations are also listed in [IANA].  Note that this
          list of address family numbers is maintained by IANA.
       2. Length of LISP address: A field of length 1 octet, whose
          value indicates the octet-length of the next (third)
          field of this LispAddressType four-tuple.
       3. LISP address: A field of variable length as indicated in
          the previous (second) field, whose value is an address
          of the IANA Address Family indicated in the first field
          of this LispAddressType four-tuple.  Note that any of
          the IANA Address Families can be represented.
          Particularly when the address family is LISP Canonical
          Address Format (LCAF)
          with IANA-assigned Address Family Number 16387, then the
          first octet of this field indicates the LCAF type, and the
          rest of this field is same as the encoding format of the
          LISP Canonical Address after the length field, as defined
          in LCAF document.
       4. Mask-length of address: A field of length 1 octet, whose
          value is the mask-length to be applied to the LISP
          address specified in the previous (third) field.

       To illustrate the use of this object, consider the LISP MIB
       Object below titled lispMapCacheEntry.  This object begins
       with the following entities:

       lispMapCacheEntry ::= SEQUENCE {
          lispMapCacheEidLength          INTEGER,
          lispMapCacheEid                LispAddressType,
           ... [skip] ...

       Example 1: Suppose that the IPv4 EID-Prefix stored is
       192.0.2.0/24.  In this case, the values within
       lispMapCacheEntry would be:

          lispMapCacheEidLength  = 8
          lispMapCacheEid = 1, 4, 192.0.2.0, 24
          ... [skip] ...

       where 8 is the total length in octets of the next object
       (lispMapCacheEID of type LispAddressType).  Then, the value
       1 indicates the IPv4 AF (per the
       IANA-ADDRESS-FAMILY-NUMBERS-MIB), the value 4 indicates that
       the AF is 4 octets in length, 192.0.2.0 is the IPv4 address,
       and the value 24 is the mask-length in bits.  Note that the
       lispMapCacheEidLength value of 8 is used to compute the
       length of the fourth (last) field in lispMapCacheEid to be 1
       octet -- as computed by 8 - (2 + 1 + 4) = 1.

       Example 2: Suppose that the IPv6 EID-Prefix stored is
       2001:db8:a::/48.  In this case, the values within
       lispMapCacheEntry would be:

          lispMapCacheEidLength  = 20
          lispMapCacheEid = 2, 16, 2001:db8:a::, 48
          ... [skip] ...

       where 20 is the total length in octets of the next object
       (lispMapCacheEID of type LispAddressType).  Then, the value
       2 indicates the IPv6 AF (per the
       IANA-ADDRESS-FAMILY-NUMBERS-MIB), the value 16 indicates
       that the AF is 16 octets in length, 2001:db8:a:: is the IPv6
       address, and the value 48 is the mask-length in bits.  Note
       that the lispMapCacheEidLength value of 20 is used to
       compute the length of the fourth (last) field in
       lispMapCacheEid to be 1 octet -- as computed by
       20 - (2 + 1 + 16) = 1.

       Example 3: As an example where LCAF is used, suppose
       that the IPv4 EID-Prefix stored is 192.0.2.0/24 and it
       is part of LISP Instance ID 101.  In this case, the values
       within lispMapCacheEntry would be:

          lispMapCacheEidLength  = 11
          lispMapCacheEid = 16387, 7, 2, 101, 1, 192.0.2.0, 24
          ... [skip] ...

       where 11 is the total length in octets of the next object
       (lispMapCacheEID of type LispAddressType).  Then, the value
       16387 indicates the LCAF AF (see the
       IANA-ADDRESS-FAMILY-NUMBERS-MIB), the value 7 indicates that
       the LCAF AF is 7 octets in length in this case, 2 indicates
       that LCAF Type 2 encoding is used (see the LCAF document), 101
       gives the Instance ID, 1 gives the AFI (per the
       IANA-ADDRESS-FAMILY-NUMBERS-MIB) for an IPv4 address, 192.0.2.0
       is the IPv4 address, and 24 is the mask-length in bits.  Note
       that the lispMapCacheEidLength value of 11 octets is used to
       compute the length of the last field in lispMapCacheEid to be 1
       octet -- as computed by 11 - (2 + 1 + 1 + 1 + 1 + 4) = 1.

       Note: all LISP header formats and locations of specific
       flags, bits, and fields are as given in the base LISP
       references of RFC 6830, RFC 6832, and RFC 6833."

    REFERENCE
        "RFC 6830, Section 14.2 and
         LISP Canonical Address Format (LCAF), Work in Progress,
         March 2013."
    SYNTAX OCTET STRING (SIZE (5..39))

the examples are the best part fr fr, the math checks out every time ๐Ÿงฎ๐Ÿ’–

Now the top-level components. These are the branches of the MIB tree, and then we get the features table, which tracks whether each LISP role is switched on ๐ŸŒˆ

--
-- Top-level components of this MIB.
--
lispObjects       OBJECT IDENTIFIER ::= { lispMIB 1 }
lispConformance   OBJECT IDENTIFIER ::= { lispMIB 2 }

   lispFeaturesTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispFeaturesEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the ON/OFF status of the
           various LISP features that can be enabled on LISP devices."
       REFERENCE
           "RFC 6830, Section 4, Section 5.5., Section 6.3."
       ::= { lispObjects 1 }

   lispFeaturesEntry OBJECT-TYPE
       SYNTAX     LispFeaturesEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the lispFeaturesTable."
       INDEX      { lispFeaturesInstanceID,
                    lispFeaturesAddressFamily }
       ::= { lispFeaturesTable 1 }

   LispFeaturesEntry ::= SEQUENCE {
       lispFeaturesInstanceID                     Unsigned32,
       lispFeaturesAddressFamily                  AddressFamilyNumbers,
       lispFeaturesItrEnabled                     TruthValue,
       lispFeaturesEtrEnabled                     TruthValue,
       lispFeaturesProxyItrEnabled                TruthValue,
       lispFeaturesProxyEtrEnabled                TruthValue,
       lispFeaturesMapServerEnabled               TruthValue,
       lispFeaturesMapResolverEnabled             TruthValue,
       lispFeaturesMapCacheSize                   Unsigned32,
       lispFeaturesMapCacheLimit                  Unsigned32,
       lispFeaturesEtrMapCacheTtl                 Unsigned32,
       lispFeaturesRlocProbeEnabled               TruthValue,
       lispFeaturesEtrAcceptMapDataEnabled        TruthValue,
       lispFeaturesEtrAcceptMapDataVerifyEnabled  TruthValue,
       lispFeaturesRouterTimeStamp                TimeStamp
   }

   lispFeaturesInstanceID OBJECT-TYPE
       SYNTAX     Unsigned32 (0..16777215)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This represents the Instance ID of the LISP header.
           An Instance ID in the LISP address encoding helps
           uniquely identify the AFI-based address space to which
           a given EID belongs.  Its default value is 0."
        DEFVAL { 0 }
        ::= { lispFeaturesEntry 1 }

   lispFeaturesAddressFamily OBJECT-TYPE
       SYNTAX     AddressFamilyNumbers
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The IANA Address Family Number of destination address
           of packets that this LISP device is enabled to process."
        ::= { lispFeaturesEntry 2 }

   lispFeaturesItrEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of ITR role on this device.  If
           this object is true, then the ITR feature is enabled."
       ::= { lispFeaturesEntry 3 }

   lispFeaturesEtrEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of ETR role on this device.  If
           this object is true, then the ETR feature is enabled."
       ::= { lispFeaturesEntry 4 }

   lispFeaturesProxyItrEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of Proxy-ITR role on this device.
           If this object is true, then the Proxy-ITR feature is
           enabled."
       ::= { lispFeaturesEntry 5 }

   lispFeaturesProxyEtrEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of Proxy-ETR role on this device.
           If this object is true, then the Proxy-ETR feature is
           enabled."
       ::= { lispFeaturesEntry 6 }

   lispFeaturesMapServerEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of Map Server role on this device.
           If this object is true, then the Map-Server feature is
           enabled."
       ::= { lispFeaturesEntry 7 }

   lispFeaturesMapResolverEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of Map Resolver role on this device.
           If this object is true, then Map-Resolver feature is
           enabled."
       ::= { lispFeaturesEntry 8 }

   lispFeaturesMapCacheSize OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Size of EID-to-RLOC map-cache on this device."
       ::= { lispFeaturesEntry 9 }

   lispFeaturesMapCacheLimit OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Maximum permissible entries in EID-to-RLOC map-cache on
           this device."
       ::= { lispFeaturesEntry 10 }

that's the end of this chunk, and the features table is giving main character energy ๐Ÿ‘‘๐Ÿฆ‹

Okay bestie, the feature flags are up first ๐Ÿ’… these are read-only toggles that tell you what the device is actually doing โœจ

   lispFeaturesEtrMapCacheTtl OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The stored Record TTL of the EID-to-RLOC map record in
           the map-cache."
       ::= { lispFeaturesEntry 11 }

   lispFeaturesRlocProbeEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of RLOC-Probing feature on this
           device.  If this object is true, then this feature is
           enabled."
       ::= { lispFeaturesEntry 12 }

   lispFeaturesEtrAcceptMapDataEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of accepting piggybacked mapping
           data received in a map-request on this device.  If this
           object is true, then this device accepts piggybacked
           mapping data."
       ::= { lispFeaturesEntry 13 }

   lispFeaturesEtrAcceptMapDataVerifyEnabled OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the status of verifying accepted piggybacked
           mapping data received in a map-request on this device.
           If this object is true, then this device verifies
           accepted piggybacked mapping data."
       ::= { lispFeaturesEntry 14 }

   lispFeaturesRouterTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the LISP feature was
           enabled on this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem,
           then this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispFeaturesEntry 15 }

Next up is the EID-to-VRF mapping table, which is lowkey iconic ๐Ÿฆ‹ It links each LISP Instance ID to its VRF, and the references point you to the original RFCs if you want the deep dive ๐ŸŽ€

   lispIidToVrfTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispIidToVrfEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the mapping of a LISP Instance ID
           to a VRF."
       REFERENCE
           "RFC 6830, Section 5.5., and RFC 4382, Section 7."
       ::= { lispObjects 2 }

   lispIidToVrfEntry OBJECT-TYPE
       SYNTAX     LispIidToVrfEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the lispIidToVrfTable."
       INDEX      { lispFeaturesInstanceID }
       ::= { lispIidToVrfTable 1 }

   LispIidToVrfEntry ::= SEQUENCE {
       lispIidToVrfName                    MplsL3VpnName
   }

   lispIidToVrfName OBJECT-TYPE
       SYNTAX     MplsL3VpnName
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The identifier for each VPN that is mapped to the
           given LISP Instance ID."
           ::= { lispIidToVrfEntry 1 }

Now the global stats table ๐Ÿ“Š It tracks map requests, replies and registers per Instance ID and address family, and the counters are monotonically increasing, so they only go up, bestie ๐Ÿ“ˆ Just watch out for the discontinuities ๐Ÿ‘€

   lispGlobalStatsTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispGlobalStatsEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides global statistics for a given
           Instance ID per address family on a LISP device."
       REFERENCE
           "RFC 6830, Section 6.1."
       ::= { lispObjects 3 }

   lispGlobalStatsEntry OBJECT-TYPE
       SYNTAX     LispGlobalStatsEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispGlobalStatsTable."
       INDEX      { lispFeaturesInstanceID,
                    lispFeaturesAddressFamily }
       ::= { lispGlobalStatsTable 1 }

   LispGlobalStatsEntry ::= SEQUENCE {
       lispGlobalStatsMapRequestsIn        Counter64,
       lispGlobalStatsMapRequestsOut       Counter64,
       lispGlobalStatsMapRepliesIn         Counter64,
       lispGlobalStatsMapRepliesOut        Counter64,
       lispGlobalStatsMapRegistersIn       Counter64,
       lispGlobalStatsMapRegistersOut      Counter64
   }

   lispGlobalStatsMapRequestsIn OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Total number of map requests received by this device for
           any EID-Prefix of the given address family and Instance ID.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispFeaturesRouterTimeStamp."
       ::= { lispGlobalStatsEntry 1 }

   lispGlobalStatsMapRequestsOut OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Total number of map requests sent by this device for any
           EID-Prefix of the given address family and Instance ID.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispFeaturesRouterTimeStamp."
       ::= { lispGlobalStatsEntry 2 }

   lispGlobalStatsMapRepliesIn OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Total number of map replies received by this device for any
           EID-Prefix of the given address family and Instance ID.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispFeaturesRouterTimeStamp."
       ::= { lispGlobalStatsEntry 3 }

   lispGlobalStatsMapRepliesOut OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Total number of map replies sent by this device for any EID
           prefix of the given address family and Instance ID.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispFeaturesRouterTimeStamp."
       ::= { lispGlobalStatsEntry 4 }

   lispGlobalStatsMapRegistersIn OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Total number of map registers received by this device for
           any EID-Prefix of the given address family and Instance ID.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispFeaturesRouterTimeStamp."
       ::= { lispGlobalStatsEntry 5 }

   lispGlobalStatsMapRegistersOut OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Total number of map registers sent by this device for any
           EID-Prefix of the given address family and Instance ID.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispFeaturesRouterTimeStamp."
       ::= { lispGlobalStatsEntry 6 }

Last bit for this part is the mapping database ๐Ÿ—บ๏ธ This is where the EID-to-RLOC mappings live, all the ones configured on an ETR for your LISP site, and it's giving organised ๐Ÿ’œ

   lispMappingDatabaseTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispMappingDatabaseEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the EID-to-RLOC mapping database
            that contains the EID-Prefix to RLOC mappings configured
            on an ETR.

           This table represents all such mappings for the given LISP
           site to which this device belongs."
       REFERENCE
           "RFC 6830, Section 6."
       ::= { lispObjects 4 }

   lispMappingDatabaseEntry OBJECT-TYPE
       SYNTAX     LispMappingDatabaseEntry

       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in lispMappingDatabaseTable."
       INDEX   { lispMappingDatabaseEidLength,
                 lispMappingDatabaseEid }
       ::= { lispMappingDatabaseTable 1 }

   LispMappingDatabaseEntry ::= SEQUENCE {
       lispMappingDatabaseEidLength        Integer32,
       lispMappingDatabaseEid              LispAddressType,
       lispMappingDatabaseLsb              Unsigned32,
       lispMappingDatabaseEidPartitioned   TruthValue,
       lispMappingDatabaseTimeStamp        TimeStamp,
       lispMappingDatabaseDecapOctets      Counter64,
       lispMappingDatabaseDecapPackets     Counter64,
       lispMappingDatabaseEncapOctets      Counter64,
       lispMappingDatabaseEncapPackets     Counter64
   }
   lispMappingDatabaseEidLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object gives the octet-length of
           lispMappingDatabaseEid."
       ::= { lispMappingDatabaseEntry 1 }

   lispMappingDatabaseEid OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The EID-Prefix of the mapping database."
       ::= { lispMappingDatabaseEntry 2 }

   lispMappingDatabaseLsb OBJECT-TYPE
       SYNTAX     Unsigned32 (0..4294967295)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The locator status bits for this EID-Prefix."
       ::= { lispMappingDatabaseEntry 3 }

   lispMappingDatabaseEidPartitioned OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only

       STATUS     current
       DESCRIPTION
           "Indicates if this device is partitioned from the site that
           contains this EID-Prefix.  If this object is true, then it
           means this device is partitioned from the site."
       ::= { lispMappingDatabaseEntry 4 }

   lispMappingDatabaseTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the EID Prefix information
           represented by this mapping database entry was configured
           on this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem, then
           this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispMappingDatabaseEntry 5 }

   lispMappingDatabaseDecapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets, after decapsulation, of LISP packets
           that were decapsulated by this device addressed to a host
           within this EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispMappingDatabaseTimeStamp."
       ::= { lispMappingDatabaseEntry 6 }

Okay bestie, the mapping database counters are next, and the locator table gets the full glow-up ๐Ÿ’…โœจ

   lispMappingDatabaseDecapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were decapsulated by this
           device addressed to a host within this EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispMappingDatabaseTimeStamp."
       ::= { lispMappingDatabaseEntry 7 }

   lispMappingDatabaseEncapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets, before encapsulation, of LISP packets
           that were encapsulated by this device, whose inner header
           source address matched this EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispMappingDatabaseTimeStamp."
       ::= { lispMappingDatabaseEntry 8 }

   lispMappingDatabaseEncapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were encapsulated by this
           device whose inner header source address matched this EID
           prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of LISP features
           being removed, which can be detected by observing the value
           of lispMappingDatabaseTimeStamp."
       ::= { lispMappingDatabaseEntry 9 }

   lispMappingDatabaseLocatorTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispMappingDatabaseLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the set of routing locators per EID
           prefix contained in the EID-to-RLOC database configured on
           this ETR."
       REFERENCE
           "RFC 6830, Section 6.2."
       ::= { lispObjects 5 }

   lispMappingDatabaseLocatorEntry OBJECT-TYPE
       SYNTAX     LispMappingDatabaseLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispMappingDatabaseLocatorTable."
       INDEX  { lispMappingDatabaseEidLength,
                lispMappingDatabaseEid,
                lispMappingDatabaseLocatorRlocLength,
                lispMappingDatabaseLocatorRloc }
       ::= { lispMappingDatabaseLocatorTable 1 }

   LispMappingDatabaseLocatorEntry ::= SEQUENCE {
       lispMappingDatabaseLocatorRlocLength        Integer32,
       lispMappingDatabaseLocatorRloc              LispAddressType,
       lispMappingDatabaseLocatorRlocPriority      Integer32,
       lispMappingDatabaseLocatorRlocWeight        Integer32,
       lispMappingDatabaseLocatorRlocMPriority     Integer32,
       lispMappingDatabaseLocatorRlocMWeight       Integer32,
       lispMappingDatabaseLocatorRlocState         INTEGER,
       lispMappingDatabaseLocatorRlocLocal         INTEGER,
       lispMappingDatabaseLocatorRlocTimeStamp     TimeStamp,
       lispMappingDatabaseLocatorRlocDecapOctets   Counter64,
       lispMappingDatabaseLocatorRlocDecapPackets  Counter64,
       lispMappingDatabaseLocatorRlocEncapOctets   Counter64,
       lispMappingDatabaseLocatorRlocEncapPackets  Counter64
   }

   lispMappingDatabaseLocatorRlocLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispMappingDatabaseLocatorRloc."
       ::= { lispMappingDatabaseLocatorEntry 1 }

   lispMappingDatabaseLocatorRloc OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is a locator for the given EID-Prefix in
           the mapping database."
       ::= { lispMappingDatabaseLocatorEntry 2 }

   lispMappingDatabaseLocatorRlocPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast priority of the RLOC."
       ::= { lispMappingDatabaseLocatorEntry 3 }

   lispMappingDatabaseLocatorRlocWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast weight of the RLOC."
       ::= { lispMappingDatabaseLocatorEntry 4 }

   lispMappingDatabaseLocatorRlocMPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast priority of the RLOC."
       ::= { lispMappingDatabaseLocatorEntry 5 }

   lispMappingDatabaseLocatorRlocMWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast weight of the RLOC."
       ::= { lispMappingDatabaseLocatorEntry 6 }

   lispMappingDatabaseLocatorRlocState OBJECT-TYPE
       SYNTAX     INTEGER {
                     up (1),
                     down (2),
                     unreachable (3)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The state of this RLOC as per this device.
           (1 = RLOC is up; 2 = RLOC is down; 3 = RLOC is unreachable)."
       ::= { lispMappingDatabaseLocatorEntry 7 }

   lispMappingDatabaseLocatorRlocLocal OBJECT-TYPE
       SYNTAX     INTEGER {
                     siteself (1),
                     sitelocal (2)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates whether the RLOC is local to this device
           (or remote, meaning local to another device in the same LISP
           site).  (1 = RLOC is an address on this device; 2 = RLOC is
           an address on another device)."
       ::= { lispMappingDatabaseLocatorEntry 8 }

   lispMappingDatabaseLocatorRlocTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the RLOC of the EID Prefix
           represented by this mapping database entry was configured
           on this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem, then
           this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispMappingDatabaseLocatorEntry 9 }

   lispMappingDatabaseLocatorRlocDecapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were
           addressed to this RLOC of the EID-Prefix and
           were decapsulated.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of database
           mappings getting reconfigured or RLOC status changes, which
           can be detected by observing the value of
           lispMappingDatabaseLocatorRlocTimeStamp."
       ::= { lispMappingDatabaseLocatorEntry 10 }

   lispMappingDatabaseLocatorRlocDecapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were addressed to this RLOC
           of the EID-Prefix and were decapsulated.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.

           Discontinuities can also occur as a result of database
           mappings getting reconfigured or RLOC status changes, which
           can be detected by observing the value of
           lispMappingDatabaseLocatorRlocTimeStamp."
       ::= { lispMappingDatabaseLocatorEntry 11 }

   lispMappingDatabaseLocatorRlocEncapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were encapsulated
           by this device using this RLOC address as the source, and
           that were sourced by an address of this EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of database
           mappings getting reconfigured or RLOC status changes, which
           can be detected by observing the value of
           lispMappingDatabaseLocatorRlocTimeStamp."
       ::= { lispMappingDatabaseLocatorEntry 12 }

   lispMappingDatabaseLocatorRlocEncapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were encapsulated by this
           device using this RLOC address as the source and that were
           sourced by an address of this EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of database
           mappings getting reconfigured or RLOC status changes, which
           can be detected by observing the value of
           lispMappingDatabaseLocatorRlocTimeStamp."
       ::= { lispMappingDatabaseLocatorEntry 13 }

   lispMapCacheTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispMapCacheEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the short-lived, on-demand table on
           an ITR that stores, tracks, and is responsible for
           timing-out and otherwise validating EID-to-RLOC mappings."
       REFERENCE
           "RFC 6830, Sections 6 and Section 12."
       ::= { lispObjects 6 }

   lispMapCacheEntry OBJECT-TYPE
       SYNTAX     LispMapCacheEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispMapCacheTable."
       INDEX      { lispMapCacheEidLength,
                    lispMapCacheEid }
       ::= { lispMapCacheTable 1 }

   LispMapCacheEntry ::= SEQUENCE {
       lispMapCacheEidLength           Integer32,
       lispMapCacheEid                 LispAddressType,
       lispMapCacheEidTimeStamp        TimeStamp,
       lispMapCacheEidExpiryTime       TimeTicks,
       lispMapCacheEidState            TruthValue,
       lispMapCacheEidAuthoritative    TruthValue,
       lispMapCacheEidDecapOctets      Counter64,
       lispMapCacheEidDecapPackets     Counter64,
       lispMapCacheEidEncapOctets      Counter64,
       lispMapCacheEidEncapPackets     Counter64
   }

   lispMapCacheEidLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispMapCacheEid."
       ::= { lispMapCacheEntry 1 }

   lispMapCacheEid OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The EID-Prefix in the mapping cache."
       ::= { lispMapCacheEntry 2 }

okay so we're picking up right where the map-cache objects get into the good stuff ๐Ÿ’…๐Ÿฆ‹

   lispMapCacheEidTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the EID Prefix information
           represented by this entry was learned by this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem, then
           this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispMapCacheEntry 3 }

   lispMapCacheEidExpiryTime OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The time remaining before the ITR times-out this
           EID-Prefix."
       ::= { lispMapCacheEntry 4 }

   lispMapCacheEidState OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "This object is used to indicate the activity of this EID
           prefix.  If this object is true, then it means this EID
           prefix is seeing activity."
       ::= { lispMapCacheEntry 5 }

   lispMapCacheEidAuthoritative OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "This object is used to indicate whether the EID-Prefix was
           installed by an authoritative map-reply.  If this object is
           true, then it means this EID-Prefix was installed by an
           authoritative map-reply."
       ::= { lispMapCacheEntry 6 }

   lispMapCacheEidDecapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were decapsulated
           by this device and were sourced from a remote host within
           this EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of cache being
           removed and replaced, which can be detected by observing the
           value of lispMapCacheEidTimeStamp."
       ::= { lispMapCacheEntry 7 }

   lispMapCacheEidDecapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were decapsulated by this
           device and were sourced from a remote host within this
           EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of cache being
           removed and replaced, which can be detected by observing the
           value of lispMapCacheEidTimeStamp."
       ::= { lispMapCacheEntry 8 }

   lispMapCacheEidEncapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were encapsulated
           by this device using the given EID-Prefix in the map-cache.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of cache being
           removed and replaced, which can be detected by observing the
           value of lispMapCacheEidTimeStamp."
       ::= { lispMapCacheEntry 9 }

   lispMapCacheEidEncapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were encapsulated by this
           device using the given EID-Prefix in the map-cache.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of cache being
           removed and replaced, which can be detected by observing the
           value of lispMapCacheEidTimeStamp."
       ::= { lispMapCacheEntry 10 }

Real talk, the EID-level stats are giving main character energy ๐Ÿ”ฅ lispMapCacheEidTimeStamp is the sysUpTime moment that EID info got learned, and if it was already there at the last reinit it just reads zero ๐Ÿ™ˆ lispMapCacheEidExpiryTime tells you how much time is left before the ITR times out that EID-Prefix โณ lispMapCacheEidState is a truth value that's true when the prefix is seeing activity โœจ and lispMapCacheEidAuthoritative is true when it was installed by an authoritative map-reply ๐Ÿ’œ The four Counter64s (decap and encap, octets and packets) are monotonically increasing, they reset at reinit, and they can also drop when the cache gets removed and replaced, which you spot by watching lispMapCacheEidTimeStamp ๐Ÿ˜ญ


   lispMapCacheLocatorTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispMapCacheLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the set of locators per EID-Prefix
           contained in the map-cache table of an ITR."
       REFERENCE
           "RFC 6830, Section 6.3."
       ::= { lispObjects 7 }

   lispMapCacheLocatorEntry OBJECT-TYPE
       SYNTAX     LispMapCacheLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispMapCacheLocatorTable."
       INDEX      { lispMapCacheEidLength,
                    lispMapCacheEid,
                    lispMapCacheLocatorRlocLength,
                    lispMapCacheLocatorRloc }
       ::= { lispMapCacheLocatorTable 1 }

   LispMapCacheLocatorEntry ::= SEQUENCE {
       lispMapCacheLocatorRlocLength              Integer32,
       lispMapCacheLocatorRloc                    LispAddressType,
       lispMapCacheLocatorRlocPriority            Integer32,
       lispMapCacheLocatorRlocWeight              Integer32,
       lispMapCacheLocatorRlocMPriority           Integer32,
       lispMapCacheLocatorRlocMWeight             Integer32,
       lispMapCacheLocatorRlocState               INTEGER,
       lispMapCacheLocatorRlocTimeStamp           TimeStamp,
       lispMapCacheLocatorRlocLastPriorityChange  TimeTicks,
       lispMapCacheLocatorRlocLastWeightChange    TimeTicks,
       lispMapCacheLocatorRlocLastMPriorityChange TimeTicks,
       lispMapCacheLocatorRlocLastMWeightChange   TimeTicks,
       lispMapCacheLocatorRlocLastStateChange     TimeTicks,
       lispMapCacheLocatorRlocRtt                 TimeTicks,
       lispMapCacheLocatorRlocDecapOctets         Counter64,
       lispMapCacheLocatorRlocDecapPackets        Counter64,
       lispMapCacheLocatorRlocEncapOctets         Counter64,
       lispMapCacheLocatorRlocEncapPackets        Counter64
   }

okay now we're in the locator table, and this is where it gets lowkey iconic ๐ŸŽ€ lispMapCacheLocatorTable is the set of locators per EID-Prefix sitting in the ITR's map-cache, and it points back at RFC 6830, Section 6.3 ๐ŸŒธ Each row is indexed by the EID length, the EID, the RLOC length, and the RLOC itself ๐Ÿงš The SEQUENCE just lists all the columns in order, so you can see every single thing a locator row carries ๐Ÿ’–


   lispMapCacheLocatorRlocLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispMapCacheLocatorRloc."
       ::= { lispMapCacheLocatorEntry 1 }

   lispMapCacheLocatorRloc OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The locator for the EID-Prefix in the mapping cache."
       ::= { lispMapCacheLocatorEntry 2 }

   lispMapCacheLocatorRlocPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast priority of the RLOC for this EID-Prefix
           (0-255); lower is more preferred."
       ::= { lispMapCacheLocatorEntry 3 }

   lispMapCacheLocatorRlocWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast weight of the RLOC for this EID-Prefix
           (0 - 100) percentage."
       ::= { lispMapCacheLocatorEntry 4 }

   lispMapCacheLocatorRlocMPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast priority of the RLOC for this EID-Prefix
           (0-255); lower is more preferred."
       ::= { lispMapCacheLocatorEntry 5 }

   lispMapCacheLocatorRlocMWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast weight of the RLOC for this EID-Prefix
           (0 - 100) percentage."
       ::= { lispMapCacheLocatorEntry 6 }

   lispMapCacheLocatorRlocState OBJECT-TYPE
       SYNTAX     INTEGER {
                    up (1),
                    down (2),
                    unreachable (3)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The state of this RLOC as per this device
           (1 = RLOC is up; 2 = RLOC is down; 3 = RLOC is unreachable)."
       ::= { lispMapCacheLocatorEntry 7 }

   lispMapCacheLocatorRlocTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the RLOC of EID-Prefix
           information represented by this entry was learned by
           this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem,
           then this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispMapCacheLocatorEntry 8 }

   lispMapCacheLocatorRlocLastPriorityChange OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Time elapsed since the last change of the unicast priority
           of the RLOC for this EID-Prefix.  Note that this is
           independent of lispMapCacheLocatorRlocTimeStamp."
       ::= { lispMapCacheLocatorEntry 9 }

   lispMapCacheLocatorRlocLastWeightChange OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Time elapsed since the last change of the unicast weight
           of the RLOC for this EID-Prefix.  Note that this is
           independent of lispMapCacheLocatorRlocTimeStamp."
       ::= { lispMapCacheLocatorEntry 10 }

   lispMapCacheLocatorRlocLastMPriorityChange OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Time since the last change of the multicast priority of the
           RLOC for this EID-Prefix."
       ::= { lispMapCacheLocatorEntry 11 }

   lispMapCacheLocatorRlocLastMWeightChange OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Time since the last change of the multicast weight of the
           RLOC for this EID-Prefix."
       ::= { lispMapCacheLocatorEntry 12 }

   lispMapCacheLocatorRlocLastStateChange OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Time since the last change of the up/down state of the
           RLOC for this EID-Prefix."
       ::= { lispMapCacheLocatorEntry 13 }

   lispMapCacheLocatorRlocRtt OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Round-trip time of RLOC probe and map-reply for this RLOC
           address for this prefix."
       ::= { lispMapCacheLocatorEntry 14 }

   lispMapCacheLocatorRlocDecapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were decapsulated
           by this device and were sourced from a remote host within
           this EID-Prefix and were encapsulated for this RLOC.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of RLOC of cache
           being removed and replaced, which can be detected by
           observing the value of lispMapCacheLocatorRlocTimeStamp."
       ::= { lispMapCacheLocatorEntry 15 }

   lispMapCacheLocatorRlocDecapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were decapsulated by this
           device and were sourced from a remote host within this
           EID-Prefix and were encapsulated for this RLOC.

Per-RLOC is where the tea is โ˜•๐Ÿซถ Priority and weight each come in a unicast version and a multicast version, and lower priority is more preferred ๐Ÿ‘‘ Weight is a percentage from 0 to 100 ๐Ÿ’… lispMapCacheLocatorRlocState is up (1), down (2), or unreachable (3) ๐Ÿ”ฅ The timestamps are all about changes, like lispMapCacheLocatorRlocLastPriorityChange and lispMapCacheLocatorRlocLastStateChange, and the locator timestamp is independent of those, which the text calls out more than once ๐Ÿฆ‹ lispMapCacheLocatorRlocRtt is the round-trip time of the RLOC probe and map-reply for that RLOC address on that prefix ๐ŸŒˆ And the locator decap and encap counters work the same way as the EID ones, just scoped to a single RLOC ๐Ÿ’œ

okay so the lispMapCacheLocator counters have the same discontinuity rules as the earlier ones, and the vibe is giving reinitialization drama ๐Ÿงš

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of RLOC of cache
           being removed and replaced, which can be detected by
           observing the value of lispMapCacheLocatorRlocTimeStamp."
       ::= { lispMapCacheLocatorEntry 16 }

   lispMapCacheLocatorRlocEncapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that matched this
           EID-Prefix and were encapsulated using this RLOC address.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of RLOC of cache
           being removed and replaced, which can be detected by
           observing the value of lispMapCacheLocatorRlocTimeStamp."
       ::= { lispMapCacheLocatorEntry 17 }

   lispMapCacheLocatorRlocEncapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that matched this EID-Prefix
           and were encapsulated using this RLOC address.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of RLOC of cache
           being removed and replaced, which can be detected by
           observing the value of lispMapCacheLocatorRlocTimeStamp."
       ::= { lispMapCacheLocatorEntry 18 }

next up is the configured locator table, which is the set of routing locators on this device, and yes, Proxy-ITR addresses count as RLOCs here too ๐ŸŽ€

   lispConfiguredLocatorTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispConfiguredLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table represents the set of routing locators
           configured on this device.  Note that the addresses
           configured by Proxy-ITR are treated as routing locators
           and therefore can be part of this table."
       REFERENCE
           "RFC 6830, Section 6.3."
       ::= { lispObjects 8 }

   lispConfiguredLocatorEntry OBJECT-TYPE
       SYNTAX     LispConfiguredLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispConfiguredLocatorTable."
       INDEX  { lispConfiguredLocatorRlocLength,
                lispConfiguredLocatorRloc }
       ::= { lispConfiguredLocatorTable 1 }

   LispConfiguredLocatorEntry ::= SEQUENCE {
       lispConfiguredLocatorRlocLength        Integer32,
       lispConfiguredLocatorRloc              LispAddressType,
       lispConfiguredLocatorRlocState         INTEGER,
       lispConfiguredLocatorRlocLocal         INTEGER,
       lispConfiguredLocatorRlocTimeStamp     TimeStamp,
       lispConfiguredLocatorRlocDecapOctets   Counter64,
       lispConfiguredLocatorRlocDecapPackets  Counter64,
       lispConfiguredLocatorRlocEncapOctets   Counter64,
       lispConfiguredLocatorRlocEncapPackets  Counter64
   }

   lispConfiguredLocatorRlocLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispConfiguredLocatorRloc."
       ::= { lispConfiguredLocatorEntry 1 }

   lispConfiguredLocatorRloc OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is an RLOC address configured on this device.
           It can be an RLOC that is local to this device or can be an
           RLOC that belongs to another ETR within the same site.
           Proxy-ITR address is treated as an RLOC."
       ::= { lispConfiguredLocatorEntry 2 }

   lispConfiguredLocatorRlocState OBJECT-TYPE
       SYNTAX     INTEGER {
                     up (1),
                     down (2),
                     unreachable (3)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The state of this RLOC as per this device.  (1 = RLOC is up;
           2 = RLOC is down; 3 = RLOC is unreachable)."
       ::= { lispConfiguredLocatorEntry 3 }

   lispConfiguredLocatorRlocLocal OBJECT-TYPE
       SYNTAX     INTEGER {
                     siteself (1),
                     sitelocal (2)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates whether the RLOC is local to this device (or
           remote, meaning local to another device in the same LISP
           site).  (1 = RLOC is an address on this device; 2 = RLOC is
           an address on another device)."

       ::= { lispConfiguredLocatorEntry 4 }

   lispConfiguredLocatorRlocTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the RLOC was configured on
           this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem, then
           this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispConfiguredLocatorEntry 5 }

   lispConfiguredLocatorRlocDecapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were addressed to
           this RLOC and were decapsulated.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of configured
           RLOC being removed and replaced, which can be detected by
           observing the value of lispConfiguredLocatorRlocTimeStamp."
       ::= { lispConfiguredLocatorEntry 6 }

   lispConfiguredLocatorRlocDecapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were addressed to this RLOC
           and were decapsulated.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of configured
           RLOC being removed and replaced, which can be detected by
           observing the value of lispConfiguredLocatorRlocTimeStamp."
       ::= { lispConfiguredLocatorEntry 7 }

   lispConfiguredLocatorRlocEncapOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets of LISP packets that were encapsulated
           by this device using this RLOC address as the source.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of configured
           RLOC being removed and replaced, which can be detected by
           observing the value of lispConfiguredLocatorRlocTimeStamp."
       ::= { lispConfiguredLocatorEntry 8 }

   lispConfiguredLocatorRlocEncapPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of LISP packets that were encapsulated by this
           device using this RLOC address as the source.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of configured
           RLOC being removed and replaced, which can be detected by
           observing the value of lispConfiguredLocatorRlocTimeStamp."
       ::= { lispConfiguredLocatorEntry 9 }

and last but not least for this part, the EID registration table, which only shows up when a device is set up to be a Map-Server ๐Ÿ‘‘

   lispEidRegistrationTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispEidRegistrationEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides the properties of each LISP EID-Prefix
           that is registered with this device when configured to be
           a Map-Server."
       REFERENCE
           "RFC 6833, Section 4."
       ::= { lispObjects 9 }

   lispEidRegistrationEntry OBJECT-TYPE
       SYNTAX     LispEidRegistrationEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the lispEidRegistrationTable."
       INDEX      { lispEidRegistrationEidLength,
                    lispEidRegistrationEid }
       ::= { lispEidRegistrationTable 1 }

   LispEidRegistrationEntry ::= SEQUENCE {
       lispEidRegistrationEidLength                 Integer32,
       lispEidRegistrationEid                       LispAddressType,
       lispEidRegistrationSiteName                  OCTET STRING,
       lispEidRegistrationSiteDescription           OCTET STRING,
       lispEidRegistrationIsRegistered              TruthValue,
       lispEidRegistrationFirstTimeStamp            TimeStamp,
       lispEidRegistrationLastTimeStamp             TimeStamp,
       lispEidRegistrationLastRegisterSenderLength  Integer32,
       lispEidRegistrationLastRegisterSender        LispAddressType,
       lispEidRegistrationAuthenticationErrors      Counter64,
       lispEidRegistrationRlocsMismatch             Counter64
   }

   lispEidRegistrationEidLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispEidRegistrationEid."
       ::= { lispEidRegistrationEntry 1 }

   lispEidRegistrationEid OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The EID-Prefix that is being registered."
        ::= { lispEidRegistrationEntry 2 }

   lispEidRegistrationSiteName OBJECT-TYPE
       SYNTAX     OCTET STRING (SIZE(0..63))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Site name used by a Map-Server to distinguish different
           LISP sites that are registering with it."
       ::= { lispEidRegistrationEntry 3 }

   lispEidRegistrationSiteDescription OBJECT-TYPE
       SYNTAX     OCTET STRING (SIZE(0..255))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Description for a site name used by a Map-Server.  The EID
           prefix that is being registered belongs to this site."
       ::= { lispEidRegistrationEntry 4 }

   lispEidRegistrationIsRegistered OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates the registration status of the given EID-Prefix.
           If this object is true, then it means the EID-Prefix is
           registered.

           The value false implies the EID-Prefix is not registered
           with the Map Server.  There are multiple scenarios when this
           could happen like authentication failures, routing problems,
           misconfigs to name a few."
       ::= { lispEidRegistrationEntry 5 }

   lispEidRegistrationFirstTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the first valid register
           message for the EID Prefix information represented by this
           entry was received by this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem, then
           this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispEidRegistrationEntry 6 }

okay so we're still deep in the MIB, and this next bit is all about the ETR and Map-Server registration tables ๐Ÿ’…๐Ÿฆ‹

The timestamp for the last valid register from an ETR shows up in the tables below, and it's giving very "when did you last text me back" energy ๐Ÿ™ˆ

   lispEidRegistrationLastTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the last valid register
           message for the EID Prefix information represented by this
           entry was received by this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem, then
           this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispEidRegistrationEntry 7 }

   lispEidRegistrationLastRegisterSenderLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispEidRegistrationLastRegisterSender, the next
           object."
       ::= { lispEidRegistrationEntry 8 }

   lispEidRegistrationLastRegisterSender OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Source address of the last valid register message for the
           given EID-Prefix that was received by this device."
       ::= { lispEidRegistrationEntry 9 }

   lispEidRegistrationAuthenticationErrors OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Count of total authentication errors of map-registers
           received for the given EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of site config
           changes, which can be detected by observing the value of
           lispEidRegistrationFirstTimeStamp."
       ::= { lispEidRegistrationEntry 10 }

   lispEidRegistrationRlocsMismatch OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Count of total map-registers received that had at least one
           RLOC that was not in the allowed list of RLOCs for the given
           EID-Prefix.

           Discontinuities in this monotonically increasing value occur
           at reinitialization of the management system.
           Discontinuities can also occur as a result of site config
           changes, which can be detected by observing the value of
           lispEidRegistrationFirstTimeStamp."
       ::= { lispEidRegistrationEntry 11 }

   lispEidRegistrationEtrTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispEidRegistrationEtrEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides the properties of ETRs that register
           the given EID-Prefix with this device when configured to
           be a Map-Server."
       REFERENCE
           "RFC 6830, Section 6.1."
       ::= { lispObjects 10 }

   lispEidRegistrationEtrEntry OBJECT-TYPE
       SYNTAX     LispEidRegistrationEtrEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispEidRegistrationEtrTable."
       INDEX      { lispEidRegistrationEidLength,
                    lispEidRegistrationEid,
                    lispEidRegistrationEtrSenderLength,
                    lispEidRegistrationEtrSender }
       ::= { lispEidRegistrationEtrTable 1 }

   LispEidRegistrationEtrEntry ::= SEQUENCE {
       lispEidRegistrationEtrSenderLength           Integer32,
       lispEidRegistrationEtrSender                 LispAddressType,
       lispEidRegistrationEtrLastTimeStamp          TimeStamp,
       lispEidRegistrationEtrTtl                    Unsigned32,
       lispEidRegistrationEtrProxyReply             TruthValue,
       lispEidRegistrationEtrWantsMapNotify         TruthValue
   }

   lispEidRegistrationEtrSenderLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispEidRegistrationEtrSender."

       ::= { lispEidRegistrationEtrEntry 1 }

   lispEidRegistrationEtrSender OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "Source address of the ETR that is sending valid register
           messages for this EID-Prefix to this device."
       ::= { lispEidRegistrationEtrEntry 2 }

   lispEidRegistrationEtrLastTimeStamp OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at which the last valid register
           message from this ETR for the EID Prefix information
           represented by this entry was received by this device.

           If this information was present at the most recent
           reinitialization of the local management subsystem,
           then this object contains a zero value."
       DEFVAL { 0 }
       ::= { lispEidRegistrationEtrEntry 3 }

   lispEidRegistrationEtrTtl OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The Record TTL of the registering ETR device for this
           EID-Prefix."
       ::= { lispEidRegistrationEtrEntry 4 }

   lispEidRegistrationEtrProxyReply OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates proxy-replying status of the registering ETR for
           this EID-Prefix.  If this object is true, then it means the
           Map-Server can proxy-reply."
       ::= { lispEidRegistrationEtrEntry 5 }

   lispEidRegistrationEtrWantsMapNotify OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates whether the EID-Prefix wants Map-Notifications.
           If this object is true, then it means the EID-Prefix wants
           Map-Notifications."
       ::= { lispEidRegistrationEtrEntry 6 }

   lispEidRegistrationLocatorTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispEidRegistrationLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides the properties of all locators per
           LISP site that are served by this device when configured
           to be a Map-Server."
       REFERENCE
           "RFC 6830, Section 6.1."
       ::= { lispObjects 11 }

   lispEidRegistrationLocatorEntry OBJECT-TYPE
       SYNTAX     LispEidRegistrationLocatorEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispEidRegistrationLocatorTable."
       INDEX      { lispEidRegistrationEidLength,
                    lispEidRegistrationEid,
                    lispEidRegistrationEtrSenderLength,
                    lispEidRegistrationEtrSender,
                    lispEidRegistrationLocatorRlocLength,
                    lispEidRegistrationLocatorRloc }
       ::= { lispEidRegistrationLocatorTable 1 }

   LispEidRegistrationLocatorEntry ::= SEQUENCE {
       lispEidRegistrationLocatorRlocLength         Integer32,
       lispEidRegistrationLocatorRloc               LispAddressType,
       lispEidRegistrationLocatorRlocState          INTEGER,
       lispEidRegistrationLocatorIsLocal            TruthValue,
       lispEidRegistrationLocatorPriority           Integer32,
       lispEidRegistrationLocatorWeight             Integer32,
       lispEidRegistrationLocatorMPriority          Integer32,
       lispEidRegistrationLocatorMWeight            Integer32
   }

   lispEidRegistrationLocatorRlocLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispEidRegistrationLocatorRloc."
       ::= { lispEidRegistrationLocatorEntry 1 }

   lispEidRegistrationLocatorRloc OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The locator of the given EID-Prefix being registered by the
           given ETR with this device."
       ::= { lispEidRegistrationLocatorEntry 2 }

   lispEidRegistrationLocatorRlocState OBJECT-TYPE
       SYNTAX     INTEGER {
                     up (1),
                     down (2)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The cached state of this RLOC received in map-register from
           the ETR by the device, in the capacity of a Map-Server.
           Value 1 refers to up, value 2 refers to down."
       ::= { lispEidRegistrationLocatorEntry 3 }

   lispEidRegistrationLocatorIsLocal OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Indicates if the given locator is local to the registering
           ETR.  If this object is true,  it means the locator is
           local."
       ::= { lispEidRegistrationLocatorEntry 4 }

   lispEidRegistrationLocatorPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast priority of the RLOC for this EID-Prefix in the
           register message sent by the given ETR."
       ::= { lispEidRegistrationLocatorEntry 5 }

   lispEidRegistrationLocatorWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast weight of the RLOC for this EID-Prefix in the
           register message sent by the given ETR."
       ::= { lispEidRegistrationLocatorEntry 6 }

   lispEidRegistrationLocatorMPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast priority of the RLOC for this EID-Prefix in
           the register message sent by the given ETR."
       ::= { lispEidRegistrationLocatorEntry 7 }

   lispEidRegistrationLocatorMWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast weight of the RLOC for this EID-Prefix in the
           register message sent by the given ETR."
       ::= { lispEidRegistrationLocatorEntry 8 }

   lispUseMapServerTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispUseMapServerEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides the properties of the Map-Server(s)
           with which this device is configured to register."
       REFERENCE
           "RFC 6833, Section 4.3."
       ::= { lispObjects 12 }

   lispUseMapServerEntry OBJECT-TYPE
       SYNTAX     LispUseMapServerEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the lispUseMapServerTable."
       INDEX      { lispUseMapServerAddressLength,
                    lispUseMapServerAddress }
       ::= { lispUseMapServerTable 1 }

   LispUseMapServerEntry ::= SEQUENCE {
       lispUseMapServerAddressLength Integer32,
       lispUseMapServerAddress       LispAddressType,
       lispUseMapServerState         INTEGER
   }

   lispUseMapServerAddressLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispUseMapServerAddress."
       ::= { lispUseMapServerEntry 1 }

Okay bestie, the map-server and map-resolver tables are next, and the proxy ETR state is giving main character energy ๐Ÿฆ‹

   lispUseMapServerAddress OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "Address of a Map-Server configured on this device."
       ::= { lispUseMapServerEntry 2 }

   lispUseMapServerState OBJECT-TYPE
       SYNTAX     INTEGER {
                     up (1),
                     down (2),
                     unreachable (3)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "State of this Map-Server configured on this device
           (1 = Map-Server is up; 2 = Map-Server is down)."
       ::= { lispUseMapServerEntry 3 }

   lispUseMapResolverTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispUseMapResolverEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides the properties of the Map-Resolver(s)
           this device is configured to use."
       REFERENCE
           "RFC 6833, Section 4.4."
       ::= { lispObjects 13 }

   lispUseMapResolverEntry OBJECT-TYPE

       SYNTAX     LispUseMapResolverEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispUseMapResolverTable."
       INDEX      { lispUseMapResolverAddressLength,
                    lispUseMapResolverAddress }
       ::= { lispUseMapResolverTable 1 }

   LispUseMapResolverEntry ::= SEQUENCE {
       lispUseMapResolverAddressLength   Integer32,
       lispUseMapResolverAddress         LispAddressType,
       lispUseMapResolverState           INTEGER
   }

   lispUseMapResolverAddressLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispUseMapResolverAddress."
       ::= { lispUseMapResolverEntry 1 }

   lispUseMapResolverAddress OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "Address of Map-Resolver configured on this device."
       ::= { lispUseMapResolverEntry 2 }

   lispUseMapResolverState OBJECT-TYPE
       SYNTAX     INTEGER {
                     up (1),
                     down (2)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "State of this Map-Resolver configured on this device
           (1 = Map-Resolver is up; 2 = Map-Resolver is down)."
       ::= { lispUseMapResolverEntry 3 }

   lispUseProxyEtrTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF LispUseProxyEtrEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This table provides the properties of all Proxy ETRs that
           this device is configured to use."
       REFERENCE
           "RFC 6830, Section 6."
       ::= { lispObjects 14 }

   lispUseProxyEtrEntry OBJECT-TYPE
       SYNTAX     LispUseProxyEtrEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An entry (conceptual row) in the
           lispUseProxyEtrTable."
       INDEX      { lispUseProxyEtrAddressLength,
                    lispUseProxyEtrAddress }
       ::= { lispUseProxyEtrTable 1 }

   LispUseProxyEtrEntry ::= SEQUENCE {
       lispUseProxyEtrAddressLength        Integer32,
       lispUseProxyEtrAddress              LispAddressType,
       lispUseProxyEtrPriority             Integer32,
       lispUseProxyEtrWeight               Integer32,
       lispUseProxyEtrMPriority            Integer32,
       lispUseProxyEtrMWeight              Integer32,
       lispUseProxyEtrState                INTEGER
   }

   lispUseProxyEtrAddressLength OBJECT-TYPE
       SYNTAX     Integer32 (5..39)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "This object is used to get the octet-length of
           lispUseProxyEtrAddress."
       ::= { lispUseProxyEtrEntry 1 }

   lispUseProxyEtrAddress OBJECT-TYPE
       SYNTAX     LispAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "Address of Proxy ETR configured on this device."
       ::= { lispUseProxyEtrEntry 2 }

   lispUseProxyEtrPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast priority of the PETR locator."
       ::= { lispUseProxyEtrEntry 3 }

   lispUseProxyEtrWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The unicast weight of the PETR locator."
       ::= { lispUseProxyEtrEntry 4 }

   lispUseProxyEtrMPriority OBJECT-TYPE
       SYNTAX     Integer32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast priority of the PETR locator."
       ::= { lispUseProxyEtrEntry 5 }

   lispUseProxyEtrMWeight OBJECT-TYPE
       SYNTAX     Integer32 (0..100)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The multicast weight of the PETR locator."
       ::= { lispUseProxyEtrEntry 6 }

   lispUseProxyEtrState OBJECT-TYPE
       SYNTAX     INTEGER {
                     down (0),
                     up (1)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "State of this Proxy ETR configured on this device
           (0 = Proxy ETR is down; 1 = Proxy ETR is up)."
       ::= { lispUseProxyEtrEntry 7 }

   --
   -- Conformance Information
   --

   lispCompliances OBJECT IDENTIFIER ::= { lispConformance 1 }
   lispGroups      OBJECT IDENTIFIER ::= { lispConformance 2 }
   --
   -- Compliance Statements
   --

   lispMIBComplianceEtr MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for LISP ETRs.  It conveys
               whether the device supports the ETR feature, and,
               if so, the relevant state associated with that feature."
       MODULE  -- this module
       MANDATORY-GROUPS { lispMIBEtrGroup }

         GROUP   lispMIBItrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPetrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPitrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapResolverGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEtrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBTuningParametersGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEncapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDecapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBVrfGroup
         DESCRIPTION
             "This group is optional."

       ::= { lispCompliances 1 }

   lispMIBComplianceItr MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for LISP ITRs.  It conveys
               whether the device supports the ITR feature, and,
               if so, the relevant state associated with that feature."
       MODULE  -- this module
       MANDATORY-GROUPS { lispMIBItrGroup }

         GROUP   lispMIBEtrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPetrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPitrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapResolverGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEtrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBTuningParametersGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEncapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDecapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBVrfGroup
         DESCRIPTION
             "This group is optional."

       ::= { lispCompliances 2 }

   lispMIBCompliancePetr MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for LISP Proxy-ETRs.  It
               conveys whether the device supports the Proxy-ETR
               feature, and, if so, the relevant state associated
               with that feature."
       MODULE  -- this module
       MANDATORY-GROUPS { lispMIBPetrGroup }

         GROUP   lispMIBEtrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPitrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapResolverGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEtrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBTuningParametersGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEncapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDecapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBVrfGroup
         DESCRIPTION
             "This group is optional."

       ::= { lispCompliances 3 }

   lispMIBCompliancePitr MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for LISP Proxy-ITRs.  It
               conveys whether the device supports the Proxy-ITR
               feature, and, if so, the relevant state associated
               with that feature."
       MODULE  -- this module
       MANDATORY-GROUPS { lispMIBPitrGroup }

         GROUP   lispMIBEtrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPetrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapResolverGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEtrExtendedGroup
         DESCRIPTION
             "This group is optional."

Okay bestie, we're picking up right where the Map Server compliance statement is still vibing ๐Ÿ’– The first block below finishes its optional group list, and then the Map Resolver compliance statement gets its turn ๐ŸŽ€

         GROUP   lispMIBItrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBTuningParametersGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEncapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDecapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBVrfGroup
         DESCRIPTION
             "This group is optional."

       ::= { lispCompliances 4 }

   lispMIBComplianceMapServer MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for LISP Map Servers.  It
               conveys whether the device supports the Map Server
               feature, and, if so, the relevant state associated
               with that feature."
       MODULE  -- this module
       MANDATORY-GROUPS { lispMIBMapServerGroup }

         GROUP   lispMIBEtrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPetrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPitrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapResolverGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEtrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBTuningParametersGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEncapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDecapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBVrfGroup
         DESCRIPTION
             "This group is optional."

       ::= { lispCompliances 5 }

   lispMIBComplianceMapResolver MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for LISP Map Resolvers.  It
               conveys whether the device supports the Map Resolver
               feature, and, if so, the relevant state associated
               with that feature."
       MODULE  -- this module
       MANDATORY-GROUPS { lispMIBMapResolverGroup }

         GROUP   lispMIBEtrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPetrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBPitrGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEtrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBItrExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBMapServerExtendedGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBTuningParametersGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBEncapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDecapStatisticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

         GROUP   lispMIBVrfGroup
         DESCRIPTION
             "This group is optional."

       ::= { lispCompliances 6 }

   --
   -- Units of Conformance
   --

   lispMIBEtrGroup OBJECT-GROUP
       OBJECTS { lispFeaturesEtrEnabled,
                 lispMappingDatabaseLsb,
                 lispMappingDatabaseLocatorRlocPriority,
                 lispMappingDatabaseLocatorRlocWeight,
                 lispMappingDatabaseLocatorRlocMPriority,
                 lispMappingDatabaseLocatorRlocMWeight,
                 lispMappingDatabaseLocatorRlocState,
                 lispMappingDatabaseLocatorRlocLocal,
                 lispConfiguredLocatorRlocState,
                 lispConfiguredLocatorRlocLocal,
                 lispUseMapServerState
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of basic
                LISP ETR parameters."
       ::= { lispGroups 1 }

   lispMIBItrGroup OBJECT-GROUP
       OBJECTS { lispFeaturesItrEnabled,
                 lispFeaturesMapCacheSize,
                 lispMappingDatabaseLsb,
                 lispMapCacheLocatorRlocPriority,
                 lispMapCacheLocatorRlocWeight,
                 lispMapCacheLocatorRlocMPriority,
                 lispMapCacheLocatorRlocMWeight,
                 lispMapCacheLocatorRlocState,
                 lispMapCacheEidTimeStamp,
                 lispMapCacheEidExpiryTime,
                 lispUseMapResolverState,
                 lispUseProxyEtrPriority,
                 lispUseProxyEtrWeight,
                 lispUseProxyEtrMPriority,
                 lispUseProxyEtrMWeight,
                 lispUseProxyEtrState
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of basic
                LISP ITR parameters."
       ::= { lispGroups 2 }

   lispMIBPetrGroup OBJECT-GROUP
       OBJECTS { lispFeaturesProxyEtrEnabled
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of basic
                LISP Proxy-ETR parameters."
       ::= { lispGroups 3 }

   lispMIBPitrGroup OBJECT-GROUP
       OBJECTS { lispFeaturesProxyItrEnabled,
                 lispConfiguredLocatorRlocState,
                 lispConfiguredLocatorRlocLocal
               }

       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of basic
                LISP Proxy-ITR parameters."
       ::= { lispGroups 4 }

   lispMIBMapServerGroup OBJECT-GROUP
       OBJECTS { lispFeaturesMapServerEnabled,
                 lispEidRegistrationIsRegistered,
                 lispEidRegistrationLocatorRlocState
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of basic
                LISP Map Server parameters."
       ::= { lispGroups 5 }

   lispMIBMapResolverGroup OBJECT-GROUP
       OBJECTS { lispFeaturesMapResolverEnabled
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of basic
                LISP Map Resolver parameters."
       ::= { lispGroups 6 }

   lispMIBEtrExtendedGroup OBJECT-GROUP
       OBJECTS { lispFeaturesRlocProbeEnabled,
                 lispFeaturesEtrAcceptMapDataEnabled,
                 lispFeaturesEtrAcceptMapDataVerifyEnabled,
                 lispMappingDatabaseEidPartitioned
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of
                LISP features and properties on ETRs."
       ::= { lispGroups 7 }

   lispMIBItrExtendedGroup OBJECT-GROUP
       OBJECTS { lispFeaturesRlocProbeEnabled,
                 lispMapCacheEidState,
                 lispMapCacheEidAuthoritative,
                 lispMapCacheLocatorRlocTimeStamp,
                 lispMapCacheLocatorRlocLastPriorityChange,
                 lispMapCacheLocatorRlocLastWeightChange,
                 lispMapCacheLocatorRlocLastMPriorityChange,
                 lispMapCacheLocatorRlocLastMWeightChange,
                 lispMapCacheLocatorRlocLastStateChange,
                 lispMapCacheLocatorRlocRtt
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support reporting of
                LISP features and properties on ITRs."
       ::= { lispGroups 8 }

   lispMIBMapServerExtendedGroup OBJECT-GROUP
       OBJECTS { lispEidRegistrationSiteName,
                 lispEidRegistrationSiteDescription,
                 lispEidRegistrationIsRegistered,
                 lispEidRegistrationFirstTimeStamp,
                 lispEidRegistrationLastTimeStamp,
                 lispEidRegistrationLastRegisterSenderLength,
                 lispEidRegistrationLastRegisterSender,
                 lispEidRegistrationEtrLastTimeStamp,
                 lispEidRegistrationEtrTtl,
                 lispEidRegistrationEtrProxyReply,
                 lispEidRegistrationEtrWantsMapNotify,
                 lispEidRegistrationLocatorIsLocal,
                 lispEidRegistrationLocatorPriority,
                 lispEidRegistrationLocatorWeight,
                 lispEidRegistrationLocatorMPriority,
                 lispEidRegistrationLocatorMWeight
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects to support the reporting of
                LISP features and properties on Map Servers
                related to EID registrations."
       ::= { lispGroups 9 }

   lispMIBTuningParametersGroup OBJECT-GROUP
       OBJECTS { lispFeaturesMapCacheLimit,
                 lispFeaturesEtrMapCacheTtl
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects used to support the reporting of
                parameters used to control LISP behavior and to tune
                performance."
       ::= { lispGroups 10 }

   lispMIBEncapStatisticsGroup OBJECT-GROUP
       OBJECTS { lispMappingDatabaseTimeStamp,
                 lispMappingDatabaseEncapOctets,
                 lispMappingDatabaseEncapPackets,
                 lispMappingDatabaseLocatorRlocTimeStamp,
                 lispMappingDatabaseLocatorRlocEncapOctets,
                 lispMappingDatabaseLocatorRlocEncapPackets,
                 lispMapCacheEidTimeStamp,
                 lispMapCacheEidEncapOctets,
                 lispMapCacheEidEncapPackets,
                 lispMapCacheLocatorRlocTimeStamp,
                 lispMapCacheLocatorRlocEncapOctets,
                 lispMapCacheLocatorRlocEncapPackets,
                 lispConfiguredLocatorRlocTimeStamp,
                 lispConfiguredLocatorRlocEncapOctets,
                 lispConfiguredLocatorRlocEncapPackets
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects used to support the reporting of
                LISP encapsulation statistics for the device."
       ::= { lispGroups 11 }

Look at all these groups, they're literally the building blocks of the whole LISP MIB ๐Ÿงš The Map Server and Map Resolver compliance statements are basically the "here's what your device is" checklists ๐ŸŒธ Each one has a MANDATORY-GROUPS line for its core feature, and then everything else is marked "This group is optional" ๐Ÿซถ That's the most relaxed vibe ever ๐Ÿ’…

The Units of Conformance section is where the actual object groups live ๐Ÿ‘‘ Each one lists the objects it bundles together, like the ETR group, ITR group, Proxy-ETR and Proxy-ITR groups, and the Map Server and Map Resolver groups, plus the extended, tuning, and encapsulation statistics ones ๐Ÿฆ‹ They're all tagged current and numbered under lispGroups ๐Ÿ’œ

   lispMIBDecapStatisticsGroup OBJECT-GROUP
       OBJECTS { lispMappingDatabaseTimeStamp,
                 lispMappingDatabaseDecapOctets,
                 lispMappingDatabaseDecapPackets,
                 lispMappingDatabaseLocatorRlocTimeStamp,
                 lispMappingDatabaseLocatorRlocDecapOctets,
                 lispMappingDatabaseLocatorRlocDecapPackets,
                 lispMapCacheEidTimeStamp,
                 lispMapCacheEidDecapOctets,
                 lispMapCacheEidDecapPackets,
                 lispMapCacheLocatorRlocTimeStamp,
                 lispMapCacheLocatorRlocDecapOctets,
                 lispMapCacheLocatorRlocDecapPackets,
                 lispConfiguredLocatorRlocTimeStamp,
                 lispConfiguredLocatorRlocDecapOctets,
                 lispConfiguredLocatorRlocDecapPackets
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects used to support the reporting of
                LISP decapsulation statistics for the device."
       ::= { lispGroups 12 }

   lispMIBDiagnosticsGroup OBJECT-GROUP
       OBJECTS { lispFeaturesRouterTimeStamp,
                 lispGlobalStatsMapRequestsIn,
                 lispGlobalStatsMapRequestsOut,
                 lispGlobalStatsMapRepliesIn,
                 lispGlobalStatsMapRepliesOut,
                 lispGlobalStatsMapRegistersIn,
                 lispGlobalStatsMapRegistersOut,
                 lispEidRegistrationAuthenticationErrors,
                 lispEidRegistrationRlocsMismatch
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects used to support the reporting of
                additional diagnostics related to the LISP control-plane
                state of a LISP device."
       ::= { lispGroups 13 }

   lispMIBVrfGroup OBJECT-GROUP
       OBJECTS { lispIidToVrfName
               }
       STATUS  current
       DESCRIPTION
               "A collection of objects used to support reporting of
                VRF-related information on a LISP device."
       ::= { lispGroups 14 }
END

That's the whole MIB module wrapped up, bestie ๐ŸŽ€โœจ Three object groups, all neatly tucked in, and then the module closes with END. Now we get to the stuff around it, which is just as important. ๐Ÿ’…

8. Relationship to Other MIB Modules โœจ

8.1. MIB Modules Required for IMPORTS

Okay so the LISP MIB borrows a few things from other places, and we have to name-drop every single one ๐Ÿซถ

The LISP MIB imports the TEXTUAL-CONVENTION AddressFamilyNumbers from the IANA-ADDRESS-FAMILY-NUMBERS-MIB DEFINITIONS [IANA].

It also imports mib-2, Unsigned32, Counter64, Integer32, and TimeTicks from SNMPv2-SMI -- [RFC2578].

Then it imports TruthValue, TEXTUAL-CONVENTION, TimeStamp, and TimeTicks from SNMPv2-TC -- [RFC2579].

It imports MODULE-COMPLIANCE from SNMPv2-TC -- [RFC2580] too.

And last but not least, it imports MplsL3VpnName from MPLS-L3VPN-STD-MIB -- [RFC4382]. ๐ŸŒˆ

9. Security Considerations

Okay, this is the serious section, so we're gonna give it the full respect it deserves ๐Ÿ”’๐Ÿ’€

Good news first: there are no management objects in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. So if this MIB module is implemented correctly, there's no way for an intruder to alter or create any of its management objects with direct SNMP SET operations. Main character energy for security ๐Ÿ’–

Also, there are no readable objects in this MIB module (meaning objects with a MAX-ACCESS other than not-accessible) that are considered sensitive. ๐Ÿ™ˆ

Now for the plot twist. SNMP versions before SNMPv3 did not include adequate security. Even if the network itself is secure (say, by using IPsec), there's no control over who on that secure network gets to access and GET/SET (read/change/create/delete) the objects in this MIB module. Not it ๐Ÿ˜ญ

So, implementations SHOULD provide the security features described by the SNMPv3 framework (see [RFC3410]). And implementations claiming compliance to the SNMPv3 standard MUST include full support for authentication and privacy via the User-based Security Model (USM) [RFC3414] with the AES cipher algorithm [RFC3826]. Implementations MAY also provide support for the Transport Security Model (TSM) [RFC5591] in combination with a secure transport such as SSH [RFC5592] or TLS/DTLS [RFC6353]. โœจ

Further, deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. ๐Ÿ”

Then it's a customer/operator responsibility to make sure the SNMP entity giving access to an instance of this MIB module is properly configured. Access to the objects should only go to the principals (users) who have legitimate rights to actually GET or SET (change/create/delete) them. Lock it down, bestie ๐Ÿ‘‘

10. IANA Considerations

Okay so the MIB module in this document uses some IANA-assigned OBJECT IDENTIFIER values that are recorded in the SMI Numbers registry ๐Ÿฆ‹

              Descriptor        OBJECT IDENTIFIER value
              ----------        -----------------------

              lispMIB            { mib-2 220 }

IANA has allocated a brand new value in the "SMI Network Management MGMT Codes Internet-standard MIB" subregistry of the "Network Management Parameters" registry, with the following registration data:

      Decimal: 220
      Name: lispMIB
      Description: Locator/ID Separation Protocol (LISP)
      References: [RFC7052]

Iconic registration, honestly ๐ŸŒธ

11. References

11.1. Normative References

  • [IANA] IANA, "IANA-ADDRESS-FAMILY-NUMBERS-MIB DEFINITIONS", <http://www.iana.org/assignments/ianaaddressfamilynumbers-mib>.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
  • [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
  • [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
  • [RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", STD 62, RFC 3414, December 2002.
  • [RFC3826] Blumenthal, U., Maino, F., and K. McCloghrie, "The Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP User-based Security Model", RFC 3826, June 2004.
  • [RFC4382] Nadeau, T. and H. van der Linde, "MPLS/BGP Layer 3 Virtual Private Network (VPN) Management Information Base", RFC 4382, February 2006.
  • [RFC5591] Harrington, D. and W. Hardaker, "Transport Security Model for the Simple Network Management Protocol (SNMP)", RFC 5591, June 2009.
  • [RFC5592] Harrington, D., Salowey, J., and W. Hardaker, "Secure Shell Transport Model for the Simple Network Management Protocol (SNMP)", RFC 5592, June 2009.
  • [RFC6353] Hardaker, W., "Transport Layer Security (TLS) Transport Model for the Simple Network Management Protocol (SNMP)", RFC 6353, July 2011.
  • [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The Locator/ID Separation Protocol (LISP)", RFC 6830, January 2013.
  • [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, "Interworking between Locator/ID Separation Protocol (LISP) and Non-LISP Sites", RFC 6832, January 2013.
  • [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation Protocol (LISP) Map-Server Interface", RFC 6833, January 2013.

11.2. Informative References

  • [LCAF] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical Address Format (LCAF)", Work in Progress, September 2013.
  • [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.

Appendix A. Acknowledgments ๐Ÿซถ

A big thank you to Dino Farinacci for his input, review, and comments on the initial versions of this document. The authors also want to gratefully acknowledge several others who reviewed and commented on it: Darrel Lewis, Isidor Kouvelas, Jesper Skriver, Selina Heimlich, Parna Agrawal, Dan Romascanu, and Luigi Iannone. Special thanks go to Brian Haberman, the Internet Area AD, for his very detailed review; Miguel Garcia for reviewing this document as part of the General Area Review Team; and Harrie Hazewinkel for the detailed MIB review and comments. The whole squad showed up ๐Ÿ‘‘

Authors' Addresses โœจ

Gregg Schudel
Cisco Systems
Tasman Drive
San Jose, CA  95134
USA

EMail: gschudel@cisco.com


Amit Jain
Juniper Networks
1133 Innovation Way
Sunnyvale, CA  94089
USA

EMail: atjain@juniper.net


Victor Moreno
Cisco Systems
Tasman Drive
San Jose, CA  95134
USA

EMail: vimoreno@cisco.com

And that's the whole LISP MIB, bestie! ๐ŸŒˆ๐Ÿ’–๐Ÿงš

๐Ÿ“ฆ where this page comes from