--******************************************************************************
--Copyright (C) 2012 Aricent Inc . All Rights Reserved
--
--$Id: fsmidhcpRelay.mib,v 1.1 2015/06/17 04:55:23 siva Exp $
--
--Description : This file contains MIB definitions for ISS module.
--
--******************************************************************************

-- AricentISS MIB Definition

-- MIB for 'DHCP Relay MI MIB'


ARICENT-DHCP-RLY-MI-MIB DEFINITIONS ::= BEGIN

IMPORTS
Unsigned32, MODULE-IDENTITY, OBJECT-TYPE, IpAddress, 
Counter32, Integer32,enterprises           FROM SNMPv2-SMI
RowStatus,DisplayString                    FROM SNMPv2-TC
ifIndex                                    FROM IF-MIB;

futureMIDhcpRelay MODULE-IDENTITY
LAST-UPDATED "20141028000Z"
ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE"
CONTACT-INFO

"ARICENT COMMUNICATIONS SOFTWARE
3460 Hillview Avenue,
Palo Alto, CA 94304-1388, USA,
Phone : +1-650-391-1088
E-mail:support@aricent.com"

DESCRIPTION
"The enterprise ID 29601 is assigned to Aricent Communication
Holdings Limitied."
REVISION "20141028000Z"

DESCRIPTION
"The Dhcp MI Relay agent MIB "
::= { enterprises aricent-communication-holding-ltd(29601) iss(2) 92 }

-- ----------------------------------------------------------------- --
-- groups in the MIB
-- ----------------------------------------------------------------- --
 
fsMIDhcpRelay        OBJECT IDENTIFIER ::= { futureMIDhcpRelay 1 }
fsMIDhcpRelayTable        OBJECT IDENTIFIER ::= { futureMIDhcpRelay 2 }


--SCALAR_TABLE_BEGIN

fsMIDhcpConfigGblTraceLevel OBJECT-TYPE
       SYNTAX      Integer32 (0..255) 
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The Global trace level Object which has bit masks for 
		various levels of tracing "
        DEFVAL { 1 }
       ::= { fsMIDhcpRelay 1 }


--SCALAR_TABLE_END

-- ******************* DHCP RELAY MI Configuration ********************

-- *************Context table for DHCP Relay MI support ***************

fsMIDhcpContextTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsMIDhcpContextEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
    "This context table contains the global parameters of DHCP Relay 
    that is required to be configured for each context."
    ::= { fsMIDhcpRelayTable 1 }

fsMIDhcpContextEntry OBJECT-TYPE
    SYNTAX     FsMIDhcpContextEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
    "An Entry for the configuration in a particular VR."
    INDEX { fsMIDhcpContextId } 
    ::= { fsMIDhcpContextTable 1 }


FsMIDhcpContextEntry ::= SEQUENCE {
                      fsMIDhcpContextId				    Integer32,
                      fsMIDhcpRelaying			            INTEGER,
                      fsMIDhcpRelayServersOnly			    INTEGER,
                      fsMIDhcpRelaySecsThreshold		    INTEGER,
                      fsMIDhcpRelayHopsThreshold                    Integer32,
                      fsMIDhcpRelayRAIOptionControl		    INTEGER,
                      fsMIDhcpRelayRAICircuitIDSubOptionControl	    INTEGER,			        
                      fsMIDhcpRelayRAIRemoteIDSubOptionControl	    INTEGER,		        
                      fsMIDhcpRelayRAISubnetMaskSubOptionControl    INTEGER,
                      fsMIDhcpRelayRAIOptionInserted		    Counter32,
                      fsMIDhcpRelayRAICircuitIDSubOptionInserted    Counter32,
                      fsMIDhcpRelayRAIRemoteIDSubOptionInserted     Counter32,
                      fsMIDhcpRelayRAISubnetMaskSubOptionInserted   Counter32,
                      fsMIDhcpRelayRAIOptionWronglySet		    Counter32,
                      fsMIDhcpRelayRAISpaceConstraint		    Counter32,
                      fsMIDhcpConfigTraceLevel                      Integer32,
                      fsMIDhcpConfigDhcpCircuitOption               BITS,
                      fsMIDhcpRelayCounterReset                     INTEGER,
                      fsMIDhcpRelayContextRowStatus    		    RowStatus                    
                      }

fsMIDhcpContextId OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
    "The index value that uniquely identifies the virtual router in which the configuration is done."
    ::= { fsMIDhcpContextEntry 1 }

