L2L3-VPN-MULTICAST-MIB DEFINITIONS ::= BEGIN

IMPORTS
  MODULE-IDENTITY, OBJECT-TYPE, mib-2, zeroDotZero
     FROM SNMPv2-SMI                            -- RFC 2578

  MODULE-COMPLIANCE, OBJECT-GROUP
     FROM SNMPv2-CONF                           -- RFC 2580

  RowPointer
     FROM SNMPv2-TC                             -- RFC 2579

  MplsLabel
     FROM MPLS-TC-STD-MIB                       -- RFC 3811

  L2L3VpnMcastProviderTunnelType,
  L2L3VpnMcastProviderTunnelId
     FROM L2L3-VPN-MULTICAST-TC-MIB;            -- RFC 8502

l2L3VpnMcastMIB MODULE-IDENTITY
  LAST-UPDATED "201812140000Z"  -- 14 December 2018
  ORGANIZATION "IETF BESS Working Group"
  CONTACT-INFO
                "Zhaohui Zhang
                 Juniper Networks, Inc.
                 10 Technology Park Drive
                 Westford, MA 01886
                 United States of America
                 Email: zzhang@juniper.net

                 Hiroshi Tsunoda
                 Tohoku Institute of Technology
                 35-1, Yagiyama Kasumi-cho
                 Taihaku-ku, Sendai, 982-8577
                 Japan
                 Email: tsuno@m.ieice.org"
  DESCRIPTION
      "This MIB module defines a table representing the attribute
       information of the provider tunnels (P-tunnels) on a PE router.
       This MIB module will be used by other MIB modules designed for
       monitoring and/or configuring Border Gateway
       Protocol/Multiprotocol Label Switching

       Layer 2 and Layer 3 Virtual Private
       Network that support multicast (L2L3VpnMCast network).

       Copyright (c) 2018 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 History

  REVISION "201812140000Z"  -- 14 December 2018
  DESCRIPTION
      "Initial version, published as RFC 8502."
  ::= { mib-2 245 }

-- Top-level components of this MIB.
l2L3VpnMcastStates      OBJECT IDENTIFIER
                        ::= { l2L3VpnMcastMIB 1 }

l2L3VpnMcastConformance OBJECT IDENTIFIER
                        ::= { l2L3VpnMcastMIB 2 }

-- Tables, Scalars, Conformance Information
-- Table of PMSI Tunnel Attributes

l2L3VpnMcastPmsiTunnelAttributeTable OBJECT-TYPE
   SYNTAX        SEQUENCE OF L2L3VpnMcastPmsiTunnelAttributeEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table corresponds to
        the attribute information of a specific
        P-tunnel on a PE router.
        A part of the attributes corresponds to fields in
        a Provider Multicast Service Interface (PMSI) Tunnel
        attribute advertised and received by a PE router.
        The entries will be referred to by other MIB modules
        for monitoring and/or configuring L2L3VpnMCast networks.
       "
   REFERENCE
       "RFC 6514, Section 5"
   ::= { l2L3VpnMcastStates 1 }

l2L3VpnMcastPmsiTunnelAttributeEntry OBJECT-TYPE
   SYNTAX        L2L3VpnMcastPmsiTunnelAttributeEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "A conceptual row corresponding to a specific
        P-tunnel on this router.
       "
   REFERENCE
       "RFC 6514, Section 5"
   INDEX {
           l2L3VpnMcastPmsiTunnelAttributeType,
           l2L3VpnMcastPmsiTunnelAttributeId
         }
   ::= { l2L3VpnMcastPmsiTunnelAttributeTable 1 }

L2L3VpnMcastPmsiTunnelAttributeEntry ::=
    SEQUENCE {
        l2L3VpnMcastPmsiTunnelAttributeType
            L2L3VpnMcastProviderTunnelType,
        l2L3VpnMcastPmsiTunnelAttributeId
            L2L3VpnMcastProviderTunnelId,
        l2L3VpnMCastPmsiTunnelLeafInfoRequired
            INTEGER,
        l2L3VpnMcastPmsiTunnelAttributeMplsLabel
            MplsLabel,
        l2L3VpnMcastPmsiTunnelPointer
            RowPointer,
        l2L3VpnMcastPmsiTunnelIf
            RowPointer
    }

l2L3VpnMcastPmsiTunnelAttributeType OBJECT-TYPE
   SYNTAX        L2L3VpnMcastProviderTunnelType
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This object indicates the type of tunneling technology
        used to establish the P-tunnel corresponding to this entry.

        When BGP-based PMSI signaling is used, the value of
        this object corresponds to the Tunnel Type field
        in the PMSI Tunnel attribute advertised/received
        in a PMSI auto-discovery (A-D) route.
       "
   REFERENCE
       "RFC 6514, Section 5"
   ::= { l2L3VpnMcastPmsiTunnelAttributeEntry 1 }

