-- =====================================================================
-- Copyright (C) 2003 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: DHCP Relay MIB.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2005-4-11 created by wumingyu
-- V1.1 2006-01-10 modified by xuyufei
--      Add hh3cDHCPRConfigOption82IfTable
-- =====================================================================
HH3C-DHCPRELAY-MIB DEFINITIONS ::= BEGIN
        IMPORTS
                TruthValue, RowStatus, MacAddress
                        FROM SNMPv2-TC
                MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32
                        FROM SNMPv2-SMI
                ifIndex
                        FROM RFC1213-MIB
                InetAddress, InetAddressType
                        FROM INET-ADDRESS-MIB
                hh3cCommon
                        FROM HH3C-OID-MIB;

-- ==================================================================
--
-- module identity part
--
-- ==================================================================
        hh3cDhcpRelay MODULE-IDENTITY
                LAST-UPDATED
                        "200506080000Z"
                ORGANIZATION
                    "New H3C Tech. Co., Ltd."
                CONTACT-INFO
                    "Platform Team New H3C Tech. Co., Ltd.
                    Hai-Dian District Beijing P.R. China
                    http://www.h3c.com
                    Zip:100085
                    "
                DESCRIPTION "DHCPR MIB"
                REVISION
                        "200506080000Z"
                DESCRIPTION
                        "The initial version of this MIB module."
                ::= { hh3cCommon 58 }

-- ==================================================================
--
-- =====================object definition begin======================
--
-- ==================================================================
        hh3cDHCPRMibObject      OBJECT IDENTIFIER ::= { hh3cDhcpRelay 1 }