fsMIDhcpRelaying OBJECT-TYPE
    SYNTAX  INTEGER {
                    enable (1),
                    disable (2) 
                    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
	"Only when enabled, the Relay Agent shall become active."
    DEFVAL { disable }
    ::= { fsMIDhcpContextEntry 2 }

fsMIDhcpRelayServersOnly OBJECT-TYPE
    SYNTAX  INTEGER {
                    enable (1),
                    disable (2) 
                    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "When enabled, the Relay Agent shall forward the
    packets from the client to a specific DHCP server."
    DEFVAL { disable }
    ::= { fsMIDhcpContextEntry 3 }

fsMIDhcpRelaySecsThreshold OBJECT-TYPE
    SYNTAX  Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "IF the secs field in the DHCP message is greater than the 
    fsMIDhcpRelaySecsThreshold, Packet get dropped at the Relay Agent"
    DEFVAL { 0 }
    ::= { fsMIDhcpContextEntry 4 }

fsMIDhcpRelayHopsThreshold OBJECT-TYPE
    SYNTAX  Integer32 (0..16)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "A maximum hop count,a relay agent allow to pass through it.If
    the HopCount in the Dhcp Message is greater than the fsMIDhcpRelayHopsThreshold,
    Packet get dropped at the Relay Agent "
    DEFVAL { 4 }
    ::= { fsMIDhcpContextEntry 5 }

fsMIDhcpRelayRAIOptionControl OBJECT-TYPE
    SYNTAX  INTEGER {
                    enable (1),
                    disable (2) 
                    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "Only when enabled, the Relay Agent shall do any processing
    related to Relay Agent Information Options - like
    inserting the necessary options while relaying a packet
    from a client to a server and examining/stripping of
    options when relaying a packet from a server to a
    client."
    DEFVAL { disable }
    ::= { fsMIDhcpContextEntry 6 }

fsMIDhcpRelayRAICircuitIDSubOptionControl OBJECT-TYPE
    SYNTAX  INTEGER {
                    enable (1),
                    disable (2) 
                    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "When enabled, if the RAIOption is globally enabled, 
    then the Relay Agent shall insert the CircuitID sub-option,
    when necessary, while relaying packets from a client 
    to server and also examines/strips off this sub-option
    while relaying packets from a server to a client."
    DEFVAL { disable }
    ::= { fsMIDhcpContextEntry 7 }

fsMIDhcpRelayRAIRemoteIDSubOptionControl OBJECT-TYPE
    SYNTAX  INTEGER {
                    enable (1),
                    disable (2) 
                    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "When enabled, if the RAIOption is globally enabled, 
    then the Relay Agent shall insert the RemoteID sub-option,
    when necessary, while relaying packets from a client 
    to server and also examines/strips off this sub-option
    while relaying packets from a server to a client."
    DEFVAL { disable }
    ::= { fsMIDhcpContextEntry 8 }

fsMIDhcpRelayRAISubnetMaskSubOptionControl OBJECT-TYPE
    SYNTAX  INTEGER {
                    enable (1),
                    disable (2) 
                    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
    "When enabled, if the RAIOption is globally enabled, 
    then the Relay Agent shall insert the Subnet Mask sub-option,
    when necessary, while relaying packets from a client 
    to server and also examines/strips off this sub-option
    while relaying packets from a server to a client."
    DEFVAL { disable }
    ::= { fsMIDhcpContextEntry 9 }

fsMIDhcpRelayRAIOptionInserted OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Number of packets in which the RelayAgent inserted
    the RAIOption."
    ::= { fsMIDhcpContextEntry 10 }

fsMIDhcpRelayRAICircuitIDSubOptionInserted OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Number of packets in which the RelayAgent inserted
    the CircuitID SubOption."
    ::= { fsMIDhcpContextEntry 11 }

fsMIDhcpRelayRAIRemoteIDSubOptionInserted OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Number of packets in which the RelayAgent inserted
    the RemoteID SubOption."
    ::= { fsMIDhcpContextEntry 12 }

fsMIDhcpRelayRAISubnetMaskSubOptionInserted OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Number of packets in which the RelayAgent inserted
    the SubnetMask SubOption."
    ::= { fsMIDhcpContextEntry 13 }

fsMIDhcpRelayRAIOptionWronglySet OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Number of packets dropped by the Relay Agent because the giaddr 
    field is not set but the RAI option exists in the packet."
    ::= { fsMIDhcpContextEntry 14 }

fsMIDhcpRelayRAISpaceConstraint OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Number of packets in which the RAI Option wasnot inserted
    by the Relay Agent because if inserted the packetsize shall 
    exceed the MTU."
    ::= { fsMIDhcpContextEntry 15 }

fsMIDhcpConfigTraceLevel OBJECT-TYPE
    SYNTAX      Integer32 (0..255) 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
    "The Trace level Object which has bit masks for 
    various levels of tracing "
    DEFVAL { 1 }
    ::= { fsMIDhcpContextEntry 16 }

fsMIDhcpConfigDhcpCircuitOption OBJECT-TYPE
    SYNTAX       BITS {
                      routerindex(0),      -- Router Interfce Index
                      vlanid(1),           -- vlanId 
                      recvport(2)          -- port or lag port
                      }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
    "This Object defines the type of information to be present in circuit id 
    sub-option.And this option can specfied  only if 
    CircuitIDSubOptionControl is enabled.It is possible to set more than 
    one bit at a time.Currently first three bits are used and remaning bits
 	are reserved for future purpose.Default value for this option is
 	routerindex(00000001)." 
    DEFVAL { 1 }
    ::= { fsMIDhcpContextEntry 17 }

fsMIDhcpRelayCounterReset OBJECT-TYPE 
	SYNTAX		INTEGER {
                		set (1),
                		notset (2)
	                    }
	MAX-ACCESS	read-write 
	STATUS		current 
	DESCRIPTION 
	"This object is used to reset the statistics counters.
	When set to set(1), statistics counters will be cleared. When set 
    to notset(2), no action will take place. " 
    DEFVAL { notset }
	::= { fsMIDhcpContextEntry 18 } 

fsMIDhcpRelayContextRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
    "Row status of this table"
    ::=  { fsMIDhcpContextEntry 19 }


-- ********************End of Context Table********************************

-- ***********************IPADDRESS_TABLE_BEGIN ***************************
        
fsMIDhcpRelaySrvAddressTable   OBJECT-TYPE 
    SYNTAX SEQUENCE OF FsMIDhcpRelaySrvAddressEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION 
    "This table contains the IP addresses of the DHCP Server 
    to which the Relay Agent needs to forward the packets from 
    the client. This object becomes active only when 
    dhcpRelayServersOnly is enabled."
    ::= { fsMIDhcpRelayTable 2 }

fsMIDhcpRelaySrvAddressEntry OBJECT-TYPE 
    SYNTAX FsMIDhcpRelaySrvAddressEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION 
            " "
    INDEX { 
            fsMIDhcpContextId,
            fsMIDhcpRelaySrvIpAddress 
          }
    ::= { fsMIDhcpRelaySrvAddressTable 1 }


FsMIDhcpRelaySrvAddressEntry ::= SEQUENCE {
                              fsMIDhcpRelaySrvIpAddress            IpAddress,
                              fsMIDhcpRelaySrvAddressRowStatus     RowStatus
                              }

fsMIDhcpRelaySrvIpAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS not-accessible
    STATUS current 
    DESCRIPTION
    "The IP Address of the DHCP server."
    ::=  { fsMIDhcpRelaySrvAddressEntry 1 }  


fsMIDhcpRelaySrvAddressRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current 
    DESCRIPTION
    "RowStatus of this entry."
    ::=  { fsMIDhcpRelaySrvAddressEntry 2 }  


--****************** IPADDRESS_TABLE_END *******************************

--******************** INTERFACE_TABLE_BEGIN ***************************

fsMIDhcpRelayIfTable   OBJECT-TYPE
    SYNTAX SEQUENCE OF FsMIDhcpRelayIfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "This table holds the circuit id SubOption configured over the
    interface.This option will be inserted for dhcp request packets 
    received on this interface based on the status of 
    fsMIDhcpRelayRAICircuitIDSubOptionControl.Using this table,the dhcp 
    broadcast response is sent on the appropriate interface over which 
    the broadcast dhcp request was received."
    ::= { fsMIDhcpRelayTable 3 }

fsMIDhcpRelayIfEntry OBJECT-TYPE
    SYNTAX FsMIDhcpRelayIfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "Contains configured dhcp relay information suboptions"  
    INDEX { 
            fsMIDhcpContextId,
            ifIndex 
          }
    ::= { fsMIDhcpRelayIfTable 1 }

FsMIDhcpRelayIfEntry ::= SEQUENCE {
                      fsMIDhcpRelayIfCircuitId    Unsigned32,
                      fsMIDhcpRelayIfRemoteId     DisplayString,
                      fsMIDhcpRelayIfRowStatus    RowStatus                    
                      }

fsMIDhcpRelayIfCircuitId OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
    "Circuit Id value configured over this interface.Configuring 
    with zero value will reset the circuit id configuration for this  
    interface.Circuit id will be inserted to dhcp request packet received 
    on this interface if fsMIDhcpRelayRAICircuitIDSubOptionControl is enabled.
    Current implementation restricts circuit-id to interface indices alone"
    ::=  { fsMIDhcpRelayIfEntry 1 }

fsMIDhcpRelayIfRemoteId OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
    "Remote Id value configured over this interface.String of length zero
    will reset the configuration.Value other than XYZ (which is the 
    considered as default value internally) can be configured for this
    object.Configuring with <MGMT_IP_ADDR> string will replace the 
	remote Id with Default VLAN IP address and configuring with 
	<SYS_NAME> will replace the remote_id with System_name. 
	Remote ID will be inserted to dhcp request packet received
    on this interface if fsMIDhcpRelayRAIRemoteIDSubOptionControl is enabled"
    ::=  { fsMIDhcpRelayIfEntry 2 }

fsMIDhcpRelayIfRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
    "Row status of this table"
    ::=  { fsMIDhcpRelayIfEntry 3 }

-- ************ END OF INTERFACE TABLE *********************************

END

-- *************** END OF DHCP RELAY MI MIB ****************************
