ELTEX-MES-BRIDGE-SECURITY DEFINITIONS ::= BEGIN

-- Version:    2.2
-- Date:       20-Oct-2021

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Unsigned32, IpAddress, Counter32,
    NOTIFICATION-TYPE                               FROM SNMPv2-SMI
    InterfaceIndex, ifIndex                         FROM IF-MIB
    RowStatus, TEXTUAL-CONVENTION, MacAddress,
    DisplayString, TruthValue                       FROM SNMPv2-TC
    eltMes, eltMesBridgeSecurity                    FROM ELTEX-MES
    rndErrorDesc                                    FROM RADLAN-DEVICEPARAMS-MIB
    rlIpSourceGuardPortEntry,
    rlIpDhcpOpt82SuboptionConfigEntry               FROM RADLAN-BRIDGE-SECURITY-A
    TruthValue                                      FROM SNMPv2-TC
    VlanId                                          FROM Q-BRIDGE-MIB
    VlanList1, VlanList2, VlanList3, VlanList4      FROM RADLAN-BRIDGEMIBOBJECTS-MIB;



eltMesIpDhcpSnoop              OBJECT IDENTIFIER ::= { eltMesBridgeSecurity 1 }

eltMesPppoeIa                  OBJECT IDENTIFIER ::= { eltMesBridgeSecurity 6 }

eltMesIpArpInspect             OBJECT IDENTIFIER ::= { eltMesBridgeSecurity 7 }

eltMesIpSourceGuard            OBJECT IDENTIFIER ::= { eltMesBridgeSecurity 8 }

eltMesIpDhcpSnoopNotif         OBJECT IDENTIFIER ::= { eltMesIpDhcpSnoop 0}

--
-- Common types
--

EltCircuitIdType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "Curcuit-ID suboption of Option 82."
   SYNTAX DisplayString(SIZE(1..63))

EltRemoteIdType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "Remote-ID suboption of Option 82."
   SYNTAX DisplayString(SIZE(1..63))

EltOpt82CombinationType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Specifies circuit id suboptions template for option 82."
    SYNTAX      INTEGER {
                  sp(1),
                  sv(2),
                  pv(3),
                  spv(4),
                  bin(5),
                  user-defined(6)
                }

EltOpt82DelimiterType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Specifies circuit id delimiter suboptions templates for option 82."
    SYNTAX      INTEGER {
                  tr101(1),
                  dot(2),
                  comma(3),
                  semicolon(4),
                  hash(5),
                  slash(6),
                  space(7)
                }

EltIpDhcpOpt82SuboptionInsertType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether the behavior is to permit or deny."
    SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                }

EltOpt82PortInsertionType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Specifies per IfIndex a DHCP option 82 insertion enable state."
    SYNTAX      INTEGER {
                  global(1),
                  enable(2),
                  disable(3)
                }

EltDHCPSnoopRateLimitType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "DHCP Snooping limit rate type. 0 means rate limit is disabled."
   SYNTAX INTEGER(0..2048)

EltDHCPSnoopClientLimitType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "DHCP Snooping limit client type. 0 means client limit is disabled."
   SYNTAX INTEGER(0..2048)

--
-- DHCP Option 82
--

--
-- DHCP option 82 Augment.
--
-- This MIB for configuring the special templates of option 82.
--

eltIpDhcpOpt82Table OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIpDhcpOpt82Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table for configure special temlates of option 82."
    ::= { eltMesIpDhcpSnoop 1 }

eltIpDhcpOpt82Entry OBJECT-TYPE
    SYNTAX      EltIpDhcpOpt82Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry configures option 82 for protocol DHCP."
    AUGMENTS { rlIpDhcpOpt82SuboptionConfigEntry }
    ::= { eltIpDhcpOpt82Table 1 }

EltIpDhcpOpt82Entry ::= SEQUENCE {
    eltIpDhcpOpt82AccessNodeIdentifier                DisplayString,
    eltIpDhcpOpt82CircuitIdSuboptionsCombination      EltOpt82CombinationType,
    eltIpDhcpOpt82CircuitIdSuboptionsDelimeter        EltOpt82DelimiterType,
    eltIpDhcpOpt82SuboptionInsert                     EltIpDhcpOpt82SuboptionInsertType,
    eltIpDhcpOpt82SuboptionVpnVss                     TruthValue,
    eltIpDhcpOpt82SuboptionVpnServerIdOverride        TruthValue,
    eltIpDhcpOpt82SuboptionVpnLinkSelection           TruthValue
}