--hh3cDHCPRIfSelectTable--
        hh3cDHCPRIfSelectTable  OBJECT-TYPE
                SYNTAX      SEQUENCE OF Hh3cDHCPRIfSelectEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "A table for configuring relay mode
                            for interfaces.
                            "
                ::= { hh3cDHCPRMibObject 1 }

        hh3cDHCPRIfSelectEntry  OBJECT-TYPE
                SYNTAX      Hh3cDHCPRIfSelectEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry for configuring relay mode for an
                            interface.
                            "
                INDEX
                {
                        ifIndex
                }
                ::= { hh3cDHCPRIfSelectTable 1 }

        Hh3cDHCPRIfSelectEntry ::=
                SEQUENCE
                {
                        hh3cDHCPRIfSelectRelayMode INTEGER
                }

        hh3cDHCPRIfSelectRelayMode    OBJECT-TYPE
                SYNTAX      INTEGER
                {
                            on(1),
                            off(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If the value is on, the DHCP relay function
                            would be enabled on this interface.
                            "
                DEFVAL      { off }

                ::= { hh3cDHCPRIfSelectEntry 1 }

--hh3cDHCPRIpToGroupTable--
        hh3cDHCPRIpToGroupTable  OBJECT-TYPE
                SYNTAX      SEQUENCE OF Hh3cDHCPRIpToGroupEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "A table for configuring ip addresses for DHCP
                            server groups.
                            "
                ::= { hh3cDHCPRMibObject 2 }

        hh3cDHCPRIpToGroupEntry  OBJECT-TYPE
                SYNTAX      Hh3cDHCPRIpToGroupEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry for configuring ip addresses for a DHCP
                            server group.
                            "
                INDEX
                {
                        hh3cDHCPRIpToGroupGroupId,
                        hh3cDHCPRIpToGroupServerIpType,
                        hh3cDHCPRIpToGroupServerIp
                }
                ::= { hh3cDHCPRIpToGroupTable 1 }

        Hh3cDHCPRIpToGroupEntry ::=
                SEQUENCE
                {
                        hh3cDHCPRIpToGroupGroupId        Integer32,
                        hh3cDHCPRIpToGroupServerIpType   InetAddressType,
                        hh3cDHCPRIpToGroupServerIp       InetAddress,
                        hh3cDHCPRIpToGroupRowStatus      RowStatus
                }

        hh3cDHCPRIpToGroupGroupId    OBJECT-TYPE
                SYNTAX      Integer32 (0..19)
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "Group identifier of DHCP server group. "
                ::= { hh3cDHCPRIpToGroupEntry 1 }

        hh3cDHCPRIpToGroupServerIpType   OBJECT-TYPE
                SYNTAX      InetAddressType
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "Ip address type of DHCP server. "
                ::= { hh3cDHCPRIpToGroupEntry 2 }

        hh3cDHCPRIpToGroupServerIp   OBJECT-TYPE
                SYNTAX      InetAddress (SIZE (1..64))
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "Ip address of DHCP server. "
                ::= { hh3cDHCPRIpToGroupEntry 3 }

        hh3cDHCPRIpToGroupRowStatus  OBJECT-TYPE
                SYNTAX      RowStatus
                MAX-ACCESS  read-create
                STATUS      current
                DESCRIPTION
                        "Operation status of this table entry.
                        Three actions are used: active,
                        createAndGo, destroy.
                        "
                ::= { hh3cDHCPRIpToGroupEntry 4 }

--hh3cDHCPRIfToGroupTable--
        hh3cDHCPRIfToGroupTable      OBJECT-TYPE
                SYNTAX      SEQUENCE OF Hh3cDHCPRIfToGroupEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "A table for configuring DHCP server groups
                            for interfaces.
                            "
                ::= { hh3cDHCPRMibObject 3 }

        hh3cDHCPRIfToGroupEntry  OBJECT-TYPE
                SYNTAX      Hh3cDHCPRIfToGroupEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry for configuring DHCP server group for
                            an interface.
                            "
                INDEX
                {
                        ifIndex
                }
                ::= { hh3cDHCPRIfToGroupTable 1 }

        Hh3cDHCPRIfToGroupEntry  ::=
                SEQUENCE
                {
                        hh3cDHCPRIfToGroupGroupId        Integer32,
                        hh3cDHCPRIfToGroupRowStatus      RowStatus
                }

        hh3cDHCPRIfToGroupGroupId    OBJECT-TYPE
                SYNTAX      Integer32 (0..19)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The DHCP server group for this interface. "
                ::= { hh3cDHCPRIfToGroupEntry 1 }

        hh3cDHCPRIfToGroupRowStatus  OBJECT-TYPE
                SYNTAX      RowStatus
                MAX-ACCESS  read-create
                STATUS      current
                DESCRIPTION
                        "Operation status of this table entry.
                        Three actions are used: active,
                        createAndGo, destroy"
                ::= { hh3cDHCPRIfToGroupEntry 2 }

--hh3cDHCPRAddrCheckTable--
        hh3cDHCPRAddrCheckTable   OBJECT-TYPE
                SYNTAX      SEQUENCE OF Hh3cDHCPRAddrCheckEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION
                        "A table containing the states of dhcp security address
                        check switchs for interfaces.
                        "
                ::= { hh3cDHCPRMibObject 4 }

        hh3cDHCPRAddrCheckEntry   OBJECT-TYPE
                SYNTAX      Hh3cDHCPRAddrCheckEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION
                        "An entry containing the state of dhcp security address
                        check switch for an interface.
                        "
                INDEX
                {
                        ifIndex
                }
                ::= { hh3cDHCPRAddrCheckTable 1 }

        Hh3cDHCPRAddrCheckEntry   ::=
                SEQUENCE
                {
                        hh3cDHCPRAddrCheckSwitch  INTEGER
                }

        hh3cDHCPRAddrCheckSwitch  OBJECT-TYPE
                SYNTAX  INTEGER
                {
                        enabled(1),
                        disabled(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION
                        "The state of dhcp security address check switch for
                        this interface.
                        It has two defined values: enabled and disabled.
                        If the value is enabled, the address check function
                        would be enabled. The default value is disabled.
                        "
                DEFVAL      { disabled }
                ::= { hh3cDHCPRAddrCheckEntry 1 }

--hh3cDHCPRSecurityTable--
        hh3cDHCPRSecurityTable   OBJECT-TYPE
                SYNTAX      SEQUENCE OF Hh3cDHCPRSecurityEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "A table containing the information of
                            DHCP security.
                            "
                ::= { hh3cDHCPRMibObject 5 }

        hh3cDHCPRSecurityEntry  OBJECT-TYPE
                SYNTAX      Hh3cDHCPRSecurityEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry containing the information of
                            DHCP security.
                            "
                INDEX
                {
                        hh3cDHCPRSecurityClientIpAddrType,
                        hh3cDHCPRSecurityClientIpAddr
                }
                ::= { hh3cDHCPRSecurityTable 1 }

        Hh3cDHCPRSecurityEntry   ::=
                SEQUENCE
                {
                        hh3cDHCPRSecurityClientIpAddrType    InetAddressType,
                        hh3cDHCPRSecurityClientIpAddr    InetAddress,
                        hh3cDHCPRSecurityClientMacAddr    MacAddress,
                        hh3cDHCPRSecurityClientProperty     INTEGER,
                        hh3cDHCPRSecurityClientRowStatus     RowStatus
                }

        hh3cDHCPRSecurityClientIpAddrType OBJECT-TYPE
                SYNTAX      InetAddressType
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "DHCP client's net ip address type"
                ::= { hh3cDHCPRSecurityEntry 1 }

        hh3cDHCPRSecurityClientIpAddr     OBJECT-TYPE
                SYNTAX      InetAddress (SIZE (1..64))
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "DHCP client's net ip address"
                ::= { hh3cDHCPRSecurityEntry 2 }

        hh3cDHCPRSecurityClientMacAddr    OBJECT-TYPE
                SYNTAX      MacAddress
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "DHCP client's mac address"
                ::= { hh3cDHCPRSecurityEntry 3 }

        hh3cDHCPRSecurityClientProperty      OBJECT-TYPE
                SYNTAX  INTEGER
                {
                        static(1),
                        dynamic(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Property of client address"
                ::= { hh3cDHCPRSecurityEntry 4 }

        hh3cDHCPRSecurityClientRowStatus     OBJECT-TYPE
                SYNTAX      RowStatus
                MAX-ACCESS  read-create
                STATUS      current
                DESCRIPTION
                        "Operation status of this table entry.
                        Three actions are used: active,
                        createAndGo, destroy"
                ::= { hh3cDHCPRSecurityEntry 5 }

--hh3cDHCPRStatisticsGroup--
        hh3cDHCPRStatisticsGroup     OBJECT IDENTIFIER ::= { hh3cDHCPRMibObject 6 }

        hh3cDHCPRRxClientPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the packets received from DHCP
                        clients by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 1 }

        hh3cDHCPRTxClientPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the brodcast packets transmitted
                        to DHCP clients by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 2 }

        hh3cDHCPRRxServerPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the packets received from
                        DHCP Servers by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 3 }

        hh3cDHCPRTxServerPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the packets transmitted to
                        DHCP Servers by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 4 }

        hh3cDHCPRDiscoverPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Discover packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 5 }

        hh3cDHCPRRequestPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Request packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 6 }

        hh3cDHCPRDeclinePktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Decline packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 7 }

        hh3cDHCPRReleasePktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Release packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 8 }

        hh3cDHCPRInformPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Inform packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 9 }

        hh3cDHCPROfferPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Offer packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 10 }

        hh3cDHCPRAckPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Ack packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 11 }

        hh3cDHCPRNakPktNum OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The total number of the DHCP Nak packets handled
                        by DHCP relay.
                        "
                ::= { hh3cDHCPRStatisticsGroup 12 }

        hh3cDHCPRStatisticsReset     OBJECT-TYPE
                SYNTAX      TruthValue
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION
                        "This node only supports set operation.
                        If the value is true,it will clear all of the packet
                        statistics.
                        "
                ::= { hh3cDHCPRStatisticsGroup 13 }

