-- ****************************************************************************
-- ****************************************************************************
--             Copyright(c) 2004 Mediatrix Telecom, Inc.
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Mediatrix Telecom, Inc.
--   Mediatrix Telecom, Inc. reserves all rights to this document as well as
--   to the Intellectual Property of the document and the technology and
--   know-how that it includes and represents.
--   This publication cannot be reproduced, neither in whole nor in part in
--   any form whatsoever without written prior approval by
--   Mediatrix Telecom, Inc.
--   Mediatrix Telecom, Inc. reserves the right to revise this publication
--   and make changes at any time and without the obligation to notify any
--   person and/or entity of such revisions and/or changes.
-- ****************************************************************************
-- ****************************************************************************

MX-ETH-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32,
        Integer32
    FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
    FROM SNMPv2-CONF
        MxEnableState,
        MxActivationState,
        MxIpHostName,
        MxIpAddress,
        MxIpPort,
        MxAdvancedIpPort,
        MxIpSubnetMask,
        MxDigitMap
    FROM MX-TC
        MxUInt64,
        MxFloat32,
        MxIpHostNamePort,
        MxIpAddr,
        MxIpAddrPort,
        MxIpAddrMask,
        MxUri,
        MxUrl
    FROM MX-TC2
        mediatrixServices
    FROM MX-SMI2;

ethMIB MODULE-IDENTITY
 LAST-UPDATED   "1910210000Z"
 ORGANIZATION " Mediatrix Telecom, Inc. "
 CONTACT-INFO " Mediatrix Telecom, Inc.
                4229, Garlock Street
                Sherbrooke (Quebec)
                Canada
                Phone: (819) 829-8749
                "
 DESCRIPTION  " Ethernet Manager

                The Ethernet Manager (Eth) service manages the unit's Ethernet
                link interfaces.
                "
 ::= { mediatrixServices 2400 }

ethMIBObjects OBJECT IDENTIFIER ::= { ethMIB 1 }

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

-- Table:Ethernet Links Status

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