eltIpDhcpOpt82AccessNodeIdentifier OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..48))
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Specifies an access node identifier used by PPPoE IA. This value
                  is only used if eltIpDhcpOpt82CircuitIdSuboptionsCombination is
                  not 'user defined' or 'bin'."
    DEFVAL       { "" }
    ::= { eltIpDhcpOpt82Entry 1 }

eltIpDhcpOpt82CircuitIdSuboptionsCombination OBJECT-TYPE
    SYNTAX       EltOpt82CombinationType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Specifies circuit id suboption that will be inserted to a client packet.
                  If eltIpDhcpOpt82CircuitIdSuboptionsCombination is set to 'user-defined',
                  the circuit id configuration is set using the
                  rlIpDhcpOpt82SuboptionConfigCircuitIdFormat field."
    DEFVAL       { spv }
    ::= { eltIpDhcpOpt82Entry 2 }

eltIpDhcpOpt82CircuitIdSuboptionsDelimeter OBJECT-TYPE
    SYNTAX       EltOpt82DelimiterType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Specifies a char symbol that will delimit circuit id suboption.
                  This value is only used if eltIpDhcpOpt82CircuitIdSuboptionsCombination is
                  not 'user defined' or 'bin'."
    DEFVAL       { tr101 }
    ::= { eltIpDhcpOpt82Entry 3 }

eltIpDhcpOpt82SuboptionInsert OBJECT-TYPE
    SYNTAX       EltIpDhcpOpt82SuboptionInsertType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Enable/disable adding subtypes for circuit id and remote id."
    DEFVAL       { disable }
    ::= { eltIpDhcpOpt82Entry 4 }

eltIpDhcpOpt82SuboptionVpnVss OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "If set to 'true', suboption 151 (Virtual Subnet Selection RFC 6607) 
                  will be added to option 82."
    DEFVAL       { false }
    ::= { eltIpDhcpOpt82Entry 5 }

eltIpDhcpOpt82SuboptionVpnServerIdOverride OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "If set to 'true', suboption 11 (Server ID Override RFC 5107) 
                  will be added to option 82 and the DHCP relay agent will overwrite 
                  the server IP address with the client VLAN IP address."
    DEFVAL       { false }
    ::= { eltIpDhcpOpt82Entry 6 }

eltIpDhcpOpt82SuboptionVpnLinkSelection OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "If set to 'true', suboption 5 (Link Selection RFC 3527) will be added to option 82."
    DEFVAL       { false }
    ::= { eltIpDhcpOpt82Entry 7 }

--
--  eltIpDhcpOpt82PortTable
--

eltIpDhcpOpt82PortTable  OBJECT-TYPE
    SYNTAX  SEQUENCE OF EltIpDhcpOpt82PortEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "A DHCP interface configuration table."
    ::= { eltMesIpDhcpSnoop 2 }

eltIpDhcpOpt82PortEntry OBJECT-TYPE
   SYNTAX       EltIpDhcpOpt82PortEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION  "A DHCP interface configuration entry."
   INDEX        {ifIndex}
::= { eltIpDhcpOpt82PortTable 1 }

EltIpDhcpOpt82PortEntry ::= SEQUENCE {
   eltIpDhcpOpt82PortRowStatus                     RowStatus,
   eltIpDhcpOpt82PortInsertion                     EltOpt82PortInsertionType
}

eltIpDhcpOpt82PortRowStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "Session row status."
    ::= { eltIpDhcpOpt82PortEntry 2 }

eltIpDhcpOpt82PortInsertion OBJECT-TYPE
    SYNTAX       EltOpt82PortInsertionType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Specifies per IfIndex a DHCP option 82 insertion enable state."
    DEFVAL { global }
    ::= { eltIpDhcpOpt82PortEntry 3 }