--hh3cDHCPRCycleGroup--
        hh3cDHCPRCycleGroup  OBJECT IDENTIFIER ::= { hh3cDHCPRMibObject 7 }

        hh3cDHCPRCycleStatus OBJECT-TYPE
                SYNTAX INTEGER
                {
                        on(1),
                        off(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If the value is on, the cycle function
                            would be enabled.
                            "
                DEFVAL      { off }
                ::= { hh3cDHCPRCycleGroup 1 }

--hh3cDHCPRConfigOption82Group--
        hh3cDHCPRConfigOption82Group OBJECT IDENTIFIER ::= { hh3cDHCPRMibObject 8 }

        hh3cDHCPROption82Switch  OBJECT-TYPE
                SYNTAX INTEGER
                {
                        enabled(1),
                        disabled(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If the value is enabled,
                            DHCP relay supporting option 82 function
                            would be enabled.
                            "
                DEFVAL      { disabled }
                ::= { hh3cDHCPRConfigOption82Group 1 }

        hh3cDHCPROption82HandleStrategy  OBJECT-TYPE
                SYNTAX INTEGER
                {
                        drop(1),
                        keep(2),
                        replace(3)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The strategies of DHCP relay handling option 82.

                            'drop' indicates DHCP relay discarding the request
                            packet including option 82.

                            'keep' indicates DHCP relay accepting the request
                            packet without any change of the option 82.

                            'replace' indicates DHCP relay accepting the
                            request packet on condition that it generates a new
                            option 82 to replace the original one.
                            "
                DEFVAL      { replace }
                ::= { hh3cDHCPRConfigOption82Group 2 }

        hh3cDHCPRConfigOption82IfTable   OBJECT-TYPE
                SYNTAX      SEQUENCE OF Hh3cDHCPRConfigOption82IfEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "A table containing the information of DHCP
                            option 82.
                            This table depends on hh3cDHCPRIfToGroupTable.
                            An entry of this table will be created when
                            an entry of hh3cDHCPRIfToGroupTable is created.
                            "
                ::= { hh3cDHCPRConfigOption82Group 3 }

        hh3cDHCPRConfigOption82IfEntry  OBJECT-TYPE
                SYNTAX      Hh3cDHCPRConfigOption82IfEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry containing the information of
                            DHCP option 82.
                            "
                INDEX
                {
                        ifIndex
                }
                ::= { hh3cDHCPRConfigOption82IfTable 1 }

        Hh3cDHCPRConfigOption82IfEntry   ::=
                SEQUENCE
                {
                        hh3cDHCPROption82IfSwitch    INTEGER,
                        hh3cDHCPROption82IfStrategy    INTEGER,
                        hh3cDHCPROption82IfFormat    INTEGER,
                        hh3cDHCPROption82IfNodeType     INTEGER,
                        hh3cDHCPROption82IfUsrDefString     OCTET STRING
                }

        hh3cDHCPROption82IfSwitch OBJECT-TYPE
                SYNTAX      INTEGER
                {
                        enabled(1),
                        disabled(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "If DHCP relay supports option 82 functions, the
                            value is 'enabled'.
                            If DHCP relay does not support option 82 functions,
                            the value is 'disabled'.
                            "
                DEFVAL      { disabled }
                ::= { hh3cDHCPRConfigOption82IfEntry 1 }

        hh3cDHCPROption82IfStrategy     OBJECT-TYPE
                SYNTAX      INTEGER
                {
                        drop(1),
                        keep(2),
                        replace(3)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The strategies of DHCP relay handling option 82.

                            'drop' indicates DHCP relay discarding the request
                            packet including option 82.

                            'keep' indicates DHCP relay accepting the request
                            packet without any change of the option 82.

                            'replace' indicates DHCP relay accepting the
                            request packet on condition that it generates a new
                            option 82 to replace the original one.
                            "
                DEFVAL      { replace }
                ::= { hh3cDHCPRConfigOption82IfEntry 2 }

        hh3cDHCPROption82IfFormat    OBJECT-TYPE
                SYNTAX      INTEGER
                {
                        normal(1),
                        verbose(2)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The format of DHCP relay option 82.

                            'normal' is the standard format.

                            'verbose' is the detailed format.
                            "
                DEFVAL      { normal }
                ::= { hh3cDHCPRConfigOption82IfEntry 3 }

        hh3cDHCPROption82IfNodeType      OBJECT-TYPE
                SYNTAX  INTEGER
                {
                        invalid(1),
                        mac(2),
                        sysname(3),
                        userdefine(4)
                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Property of DHCP relay option 82 verbose format.
                            The value can be set by user only when the value
                            of hh3cDHCPROption82IfFormat is set with 'verbose'.

                            If the value of hh3cDHCPROption82IfFormat is
                            'normal', the value is automatically set with
                            'invalid'. the value can not be set with 'invalid'
                            by user.

                            'mac' indicates the option 82 verbose format is
                            filled in with the mac of DHCP relay input
                            interface. If the value of hh3cDHCPROption82IfFormat
                            is set with 'verbose', the value is automatically
                            set with 'mac'.

                            'sysname' indicates the option 82 verbose format
                            is filled in with the name of the DHCP relay.

                            'userdefine' indicates the option 82 verbose format
                            is filled in with the string defined by user.
                            If the value is set with 'userdefine', the value of
                            hh3cDHCPROption82IfUsrDefString must be set
                            simultaneously.
                            "
                DEFVAL      { invalid }
                ::= { hh3cDHCPRConfigOption82IfEntry 4 }

        hh3cDHCPROption82IfUsrDefString      OBJECT-TYPE
                SYNTAX      OCTET STRING (SIZE (0..256))
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "The string defined by user to fill in the
                            option 82 verbose format. If the value of
                            hh3cDHCPROption82IfFormat is 'normal', or the
                            value of hh3cDHCPROption82IfNodeType is 'mac'
                            or 'sysname', it is set with a null string
                            automatically and can not be modified by user.
                            It must be set with a non-zero length string
                            when the value of hh3cDHCPROption82IfNodeType
                            is set with 'userdefine'.
                            "
                ::= { hh3cDHCPRConfigOption82IfEntry 5 }
END
