-- *------------------------------------------------
-- * Firebrick 2900 BGP MIB
-- *
-- * April 2020, C Malton
-- *
-- * Copyright (c) 2020 by Andrews & Arnold
-- * 
-- * See the Firebrick Manuals for more information
-- *------------------------------------------------

FIREBRICK-BGP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    enterprises,
    Integer32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    InetAddressType,
    InetAddress
        FROM INET-ADDRESS-MIB
    firebrickNewStyle
        FROM FIREBRICK-MIB
        ;

fbBgpMib MODULE-IDENTITY
    LAST-UPDATED "202004060000Z"
    ORGANIZATION "Andrews & Arnold Limited"
    CONTACT-INFO
        "Andrews & Arnold
        Unit 1&2, Enterprise Court
        Bracknell, Berkshire, RG12 1QS
        United Kingdom

        Tel: +44 3333 400 999
        Email: support@aa.net.uk"
    DESCRIPTION
        "This is a MIB Module for monitoring the Firebrick-specific structures
        for general system features."
    REVISION "202004060000Z"
    DESCRIPTION "Initial version of this MIB module"
    ::= { firebrickNewStyle 179 }

fbBgpPeerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF FbBgpPeerEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The list of BGP peers for this Firebrick"
    ::= { fbBgpMib 1 }

fbBgpPeerEntry OBJECT-TYPE
    SYNTAX FbBgpPeerEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry in the BGP Peer Names Table"
    INDEX { fbBgpPeerAddressType, fbBgpPeerAddress }
    ::= { fbBgpPeerTable 1 }

FbBgpPeerEntry ::= SEQUENCE {
    fbBgpPeerAddressType            InetAddressType,
    fbBgpPeerAddress                InetAddress,
    fbBgpPeerName                   DisplayString,
    fbBgpPeerState                  Integer32,
    fbBgpPeerRemoteAS               Integer32,
    fbBgpPeerReceivedIpv4Prefixes   Integer32,
    fbBgpPeerSecondsSinceLastChange Integer32,
    fbBgpPeerReceivedIpv6Prefixes   Integer32
}

fbBgpPeerAddressType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The address type of fbBgpPeerAddressAddr."
    ::= { fbBgpPeerEntry 1 }

fbBgpPeerAddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The internet address for the peer.  The type of the address is 
         determined by the value of the fbBgpPeerAddressType object."
    ::= { fbBgpPeerEntry 2 }

fbBgpPeerName OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The name of the BGP Peer"
    ::= { fbBgpPeerEntry 3 }

fbBgpPeerState OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The current state of the BGP Peer"
    ::= { fbBgpPeerEntry 4 }

fbBgpPeerRemoteAS OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The remote AS of the BGP Peer"
    ::= { fbBgpPeerEntry 5 }

fbBgpPeerReceivedIpv4Prefixes OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of IPv4 prefixes received from the BGP Peer"
    ::= { fbBgpPeerEntry 6 }

fbBgpPeerSecondsSinceLastChange OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of seconds since the last state change for the BGP Peer"
    ::= { fbBgpPeerEntry 7 }

fbBgpPeerReceivedIpv6Prefixes OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of IPv6 prefixes received from the BGP Peer"
    ::= { fbBgpPeerEntry 8 }

fbBgpPeerExported OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of prefixes exported to the BGP Peer"
    ::= { fbBgpPeerEntry 9 }

fbBgpPeerLocalAddressType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The address type of fbBgpPeerLocalAddress."
    ::= { fbBgpPeerEntry 10 }

fbBgpPeerLocalAddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The local internet address used for this peer.  The type of the
         address is determined by the value of the fbBgpPeerAddressType
         object."
    ::= { fbBgpPeerEntry 11 }

fbBgpPeerLocalAS OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The local AS number for the BGP Peer"
    ::= { fbBgpPeerEntry 12 }

fbBgpPeerTableId OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The routing table number for this BGP Peer."
    ::= { fbBgpPeerEntry 13 }

END
