ELTEX-MES-IP DEFINITIONS ::= BEGIN

-- Title:      ELTEX MES IP Private Extension
-- Version:    1.1
-- Date:       12 Dec 2017

IMPORTS
    eltMes                                                  FROM ELTEX-MES
    rlInetRoutingDistanceEntry, rlInetStaticRouteEntry      FROM RADLAN-IPv6
    OBJECT-TYPE, Unsigned32                                 FROM SNMPv2-SMI
    TruthValue, DisplayString, RowStatus                    FROM SNMPv2-TC
    ifIndex, InterfaceIndex                                 FROM IF-MIB
    EltexBgpAsSize, EltexBgpOriginCode, 
    EltexBgpRouteMapAsPathAction                            FROM ELTEX-BGP-MIB
    rlRouteMapPbrEntry                                      FROM MARVELL-ROUTEMAP-MIB
    InetAddress, InetAddressType                            FROM INET-ADDRESS-MIB
    RlRedistDstProtocol, rlRedistEntry                      FROM RADLAN-Redistribute
    inetCidrRouteEntry                                      FROM IP-FORWARD-MIB
    VlanId                                                  FROM Q-BRIDGE-MIB;

eltMesIpSpec MODULE-IDENTITY
       LAST-UPDATED "201402120000Z"
       ORGANIZATION "Eltex Enterprise Co, Ltd."
       CONTACT-INFO
            "www.eltex.nsk.ru"
       DESCRIPTION
            "The private MIB module definition for IP MIB."
       REVISION "200606220000Z"
       DESCRIPTION
            "Initial version of this MIB."
       ::= { eltMes 91 }

EltMesRouteMapPermitOrDeny ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether the behavior is to permit or deny."
    SYNTAX      INTEGER {
                  permit(1),        -- Unmatched routes are permitted
                  deny(2)           -- Unmatched routes are denied
                }

EltInetCidrRouteInstallStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "If the route is installed in the forwarding routing table, 
                 then success, otherwise failure."
    SYNTAX      INTEGER {
                  success(1),        -- Route set in forwarding table
                  failure(2)         -- Route not set in forwarding table
                }

EltexBgpCommunityAction ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "How to handle adding a community attribute."
    SYNTAX      INTEGER {
                  none(0),            -- No action is carried out
                  removeAll(1),       -- Current community list is cleared
                  removeSpecific(2),  -- The community is removed from the list
                  setSpecific(3),     -- The community is added to the list
                  removeAllAndSet(4)  -- The community replaces the current list
                }

eltMesOspf OBJECT IDENTIFIER ::=  { eltMesIpSpec 1 }
-- see eltIpRouter.mib

eltMesArpSpec OBJECT IDENTIFIER ::=  { eltMesIpSpec 3 }
-- see eltArpInterfaceTable.mib

--
-- eltMesInetRouting
--

eltMesInetRouting OBJECT IDENTIFIER ::=  { eltMesIpSpec 4 }

eltInetRoutingDistanceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltInetRoutingDistanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table defines administrative distances for
                 different protocol routes that are inserted into
                 the routing table.

                 The table augments rlInetRoutingDistanceTable."
    ::= { eltMesInetRouting 1 }

eltInetRoutingDistanceEntry OBJECT-TYPE
    SYNTAX      EltInetRoutingDistanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A set of distances per inet address type."
    AUGMENTS    { rlInetRoutingDistanceEntry }
    ::= { eltInetRoutingDistanceTable 1 }

EltInetRoutingDistanceEntry ::= SEQUENCE {
    eltInetRoutingDistanceBgpInternal           INTEGER,
    eltInetRoutingDistanceBgpExternal           INTEGER,
    eltInetRoutingDistanceIsisl1Internal        INTEGER,
    eltInetRoutingDistanceIsisl2Internal        INTEGER,
    eltInetRoutingDistanceIsisl1External        INTEGER,
    eltInetRoutingDistanceIsisl2External        INTEGER
}