--
-- DHCP Snooping port configuration table
--

eltIpDhcpSnoopPortTable  OBJECT-TYPE
    SYNTAX  SEQUENCE OF EltIpDhcpSnoopPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION      "A DHCP Snooping Client Limiting configuration table on L2 interfaces."
    ::= { eltMesIpDhcpSnoop 20 }

eltIpDhcpSnoopPortEntry OBJECT-TYPE
   SYNTAX      EltIpDhcpSnoopPortEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION        "A DHCP interface configuration entry."
   INDEX {ifIndex}
::= { eltIpDhcpSnoopPortTable 1 }

EltIpDhcpSnoopPortEntry ::= SEQUENCE {
   eltIpDhcpSnoopPortRateLimit                          EltDHCPSnoopRateLimitType,
   eltIpDhcpSnoopPortRowStatus                          RowStatus,
   eltIpDhcpSnoopPortClientsLimit                       EltDHCPSnoopClientLimitType
}


eltIpDhcpSnoopPortRateLimit OBJECT-TYPE
    SYNTAX      EltDHCPSnoopRateLimitType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A DHCP Snooping Limit Rate."
    DEFVAL{ 0 }
    ::= { eltIpDhcpSnoopPortEntry 2 }

eltIpDhcpSnoopPortRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session row status."
    ::= { eltIpDhcpSnoopPortEntry 3 }

eltIpDhcpSnoopPortClientsLimit OBJECT-TYPE
    SYNTAX      EltDHCPSnoopClientLimitType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A DHCP Snooping Limit of number of clients."
    DEFVAL{ 0 }
    ::= { eltIpDhcpSnoopPortEntry 4 }

--
-- DHCP Snooping enable trap scalars
--

eltIpDhcpSnoopRateLimitNotificationsEnabled OBJECT-TYPE
     SYNTAX          TruthValue
     MAX-ACCESS      read-write
     STATUS          current
     DESCRIPTION
         "Specifies whether eltIpDhcpSnoopRateLimitTrap notifications
          will or will not be sent when interface reached the rate
          limit of DHCP packets.

          Setting this object to false(2) will not send the
          eltIpDhcpSnoopRateLimitTrap notifications.

          Setting this object to true(1) will send the
          eltIpDhcpSnoopRateLimitTrap notifications."
    DEFVAL { true }
    ::= { eltMesIpDhcpSnoop 22 }

eltIpDhcpSnoopClientsLimitNotificationsEnabled OBJECT-TYPE
     SYNTAX          TruthValue
     MAX-ACCESS      read-write
     STATUS          current
     DESCRIPTION
         "Specifies whether eltIpDhcpSnoopClientLimitTrap notifications
          will or will not be sent when number of clients reached
          configured limit on interface.

          Setting this object to false(2) will not send the
          eltIpDhcpSnoopClientLimitTrap notifications.

          Setting this object to true(1) will send the
          eltIpDhcpSnoopClientLimitTrap notifications."
    DEFVAL { true }
    ::= { eltMesIpDhcpSnoop 23 }

--
-- Notifications
--

eltIpDhcpSnoopRateLimitTrap NOTIFICATION-TYPE
    OBJECTS {
        ifIndex,
        eltIpDhcpSnoopPortRateLimit
    }
    STATUS current
    DESCRIPTION
        "A eltIpDhcpSnoopRateLimitTrap is generated when interface
         reached the rate limit of DHCP packets."
    ::= { eltMesIpDhcpSnoopNotif 1 }

eltIpDhcpSnoopClientLimitTrap NOTIFICATION-TYPE
    OBJECTS {
        ifIndex,
        eltIpDhcpSnoopPortClientsLimit,
        rndErrorDesc
    }
    STATUS current
    DESCRIPTION
        "A eltIpDhcpSnoopClientLimitTrap is generated when number of
         clients reached configured limit on interface."
    ::= { eltMesIpDhcpSnoopNotif 2 }

--
-- ARP Inspection ports configurations table
--

eltIpArpInspectPortConfigTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF EltIpArpInspectPortConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table contain the configuration of Dynamic ARP 
        Inspection at each interface capable of this feature." 
    ::= { eltMesIpArpInspect 4 }
 
