-- *****************************************************************************
-- Copyright (C) 2006-2012 Aricent Group . All Rights Reserved

-- $Id: fspia.mib,v 1.2 2020/02/03 08:01:54 siva Exp $

-- Aricent PPPoE Intermediate Agent[PIA] Proprietary MIB Definition
-- This MIB contains scalars and tables used to configure a switch running
-- Aricent PPPoE Intermediate Agent Snooping.

-- *****************************************************************************

PIA-SNOOPING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32, Counter32
        FROM SNMPv2-SMI
    RowStatus, MacAddress, TruthValue
        FROM SNMPv2-TC
    InterfaceIndex
        FROM IF-MIB;

fspiasnp MODULE-IDENTITY
    LAST-UPDATED  "200711010000Z"
    ORGANIZATION  "ARICENT COMMUNICATIONS SOFTWARE"
    CONTACT-INFO
        "ARICENT COMMUNICATIONS SOFTWARE
         3460 Hillview Avenue,
         Palo Alto, CA 94304-1388, USA,
         Phone : +1-650-391-1088
         E-mail:support@aricent.com"
    DESCRIPTION
        "The enterprise ID 29601 belongs to Aricent."
    REVISION  "200711010000Z"
    DESCRIPTION
        "This is the proprietary MIB module for PPPoE Intermediate Agent[PIA]
         Snooping."
::= { enterprises aricent-communication-holding-ltd(29601) iss(2) 9 }

-- *****************************************************************************
--                         Groups in the MIB
-- *****************************************************************************

fsPIASnpSystem  OBJECT IDENTIFIER ::= { fspiasnp 1 }
fsPIASnpVlan    OBJECT IDENTIFIER ::= { fspiasnp 2 }

-- *****************************************************************************
--                               SCALARS
-- *****************************************************************************