eltInetRoutingDistanceBgpInternal OBJECT-TYPE
    SYNTAX      INTEGER  (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative distance used for internal BGP routes."
    ::= { eltInetRoutingDistanceEntry 1 }


eltInetRoutingDistanceBgpExternal OBJECT-TYPE
    SYNTAX      INTEGER  (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative distance used for external BGP routes."
    ::= { eltInetRoutingDistanceEntry 2 }

eltInetRoutingDistanceIsisl1Internal OBJECT-TYPE
    SYNTAX      INTEGER  (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative distance used for internal ISIS level 1 routes."
    ::= { eltInetRoutingDistanceEntry 3 }


eltInetRoutingDistanceIsisl2Internal OBJECT-TYPE
    SYNTAX      INTEGER  (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative distance used for internal ISIS level 2 routes."
    ::= { eltInetRoutingDistanceEntry 4 }

eltInetRoutingDistanceIsisl1External OBJECT-TYPE
    SYNTAX      INTEGER  (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative distance used for external ISIS level 1 routes."
    ::= { eltInetRoutingDistanceEntry 5 }

eltInetRoutingDistanceIsisl2External OBJECT-TYPE
    SYNTAX      INTEGER  (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative distance used for external ISIS level 2 routes."
    ::= { eltInetRoutingDistanceEntry 6 }

eltInetStaticRouteTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltInetStaticRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table defines administrative distances for
                 different protocol routes that are inserted into
                 the routing table.

                 The table augments rlInetStaticRouteTable."
    ::= { eltMesInetRouting 2 }

eltInetStaticRouteEntry OBJECT-TYPE
    SYNTAX      EltInetStaticRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A particular Static(user configured) route to a particular destination."
    AUGMENTS    { rlInetStaticRouteEntry }
    ::= { eltInetStaticRouteTable 1 }

EltInetStaticRouteEntry ::= SEQUENCE {
    eltInetStaticRouteName                  DisplayString,
    eltInetStaticRouteAdminDistance         INTEGER
}

eltInetStaticRouteName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The name assigned to the static route."
    ::= { eltInetStaticRouteEntry 1 }

eltInetStaticRouteAdminDistance OBJECT-TYPE
    SYNTAX      INTEGER (1..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Administrative distance of the static route."
    DEFVAL      { 1 }
    ::= { eltInetStaticRouteEntry 2 }

  eltMesRouteMap       OBJECT IDENTIFIER ::= { eltMesIpSpec 5 }

--
-- BGP Route Map Augment.
--
-- This is the top-level MIB for the BGP Router feature. It controls
-- creation and global configuration of the protocol.
--

eltMesRouteMapTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltMesRouteMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of BGP Route Maps.  If a particular match or set
                 category does not apply to a route map then do not define the
                 corresponding field in the MIB row."
    ::= { eltMesRouteMap 1 }

eltMesRouteMapEntry OBJECT-TYPE
    SYNTAX      EltMesRouteMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a filter consisting of Match and Set
                 entries."
    AUGMENTS { rlRouteMapPbrEntry }
    ::= { eltMesRouteMapTable 1 }

EltMesRouteMapEntry ::= SEQUENCE {
    eltMesRouteMapMatchAddrPrefixListName       DisplayString,
    eltMesRouteMapMatchNextPrefixListName       DisplayString,
    eltMesRouteMapMatchSourcePrefixListName     DisplayString,
    eltMesRouteMapMatchLocPref                  Unsigned32,
    eltMesRouteMapMatchLocPrefDef               TruthValue,
    eltMesRouteMapMatchMed                      Unsigned32,
    eltMesRouteMapMatchMedDef                   TruthValue,
    eltMesRouteMapMatchOrigin                   EltexBgpOriginCode,
    eltMesRouteMapMatchOriginDef                TruthValue,
    eltMesRouteMapMatchAnd                      TruthValue,
    eltMesRouteMapActionAS                      Unsigned32,
    eltMesRouteMapActionASOperation             EltexBgpRouteMapAsPathAction,
    eltMesRouteMapActionASLimUpper              Unsigned32,
    eltMesRouteMapActionASLimUpperDef           TruthValue,
    eltMesRouteMapActionAsPrependCount          Unsigned32,
    eltMesRouteMapActionAsPrependSize           EltexBgpAsSize,
    eltMesRouteMapActionAsPrependAsVals         OCTET STRING,
    eltMesRouteMapActionAsRemove                DisplayString,
    eltMesRouteMapActionLocPref                 Unsigned32,
    eltMesRouteMapActionLocPrefDef              TruthValue,
    eltMesRouteMapActionMed                     Unsigned32,
    eltMesRouteMapActionMedDef                  TruthValue,
    eltMesRouteMapActionOrigin                  EltexBgpOriginCode,
    eltMesRouteMapActionOriginDef               TruthValue,
    eltMesRouteMapActionWeight                  Unsigned32,
    eltMesRouteMapActionWeightDef               TruthValue,
    eltMesRouteMapActionNextHopPeer             TruthValue,
    eltMesRouteMapType                          EltMesRouteMapPermitOrDeny,
    eltMesRouteMapContinue                      Unsigned32,
    eltMesRouteMapMatchTag                      Unsigned32,
    eltMesRouteMapMatchTagDef                   TruthValue,
    eltMesRouteMapActionTag                     Unsigned32,
    eltMesRouteMapActionTagDef                  TruthValue,
    eltMesRouteMapMatchCommListName             DisplayString,
    eltMesRouteMapMatchCommListExact            TruthValue,
    eltMesRouteMapMatchExtCommListName          DisplayString,
    eltMesRouteMapMatchExtCommListExact         TruthValue,
    eltMesRouteMapActionComm                    DisplayString,
    eltMesRouteMapActionCommOperation           EltexBgpCommunityAction,
    eltMesRouteMapActionExtComm                 DisplayString,
    eltMesRouteMapActionExtCommOperation        EltexBgpCommunityAction,
    eltMesRouteMapActionCommListAddName         DisplayString,
    eltMesRouteMapActionCommListDelName         DisplayString,
    eltMesRouteMapActionCommListDelAll          TruthValue,
    eltMesRouteMapActionExtCommListAddName      DisplayString,
    eltMesRouteMapActionExtCommListDelName      DisplayString,
    eltMesRouteMapActionExtCommListDelSubtypes  Unsigned32,
    eltMesRouteMapMatchAs                       DisplayString,
    eltMesRouteMapMatchAsPathListName           DisplayString
}


eltMesRouteMapMatchAddrPrefixListName OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The name of the IP Prefix access list used to match
                  the NLRI attribute against."
    DEFVAL       { "" }
    ::= { eltMesRouteMapEntry 1 }

eltMesRouteMapMatchNextPrefixListName OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The name of the IP Prefix access list used to match
                  the Next Hop attribute against."
    DEFVAL       { "" }
    ::= { eltMesRouteMapEntry 2 }

eltMesRouteMapMatchSourcePrefixListName OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The name of the IP Prefix access list used to match
                  the source address against."
    DEFVAL       { "" }
    ::= { eltMesRouteMapEntry 3 }

eltMesRouteMapMatchLocPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to match the Local Preference attribute against.
                 This value is only used if eltMesRouteMapMatchLocPrefDef is TRUE.

                 If a route does not contain a local preference attribute, this
                 match rule is ignored."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 4 }

eltMesRouteMapMatchLocPrefDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapMatchLocPref should be
                 used for matching."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 5 }

eltMesRouteMapMatchMed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to match the Multiple Exit Descriminator attribute
                 against.  A value of 0 indicates a match on no MED or a MED
                 of 0.  This value is only used if eltMesRouteMapMatchMedDef is
                 TRUE."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 6 }

eltMesRouteMapMatchMedDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapMatchMed should be used
                 for matching."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 7 }

eltMesRouteMapMatchOrigin OBJECT-TYPE
    SYNTAX      EltexBgpOriginCode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to match the Origin attribute against.  This
                 value is only used if eltMesRouteMapMatchOriginDef is TRUE."
    DEFVAL { originIncomplete }
    ::= { eltMesRouteMapEntry 8 }

eltMesRouteMapMatchOriginDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapMatchOrigin should be
                 used for matching."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 9 }

eltMesRouteMapMatchAnd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Indicates that the match statements in this route map
                 should be logically ANDed with the match statements in the
                 route map indicated by eltMesRouteMapContinue.  This field is
                 only relevant for policy route maps.

                 If the route map indicated by eltMesRouteMapContinue is not
                 found then the match will fail.

                 All route maps in a series must have the same
                 eltMesRouteMapType.

                 If this field is set then no set statements can be
                 configured in the row.

                 This field can only be updated if the row is not active."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 10 }

eltMesRouteMapActionAS OBJECT-TYPE
    SYNTAX      Unsigned32 (0..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The number of times the local AS number is prepended to
                 the AS path if there is a match.  This is only relevant if
                 the route map is being used for exporting routes, or for
                 setting attributes for an aggregate route which does not
                 have the AS_SET option set.  This value is only used if
                 the value of eltMesRouteMapActionASOperation is SET"
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 11 }

eltMesRouteMapActionASOperation OBJECT-TYPE
    SYNTAX      EltexBgpRouteMapAsPathAction
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in rlRouteMapPbrActionAS should be used
                 for updating attributes.  The possible action values are:

                 none - Ignore eltMesRouteMapActionAS and do nothing.

                 set - Prepend the local AS number the number
                 of times specified by eltMesRouteMapActionAS."
    DEFVAL { none }
    ::= { eltMesRouteMapEntry 12 }

eltMesRouteMapActionASLimUpper OBJECT-TYPE
    SYNTAX       Unsigned32  (0..255)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "If there is a match this will cause the AS_PATHLIMIT
                  attribute to be added if it does not already exist.  If
                  it does exist then it will be replaced.  In either case the
                  specified limit and the local AS will be set.  This can be
                  used for traffic engineering purposes in association with a
                  less specific prefix.  A value of zero is permissible and
                  restricts advertisement of locally generated routes to IBGP
                  peers.  However, an AS_PATHLIMIT with an upper bound value of
                  0 will not be externally visible.  That is, it will not be
                  included in UPDATEs.

                  This value is only used if eltMesRouteMapActionASLimUpperDef is TRUE."
    DEFVAL { 1 }
    ::= { eltMesRouteMapEntry 13 }

eltMesRouteMapActionASLimUpperDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapActionASLimUpper should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 14 }

eltMesRouteMapActionAsPrependCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "To prepend AS numbers to the AS-Path, set
                 eltMesRouteMapActionAsPrependCount to the count of the AS numbers
                 to prepend, set eltMesRouteMapActionAsPrependSize to indicate
                 whether the values are 2 or 4 octet AS numbers and fill in
                 eltMesRouteMapActionAsPrependAsVals with the AS numbers themselves.

                 When exporting routes to EBGP, BGP applies the AS-prepend
                 rule before prepending the local AS number as required by
                 the BGP specification.  This ensures that the local AS
                 number is always the first AS number in the AS path in this
                 case.

                 This field can only be updated if the row is not active."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 15 }

eltMesRouteMapActionAsPrependSize OBJECT-TYPE
    SYNTAX      EltexBgpAsSize
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The size of AS numbers in the field
                 eltMesRouteMapActionAsPrependAsVals to prepend to the AS path if
                 there is a match.  This field is only used if
                 eltMesRouteMapActionAsPrependCount is non-zero.

                 This field can only be updated if the row is not active."
    DEFVAL { fourOctet }
    ::= { eltMesRouteMapEntry 16 }

eltMesRouteMapActionAsPrependAsVals OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "An array containing the AS numbers to prepend to the AS
                 path if there is a match.  The length of each AS number is
                 given by eltMesRouteMapActionAsPrependSize.  This field is only
                 used if eltMesRouteMapActionAsPrependCount is non-zero.

                 The count of AS numbers is given by
                 eltMesRouteMapActionAsPrependCount.

                 This field can only be updated if the row is not active."
    ::= { eltMesRouteMapEntry 17 }

eltMesRouteMapActionAsRemove OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Contains the regular expression to use to remove AS
                 numbers from an AS-Path for a route.

                 This is stored here in ASCII format.  AS numbers are
                 matched as decimal numbers.  For example, the AS number
                 '0x0123' should be represented in the regular expression
                 string as '291'.  The string is not NULL-terminated.  A
                 NULL string or an se_as_remove_exp_len value of zero
                 indicates that the field is not in use."
    ::= { eltMesRouteMapEntry 18 }

eltMesRouteMapActionLocPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to set the Local Pref to if there is a match.  This
                 value is only used if eltMesRouteMapActionLocPrefDef is TRUE."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 19 }

eltMesRouteMapActionLocPrefDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapActionLocPref should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 20 }

eltMesRouteMapActionMed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to set the MED to if there is a match.  A value of
                 0 indicates that the MED should be removed.  This value is
                 only used if eltMesRouteMapActionMedDef is TRUE."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 21 }

eltMesRouteMapActionMedDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapActionMed should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 22 }

eltMesRouteMapActionOrigin OBJECT-TYPE
    SYNTAX      EltexBgpOriginCode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to set the Origin to if there is a match.  This
                 value is only used if eltMesRouteMapActionOriginDef is TRUE."
    DEFVAL { originIncomplete }
    ::= { eltMesRouteMapEntry 23 }

eltMesRouteMapActionOriginDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapActionOrigin should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 24 }

eltMesRouteMapActionWeight OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to set the Weight to if there is a match.  This
                 value is only used if eltMesRouteMapActionWeightDef is TRUE."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 25 }

eltMesRouteMapActionWeightDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapActionWeight should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 26 }

eltMesRouteMapActionNextHopPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "If set to 'true' in an import route map, then routes matching
                 this route-map will have their Next Hop set to the peer's
                 address.  This field has no effect on route maps used for
                 anything other than import.  This field overrides
                 rlRouteMapPbrActionNextHopPeer if set to 'true'.  This field is not
                 applied to VPNv4 or VPNv6 routes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 27 }

eltMesRouteMapType OBJECT-TYPE
    SYNTAX      EltMesRouteMapPermitOrDeny
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The type of route map entry.  This is only relevant for
                 policy filtering route maps.  It indicates the action
                 which should apply to a route which matches the route map
                 entry.  This field is ignored for route maps used for
                 aggregation."
    DEFVAL { permit }
    ::= { eltMesRouteMapEntry 28 }

eltMesRouteMapContinue OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Field containing the number of the route map clause to
                 continue processing at.

                 For a series of eltMesRouteMapTable rows that are ANDed
                 together (that is, the eltMesRouteMapMatchAnd field is set to
                 TRUE for all of the series except the last),
                 eltMesRouteMapContinue can be used irrespective of the
                 eltMesRouteMapType.  That is, eltMesRouteMapType can be permit
                 or deny for the series.

                 For a series of route attribute changes (that is, a series
                 of eltMesRouteMapTable rows that modify the route attributes
                 of a permitted route, where the rows are linked with the
                 eltMesRouteMapContinue field), all of the rows must have
                 eltMesRouteMapType permit.

                 If the route map matches, the set commands for the
                 matching clause will be applied, and filtering will then
                 continue from the route map clause specified in this
                 field.

                 If no continue clause is specified (value of 0), or the
                 referenced route map clause does not exist, then
                 processing for the given route will be complete.

                 The continue field references the rlRouteMapPbrRouteMapSectionId field
                 of the desired clause.  In order to prevent processing
                 loops, the continue clause must have a higher number than
                 the current clause."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 29 }

eltMesRouteMapMatchTag OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to match the tag value. This value is only used
                 if eltMesRouteMapMatchTagDef is TRUE."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 30 }

eltMesRouteMapMatchTagDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapMatchTag should be
                 used for matching."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 31 }

eltMesRouteMapActionTag OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value to set the tag if there is a match. This value is
                 only used if eltMesRouteMapActionTagDef is TRUE."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 32 }

eltMesRouteMapActionTagDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether or not the value in eltMesRouteMapActionTag should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 33 }