eltIpArpInspectPortConfigEntry OBJECT-TYPE
    SYNTAX       EltIpArpInspectPortConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A row instance contains the configuration of Dynamic ARP 
        Inspection at each interface capable of this feature." 
    INDEX { ifIndex }
    ::= { eltIpArpInspectPortConfigTable 1 }

EltIpArpInspectPortConfigEntry ::= SEQUENCE {  
    eltIpArpInspectPortRateLimit INTEGER 
}
 
eltIpArpInspectPortRateLimit OBJECT-TYPE
    SYNTAX      INTEGER (0..2048)
    UNITS       "packet per second"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates rate limit value for Dynamic ARP
         Inspection purpose. If the incoming rate of ARP packets
         exceeds the value of this object, interface will be put
         into errdisable state. If the field has the value of 0, 
         no limiting is performed"
    DEFVAL { 0 }
    ::= { eltIpArpInspectPortConfigEntry 1 }

--
--  eltMesIpSourceGuard
--

eltIpSourceGuardPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIpSourceGuardPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "IP Source Guard ports entry "
    ::= { eltMesIpSourceGuard 1 }

eltIpSourceGuardPortEntry OBJECT-TYPE
    SYNTAX      EltIpSourceGuardPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Source Guard entry "
    AUGMENTS   { rlIpSourceGuardPortEntry }
    ::= { eltIpSourceGuardPortTable 1 }

EltIpSourceGuardPortEntry ::= SEQUENCE {
    eltIpSourceGuardPortVlanList1to1024     VlanList1,
    eltIpSourceGuardPortVlanList1025to2048  VlanList2,
    eltIpSourceGuardPortVlanList2049to3072  VlanList3,
    eltIpSourceGuardPortVlanList3073to4094  VlanList4,
    eltIpSourceGuardPortMacCheckEnable      TruthValue
}


eltIpSourceGuardPortVlanList1to1024 OBJECT-TYPE
   SYNTAX      VlanList1
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
     "The Ip Source Guard port vlan list 1. Default value is {0}"
   DEFVAL {'00'H}
   ::= { eltIpSourceGuardPortEntry 1 }

eltIpSourceGuardPortVlanList1025to2048 OBJECT-TYPE
   SYNTAX      VlanList2
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
     "The Ip Source Guard port vlan list 2. Default value is {0}"
   DEFVAL {'00'H}
   ::= { eltIpSourceGuardPortEntry 2 }

eltIpSourceGuardPortVlanList2049to3072 OBJECT-TYPE
   SYNTAX      VlanList3
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
     "The Ip Source Guard port vlan list 3. Default value is {0}"
   DEFVAL {'00'H}
   ::= { eltIpSourceGuardPortEntry 3 }

eltIpSourceGuardPortVlanList3073to4094 OBJECT-TYPE
   SYNTAX      VlanList4
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
     "The Ip Source Guard port vlan list 4. Default value is {0}"
   DEFVAL {'00'H}
   ::= { eltIpSourceGuardPortEntry 4 }

eltIpSourceGuardPortMacCheckEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
       "IP Source Guard ports mac-check enable"
    ::= { eltIpSourceGuardPortEntry 5 }

--
-- PPPoE Intermediate Agent
--

eltPppoeIaEnable OBJECT-TYPE
    SYNTAX INTEGER{
       enable(1),
       disable(2)
    }
   MAX-ACCESS read-write
   STATUS current
   DESCRIPTION       "Specifies a system PPPoE Intermediate Agent enable state."
   ::= { eltMesPppoeIa 1 }

eltPppoeIaAccessNodeIdentifier OBJECT-TYPE
   SYNTAX DisplayString(SIZE(1..48))
   MAX-ACCESS read-write
   STATUS current
   DESCRIPTION       "Specifies an access node identifier used by PPPoE IA."
   ::= { eltMesPppoeIa 2 }

eltPppoeIaCircuitIdSuboptionsCombination OBJECT-TYPE
    SYNTAX EltOpt82CombinationType
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION       "Specifies circuit id suboptions that will be inserted to a PPPoED client packet."
    ::= { eltMesPppoeIa 3 }

