ACCEL-PPP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Gauge32
    NOTIFICATION-TYPE                       FROM SNMPv2-SMI
    netSnmp                                 FROM NET-SNMP-MIB
    InetAddressIPv4                         FROM INET-ADDRESS-MIB
    IANAtunnelType                          FROM IANAifType-MIB
;

accelPPP MODULE-IDENTITY
    LAST-UPDATED "201108180000Z"
    ORGANIZATION "accel-ppp.sourceforge.net"
    CONTACT-INFO
          "email:    xeb@mail.ru"
    DESCRIPTION
        "MIB objects for accel-ppp"
    REVISION     "201108180000Z"
    DESCRIPTION
        "First draft"
    ::= { netSnmp 100 }

--
-- top level structure
--
accelPPPStat      OBJECT IDENTIFIER ::= { accelPPP 1 }
accelPPPSessions  OBJECT IDENTIFIER ::= { accelPPP 2 }
accelPPPAdmin     OBJECT IDENTIFIER ::= { accelPPP 3 }
--accelPPPNotifications OBJECT IDENTIFIER ::= { accelPPP 4 }

statCore          OBJECT IDENTIFIER ::= { accelPPPStat 1 }
statPPP           OBJECT IDENTIFIER ::= { accelPPPStat 2 }
statPPTP          OBJECT IDENTIFIER ::= { accelPPPStat 3 }
statL2TP          OBJECT IDENTIFIER ::= { accelPPPStat 4 }
statPPPOE         OBJECT IDENTIFIER ::= { accelPPPStat 5 }
--statRadius        OBJECT IDENTIFIER ::= { accelPPPStat 6 }


statCoreUpTime OBJECT-TYPE
    SYNTAX      Gauge32
                UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "accel-ppp uptime"
    ::= { statCore 1 }

statCoreCPU OBJECT-TYPE
    SYNTAX      INTEGER (0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "cpu utilization"
    ::= { statCore 2 }

statCoreMemRss OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "memory rss size"
    ::= { statCore 3 }


--
-- PPP stats
--

statPPPStarting OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of sessions which are
                        in starting phase"
    ::= { statPPP 1 }

statPPPActive OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of active sessions"
    ::= { statPPP 2 }

statPPPFinishing OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of active which are
                        in finishing phase"
    ::= { statPPP 3 }

--
-- PPTP stats
--

statPPTPStarting OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of connections which are
                        in starting phase"
    ::= { statPPTP 1 }

statPPTPActive OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of active connections"
    ::= { statPPTP 2 }

--
-- L2TP stats
--

statL2TPStarting OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of connections which are
                        in starting phase"
    ::= { statL2TP 1 }

statL2TPActive OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of active connections"
    ::= { statL2TP 2 }

--
-- PPPOE stats
--

statPPPOEStarting OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of connections which are
                        in starting phase"
    ::= { statPPPOE 1 }

statPPPOEActive OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "count of active connections"
    ::= { statPPPOE 2 }


--
-- PPP session table
--

sessionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF sessionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                        "this table contains information about
                        connected sessions"
    ::= { accelPPPSessions 1 }

sessionEntry OBJECT-TYPE
    SYNTAX      sessionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                        "A row describing a given session"
    INDEX   { sesSID }
    ::= { sessionTable 1 }

sessionEntry ::= SEQUENCE {
        sesSID          OCTET STRING,
        sesIfName       OCTET STRING,
        sesUsername     OCTET STRING,
        sesIP           InetAddress,
        sesType         IANAtunnelType,
        sesState        INTEGER,
        sesUptime       TimeTicks,
        sesCallingSID   OCTET STRING,
        sesCalledSID    OCTET STRING
}

sesSID OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "Acct-Session-ID"
    ::= { sessionEntry 1 }

sesIfName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "name of ppp interface"
    ::= { sessionEntry 2 }

sesUsername OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "session user name"
    ::= { sessionEntry 3 }

sesIP OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "assigned IP address"
    ::= { sessionEntry 4 }

sesType OBJECT-TYPE
    SYNTAX      INTEGER {
                                                                        pptp(1),
                                                                        l2tp(2),
                                                                        pppoe(3)
                            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "name of ppp interface"
    ::= { sessionEntry 5 }

sesState OBJECT-TYPE
    SYNTAX      INTEGER {
                                    starting(1),
                                                                        active(2),
                                                                        finishing(3)
                            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "state of session"
    ::= { sessionEntry 6 }

sesUptime OBJECT-TYPE
    SYNTAX      Gauge32
                UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "uptime of session"
    ::= { sessionEntry 7 }

sesCallingSID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "Calling-Station-ID"
    ::= { sessionEntry 8 }

sesCalledSID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                        "Called-Station-ID"
    ::= { sessionEntry 9 }

--
-- Administration
--

terminate        OBJECT IDENTIFIER ::= { accelPPPAdmin 1 }

termBySID OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
                        "Terminate session softly identified by Acct-Session-ID"
    ::= { terminate 1 }

termByIfName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
                        "Terminate session softly identified by interface name"
    ::= { terminate 2 }

termByIP OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
                        "Terminate session softly identified by Framed-IP-Address"
    ::= { terminate 3 }

termByUsername OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
                        "Terminate session softly identified by username"
    ::= { terminate 4 }


shutdown OBJECT-TYPE
    SYNTAX      INTEGER {
                  normal(0),
                                                                        soft(1),
                                                                        hard(2),
                                                                        cancel(3)
                            }
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
                        "shutdown accel-ppp"
    ::= { accelPPPAdmin 2 }

cli OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
                        "execute cli command"
    ::= { accelPPPAdmin 3 }

END