eltMesRouteMapMatchCommListName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of the Community List to use when matching
                 communities in a route.

                 The field eltMesRouteMapMatchCommListExact is used to define
                 whether the set of communities in the route must match the
                 set of communities in the list exactly or not.

                 A value of null means that no Community List is used for
                 matching."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 34 }

eltMesRouteMapMatchCommListExact OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether the set of communities in the route must exactly
                 match the set of communities in the community list.

                 If set to true then there must be an exact match of all
                 communities in the route with all communities in the list.

                 If set to false then, for a match on the list, every
                 community in the list must appear in the set of
                 communities in the route."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 35 }

eltMesRouteMapMatchExtCommListName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of the Extended Community List to use when
                 matching extended communities in a route.

                 The field eltMesRouteMapExtchtCommListExact is used to define
                 whether the set of extended communities in the route must
                 match the set of extended communities in the list exactly
                 or not.

                 A value of null means that no Extended Community List is
                 used for matching."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 36 }

eltMesRouteMapMatchExtCommListExact OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether the set of extended communities in the route must
                 exactly match the set of extended communities in the
                 extended community list.

                 If set to true then there must be an exact match of all
                 extended communities in the route with all extended
                 communities in the list.

                 If set to false then, for a match on the list, every
                 extended community in the list must appear in the set of
                 extended communities in the route."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 37 }