eltPppoeIaCircuitIdSuboptionsDelimeter OBJECT-TYPE
    SYNTAX EltOpt82DelimiterType
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION       "Specifies a char symbol that will delimit circuit id suboptions."
    ::= { eltMesPppoeIa 4 }

eltPppoeIaGenericErrorMessage OBJECT-TYPE
   SYNTAX DisplayString(SIZE(1..128))
   MAX-ACCESS read-write
   STATUS current
   DESCRIPTION       "Specifies a generic error message sent to client if packet is too large."
   ::= { eltMesPppoeIa 5 }

--
-- PPPoE Intermediate Agent configuration interface table
--
eltPppoeIaPortTable  OBJECT-TYPE
  SYNTAX  SEQUENCE OF EltPppoeIaPortEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION      "A PPPoE Intermediate Agent interface table."
  ::= { eltMesPppoeIa 6 }

eltPppoeIaPortEntry OBJECT-TYPE
   SYNTAX      EltPppoeIaPortEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION        "A PPPoE Intermediate Agent interface entry."
   INDEX {ifIndex}
::= { eltPppoeIaPortTable 1 }

EltPppoeIaPortEntry ::= SEQUENCE {
   eltPppoeIaPortEnabled                            TruthValue,
   eltPppoeIaPortTrusted                            TruthValue,
   eltPppoeIaPortCircuitId                          EltCircuitIdType,
   eltPppoeIaPortRemoteId                           EltRemoteIdType,
   eltPppoeIaPortStripVendorTag                     TruthValue,
   eltPppoeIaPortStatsRxPADI                        Counter32,
   eltPppoeIaPortStatsRxPADO                        Counter32,
   eltPppoeIaPortStatsRxPADR                        Counter32,
   eltPppoeIaPortStatsRxPADS                        Counter32,
   eltPppoeIaPortStatsRxPADT                        Counter32,
   eltPppoeIaPortStatsTxGenError                    Counter32,
   eltPppoeIaPortStatsDroppedResponseFromUntrusted  Counter32,
   eltPppoeIaPortStatsDroppedRequestToUntrusted     Counter32,
   eltPppoeIaPortStatsDroppedMalformed              Counter32,
   eltPppoeIaPortStatsClearCountersAction           TruthValue,
   eltPppoeIaPortRowStatus                          RowStatus
}

eltPppoeIaPortEnabled OBJECT-TYPE
  SYNTAX        TruthValue
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION
    "A PPPoE Intermediate Agent interface entry enabled state."
  ::= { eltPppoeIaPortEntry 2 }

eltPppoeIaPortTrusted OBJECT-TYPE
  SYNTAX        TruthValue
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION
    "A PPPoE Intermediate Agent interface entry trusted state."
  ::= { eltPppoeIaPortEntry 3 }

eltPppoeIaPortCircuitId OBJECT-TYPE
    SYNTAX      EltCircuitIdType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
      "A PPPoE Intermediate Agent interface entry curcuit id."
    ::= { eltPppoeIaPortEntry 4 }

eltPppoeIaPortRemoteId OBJECT-TYPE
  SYNTAX        EltRemoteIdType
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION
    "A PPPoE Intermediate Agent interface entry remote id."
  ::= { eltPppoeIaPortEntry 5 }

eltPppoeIaPortStripVendorTag OBJECT-TYPE
  SYNTAX        TruthValue
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION
    "A PPPoE Intermediate Agent interface entry enable stripping vendor tag."
  ::= { eltPppoeIaPortEntry 6 }

eltPppoeIaPortStatsRxPADI OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of received PADI packets."
    ::= { eltPppoeIaPortEntry 7 }

eltPppoeIaPortStatsRxPADO OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of received PADO packets."
    ::= { eltPppoeIaPortEntry 8 }

eltPppoeIaPortStatsRxPADR OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of received PADR packets."
    ::= { eltPppoeIaPortEntry 9 }

eltPppoeIaPortStatsRxPADS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of received PADS packets."
    ::= { eltPppoeIaPortEntry 10 }