fsPIASnoopingSystemControl OBJECT-TYPE
    SYNTAX      INTEGER { start(1), shutdown(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to start or shutdown PPPoEIA Snooping feature in
         the system.

         When this object is set as 'start',resources required by PPPoE IA
         module are allocated & PPPoE IA feature starts running in the system.

         When this object is shutdown, all resources used by PPPoE IA module
         will be released to the system."
    DEFVAL  { 1 }
::= { fsPIASnpSystem 1 }

fsPIASnoopingAdminStatus OBJECT-TYPE
    SYNTAX      INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable or disable PPPoEIA Snooping globally in
         the system.

         When this object is set as 'enabled', the PPPoEIA Snooping Module will
         start the protocol operation. PPPoEIA Snooping should be enabled on per
         VLAN basis also for the feature to function.

         When this object is set as 'disabled', the PPPoEIA Snooping Module will
         stop the protocol operation."
    DEFVAL  { 2 }
::= { fsPIASnpSystem 2 }

fsPIATraceOption OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable tracing in the PPPoE Intermediate Agent
         Module. A 32 bit integer is used to store the tracing level in the
         specified module.

         Different Tracing Levels -
         BIT 1 - Function Entry trace.
         BIT 2 - Function Exit trace.
         BIT 3 - Debug trace.
         BIT 4 - Failure Dump.
         BIT 5 - Trace the packet flow inside PPPoE IA module."
    DEFVAL  { 8 }
::= { fsPIASnpSystem  3 }

fsPIASessionTimeOut OBJECT-TYPE
    SYNTAX      Integer32(0..600)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates the PPPoE session timeout in seconds and is used
         to clear the PPPoE IA session table entries. If the value is set to
         zero, session timeout is disabled. Entries will get timed out in a
         period of 'T' to '2T' where T is the session timeout value configured.
         The reconfigured value of the timer will take effect only at the next
         restart of the timer"
    DEFVAL  { 300 }
    ::= { fsPIASnpSystem  4 }

-- *****************************************************************************
--                               GROUPS
-- *****************************************************************************

-- **************************** Vlan Entry *************************************

fsPIASnpVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsPIASnpVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains the VLAN specific
         informations."
::= { fsPIASnpVlan 1 }

fsPIASnpVlanEntry OBJECT-TYPE
    SYNTAX      FsPIASnpVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This object specifies each entry that contains the information whether 
        PPPoE snooping is enabled/disabled on the given Vlan."
    INDEX { fsPIASnpContextId, fsPIASnpVlanId }
::= { fsPIASnpVlanTable 1 }

FsPIASnpVlanEntry ::= SEQUENCE {
    fsPIASnpContextId                     Integer32,
    fsPIASnpVlanId                        Integer32,
    fsPIASnpVlanSnpStatus                 INTEGER,
    fsPIASnpVlanStatsRxPADI               Counter32,
    fsPIASnpVlanStatsRxPADO               Counter32,
    fsPIASnpVlanStatsRxPADR               Counter32,
    fsPIASnpVlanStatsRxPADS               Counter32,
    fsPIASnpVlanStatsRxPADT               Counter32,
    fsPIASnpVlanStatsTxPkt                Counter32,
    fsPIASnpVlanStatsTxGenError           Counter32,
    fsPIASnpVlanStatsDroppedResUntrusted  Counter32,
    fsPIASnpVlanStatsDroppedReqTrusted    Counter32,
    fsPIASnpVlanStatsDroppedPkt           Counter32,
    fsPIASnpVlanStatsClear                TruthValue,
    fsPIASnpRowStatus                     RowStatus
}

fsPIASnpContextId OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This object specifies switch instance/context to which this table-entry
        is associated."
::= { fsPIASnpVlanEntry  1 }

fsPIASnpVlanId OBJECT-TYPE
    SYNTAX      Integer32 (1..4094)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies Vlan ID of the VLAN to which this table-entry is
         associated."
::= { fsPIASnpVlanEntry  2 }

fsPIASnpVlanSnpStatus OBJECT-TYPE
    SYNTAX      INTEGER { enabled (1), disabled (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This objectis used to enable or disable PPPoE-IA Snooping in the given
         VLAN."
    DEFVAL  { 2 }
::= { fsPIASnpVlanEntry 3 }

fsPIASnpVlanStatsRxPADI OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADI packet recieved on this VLAN."
::= { fsPIASnpVlanEntry 4 }

fsPIASnpVlanStatsRxPADO OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADO packet recieved on this VLAN."
::= { fsPIASnpVlanEntry 5}

fsPIASnpVlanStatsRxPADR OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADR packet recieved on this VLAN."
::= { fsPIASnpVlanEntry 6 }

fsPIASnpVlanStatsRxPADS OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADS packet recieved on this VLAN."
::= { fsPIASnpVlanEntry 7 }

fsPIASnpVlanStatsRxPADT OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADT packet recieved on this VLAN."
::= { fsPIASnpVlanEntry 8}

fsPIASnpVlanStatsTxPkt OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of packet transmitted on this VLAN."
::= { fsPIASnpVlanEntry 9 }

fsPIASnpVlanStatsTxGenError OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of generic error packets transmitted
         on this VLAN"
::= { fsPIASnpVlanEntry 10 }

fsPIASnpVlanStatsDroppedResUntrusted OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADS/PADO packets dropped which is
         received on untrusted port"
::= { fsPIASnpVlanEntry 11 }

fsPIASnpVlanStatsDroppedReqTrusted OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of PADI/PADR packets dropped which is
         received on trusted port"
::= { fsPIASnpVlanEntry 12 }

fsPIASnpVlanStatsDroppedPkt OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of packets discarded in this VLAN."
::= { fsPIASnpVlanEntry 13 }

fsPIASnpVlanStatsClear OBJECT-TYPE
    SYNTAX      TruthValue (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object clear the statistics."
::= { fsPIASnpVlanEntry 14 }

fsPIASnpRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies row-status of PPPOE Intermediate agent entry."
::= {  fsPIASnpVlanEntry 15 }

-- *************************** Session Table ***********************************

fsPIASnpSessionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsPIASnpSessionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains the session informations for the PPPoE IA feature."
::= { fsPIASnpSystem 5 }

fsPIASnpSessionEntry OBJECT-TYPE
    SYNTAX      FsPIASnpSessionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies each entry that contains the PPPOE session
         information. An entry in this table gets created when PADI packet is
         received at the switch on untrusted port. Entries in this table get
         aged out on fsPIASessionTimeOut."
    INDEX { fsPIASnpSessionVlanId, fsPIASnpSessionMacAddress }
::= { fsPIASnpSessionTable 1 }

FsPIASnpSessionEntry ::= SEQUENCE {
    fsPIASnpSessionVlanId      Integer32,
    fsPIASnpSessionMacAddress  MacAddress,
    fsPIASnpSessionPortId      InterfaceIndex,
    fsPIASnpSessionId          Integer32
}

fsPIASnpSessionVlanId OBJECT-TYPE
    SYNTAX      Integer32 (1..4095)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies the VLAN identifier associated to this entry."
::= { fsPIASnpSessionEntry  1 }

fsPIASnpSessionMacAddress  OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the client MAC address associated with the PPPOE
         session"
::= { fsPIASnpSessionEntry 2 }


fsPIASnpSessionPortId  OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the interface index of the client associated with
         the PPPOE session"
::= { fsPIASnpSessionEntry 3 }

fsPIASnpSessionId  OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the session Id associated with the PPPOE session.
         Initially the session entry will be created with session Id as 0. This
         object will be updated when session id is allocated for this PPPoE
         session by the server through PADS packet"
::= { fsPIASnpSessionEntry 4 }

END