eltMesRouteMapActionComm OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression used when executing the
                 action defined by eltMesRouteMapActionCommOperation.  Allowed values
                 depend on the value of eltMesRouteMapActionCommOperation - see the
                 comment for eltMesRouteMapActionCommOperation."
    ::= { eltMesRouteMapEntry 38 }

eltMesRouteMapActionCommOperation OBJECT-TYPE
    SYNTAX      EltexBgpCommunityAction
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The action to take on the community list if this route map
                 matches the route.  Note that if the action is
                 BGP_SET_SPECIFIC or BGP_REMOVE_ALL_AND_SET, the
                 field eltMesRouteMapActionComm must only contain a string
                 representation of a single specific community value, which
                 will be added to the route.  If the action is
                 BGP_REMOVE_SPECIFIC, then the eltMesRouteMapActionComm field
                 must contain a regular expression string that matches the
                 community (or communities) to be removed.  The possible
                 action values are:

                 BGP_NONE - Ignore the value of eltMesRouteMapActionComm and
                 do nothing.
                 BGP_REMOVE_ALL - Ignore the value of eltMesRouteMapActionComm
                 and remove all communities from the route.
                 BGP_REMOVE_SPECIFIC - Remove from the route all
                 communities that match the regular expression in
                 eltMesRouteMapActionComm.
                 BGP_SET_SPECIFIC - Append the community in
                 eltMesRouteMapActionComm to the communities list.
                 BGP_REMOVE_ALL_AND_SET - Remove all communities from
                 the route and replace them with the community in
                 eltMesRouteMapActionComm.

                 Note that you can delete or add a list of communities using
                 the eltMesRouteMapActionCommListDel and eltMesRouteMapActionCommListAdd
                 fields."
    DEFVAL { none }
    ::= { eltMesRouteMapEntry 39 }

