EDGECORE-DHCPCL-MIB DEFINITIONS ::= BEGIN

-- Title:                RADLAN ROS
--                       Private DHCP CL MIB
-- Version:              7.46
-- Date:                 15-Jan-2007

IMPORTS
    rnd                                                     FROM EDGECORE-MIB
    OBJECT-TYPE, MODULE-IDENTITY, IpAddress                 FROM SNMPv2-SMI
    TruthValue, RowStatus, DisplayString                    FROM SNMPv2-TC
    InterfaceIndex, ifIndex                                 FROM IF-MIB
    SnmpAdminString                                         FROM SNMP-FRAMEWORK-MIB;

rlDhcpCl MODULE-IDENTITY
                LAST-UPDATED "200701020000Z"
                ORGANIZATION "Radlan - a MARVELL company.
                              Marvell Semiconductor, Inc."
                CONTACT-INFO
                      "www.marvell.com"
                DESCRIPTION
                      "This private MIB module defines DHCP CL private MIBs."
                REVISION "200701020000Z"
                DESCRIPTION
                      "Initial revision."
        ::= { rnd 76 }

-- rlDhcpCl 1,2 saved for future use

rlDhcpClActionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF RlDhcpClActionEntry
    MAX-ACCESS     not-accessible
    STATUS     current
    DESCRIPTION
            " The (conceptual) table mentione IP address which must be
              released/renewed on the interface."
    ::= { rlDhcpCl 3 }

rlDhcpClActionEntry OBJECT-TYPE
    SYNTAX     RlDhcpClActionEntry
    MAX-ACCESS     not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in dhcpClActionTable."
    INDEX      { rlDhcpClActionIfIndex }
    ::= { rlDhcpClActionTable 1 }

RlDhcpClActionEntry ::= SEQUENCE {
    rlDhcpClActionIfIndex            InterfaceIndex,
    rlDhcpClActionStatus             RowStatus,
    rlDhcpClActionHostName           SnmpAdminString
}

rlDhcpClActionIfIndex          OBJECT-TYPE
    SYNTAX             InterfaceIndex
    MAX-ACCESS         read-only
    STATUS      current
    DESCRIPTION
        " The interface which the action is implemented for
        or NULL if it implemented for all device. "
    ::= { rlDhcpClActionEntry  1 }

rlDhcpClActionStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS     read-create
    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry renewing Dhcp
              address on the interface; destroying the entry release Dhcp
              address on the interface."
    ::= { rlDhcpClActionEntry   2}

rlDhcpClActionHostName OBJECT-TYPE
    SYNTAX SnmpAdminString (SIZE(0..20))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
       " This option specifies the name of the client."
    ::= { rlDhcpClActionEntry   3 }

------------------------------
-- DHCP Approval feature
------------------------------

-- rlDhcpApprovalEnabled --

rlDhcpApprovalEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "DHCP Approval feature status - enable (True) or desable (False).
                Must be True only if DHCP Approval supported, device has only one
                ip interface and default ip exist."
    ::= { rlDhcpCl 4 }


-- rlDhcpApprovalWaitingTable --

rlDhcpApprovalWaitingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RlDhcpApprovalWaitingEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "IP addresses waiting for approval."
    ::= { rlDhcpCl 5 }

rlDhcpApprovalWaitingEntry OBJECT-TYPE
    SYNTAX      RlDhcpApprovalWaitingEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "An entry in rlDhcpApprovalWaitingTable."
    INDEX      { rlDhcpApprovalWaitingIfIndex }
    ::= { rlDhcpApprovalWaitingTable 1 }

RlDhcpApprovalWaitingEntry ::= SEQUENCE {
    rlDhcpApprovalWaitingIfIndex     InterfaceIndex,
    rlDhcpApprovalWaitingAddress     IpAddress,
    rlDhcpApprovalWaitingMask        IpAddress,
    rlDhcpApprovalWaitingGateway     IpAddress
}

rlDhcpApprovalWaitingIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "IP interface ifIndex."
    ::= { rlDhcpApprovalWaitingEntry  1 }

rlDhcpApprovalWaitingAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "IP Address waiting for approval."
    ::= { rlDhcpApprovalWaitingEntry   2}

rlDhcpApprovalWaitingMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "Mask waiting for approval."
    ::= { rlDhcpApprovalWaitingEntry   3}

rlDhcpApprovalWaitingGateway OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "Default gateway of received address."
    ::= { rlDhcpApprovalWaitingEntry   4}



-- rlDhcpApprovalActionTable --

rlDhcpApprovalActionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RlDhcpApprovalActionEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "Action for waiting ip address (approve/decline)."
    ::= { rlDhcpCl 6 }

rlDhcpApprovalActionEntry OBJECT-TYPE
    SYNTAX      RlDhcpApprovalActionEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "An entry in rlDhcpApprovalActionTable."
    INDEX      {rlDhcpApprovalActionIfIndex,
                rlDhcpApprovalActionAddress,
                rlDhcpApprovalActionMask }
    ::= { rlDhcpApprovalActionTable 1 }

RlDhcpApprovalActionEntry ::= SEQUENCE {
    rlDhcpApprovalActionIfIndex     InterfaceIndex,
    rlDhcpApprovalActionAddress     IpAddress,
    rlDhcpApprovalActionMask        IpAddress,
    rlDhcpApprovalActionApprove     TruthValue
}

rlDhcpApprovalActionIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "IP interface ifIndex."
    ::= { rlDhcpApprovalActionEntry  1 }

rlDhcpApprovalActionAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "IP Address."
    ::= { rlDhcpApprovalActionEntry  2 }

rlDhcpApprovalActionMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION "IP Address mask."
    ::= { rlDhcpApprovalActionEntry  3 }

rlDhcpApprovalActionApprove OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS      read-write
    STATUS      current
    DESCRIPTION "Approve or decline ip address."
    ::= { rlDhcpApprovalActionEntry   4}


-- =======================================================
-- DHCP Renew
-- =======================================================

rlDhcpClCommandTable        OBJECT-TYPE
    SYNTAX SEQUENCE OF RlDhcpClCommandEntry
    MAX-ACCESS          read-only
    STATUS          current
    DESCRIPTION     "Action MIB for DHCP Renew command."
    ::= { rlDhcpCl 7 }

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

RlDhcpClCommandEntry::= SEQUENCE {
    rlDhcpClCommandAction  INTEGER
}

rlDhcpClCommandAction OBJECT-TYPE
    SYNTAX          INTEGER {
                                none(0),
                                renew(1),
                                renewForceAutoconfig(2)
                            }
    MAX-ACCESS          read-write
    STATUS          current
    DESCRIPTION     "Action to apply. When the field is renew_force_autoconfig the meaning is that
                     every time when DHCP option 67 is received, the configuration is downloaded from DHCP server.
                     The default value is false."
    ::= { rlDhcpClCommandEntry 2 }

rlDhcpClConfigurationFileName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The configuration file name that loaded into the device.
        The filename is a relative path on the TFTP server, without the server IP address."
        DEFVAL{""}
    ::= { rlDhcpCl 8 }

