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

    IMPORTS
        hpSwitch
            FROM HP-ICF-OID
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF 
        TimeTicks, Unsigned32, OBJECT-TYPE, Counter32, MODULE-IDENTITY
            FROM SNMPv2-SMI
        InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB 
        RowStatus, DisplayString
            FROM SNMPv2-TC;
 
    hpicfByodMIB MODULE-IDENTITY
 
        LAST-UPDATED "201405190900Z"     --May 19, 2014
        ORGANIZATION "HP Networking"
        CONTACT-INFO "Hewlett-Packard Company
                      8000 Foothills Blvd.
                      Roseville, CA 95747"
	DESCRIPTION
	   "This MIB module describes objects for managing
            the Bring Your Own Device feature of devices 
	    in the HP Integrated Communication Facility
	    product line."

	REVISION     "201405190900Z"     -- May 19, 2014 
        DESCRIPTION
           "Initial version of BYOD MIB module."

        ::= { hpSwitch 106 }

 
    ---
    --- Node definitions
    ---

    hpicfByodNotifications OBJECT IDENTIFIER ::= { hpicfByodMIB 0 }
    hpicfByodObjects       OBJECT IDENTIFIER ::= { hpicfByodMIB 1 }
    hpicfByodConformance   OBJECT IDENTIFIER ::= { hpicfByodMIB 2 }

    hpicfByodConfigObjects OBJECT IDENTIFIER ::= { hpicfByodObjects 1 }
    hpicfByodStatsObjects  OBJECT IDENTIFIER ::= { hpicfByodObjects 2 }


    ---
    --- Scalar configuration objects
    ---

    hpicfByodScalarConfig OBJECT IDENTIFIER ::= { hpicfByodConfigObjects 1 }

    ---
    --- Portal table
    ---

    hpicfByodPortalTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF HpicfByodPortalEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
	    "A table of portal servers that BYOD clients can be redirected to.
             The total number of servers supported is implementation-dependent."
        ::= { hpicfByodConfigObjects 2 }

    hpicfByodPortalEntry OBJECT-TYPE
        SYNTAX          HpicfByodPortalEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
	    "An entry in the hpicfByodPortalTable."
        INDEX           { hpicfByodPortalName }
        ::= { hpicfByodPortalTable 1 }

    HpicfByodPortalEntry ::= SEQUENCE {
        hpicfByodPortalName          DisplayString, 
        hpicfByodPortalVlanId        Unsigned32,
        hpicfByodPortalUrl           DisplayString, 
        hpicfByodPortalInetAddrType  InetAddressType,
        hpicfByodPortalInetAddr      InetAddress,
        hpicfByodPortalDnsCacheTime  TimeTicks,
        hpicfByodPortalRowStatus     RowStatus
    }

    hpicfByodPortalName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..32))
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
            "This object provides the BYOD server name."
        ::= { hpicfByodPortalEntry 1 }

    hpicfByodPortalVlanId OBJECT-TYPE
        SYNTAX          Unsigned32 (0..4094)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the VLAN ID this portal is associated with.
             Clients on the specified VLAN will be redirected to this portal.
             A value of 0 indicates that this portal is not associated with 
             any VLAN."
        DEFVAL          { 0 }
        ::= { hpicfByodPortalEntry 2 }

    hpicfByodPortalUrl OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..127)) 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the BYOD server URL to redirect clients to."
        ::= { hpicfByodPortalEntry 3 }

    hpicfByodPortalInetAddrType OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
	    "This object provides the address family of the value in hpicfByodPortalInetAddr."
        ::= { hpicfByodPortalEntry 4 }

    hpicfByodPortalInetAddr OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
	    "This object provides the IP address of the BYOD server specified in 
        hpicfByodPortalUrl."
        ::= { hpicfByodPortalEntry 5 }

    hpicfByodPortalDnsCacheTime OBJECT-TYPE
        SYNTAX          TimeTicks  
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
            "This object provides the DNS cache time of this portal in seconds."
        DEFVAL         { 15 }
        ::= { hpicfByodPortalEntry 6 }

    hpicfByodPortalRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "The status of this table entry.  The following columns must be set
             before the row can be made active:

             - hpicfByodPortalUrl"
        ::= { hpicfByodPortalEntry 7 }


    ---
    --- Free rule table
    ---

    hpicfByodFreeRuleTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF HpicfByodFreeRuleEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
	    "A table of rules to permit other valid traffic such as DNS and
             DHCP on a BYOD VLAN.  The total number of entries allowed is
             implementation-dependent."
        ::= { hpicfByodConfigObjects 3 }

    hpicfByodFreeRuleEntry OBJECT-TYPE
        SYNTAX          HpicfByodFreeRuleEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
	    "An entry in the hpicfByodFreeRuleTable."
        INDEX           { hpicfByodFreeRuleNumber }
        ::= { hpicfByodFreeRuleTable 1 }

    HpicfByodFreeRuleEntry ::= SEQUENCE {
        hpicfByodFreeRuleNumber                      Unsigned32, 
        hpicfByodFreeRuleSourceProtocol              INTEGER,
        hpicfByodFreeRuleSourcePort                  Unsigned32,
        hpicfByodFreeRuleSourceVlanId                Unsigned32,
        hpicfByodFreeRuleSourceInetAddrType          InetAddressType,
        hpicfByodFreeRuleSourceInetAddr              InetAddress,
        hpicfByodFreeRuleSourceInetAddrMask          InetAddress,
        hpicfByodFreeRuleDestinationProtocol         INTEGER,
        hpicfByodFreeRuleDestinationPort             Unsigned32,
        hpicfByodFreeRuleDestinationInetAddrType     InetAddressType,
        hpicfByodFreeRuleDestinationInetAddr         InetAddress,
        hpicfByodFreeRuleDestinationInetAddrMask     InetAddress,
        hpicfByodFreeRuleRowStatus                   RowStatus
    }

    hpicfByodFreeRuleNumber OBJECT-TYPE
        SYNTAX          Unsigned32(0..59)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
            "This object provides the rule number."
        ::= { hpicfByodFreeRuleEntry 1 }

    hpicfByodFreeRuleSourceProtocol OBJECT-TYPE
        SYNTAX          INTEGER {
                            tcp(1),
                            udp(2)
                        }
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the source protocol to permit."
        ::= { hpicfByodFreeRuleEntry 2 }

    hpicfByodFreeRuleSourcePort OBJECT-TYPE
        SYNTAX          Unsigned32 (0..65535)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the TCP or UDP source port to permit."
        ::= { hpicfByodFreeRuleEntry 3 }

    hpicfByodFreeRuleSourceVlanId OBJECT-TYPE
        SYNTAX          Unsigned32 (1..4094) 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the source VLAN ID to permit."
        ::= { hpicfByodFreeRuleEntry 4 }

    hpicfByodFreeRuleSourceInetAddrType OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "This object provides the address family of the value in hpicfByodFreeRuleSourceInetAddr.
             Some agents may limit the type to IPv4 only."
        ::= { hpicfByodFreeRuleEntry 5 }

    hpicfByodFreeRuleSourceInetAddr OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "This object provides the source IP address to permit."
        ::= { hpicfByodFreeRuleEntry 6 }

    hpicfByodFreeRuleSourceInetAddrMask OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "This object provides the source IP address mask to apply to
             hpicfByodFreeRuleSourceInetAddr."
        ::= { hpicfByodFreeRuleEntry 7 }

    hpicfByodFreeRuleDestinationProtocol OBJECT-TYPE
        SYNTAX          INTEGER {
                            tcp(1),
                            udp(2)
                        }
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the destination protocol to permit."
        ::= { hpicfByodFreeRuleEntry 8 }

    hpicfByodFreeRuleDestinationPort OBJECT-TYPE
        SYNTAX          Unsigned32 (0..65535)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
            "This object provides the TCP or UDP destination port to permit."
        ::= { hpicfByodFreeRuleEntry 9 }

    hpicfByodFreeRuleDestinationInetAddrType OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "This object provides the address family of the value in
        hpicfByodFreeRuleDestinationInetAddr. Some agents may 
        limit the type to IPv4 only."
        ::= { hpicfByodFreeRuleEntry 10 }

    hpicfByodFreeRuleDestinationInetAddr OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "This object provides the destination IP address to permit."
        ::= { hpicfByodFreeRuleEntry 11 }

    hpicfByodFreeRuleDestinationInetAddrMask OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "This object provides the destination IP address mask to apply to
        hpicfByodFreeRuleDestinationInetAddr."
        ::= { hpicfByodFreeRuleEntry 12 }

    hpicfByodFreeRuleRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION 
	    "The status of this table entry.  The following columns must be set
             before the row can be made active:
            
             - hpicfByodFreeRuleSourceVlanId
             - hpicfByodFreeRuleSourceInetAddrType
             - hpicfByodFreeRuleSourceInetAddr
             - hpicfByodFreeRuleSourceInetAddrMask
             - hpicfByodFreeRuleDestinationInetAddrType
             - hpicfByodFreeRuleDestinationInetAddr
             - hpicfByodFreeRuleDestinationInetAddrMask"
        ::= { hpicfByodFreeRuleEntry 13 }


    ---
    --- Scalar statistics
    ---

    hpicfByodScalarStats OBJECT IDENTIFIER ::= { hpicfByodStatsObjects 1 }

    hpicfByodTcpStatsTotalOpen OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the cumulative total of TCP connections opened."
        ::= { hpicfByodScalarStats 1 }
 
    hpicfByodTcpStatsResetConn OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the cumulative total number of TCP connections reset with RST."
        ::= { hpicfByodScalarStats 2 }
    
    hpicfByodTcpStatsCurrentOpen OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the number of TCP connections currently open."
        ::= { hpicfByodScalarStats 3 }
    
    hpicfByodTcpStatsPktsReceived OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the total number of TCP packets received."
        ::= { hpicfByodScalarStats 4 }
    
    hpicfByodTcpStatsPktsSent OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the total number of TCP packets sent."
        ::= { hpicfByodScalarStats 5 }

    hpicfByodTcpStatsHttpPktsSent OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the total number of HTTP packets sent."
        ::= { hpicfByodScalarStats 8 }

    hpicfByodTcpStatsStateSynRcvd OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the number of TCP connections currently 
             in the SYN_RCVD state."
        ::= { hpicfByodScalarStats 9 }

    hpicfByodTcpStatsStateEstablished OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This object provides the number of TCP connections currently 
             in the ESTABLISHED state."
        ::= { hpicfByodScalarStats 10 }



    --- ------------------------------------------------------------
    --- Conformance
    --- ------------------------------------------------------------

    hpicfByodCompliances OBJECT IDENTIFIER ::= { hpicfByodConformance 1 }
    hpicfByodGroups OBJECT IDENTIFIER ::= { hpicfByodConformance 2 }

    hpicfByodCompliance1 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION     "The compliance statement"
        MODULE          -- this module
        MANDATORY-GROUPS {
            hpicfByodConfigGroup,
            hpicfByodStatsGroup
        }
        ::= { hpicfByodCompliances 1 }

    --- units of conformance

    hpicfByodConfigGroup OBJECT-GROUP
        OBJECTS    {
            hpicfByodPortalVlanId,
            hpicfByodPortalUrl,
            hpicfByodPortalInetAddrType,
            hpicfByodPortalInetAddr,
            hpicfByodPortalDnsCacheTime,
            hpicfByodPortalRowStatus,
            hpicfByodFreeRuleSourceProtocol,
            hpicfByodFreeRuleSourcePort,
            hpicfByodFreeRuleSourceVlanId,
            hpicfByodFreeRuleSourceInetAddrType,
            hpicfByodFreeRuleSourceInetAddr,
            hpicfByodFreeRuleSourceInetAddrMask,
            hpicfByodFreeRuleDestinationProtocol,
            hpicfByodFreeRuleDestinationPort,
            hpicfByodFreeRuleDestinationInetAddrType,
            hpicfByodFreeRuleDestinationInetAddr,
            hpicfByodFreeRuleDestinationInetAddrMask,
            hpicfByodFreeRuleRowStatus
        }
        STATUS current
        DESCRIPTION
            "A collection of objects providing configuration and status for
             client redirection to a portal server."
        ::= { hpicfByodGroups 1 } 


    hpicfByodStatsGroup OBJECT-GROUP
    	OBJECTS { 
            hpicfByodTcpStatsTotalOpen,
            hpicfByodTcpStatsResetConn,
            hpicfByodTcpStatsCurrentOpen,
            hpicfByodTcpStatsPktsReceived,
            hpicfByodTcpStatsPktsSent,
            hpicfByodTcpStatsHttpPktsSent,
            hpicfByodTcpStatsStateSynRcvd,
            hpicfByodTcpStatsStateEstablished
        }
        STATUS current
        DESCRIPTION
            "A collection of objects providing statistics about
            current sessions for Byod."
        ::= { hpicfByodGroups 2 }
    
END