l2L3VpnMcastPmsiTunnelAttributeId OBJECT-TYPE
   SYNTAX        L2L3VpnMcastProviderTunnelId
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This object represents the Tunnel Identifier field, which
        uniquely identifies a P-tunnel, in the PMSI Tunnel attribute
        of the P-tunnel corresponding to this entry.

        The size of the identifier depends on the address family
        (IPv4 or IPv6) and the value of the corresponding
        l2L3VpnMcastPmsiTunnelAttributeType object, i.e., the type of
        tunneling technology used to establish the P-tunnel.
       "
   REFERENCE
       "RFC 6514, Section 5"
   ::= { l2L3VpnMcastPmsiTunnelAttributeEntry 2 }

l2L3VpnMCastPmsiTunnelLeafInfoRequired OBJECT-TYPE
   SYNTAX        INTEGER {
                     false        (0),
                     true         (1),
                     notAvailable (2)
                 }
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "When the value of this object is set to 1 (true),
        it indicates that the PE that originated the
        PMSI Tunnel attribute of the P-tunnel corresponding
        to this entry requests receivers to originate
        a new Leaf A-D route.

        A value of zero (false) indicates that there is no such
        request.

        When the P-tunnel does not have a corresponding PMSI
        Tunnel attribute, the value of this object will be
        2 (notAvailable).

        In the case of multicast in MPLS/BGP IP VPNs,
        this object represents the 'Leaf Information Required flag'
        (RFC 6514) in the Flags field in the PMSI Tunnel attribute
        of the P-tunnel corresponding to this entry.
       "
   REFERENCE
       "RFC 6514, Section 5
       "
   ::= { l2L3VpnMcastPmsiTunnelAttributeEntry 3 }

l2L3VpnMcastPmsiTunnelAttributeMplsLabel OBJECT-TYPE
   SYNTAX        MplsLabel
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object represents the MPLS Label in the PMSI Tunnel
        attribute of the P-tunnel corresponding to this entry.

        When BGP-based PMSI signaling is used, the PMSI Tunnel
        attribute of the P-tunnel will be advertised/received
        in a PMSI A-D route.  The value of
        this object corresponds to the MPLS Label in the attribute.

        When the P-tunnel does not have a PMSI tunnel
        attribute, the value of this object will be zero.
       "
   REFERENCE
       "RFC 6514, Section 5"
   ::= { l2L3VpnMcastPmsiTunnelAttributeEntry 4 }

l2L3VpnMcastPmsiTunnelPointer OBJECT-TYPE
   SYNTAX        RowPointer
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "Details of a P-tunnel identified by
        l2L3VpnMcastPmsiTunnelAttributeId may be present
        in some other table, e.g.,
        mplsTunnelTable (RFC 3812).  This object specifies
        the pointer to the row that pertains to the entry
        in the table.

        If no such entry exists, the value of this object
        will be zeroDotZero.
       "
   REFERENCE
       "RFC 3812, Sections 6.1 and 11"
   DEFVAL        { zeroDotZero }
   ::= { l2L3VpnMcastPmsiTunnelAttributeEntry 5 }

l2L3VpnMcastPmsiTunnelIf OBJECT-TYPE
   SYNTAX        RowPointer
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "If the P-tunnel identified by
        l2L3VpnMcastPmsiTunnelAttributeId has a corresponding
        entry in ifXTable (RFC 2863), this object will
        point to the row in ifXTable that pertains to the entry.
        Otherwise, the value of this object will be zeroDotZero.
       "
   REFERENCE
       "RFC 2863, Section 6"
   DEFVAL        { zeroDotZero }
   ::= { l2L3VpnMcastPmsiTunnelAttributeEntry 6 }

-- Conformance Information

l2L3VpnMcastCompliances OBJECT IDENTIFIER
                        ::= { l2L3VpnMcastConformance 1 }
l2L3VpnMcastGroups      OBJECT IDENTIFIER
                        ::= { l2L3VpnMcastConformance 2 }

-- Compliance Statements

l2L3VpnMcastCoreCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
       "The core compliance statement for SNMP entities
        that implement the L2L3-VPN-MULTICAST-MIB module.
       "
    MODULE  -- this module

    MANDATORY-GROUPS {
         l2L3VpnMcastCoreGroup
    }
    ::= { l2L3VpnMcastCompliances 1 }

l2L3VpnMcastFullCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
       "The full compliance statement for SNMP entities
        that implement the L2L3-VPN-MULTICAST-MIB module.
       "
    MODULE  -- this module

    MANDATORY-GROUPS {
         l2L3VpnMcastCoreGroup,
         l2L3VpnMcastOptionalGroup
    }
    ::= { l2L3VpnMcastCompliances 2 }

-- Units of Conformance

l2L3VpnMcastCoreGroup    OBJECT-GROUP
    OBJECTS {
        l2L3VpnMCastPmsiTunnelLeafInfoRequired,
        l2L3VpnMcastPmsiTunnelAttributeMplsLabel
    }
    STATUS      current
    DESCRIPTION
        "Support of these objects is required.
        "
    ::= { l2L3VpnMcastGroups 1 }

l2L3VpnMcastOptionalGroup    OBJECT-GROUP
    OBJECTS {
        l2L3VpnMcastPmsiTunnelPointer,
        l2L3VpnMcastPmsiTunnelIf
    }
    STATUS      current
    DESCRIPTION
        "Support of these objects is optional.
        "
    ::= { l2L3VpnMcastGroups 2 }

END