eltMesRouteMapActionExtComm OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression used when executing the
                 action defined by eltMesRouteMapActionExtCommOperation.  This field may
                 be ignored depending on the value of
                 eltMesRouteMapActionExtCommOperation - see the comment for
                 eltMesRouteMapActionExtCommOperation.

                 If the value is not null, eltMesRouteMapActionExtCommListDelSubtypes
                 should be the default."
    ::= { eltMesRouteMapEntry 40 }

eltMesRouteMapActionExtCommOperation OBJECT-TYPE
    SYNTAX      EltexBgpCommunityAction
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The action to take on the extended community list if this
                 route map matches the route.  Note that if the action is
                 BGP_SET_SPECIFIC or BGP_REMOVE_ALL_AND_SET, the
                 eltMesRouteMapActionExtComm field should only contain a single
                 specific extended community value, which will be added to
                 the route.  If the action is BGP_REMOVE_SPECIFIC, then
                 the eltMesRouteMapActionExtComm field must contain a regular
                 expression string that matches the extended community (or
                 communities) to be removed.  The
                 possible action values are:

                 BGP_NONE - Ignore the value of eltMesRouteMapActionExtComm
                 and do nothing.
                 BGP_REMOVE_ALL - Ignore the value of
                 eltMesRouteMapActionExtComm and remove all extended communities
                 from the route.
                 BGP_REMOVE_SPECIFIC - Remove from the route all
                 extended communities that match the regular expression in
                 eltMesRouteMapActionExtComm.
                 BGP_SET_SPECIFIC - Append the extended community in
                 eltMesRouteMapActionExtComm to the extended communities list.
                 BGP_REMOVE_ALL_AND_SET - Remove all extended
                 communities from the route and replace them with the
                 extended community in eltMesRouteMapActionExtComm.

                 Note that you can delete or add a list of extended communities
                 using the eltMesRouteMapActionExtCommListDel and
                 eltMesRouteMapActionExtCommListAdd fields.

                 If the value is not none, eltMesRouteMapActionExtCommListDelSubtypes
                 should be the default."
    DEFVAL { none }
    ::= { eltMesRouteMapEntry 41 }