eltPppoeIaPortStatsRxPADT OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of received PADT packets."
    ::= { eltPppoeIaPortEntry 11 }

eltPppoeIaPortStatsTxGenError OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of transmitted PPPoED generic error messages."
    ::= { eltPppoeIaPortEntry 12 }

eltPppoeIaPortStatsDroppedResponseFromUntrusted OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of dropped server PPPoED packets from untrusted ports."
    ::= { eltPppoeIaPortEntry 13 }

eltPppoeIaPortStatsDroppedRequestToUntrusted OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of dropped client PPPoED packets from trusted ports."
    ::= { eltPppoeIaPortEntry 14 }

eltPppoeIaPortStatsDroppedMalformed OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of dropped malformed PPPoED packets."
    ::= { eltPppoeIaPortEntry 15 }

eltPppoeIaPortStatsClearCountersAction OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If true, clear (set to zero) all PPPoE Intermediate Agent interface counters."
    DEFVAL{ false }
    ::= { eltPppoeIaPortEntry 16 }

eltPppoeIaPortRowStatus OBJECT-TYPE
  SYNTAX        RowStatus
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION
    "A PPPoE Intermediate Agent interface entry row status."
  ::= { eltPppoeIaPortEntry 17 }

--
-- PPPoE Intermediate Agent clear all statistics
--
eltPppoeIaClearCountersAction OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If true, clear (set to zero) counters on all ports."
    DEFVAL{ false }
    ::= { eltMesPppoeIa 7 }

--
-- PPPoE Intermediate Agent sessions table
--

EltPppoeIaSessionIDType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "PPPoE Intermediate Agent session ID type."
   SYNTAX INTEGER(0..65535)

eltPppoeIaSessionTable  OBJECT-TYPE
  SYNTAX  SEQUENCE OF EltPppoeIaSessionEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION      "A PPPoE Intermediate Agent sessions table."
  ::= { eltMesPppoeIa 8 }

eltPppoeIaSessionEntry OBJECT-TYPE
   SYNTAX      EltPppoeIaSessionEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION        "A PPPoE Intermediate Agent session entry."
   INDEX { eltPppoeIaSessionVLANTag, eltPppoeIaSessionMACAddress }
::= { eltPppoeIaSessionTable 1 }

EltPppoeIaSessionEntry ::= SEQUENCE {
   eltPppoeIaSessionVLANTag          VlanId,
   eltPppoeIaSessionMACAddress       MacAddress,
   eltPppoeIaSessionPort             InterfaceIndex,
   eltPppoeIaSessionID               EltPppoeIaSessionIDType,
   eltPppoeIaSessionTimer            Unsigned32,
   eltPppoeIaSessionRowStatus        RowStatus
}

eltPppoeIaSessionVLANTag OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session VLAN ID."
    ::= { eltPppoeIaSessionEntry 1 }

eltPppoeIaSessionMACAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session MAC address."
    ::= { eltPppoeIaSessionEntry 2 }

eltPppoeIaSessionPort OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session interface index."
    ::= { eltPppoeIaSessionEntry 3 }

eltPppoeIaSessionID OBJECT-TYPE
    SYNTAX      EltPppoeIaSessionIDType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session ID."
    ::= { eltPppoeIaSessionEntry 4 }

eltPppoeIaSessionTimer OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session timer."
    ::= { eltPppoeIaSessionEntry 5 }

eltPppoeIaSessionRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Session row status."
    ::= { eltPppoeIaSessionEntry 6 }

--
-- PPPoE Intermediate Agent clear sessions
--
eltPppoeIaClearSessionsAction OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The MAC address of PPPoE session that need to be deleted (set to 00:00:00:00:00:00 to clear all sessions)."
    ::= { eltMesPppoeIa 9 }
    
--
-- PPPoE Intermediate Agent session timeout
--
eltPppoeIaSessionTimeout OBJECT-TYPE
    SYNTAX      INTEGER(0..600)
    MAX-ACCESS  read-write
    STATUS      current
    DEFVAL     { 300 }
    DESCRIPTION
        "The PPPoE session timeout in seconds (set to zero to disable timeout)."
    ::= { eltMesPppoeIa 10 }

END
