-- =====================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- 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 hpnicfDHCPRConfigOption82IfTable
-- =====================================================================
HPN-ICF-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
                hpnicfCommon
                        FROM HPN-ICF-OID-MIB;

-- ==================================================================
--
-- module identity part
--
-- ==================================================================
        hpnicfDhcpRelay MODULE-IDENTITY
                LAST-UPDATED
                        "200506080000Z"
                ORGANIZATION
                    ""
                CONTACT-INFO
                    ""
                DESCRIPTION "DHCPR MIB"
                REVISION
                        "200506080000Z"
                DESCRIPTION
                        "The initial version of this MIB module."
                ::= { hpnicfCommon 58 }

-- ==================================================================
--
-- =====================object definition begin======================
--
-- ==================================================================
        hpnicfDHCPRMibObject      OBJECT IDENTIFIER ::= { hpnicfDhcpRelay 1 }

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

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

        HpnicfDHCPRIfSelectEntry ::=
                SEQUENCE
                {
                        hpnicfDHCPRIfSelectRelayMode INTEGER
                }

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

                ::= { hpnicfDHCPRIfSelectEntry 1 }

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

        hpnicfDHCPRIpToGroupEntry  OBJECT-TYPE
                SYNTAX      HpnicfDHCPRIpToGroupEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry for configuring ip addresses for a DHCP
                            server group.
                            "
                INDEX
                {
                        hpnicfDHCPRIpToGroupGroupId,
                        hpnicfDHCPRIpToGroupServerIpType,
                        hpnicfDHCPRIpToGroupServerIp
                }
                ::= { hpnicfDHCPRIpToGroupTable 1 }

        HpnicfDHCPRIpToGroupEntry ::=
                SEQUENCE
                {
                        hpnicfDHCPRIpToGroupGroupId        Integer32,
                        hpnicfDHCPRIpToGroupServerIpType   InetAddressType,
                        hpnicfDHCPRIpToGroupServerIp       InetAddress,
                        hpnicfDHCPRIpToGroupRowStatus      RowStatus
                }

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

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

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

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

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

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

        HpnicfDHCPRIfToGroupEntry  ::=
                SEQUENCE
                {
                        hpnicfDHCPRIfToGroupGroupId        Integer32,
                        hpnicfDHCPRIfToGroupRowStatus      RowStatus
                }

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

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

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

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

        HpnicfDHCPRAddrCheckEntry   ::=
                SEQUENCE
                {
                        hpnicfDHCPRAddrCheckSwitch  INTEGER
                }

        hpnicfDHCPRAddrCheckSwitch  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 }
                ::= { hpnicfDHCPRAddrCheckEntry 1 }

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

        hpnicfDHCPRSecurityEntry  OBJECT-TYPE
                SYNTAX      HpnicfDHCPRSecurityEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION "An entry containing the information of
                            DHCP security.
                            "
                INDEX
                {
                        hpnicfDHCPRSecurityClientIpAddrType,
                        hpnicfDHCPRSecurityClientIpAddr
                }
                ::= { hpnicfDHCPRSecurityTable 1 }

        HpnicfDHCPRSecurityEntry   ::=
                SEQUENCE
                {
                        hpnicfDHCPRSecurityClientIpAddrType    InetAddressType,
                        hpnicfDHCPRSecurityClientIpAddr    InetAddress,
                        hpnicfDHCPRSecurityClientMacAddr    MacAddress,
                        hpnicfDHCPRSecurityClientProperty     INTEGER,
                        hpnicfDHCPRSecurityClientRowStatus     RowStatus
                }

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

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

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

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

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

--hpnicfDHCPRStatisticsGroup--
        hpnicfDHCPRStatisticsGroup     OBJECT IDENTIFIER ::= { hpnicfDHCPRMibObject 6 }

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

        hpnicfDHCPRTxClientPktNum 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.
                        "
                ::= { hpnicfDHCPRStatisticsGroup 2 }

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

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

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

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

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

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

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

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

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

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

        hpnicfDHCPRStatisticsReset     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.
                        "
                ::= { hpnicfDHCPRStatisticsGroup 13 }

--hpnicfDHCPRCycleGroup--
        hpnicfDHCPRCycleGroup  OBJECT IDENTIFIER ::= { hpnicfDHCPRMibObject 7 }

        hpnicfDHCPRCycleStatus 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 }
                ::= { hpnicfDHCPRCycleGroup 1 }

--hpnicfDHCPRConfigOption82Group--
        hpnicfDHCPRConfigOption82Group OBJECT IDENTIFIER ::= { hpnicfDHCPRMibObject 8 }

        hpnicfDHCPROption82Switch  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 }
                ::= { hpnicfDHCPRConfigOption82Group 1 }

        hpnicfDHCPROption82HandleStrategy  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 }
                ::= { hpnicfDHCPRConfigOption82Group 2 }

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

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

        HpnicfDHCPRConfigOption82IfEntry   ::=
                SEQUENCE
                {
                        hpnicfDHCPROption82IfSwitch    INTEGER,
                        hpnicfDHCPROption82IfStrategy    INTEGER,
                        hpnicfDHCPROption82IfFormat    INTEGER,
                        hpnicfDHCPROption82IfNodeType     INTEGER,
                        hpnicfDHCPROption82IfUsrDefString     OCTET STRING
                }

        hpnicfDHCPROption82IfSwitch 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 }
                ::= { hpnicfDHCPRConfigOption82IfEntry 1 }

        hpnicfDHCPROption82IfStrategy     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 }
                ::= { hpnicfDHCPRConfigOption82IfEntry 2 }

        hpnicfDHCPROption82IfFormat    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 }
                ::= { hpnicfDHCPRConfigOption82IfEntry 3 }

        hpnicfDHCPROption82IfNodeType      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 hpnicfDHCPROption82IfFormat is set with 'verbose'.

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

        hpnicfDHCPROption82IfUsrDefString      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
                            hpnicfDHCPROption82IfFormat is 'normal', or the
                            value of hpnicfDHCPROption82IfNodeType 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 hpnicfDHCPROption82IfNodeType
                            is set with 'userdefine'.
                            "
                ::= { hpnicfDHCPRConfigOption82IfEntry 5 }
END
