-- =====================================================================
-- Copyright (C) 2003 by H3C TECHNOLOGIES. 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 h3cDHCPRConfigOption82IfTable
-- =====================================================================
H3C-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
                h3cCommon
                        FROM HUAWEI-3COM-OID-MIB;

-- ==================================================================
--
-- module identity part
--
-- ==================================================================
        h3cDhcpRelay MODULE-IDENTITY
                LAST-UPDATED
                        "200506080000Z"
                ORGANIZATION
                    "Hangzhou H3C Tech. Co., Ltd."
                CONTACT-INFO
                    "Platform Team Hangzhou 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."
                ::= { h3cCommon 58 }

-- ==================================================================
--
-- =====================object definition begin======================
--
-- ==================================================================
        h3cDHCPRMibObject      OBJECT IDENTIFIER ::= { h3cDhcpRelay 1 }

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

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

        H3cDHCPRIfSelectEntry ::=
                SEQUENCE
                {
                        h3cDHCPRIfSelectRelayMode INTEGER
                }

        h3cDHCPRIfSelectRelayMode    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 }

                ::= { h3cDHCPRIfSelectEntry 1 }

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

        h3cDHCPRIpToGroupEntry  OBJECT-TYPE
                SYNTAX      H3cDHCPRIpToGroupEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry for configuring ip addresses for a DHCP
                            server group.
                            "
                INDEX
                {
                        h3cDHCPRIpToGroupGroupId,
                        h3cDHCPRIpToGroupServerIpType,
                        h3cDHCPRIpToGroupServerIp
                }
                ::= { h3cDHCPRIpToGroupTable 1 }

        H3cDHCPRIpToGroupEntry ::=
                SEQUENCE
                {
                        h3cDHCPRIpToGroupGroupId        Integer32,
                        h3cDHCPRIpToGroupServerIpType   InetAddressType,
                        h3cDHCPRIpToGroupServerIp       InetAddress,
                        h3cDHCPRIpToGroupRowStatus      RowStatus
                }

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

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

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

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

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

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

        H3cDHCPRIfToGroupEntry  ::=
                SEQUENCE
                {
                        h3cDHCPRIfToGroupGroupId        Integer32,
                        h3cDHCPRIfToGroupRowStatus      RowStatus
                }

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

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

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

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

        H3cDHCPRAddrCheckEntry   ::=
                SEQUENCE
                {
                        h3cDHCPRAddrCheckSwitch  INTEGER
                }

        h3cDHCPRAddrCheckSwitch  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 }
                ::= { h3cDHCPRAddrCheckEntry 1 }

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

        h3cDHCPRSecurityEntry  OBJECT-TYPE
                SYNTAX      H3cDHCPRSecurityEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry containing the information of
                            DHCP security.
                            "
                INDEX
                {
                        h3cDHCPRSecurityClientIpAddrType,
                        h3cDHCPRSecurityClientIpAddr
                }
                ::= { h3cDHCPRSecurityTable 1 }

        H3cDHCPRSecurityEntry   ::=
                SEQUENCE
                {
                        h3cDHCPRSecurityClientIpAddrType    InetAddressType,
                        h3cDHCPRSecurityClientIpAddr    InetAddress,
                        h3cDHCPRSecurityClientMacAddr    MacAddress,
                        h3cDHCPRSecurityClientProperty     INTEGER,
                        h3cDHCPRSecurityClientRowStatus     RowStatus
                }

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

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

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

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

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

--h3cDHCPRStatisticsGroup--
        h3cDHCPRStatisticsGroup     OBJECT IDENTIFIER ::= { h3cDHCPRMibObject 6 }

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

        h3cDHCPRTxClientPktNum 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.
                        "
                ::= { h3cDHCPRStatisticsGroup 2 }

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

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

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

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

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

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

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

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

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

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

        h3cDHCPRStatisticsReset     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.
                        "
                ::= { h3cDHCPRStatisticsGroup 13 }

--h3cDHCPRCycleGroup--
        h3cDHCPRCycleGroup  OBJECT IDENTIFIER ::= { h3cDHCPRMibObject 7 }

        h3cDHCPRCycleStatus 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 }
                ::= { h3cDHCPRCycleGroup 1 }

--h3cDHCPRConfigOption82Group--
        h3cDHCPRConfigOption82Group OBJECT IDENTIFIER ::= { h3cDHCPRMibObject 8 }

        h3cDHCPROption82Switch  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 }
                ::= { h3cDHCPRConfigOption82Group 1 }

        h3cDHCPROption82HandleStrategy  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 }
                ::= { h3cDHCPRConfigOption82Group 2 }

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

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

        H3cDHCPRConfigOption82IfEntry   ::=
                SEQUENCE
                {
                        h3cDHCPROption82IfSwitch    INTEGER,
                        h3cDHCPROption82IfStrategy    INTEGER,
                        h3cDHCPROption82IfFormat    INTEGER,
                        h3cDHCPROption82IfNodeType     INTEGER,
                        h3cDHCPROption82IfUsrDefString     OCTET STRING
                }

        h3cDHCPROption82IfSwitch 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 }
                ::= { h3cDHCPRConfigOption82IfEntry 1 }

        h3cDHCPROption82IfStrategy     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 }
                ::= { h3cDHCPRConfigOption82IfEntry 2 }

        h3cDHCPROption82IfFormat    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 }
                ::= { h3cDHCPRConfigOption82IfEntry 3 }

        h3cDHCPROption82IfNodeType      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 h3cDHCPROption82IfFormat is set with 'verbose'.

                            If the value of h3cDHCPROption82IfFormat 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 h3cDHCPROption82IfFormat
                            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
                            h3cDHCPROption82IfUsrDefString must be set
                            simultaneously.
                            "
                DEFVAL      { invalid }
                ::= { h3cDHCPRConfigOption82IfEntry 4 }

        h3cDHCPROption82IfUsrDefString      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
                            h3cDHCPROption82IfFormat is 'normal', or the
                            value of h3cDHCPROption82IfNodeType 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 h3cDHCPROption82IfNodeType
                            is set with 'userdefine'.
                            "
                ::= { h3cDHCPRConfigOption82IfEntry 5 }
END
