-- Copyright (C) 2016 Hewlett Packard Enterprise Development LP.

-- **************************************************************************
-- The contents of this software are proprietary and confidential to the
-- Hewlett-Packard Development Company, L.P.  No part of this program may be
-- photocopied, reproduced, or translated into another programming language
-- without prior written consent of the Hewlett-Packard Enterprise 
-- Development Co., L.P.
-- **************************************************************************

HP-ICF-SRCIP-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        hpicfCommon
            FROM HP-ICF-OID
        InetAddress, InetAddressType
            FROM INET-ADDRESS-MIB
        InterfaceIndexOrZero
            FROM IF-MIB            
        OBJECT-TYPE, MODULE-IDENTITY
            FROM SNMPv2-SMI
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF;


-- **********************************************************************
-- Module information
-- **********************************************************************

    -- 1.3.6.1.4.1.11.2.14.11.1.13
    hpicfSrcIpMIB MODULE-IDENTITY
        LAST-UPDATED "202006200000Z"  -- June 20, 2020 at 00:00 GMT
        ORGANIZATION "HP Networking"
        CONTACT-INFO "Hewlett Packard Company
                      8000 Foothills Blvd.
                      Roseville, CA 95747"
        DESCRIPTION  "This MIB module contains the definitions of
                      HP proprietary Managed Objects used for managing
                      HP Routing switches with implemented source IP 
                      address administrative control."

        REVISION     "202006200000Z"  -- June 20, 2020 at 00:00 GMT
        DESCRIPTION  "Added 'central' to 'hpicfSrcIpProtocolIndex' values."
        
        REVISION     "201608290000Z"  -- August 29, 2016 at 00:00 GMT
        DESCRIPTION  "Added 'tunnelednodeserver' to
                      'hpicfSrcIpProtocolIndex' values."

        REVISION     "201107210000Z"  -- July 21, 2011 at 00:00 GMT
        DESCRIPTION  "Added 'sflow' to
                      'hpicfSrcIpProtocolIndex' values."

        REVISION     "200904300000Z"  -- April 30, 2009 at 00:00 GMT
        DESCRIPTION  "Added 'telnet', 'tftp', 'sntp' to
                      'hpicfSrcIpProtocolIndex' values."

        REVISION     "200810100000Z"  -- October 10, 2008 at 00:00 GMT
        DESCRIPTION  "Initial version."
        ::= { hpicfCommon 13 }


-- **********************************************************************
-- Node definitions
-- **********************************************************************

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1
    hpicfSrcIpConfig OBJECT IDENTIFIER ::= { hpicfSrcIpMIB 1 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1
    hpicfSrcIpAddrPolicyTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpicfSrcIpAddrPolicyEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table of entries used to configure the policy for
                    selecting source IP address for different application
                    protocols while transmitting the protocol specific IP
                    packets. When the entry is configured the outgoing IP
                    packets generated by the corresponding application
                    protocol will have the source IP address field modified
                    based on the configured policy option."
        ::= { hpicfSrcIpConfig 1 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1.1
    hpicfSrcIpAddrPolicyEntry OBJECT-TYPE
        SYNTAX      HpicfSrcIpAddrPolicyEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the 'hpicfSrcIpAddrPolicyTable' containing
                    information about a source IP address selection policy."
        INDEX { hpicfSrcIpAddressType, hpicfSrcIpProtocolIndex }
        ::= { hpicfSrcIpAddrPolicyTable 1 }

    HpicfSrcIpAddrPolicyEntry ::=
        SEQUENCE {
            hpicfSrcIpAddressType    InetAddressType,
            hpicfSrcIpProtocolIndex  INTEGER,
            hpicfSrcIpAddrPolicy     INTEGER,
            hpicfSrcIpAddrIfIndex    InterfaceIndexOrZero,
            hpicfSrcIpAddress        InetAddress
        }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1.1.1
    hpicfSrcIpAddressType OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Type of IP address. The only values expected are ipv4 
                    or ipv6."
        ::= { hpicfSrcIpAddrPolicyEntry 1 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1.1.2
    hpicfSrcIpProtocolIndex OBJECT-TYPE
        SYNTAX      INTEGER {
                        tacacs(1),
                        radius(2),
                        syslog(3),
                        telnet(4),
                        tftp(5),
                        sntp(6),
                        sflow(7),
                        tunnelednodeserver(8),
                        radsec(9),
                        central(10)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The application protocol index value which uniquely
                    identifies a row in the 'hpicfSrcIpAddrPolicyTable'."
        ::= { hpicfSrcIpAddrPolicyEntry 2 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1.1.3
    hpicfSrcIpAddrPolicy OBJECT-TYPE
        SYNTAX      INTEGER {
                        outgoingInterface(1),
                        configuredIpAddr(2),
                        configuredInterface(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The policy for selecting the source IP address.
                    outgoingInterface   - the IP address of outgoing
                                          interface should be used as
                                          the source. This is the
                                          default behavior if no other
                                          policy is configured.
                    configuredIpAddr    - the specific IP address
                                          configured on one of the 
                                          switch's IP interfaces
                                          (VLAN or loopback) should be
                                          used as the source.
                    configuredInterface - an IP address configured on
                                          the specified IP interface
                                          (VLAN or loopback) should be
                                          used as the source.
                                          In case of multi-netted interface
                                          the lexicographically lowest IP
                                          address will be used."
        DEFVAL      { 1 }
        ::= { hpicfSrcIpAddrPolicyEntry 3 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1.1.4
    hpicfSrcIpAddrIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndexOrZero
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Index of IP interface whose IP address should be used
                    as source IP while sending application protocol packets. 
                    On multi-netted interface the lexicographically lowest
                    IP address will be used. This object should be used in
                    conjunction with the 'hpicfSrcIpAddrPolicy' MIB object."
        ::= { hpicfSrcIpAddrPolicyEntry 4 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.1.1.1.5
    hpicfSrcIpAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Administratively assigned IP address that should be used
                    as source while sending application protocol packets. 
                    This object should be used in conjunction with the
                    'hpicfSrcIpAddrPolicy' MIB object."
        ::= { hpicfSrcIpAddrPolicyEntry 5 }


-- **********************************************************************
-- Conformance information
-- **********************************************************************

    -- 1.3.6.1.4.1.11.2.14.11.1.13.2
    hpicfSrcIpConformance OBJECT IDENTIFIER ::= { hpicfSrcIpMIB 2 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.2.1
    hpicfSrcIpGroups      OBJECT IDENTIFIER ::= { hpicfSrcIpConformance 1 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.2.1.1
    hpicfSrcIpBaseGroup OBJECT-GROUP
        OBJECTS     { hpicfSrcIpAddrPolicy,
                      hpicfSrcIpAddrIfIndex,
                      hpicfSrcIpAddress }
        STATUS      current
        DESCRIPTION "A collection of objects allowing configuration of
                    policies for selecting source IP address for 
                    application protocols."
        ::= { hpicfSrcIpGroups 1 }


-- **********************************************************************
-- Compliance statements
-- **********************************************************************

    -- 1.3.6.1.4.1.11.2.14.11.1.13.2.2
    hpicfSrcIpCompliances OBJECT IDENTIFIER ::= { hpicfSrcIpConformance 2 }

    -- 1.3.6.1.4.1.11.2.14.11.1.13.2.2.1
    hpicfSrcIpCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION "The core compliance statement for HP Routing switches
                    with source IP address administrative control."
        MODULE  -- this module
            MANDATORY-GROUPS { hpicfSrcIpBaseGroup }
    ::= { hpicfSrcIpCompliances 1 }


END