rlDhcpClOption67Enable OBJECT-TYPE
    SYNTAX INTEGER{
       enable(1),
       disable(2)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Defines whether the configuration file can be downloaded from DHCP packet option 67."
    DEFVAL{ enable }
    ::= { rlDhcpCl 9 }

------------------------------
-- DHCP TFTP configuration
------------------------------
-- rlDhcpClManualTftpServerAddress --
rlDhcpClManualTftpServerAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Manually configured TFTP server IP Address."
    ::= { rlDhcpCl 10 }

-- rlDhcpClSelectedTftpServerAddress --
rlDhcpClSelectedTftpServerAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Currently selected TFTP server IP Address."
    ::= { rlDhcpCl 11 }

-- rlDhcpClSelectedTftpServerAddressOrigin --
rlDhcpClSelectedTftpServerAddressOrigin OBJECT-TYPE
    SYNTAX INTEGER{
       sname(1),
       option66(2),
       option150(3),
       option129(4),
       siaddr(5),
       manual(6),
       unknown(7),
       none(8)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Currently selected TFTP server IP Address's origin"
    ::= { rlDhcpCl 12 }

-- rlDhcpClManualConfigurationFileName --
rlDhcpClManualConfigurationFileName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The manually configured file name."
        DEFVAL{""}
    ::= { rlDhcpCl 13 }

-- rlDhcpClSelectedConfigurationFileName --
rlDhcpClSelectedConfigurationFileName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The selected configuration file name."
    ::= { rlDhcpCl 14 }

-- rlDhcpClSelectedConfigurationFileNameOrigin --
rlDhcpClSelectedConfigurationFileNameOrigin OBJECT-TYPE
    SYNTAX INTEGER{
       file(1),
       option67(2),
       manual(3),
       none(4),
       hostname(5),
       defaultConfigFile(6)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The selected configuration files name origin."
    ::= { rlDhcpCl 15 }

------------------------------
-- DHCP Client must be added by default
------------------------------

-- rlDhcpClEnabledByDefaultRemovedIfindex --

rlDhcpClEnabledByDefaultRemovedIfindex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "DHCP Client flag is relevant when host parameter dhcp_client_active_on_start is TRUE.
                 If the MIB has non zero value the meaning is that DHCP client has removed from configuration by the user
                 on the interface and signs to application not to add DHCP client entry. Otherwise (zero value) - the meaning is
                 that DHCP client entry must be added. "
    DEFVAL{ 0 }
    ::= { rlDhcpCl 16 }

----------------------------------------------
-- Auto-Update and Auto-Config MIB variables
----------------------------------------------

rlDhcpClAutoUpdateEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Setting this MIB value to True/False enables/disables DHCP
                 auto-update process in the device (through option 125)."
    ::= { rlDhcpCl 17 }

rlDhcpClAutoUpdateStatus OBJECT-TYPE
    SYNTAX INTEGER{
       noData(1),
       openingIndirectFile(2),
       downloadedIndirectFile(3),
       startDownloadImageFile(4),
       failedToDownloadImageFile(5),
       quitFileContentsLenZero(6),
       quitImageFileNameLenZero(7),
       quitVersionAlreadyUpdated(8),
       quitIndirectFileNotFound(9),
       quitImageFileNotFound(10),
       quitImageVersionNotSupported(11),
       quitNoTftpOutgoingInterface(12)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Describes the status of current/last DHCP auto-update process."
    ::= { rlDhcpCl 18 }

rlDhcpClAutoConfigForce OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Setting this MIB value to True will force DHCP auto-config process
                 after next reboot. This configuration will take effect only during
                 the time period between the next 2 reboots of the device (like
                 a deffered action)."
    ::= { rlDhcpCl 19 }

rlDhcpClAutoConfigAutoSave OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Setting this MIB value to True configures automatic saving of
                 running-cdb into startup-cdb, to be done at the end of successful
                 DHCP auto-config process to running-cdb."
    ::= { rlDhcpCl 20 }

rlDhcpClAutoConfigStatus OBJECT-TYPE
    SYNTAX INTEGER{
       noData(1),
       openingDhcpConfigFile(2),
       openingIndirectFile(3),
       searchingHostnameInIndirectFile(4),
       openingHostnameConfigFile(5),
       openingHostnameCfgFile(6),
       openingDefaultConfigFile(7),
       downloadingConfigFile(8),
       savingConfigInStartupCDB(9),
       quitDhcpFileNotGivenOrNotExists(10),
       quitFailedToFindAnyExistingConfigFile(11),
       quitConfigFileContentsLenZero(12),
       quitConfigFileDownloadFailed(13),
       quitConditionsForAutoConfigChanged(14),
       quitSelectedConfigFileNameUpdateFailed(15),
       quitSelectedConfigFileNameOriginUpdateFailed(16),
       quitSelectedTftpServerAddressUpdateFailed(17),
       quitSelectedTftpServerAddressOriginUpdateFailed(18),
       quitCopyRunningToStartupFailed(19),
       quitNoTftpOutgoingInterface(20),
       finishedSuccessfully(21)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Describes the status of current/last DHCP auto-config process."
    ::= { rlDhcpCl 21 }

END