linkStatusTable OBJECT-TYPE
 SYNTAX        SEQUENCE OF LinkStatusEntry
 MAX-ACCESS    not-accessible
 STATUS        current
 DESCRIPTION " Ethernet Links Status

               This table displays the status of all Ethernet links available
               on the mainboard.
               "
 ::= { ethMIBObjects 25 }
 linkStatusEntry OBJECT-TYPE
  SYNTAX        LinkStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Ethernet Links Status. "
  INDEX         {
                  linkStatusLinkName
                }

  ::= { linkStatusTable 1 }

 LinkStatusEntry ::= SEQUENCE
 {
   linkStatusLinkName  OCTET STRING,
   linkStatusLinkType  OCTET STRING,
   linkStatusLinkState INTEGER
 }

 -- Index:Link Interface

 linkStatusLinkName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Link Interface

                Name of the link interface.
                "
  ::= { linkStatusEntry 100 }

 -- Columnar:Link Type

 linkStatusLinkType OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Link Type

                Type of link interface.
                "
  ::= { linkStatusEntry 200 }

 -- Columnar:Interface Status

 linkStatusLinkState OBJECT-TYPE
  SYNTAX        INTEGER { disconnected(100) , up(200) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Interface Status

                Indicates the status of the Ethernet link interface.

                  * Disconnected: The link interface is physically
                    disconnected.
                  * Up: The link interface is physically connected and
                    considered as usable by network interface(s).

                "
  ::= { linkStatusEntry 300 }

-- End of table:Ethernet Links Status

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

-- Table:Ethernet Links Settings

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

linksTable OBJECT-TYPE
 SYNTAX             SEQUENCE OF LinksEntry
 MAX-ACCESS         not-accessible
 STATUS             current
 DESCRIPTION     "  Ethernet Links Settings

                    This table configures the Ethernet links of the mainboard.
                    "
 ::= { ethMIBObjects 50 }
 linksEntry OBJECT-TYPE
  SYNTAX        LinksEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Ethernet Links Settings. "
  INDEX         {
                  linksName
                }

  ::= { linksTable 1 }

 LinksEntry ::= SEQUENCE
 {
   linksName                    OCTET STRING,
   linksMtu                     Unsigned32,
   linksIeee8021XAuthentication INTEGER,
   linksVirtualSwitch           MxEnableState
 }

 -- Index:Link Name

 linksName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Link Name

                The name of the Ethernet link.
                "
  ::= { linksEntry 100 }

 -- Columnar:MTU

 linksMtu OBJECT-TYPE
  SYNTAX        Unsigned32 ( 576..1500 )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " MTU

                Configures the MTU (Maximum Transmission Unit) of a specific
                Ethernet link. The range is from 576 to 1500 bytes. All VLAN
                connections use the MTU size configured on their related
                Ethernet link.

                Note that the MTU value applied for a PPPoE connection is the
                smallest of the value negotiated with the server and the value
                configured here.

                "
  DEFVAL        { 1500 }
  ::= { linksEntry 200 }

 -- Columnar:IEEE 802.1x Authentication

 linksIeee8021XAuthentication OBJECT-TYPE
  SYNTAX        INTEGER { disable(100) , enable(200) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " IEEE 802.1x Authentication

                Configures the IEEE 802.1x authentication protocol activation
                on the Ethernet link interface.

                  * Disable: The IEEE 802.1x authentication protocol is
                    disabled on the Ethernet link interface.
                  * Enable: The IEEE 802.1x authentication protocol using the
                    EAP-TLS authentication method is enabled on the Ethernet
                    link to get an access, through an IEEE 802.1x EAP-TLS
                    authenticator (such as an IEEE 802.1x capable network
                    device), to secured network(s). The Ethernet link interface
                    remains always 'UP' whatever the result of the IEEE 802.1x
                    authentication.

                "
  DEFVAL        { disable }
  ::= { linksEntry 300 }

 -- Columnar:Virtual Switch

 linksVirtualSwitch OBJECT-TYPE
  SYNTAX        MxEnableState
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Virtual Switch

                Configures the link as a virtual switch.

                  * Disable: The link cannot be used to provide network access
                    to virtual machines.
                  * Enable: The link can be used to provide network access to
                    virtual machines.

                Note that the Virtual Switch parameter can only be enabled if
                the VM service is supported.

                "
  DEFVAL        { disable }
  ::= { linksEntry 400 }

-- End of table:Ethernet Links Settings

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

-- Table:Ethernet Ports Status

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

portsStatusTable OBJECT-TYPE
 SYNTAX        SEQUENCE OF PortsStatusEntry
 MAX-ACCESS    not-accessible
 STATUS        current
 DESCRIPTION " Ethernet Ports Status

               This table displays the status of all Ethernet connectors of the
               mainboard.
               "
 ::= { ethMIBObjects 100 }
 portsStatusEntry OBJECT-TYPE
  SYNTAX        PortsStatusEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Ethernet Ports Status. "
  INDEX         {
                  portsStatusName
                }

  ::= { portsStatusTable 1 }

 PortsStatusEntry ::= SEQUENCE
 {
   portsStatusName       OCTET STRING,
   portsStatusLinkName   OCTET STRING,
   portsStatusConnection INTEGER
 }

 -- Index:Port Name

 portsStatusName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Port Name

                The name of the Ethernet port.
                "
  ::= { portsStatusEntry 100 }

 -- Columnar:Link Name

 portsStatusLinkName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Link Name

                The link interface associated with this port.
                "
  ::= { portsStatusEntry 200 }

 -- Columnar:Speed

 portsStatusConnection OBJECT-TYPE
  SYNTAX        INTEGER { disconnected(0) , half10(100) , full10(200) , half100
                (300) , full100(400) , full1000(500) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Speed

                Indicates the speed, duplex, and state of the connection.

                  * Disconnected: This port is physically disconnected.
                  * Half10: This port is connected at 10 Mbit/s Half-duplex.
                  * Full10: This port is connected at 10 Mbit/s Full-duplex.
                  * Half100: This port is connected at 100 Mbit/s Half-duplex.
                  * Full100: This port is connected at 100 Mbit/s Full-duplex.
                  * Full1000: This port is connected at 1 Gbit/s Full-duplex.

                "
  ::= { portsStatusEntry 300 }

-- End of table:Ethernet Ports Status

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

-- Table:Ethernet Ports Settings

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

portsTable OBJECT-TYPE
 SYNTAX         SEQUENCE OF PortsEntry
 MAX-ACCESS     not-accessible
 STATUS         current
 DESCRIPTION  " Ethernet Ports Settings

                This table configures the Ethernet ports of the mainboard.
                "
 ::= { ethMIBObjects 200 }
 portsEntry OBJECT-TYPE
  SYNTAX        PortsEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Ethernet Ports Settings. "
  INDEX         {
                  portsName
                }

  ::= { portsTable 1 }

 PortsEntry ::= SEQUENCE
 {
   portsName  OCTET STRING,
   portsSpeed INTEGER
 }

 -- Index:Port Name

 portsName OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Port Name

                The name of the Ethernet port.
                "
  ::= { portsEntry 100 }

 -- Columnar:Speed

 portsSpeed OBJECT-TYPE
  SYNTAX        INTEGER { auto(100) , half10(200) , full10(300) , half100(400)
                , full100(500) , full1000(600) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Speed

                Configures the speed and duplex of the connection.

                  * Auto: Automatic negociation of speed and duplex.
                  * Half10: 10 Mbit/s Half-duplex.
                  * Full10: 10 Mbit/s Full-duplex.
                  * Half100: 100 Mbit/s Half-duplex.
                  * Full100: 100 Mbit/s Full-duplex.
                  * Full1000: 1 Gbit/s Full-duplex.

                "
  DEFVAL        { auto }
  ::= { portsEntry 200 }

-- End of table:Ethernet Ports Settings

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

-- Table:Ethernet VLAN Settings

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

vlanTable OBJECT-TYPE
 SYNTAX        SEQUENCE OF VlanEntry
 MAX-ACCESS    not-accessible
 STATUS        current
 DESCRIPTION " Ethernet VLAN Settings

               This table configures the Ethernet Virtual LAN interfaces of the
               system.
               "
 ::= { ethMIBObjects 300 }
 vlanEntry OBJECT-TYPE
  SYNTAX        VlanEntry
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION " A row in table Ethernet VLAN Settings. "
  INDEX         {
                  vlanIdx
                }

  ::= { vlanTable 1 }

 VlanEntry ::= SEQUENCE
 {
   vlanIdx                 Unsigned32,
   vlanLinkName            OCTET STRING,
   vlanVlanId              Unsigned32,
   vlanDefaultUserPriority Unsigned32,
   vlanConfigStatus        INTEGER,
   vlanDelete              INTEGER
 }

 -- Columnar:Link Name

 vlanLinkName OBJECT-TYPE
  SYNTAX        OCTET STRING ( SIZE(0..10) )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Link Name

                Name of the Ethernet link used by the VLAN interface.
                "
  DEFVAL        { "" }
  ::= { vlanEntry 100 }

 -- Columnar:Vlan ID

 vlanVlanId OBJECT-TYPE
  SYNTAX        Unsigned32 ( 0..4094 )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Vlan ID

                VLAN ID used by the VLAN interface.
                "
  DEFVAL        { 0 }
  ::= { vlanEntry 200 }

 -- Columnar:Default User Priority

 vlanDefaultUserPriority OBJECT-TYPE
  SYNTAX        Unsigned32 ( 0..7 )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Default User Priority

                Default User Priority value the interface uses when tagging
                packets. Specific service class values may be set in the Local
                Quality of Service (LQos) ServiceClasses table.

                "
  DEFVAL        { 0 }
  ::= { vlanEntry 300 }

 -- Columnar:Config Status

 vlanConfigStatus OBJECT-TYPE
  SYNTAX        INTEGER { validConfig(100) , invalidLinkName(200) ,
                invalidVlanId(300) , duplicateLinkVlanId(400) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Config Status

                Configuration status of the row.

                It indicates whether the configuration of the row is valid or
                not.

                  * ValidConfig: This entry is valid.
                  * InvalidLinkName: The entry is not valid because the
                    LinkName parameter is either empty or refers to an
                    inexistent link.
                  * InvalidVlanId: This entry is not valid because VlanId 0 is
                    invalid.
                  * DuplicateLinkVlanId: This entry is not valid because the
                    VLAN is already used.

                "
  DEFVAL        { invalidLinkName }
  ::= { vlanEntry 350 }

 -- Row command:Delete

 vlanDelete OBJECT-TYPE
  SYNTAX        INTEGER { noOp(0), delete(10) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Delete

                Deletes the VLAN interface and removes it from the system.
                "
  DEFVAL        { noOp }
  ::= { vlanEntry 400 }

 -- Index:Idx

 vlanIdx OBJECT-TYPE
  SYNTAX        Unsigned32
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Idx

                Unique identifier of the row in the table.
                "
  ::= { vlanEntry 50 }

-- End of table:Ethernet VLAN Settings

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

-- Group:Extensible Authentication Protocol (EAP)

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

eapGroup OBJECT IDENTIFIER
 ::= { ethMIBObjects 10000 }
 -- ***************************************************************************
 
 -- Table:Extensible Authentication Protocol (EAP)

 -- ***************************************************************************
 
 eapTable OBJECT-TYPE
  SYNTAX                    SEQUENCE OF EapEntry
  MAX-ACCESS                not-accessible
  STATUS                    current
  DESCRIPTION            "  Extensible Authentication Protocol (EAP)

                            This table configures the EAP settings.
                            "
  ::= { eapGroup 100 }
  eapEntry OBJECT-TYPE
   SYNTAX        EapEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION " A row in table Extensible Authentication Protocol (EAP). "
   INDEX         {
                   eapName
                 }

   ::= { eapTable 1 }

  EapEntry ::= SEQUENCE
  {
    eapName                  OCTET STRING,
    eapUsername              OCTET STRING,
    eapCertificateValidation INTEGER
  }

  -- Index:Link Name

  eapName OBJECT-TYPE
   SYNTAX        OCTET STRING
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION " Link Name

                 The name of the Ethernet link.
                 "
   ::= { eapEntry 100 }

  -- Columnar:EAP Username

  eapUsername OBJECT-TYPE
   SYNTAX        OCTET STRING ( SIZE(0..64) )
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " EAP Username

                 Username used to authenticate each Ethernet link interfaces
                 during the IEEE 802.1x EAP-TLS authentication process. This
                 parameter is used only when the IEEE 802.1x authentication is
                 enabled (Links.Ieee8021XAuthentication set to 'Enabled').

                 "
   DEFVAL        { "" }
   ::= { eapEntry 200 }

  -- Columnar:EAP Certificate Validation

  eapCertificateValidation OBJECT-TYPE
   SYNTAX        INTEGER { noValidation(100) , trustedAndValid(200) }
   MAX-ACCESS    read-write
   STATUS        current
   DESCRIPTION " EAP Certificate Validation

                 Level of validation used by the device to authenticate the
                 IEEE 802.1x EAP-TLS peer's certificate. This parameter
                 controls also the criteria used to select the host
                 certificate sent during the authentitication handshake.

                   * NoValidation: No validation is performed on the peer's
                     certificate. Authentication with the peer is attempted
                     even if the system time is not synchronized. If more than
                     one host certificate is configured for an EAP-TLS usage,
                     the one with the latest expiration date is used.
                   * TrustedAndValid: Allow a connection to the network by
                     validating if the authentication peer's certificate is
                     trusted and valid. The IEEE 802.1x authentication is
                     attempted only if the system time is synchronized. If
                     more than one host certificate is configured for an
                     EAP-TLS usage, the one that is currently valid and with
                     the latest expiration date is used.

                 "
   DEFVAL        { trustedAndValid }
   ::= { eapEntry 300 }

 -- End of table:Extensible Authentication Protocol (EAP)

 -- Scalar:IEEE 802.1X version

 ieee8021XVersion OBJECT-TYPE
  SYNTAX        INTEGER { ieee8021X2001(100) , ieee8021X2004(200) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " IEEE 802.1X version

                Version of IEEE 802.1X used by the unit.
                "
  DEFVAL        { ieee8021X2001 }
  ::= { eapGroup 200 }

-- End of group:Extensible Authentication Protocol (EAP)

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

-- Group:Notification Messages Configuration

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

notificationsGroup OBJECT IDENTIFIER
 ::= { ethMIBObjects 60010 }
 -- Scalar:Minimal Severity of Notification

 minSeverity OBJECT-TYPE
  SYNTAX        INTEGER { disable(0) , debug(100) , info(200) , warning(300) ,
                error(400) , critical (500) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Minimal Severity of Notification

                Sets the minimal severity to issue a notification message
                incoming from this service.

                  * Disable: No notification is issued.
                  * Debug: All notification messages are issued.
                  * Info: Notification messages with a 'Informational' and
                    higher severity are issued.
                  * Warning: Notification messages with a 'Warning' and higher
                    severity are issued.
                  * Error: Notification messages with an 'Error' and higher
                    severity are issued.
                  * Critical: Notification messages with a 'Critical' severity
                    are issued.

                "
  DEFVAL        { warning }
  ::= { notificationsGroup 100 }

-- End of group:Notification Messages Configuration

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

-- Group:Configuration Settings

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

configurationGroup OBJECT IDENTIFIER
 ::= { ethMIBObjects 60020 }
 -- Scalar:Need Restart

 needRestartInfo OBJECT-TYPE
  SYNTAX        INTEGER { no(0) , yes(100) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Need Restart

                Indicates if the service needs to be restarted for the
                configuration to fully take effect.

                  * Yes: Service needs to be restarted.
                  * No: Service does not need to be restarted.

                Services can be restarted by using the
                Scm.ServiceCommands.Restart command.

                "
  ::= { configurationGroup 100 }

-- End of group:Configuration Settings

END