eltMesRouteMapActionCommListDelName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the name of a Community List used to delete
                 communities from routes matching this route-map.

                 A value of null means that no Community List is used."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 42 }

eltMesRouteMapActionCommListAddName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the name of a Community List used to add
                 communities to routes matching this route-map.

                 A value of null means that no Community List is used."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 43 }

eltMesRouteMapActionCommListDelAll OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Remove all BGP community in routes.

                 If set to true then, all standard communities
                 will be removed from routes."
    DEFVAL { false }
    ::= { eltMesRouteMapEntry 44 }

eltMesRouteMapActionExtCommListDelName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the name of an Extended Community List used to
                 delete extended communities from routes matching this
                 route-map.

                 A value of null means that no Extended Community List is
                 used."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 45 }

eltMesRouteMapActionExtCommListAddName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the name of an Extended Community List used to add
                 extended communities to routes matching this route-map.

                 A value of null means that no Extended Community List is
                 used."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 46 }

eltMesRouteMapActionExtCommListDelSubtypes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value used to form a regular expression that is used to remove 
                 certain types of extended communities in routes.

                 A value of zero means that no regular expression is
                 used.

                 bits :
                     removeRT(0),   -- Remove all route target
                     remove4BG(1),  -- Remove all 4bytes-generic
                     removeAll(2)   -- Remove all

                 If the value is not zero, eltMesRouteMapActionExtCommOperation and 
                 eltMesRouteMapActionExtComm should be the default."
    DEFVAL { 0 }
    ::= { eltMesRouteMapEntry 47 }

  eltMesRouteMapMatchAs OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression to use when matching the
                 AS-Path for a route.  This is stored here in ASCII format.
                 AS numbers are matched as decimal numbers.  For example,
                 the AS number '0x0123' should be represented in the
                 regular expression string as '291'.  The string is not
                 NULL-terminated.  A NULL string indicates that the field
                 is not in use."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 48 }

  eltMesRouteMapMatchAsPathListName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of the AS Path Access List to use when matching
                 the AS path in a route.

                 A NULL string  means that no AS Path Access List is used
                 for matching."
    DEFVAL { "" }
    ::= { eltMesRouteMapEntry 49 }

--  Summary Address Table.
--
--  This table is used to reduce the number of similar routes
--  that are advertised to routing protocol managers.
--

eltInetSummAddrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltInetSummAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of summary address entries.

                 This table is used to reduce the number of similar routes
                 that are advertised to routing protocol managers."
    ::= { eltMesInetRouting 3 }

eltInetSummAddrEntry OBJECT-TYPE
    SYNTAX      EltInetSummAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "A particular entry in the Summary Address table."
    INDEX {
            eltInetSummAddrTargetProtocol,
            eltInetSummAddrTargetInstance,
            eltInetSummAddrAddrType,
            eltInetSummAddrAddress,
            eltInetSummAddrAddrPfxLen
          }
    ::= { eltInetSummAddrTable 1 }

EltInetSummAddrEntry ::= SEQUENCE {
      eltInetSummAddrTargetProtocol      RlRedistDstProtocol,
      eltInetSummAddrTargetInstance      Unsigned32,
      eltInetSummAddrAddrType            InetAddressType,
      eltInetSummAddrAddress             InetAddress,
      eltInetSummAddrAddrPfxLen          Unsigned32,
      eltInetSummAddrRowStatus           RowStatus,
      eltInetSummAddrAdvertise           TruthValue
    }

eltInetSummAddrTargetProtocol OBJECT-TYPE
    SYNTAX      RlRedistDstProtocol
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The protocol to which the summary address
                 specified in this row is exported to."
    ::= { eltInetSummAddrEntry 1 }

eltInetSummAddrTargetInstance OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The instance ID of a protocol specified in
                 the eltInetSummAddrTargetProtocol field."
    ::= { eltInetSummAddrEntry 2 }

eltInetSummAddrAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The type of the summary address prefix."
    ::= { eltInetSummAddrEntry 3 }

eltInetSummAddrAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Summary IP address prefix value.  This is the address that
                 is used in combination with eltInetSummAddrAddrPfxLen to
                 specify the prefix used to summarize any equal or
                 more-specific routes to the target protocol."
    ::= { eltInetSummAddrEntry 4 }

eltInetSummAddrAddrPfxLen OBJECT-TYPE
    SYNTAX      Unsigned32 (0..128)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Summary IP address prefix length (in bits).  This is used
                 in combination with eltInetSummAddrAddress to specify the
                 prefix used to summarize any equal or more-specific routes
                 to the target protocol.  The prefix length may not be
                 zero."
    ::= { eltInetSummAddrEntry 5 }

eltInetSummAddrRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Used to create and delete a summary address table
                 entry."
    ::= { eltInetSummAddrEntry 6 }

eltInetSummAddrAdvertise OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "If this is set to TRUE, then when any routes matching
                 the summary address prefix (after filtering) would be 
                 advertised to the target protocol instance, those routes are 
                 suppressed and a summary address prefix is advertised instead.

                 If this is set to FALSE, then any matching routes are
                 suppressed (as in the TRUE case), but the summary
                 address prefix is not advertised to the target instance
                 either."
    DEFVAL { true }
    ::= { eltInetSummAddrEntry 7 }


eltInetCidrRouteTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltInetCidrRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table the status of set the route in the forwarding table"
    ::= { eltMesInetRouting 4 }

eltInetCidrRouteEntry OBJECT-TYPE
    SYNTAX      EltInetCidrRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry the status of set the route in the forwarding table"
    AUGMENTS { inetCidrRouteEntry }
    ::= { eltInetCidrRouteTable 1 }

EltInetCidrRouteEntry ::= SEQUENCE {
    eltInetCidrRouteInstallStatus     EltInetCidrRouteInstallStatus,
    eltInetCidrRouteAdminTag          Unsigned32,
    eltInetCidrRouteAdminDistance     INTEGER
}

eltInetCidrRouteInstallStatus OBJECT-TYPE
    SYNTAX       EltInetCidrRouteInstallStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "If the route is installed in the forwarding routing table, then success, otherwise failure"
    ::= { eltInetCidrRouteEntry 1 }
    
eltInetCidrRouteAdminTag OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "Protocol specific admin tag.  If this route was learned from OSPF or
                  IS-IS, this is the admin tag assigned to the route.  Otherwise it is
                  set to zero."
    ::= { eltInetCidrRouteEntry 2 }

eltInetCidrRouteAdminDistance OBJECT-TYPE
    SYNTAX       INTEGER (0..255)
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "Administrative distance of the route."
    ::= { eltInetCidrRouteEntry 3 }

eltMesIpMgmt OBJECT IDENTIFIER ::=  { eltMesIpSpec 6 }

eltIpMgmtInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIpMgmtInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table contains ip management interfaces."
    ::= { eltMesIpMgmt 1 }

eltIpMgmtInterfaceEntry OBJECT-TYPE
    SYNTAX      EltIpMgmtInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The row definition for this table."
    INDEX { ifIndex }
    ::= { eltIpMgmtInterfaceTable 1 }

EltIpMgmtInterfaceEntry ::= SEQUENCE {
    eltIpMgmtInterfaceOuterVlanTag  VlanId,
    eltIpMgmtInterfaceRowStatus     RowStatus
}

eltIpMgmtInterfaceOuterVlanTag OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Outer vlan tag for ip management interface."
    ::= { eltIpMgmtInterfaceEntry 1 }

eltIpMgmtInterfaceRowStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
        "This variable displays the status of the entry."
    ::= { eltIpMgmtInterfaceEntry 2 }

eltInetRedistTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltInetRedistTable
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Using a routing protocol to advertise routes that are learned by some other means,
                 such as by another routing protocol, static routes, or directly connected routes, is called redistribution.
                 This table is used to configure under which conditions will redistribution occur
                 and which actions (if any) should be done on redistributed route.

                 The table augments rlRedistTable."
    ::= { eltMesInetRouting 5 }

eltInetRedistEntry OBJECT-TYPE
    SYNTAX      EltInetRedistTable
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "."
    AUGMENTS { rlRedistEntry }
    ::= { eltInetRedistTable 1 }

EltInetRedistTable ::= SEQUENCE {
    eltInetRedistRouteMapName     DisplayString,
    eltInetRedistTagValue         Unsigned32
}

eltInetRedistRouteMapName OBJECT-TYPE
    SYNTAX       DisplayString (SIZE(0..32))
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "Specifies the route map that should be interrogated to filter the importation of routes
                 from this source routing protocol to the current routing protocol.
                 If not specified, all routes are redistributed.
                 If this keyword is specified, but no route map tags are listed, no routes will be imported."
    ::= { eltInetRedistEntry 1 }
    
eltInetRedistTagValue OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "The value to set tag in routing information to sent to destination."
    DEFVAL { 0 }
    ::= { eltInetRedistEntry 2 }

END

