-- **********************************************************************
-- Copyright (C) 2004 by  HUAWEI-3COM TECHNOLOGIES. All rights reserved.
-- **********************************************************************
--
-- Name:          Huawei-3Com Layer 4 Redirection MIB
-- 
-- Description: 
--  
-- This MIB is used to configure the redirection of network traffic to a
-- network appliance.  It is to be used for switches that are Layer 4 
-- capable.  It is divided into 3 tables and 4 scalar objects:  
-- the Cache table, the IP Exclusion Table, the Redirect VLAN table, 
-- the Information String object, the Free Cache Entries object, 
-- the Free IP Exclusion Entries object, and the Free Redirect VLAN 
-- Entries object.
-- 
-- The Cache table is responsible for storing the information
-- about each cache to which network traffic is potentially being
-- redirected.  This table includes the cache IP address, the status
-- of redirection, the cache port, the cache VLAN, and TCP port
-- information. 
-- 
-- The IP Exclusion table is responsible for storing the IP information 
-- on any IP addresses/subnetworks that are NOT allowed to be redirected.
-- 
-- The Redirect VLAN table is responsible for storing the VLAN ID of 
-- the packet which need to be redirected to the Web cache.
--
-- The Information String object is responsible for storing a string.  This 
-- string will contain information pertaining to configuring Layer 4
-- Redirection (success or failure). 
-- 
-- The Free Cache Entries object is responsible for storing the number
-- of entries that may still be added to the Cache Table.
-- 
-- The Free IP Exclusion Entries object is responsible for storing the 
-- number of entries that may still be added to the IP Exclusion Table. 
--
-- The Free Redirect VLAN Entries object is responsible for storing the 
-- number of entries that may still be added to the Redirect VLAN Table. 
--
-- History V2.0
--
-- V1.00     4/23/04     Created.
-- V2.0 2004-10-12 updated by gaolong
--      Add h3cL4Redirect MODULE-IDENTITY clause.
--      Change ACCESS clause to MAX-ACCESS
--      Change value of STATUS from mandatory to current
-- **********************************************************************

A3COM-HUAWEI-L4RDT-MIB DEFINITIONS ::= BEGIN

		IMPORTS	
			OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP			
				FROM SNMPv2-CONF			
			Integer32, Gauge32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE			
				FROM SNMPv2-SMI			
			DisplayString, RowStatus,TruthValue,MacAddress,TEXTUAL-CONVENTION			
				FROM SNMPv2-TC
			h3cCommon
				FROM A3COM-HUAWEI-OID-MIB;

	h3cL4Redirect	MODULE-IDENTITY 
			LAST-UPDATED "200409210000Z"		-- Sept 21, 2002 at 00:00 GMT
			ORGANIZATION 
				"Huawei 3Com Tech, Inc."
			CONTACT-INFO 
				"Platform Team Beijing Institute Huawei Tech, Inc."
			DESCRIPTION 
				"See description above"
			::= { h3cCommon 10 }



-- This table should be supported by devices that support Web Cache
-- Redirection.
h3cL4RedirectCacheTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF H3cL4RedirectCacheEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "This table contains an entry for each Web Cache 
        device that this unit is aware of."
      ::= { h3cL4Redirect 1}

h3cL4RedirectCacheEntry OBJECT-TYPE
      SYNTAX      H3cL4RedirectCacheEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "Each row specifies a known Web Cache device."
      INDEX       { h3cL4RedirectCacheIpAddress}
      ::= { h3cL4RedirectCacheTable 1}

H3cL4RedirectCacheEntry ::= SEQUENCE {
                  h3cL4RedirectCacheIpAddress                  IpAddress,
                  h3cL4RedirectCacheRedirectionStatus          INTEGER,
                  h3cL4RedirectCachePort                       INTEGER,
                  h3cL4RedirectCacheRowStatus                  RowStatus,
                  h3cL4RedirectCacheMacAddress                 MacAddress,
                  h3cL4RedirectCacheVlan                       INTEGER,
                  h3cL4RedirectCacheTcpPort                    INTEGER
                  }

h3cL4RedirectCacheIpAddress OBJECT-TYPE
      SYNTAX      IpAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "This object specifies the IP address of the Web 
        Cache device."
      ::= { h3cL4RedirectCacheEntry 1}

h3cL4RedirectCacheRedirectionStatus OBJECT-TYPE
      SYNTAX      INTEGER  {
                  disabledNotRedirecting (1),
                  enabledNoHealthChecker (2),
                  enabledHealthChecking (3),
                  enabledHealthCheckOKNotRedirecting (4),
                  enabledHealthCheckFailed (5),
                  enabledRedirecting (6)
      }
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION "This object returns the current state of traffic 
        redirection to the cache.

        If redirection is disabled, this object shall return 
        disabledNotRedirecting(1).

        If a unit cannot be selected to perform the cache health check, 
        this object shall return enabledNoHealthChecker(2).

        If the software is determining if the cache is able to do 
        redirection(this will happen when the redirection state 
        transitions from disabled to enabled), this object shall return 
        enabledHealthChecking(3).

        If the cache health check succeeded but the hardware is unable 
        to support redirection to the cache port, this object shall 
        return enabledHealthCheckOKNotRedirecting(4).

        If the latest health check of the cache has failed, this object 
        shall return enabledHealthCheckFailed(5).

        If the cache is in use and traffic is being redirected to it, 
        this object shall return enabledRedirecting(6).

        The default value is disabledNotRedirecting(1)."
      ::= { h3cL4RedirectCacheEntry 2}

h3cL4RedirectCachePort OBJECT-TYPE
      SYNTAX      INTEGER 
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object stores the ifIndex that identifies the 
        port or link aggregation which provides the connection that 
        leads to the cache.  If only manual cache configuration is
        supported, this value must be supplied. The method of cache
        configuration can be ascertained by the presence or absence
        of the L4 manual cache configuration id within the
        3com-352 MIB.

        The default value is 0."
      ::= { h3cL4RedirectCacheEntry 3}

h3cL4RedirectCacheRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object is used to create and remove Web Cache 
        entries.

        The following are the valid values that may be written to 
        RowStatus:

        Writing createAndGo(4) to the RowStatus of a non-existent row 
        shall create a row with default values and shall set the row to 
        active(1).  If the row already exists, it shall be an error.

        Writing createAndWait(5) to the RowStatus of a non-existent row 
        shall create a row with default values and shall set the row to 
        notInService(2).  If the row already exists, it shall be an 
        error.

        Writing active(1) to the RowStatus of an existing row shall 
        change the value of that row to active(1). Writing active(1) to 
        the RowStatus of an existing row that is already active(1) 
        shall not cause an error, the row shall remain active(1).  If 
        the row does not exist, it shall be an error.

        Writing notInService(2) to the RowStatus of an existing row 
        shall change the value of that row to notInService(2).  Writing 
        notInService(2) to the RowStatus of an existing row that is 
        already notInService(2) shall not cause an error, the row shall 
        remain notInService(2).  If the row does not exist, it shall be 
        an error.

        Writing destroy(6) to the RowStatus of a non-existent row shall 
        be an error.  If the row exists, it shall be removed.

        Writing notReady(3) to the RowStatus of a non-existent row or 
        to an existent row shall be an error.

        If the user does not supply values for the necessary objects, 
        default values will be supplied.

        Attempts to create more entries than the hardware can support 
        shall be rejected."
      ::= { h3cL4RedirectCacheEntry 4}

h3cL4RedirectCacheMacAddress OBJECT-TYPE
      SYNTAX      MacAddress
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object defines the MAC address of the attached
                   Web cache device.  If only manual configuration of
                   the cache is supported, this value must be
                   supplied. The method of cache configuration can be
                   ascertained by the presence or absence of the
                   L4 manual cache configuration id within the
                   3com-352 MIB.
                   
                   The default value is 0."
      ::= { h3cL4RedirectCacheEntry 5}
                   
h3cL4RedirectCacheVlan OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object specifies the VLAN which the cache port belongs to."
      ::= { h3cL4RedirectCacheEntry 6}
                   
h3cL4RedirectCacheTcpPort OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object specifies the TCP port number that is being redirected "
      ::= { h3cL4RedirectCacheEntry 7}
                   

h3cL4RedirectIpExclusionTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF H3cL4RedirectIpExclusionEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "This table lists the IP addresses and subnetworks 
        that Web Cache redirection is not supported for.

        Some devices may not support addition to this table."
      ::= { h3cL4Redirect 2}

h3cL4RedirectIpExclusionEntry OBJECT-TYPE
      SYNTAX      H3cL4RedirectIpExclusionEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "Each row contains an IP address or a IP subnetwork 
        that is being excluded from the redirection."
      INDEX       { h3cL4RedirectIpExclusionIpAddress}
      ::= { h3cL4RedirectIpExclusionTable 1}

H3cL4RedirectIpExclusionEntry ::= SEQUENCE {
                  h3cL4RedirectIpExclusionIpAddress            IpAddress,
                  h3cL4RedirectIpExclusionMaskLen              INTEGER,
                  h3cL4RedirectIpExclusionRowStatus            RowStatus
                  }

h3cL4RedirectIpExclusionIpAddress OBJECT-TYPE
      SYNTAX      IpAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "This object specifies the IP address or the 
        subnetwork address that is to be excluded."
      ::= { h3cL4RedirectIpExclusionEntry 1}

h3cL4RedirectIpExclusionMaskLen OBJECT-TYPE
      SYNTAX      INTEGER (1..32)
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object provides the number of bits in the 
        subnetwork mask. This mask shall be applied to the excludeIP 
        address to determine the subnetwork that is to be excluded.  A 
        value of 32 implies that the excludeIP address refers to an 
        individual host.

        The default value is 32."
      ::= { h3cL4RedirectIpExclusionEntry 2}

h3cL4RedirectIpExclusionRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object is used to add rows to the Exclusion 
        Table.

        The following are the valid values that may be written to 
        RowStatus:

        Writing createAndGo(4) to the RowStatus of a non-existent row 
        shall create a new row.  The new row shall be active(1).  If 
        the row exists, it shall be an error.

        Writing createAndWait(5) to the RowStatus of a non-existent row 
        or to an existent row shall be an error.

        Writing active(1) to the RowStatus of an existing row shall 
        change the value of that row to active(1). Writing active(1) to 
        the RowStatus of an existing row that is already active(1) 
        shall not cause an error, the row shall remain active(1).  If 
        the row does not exist, it shall be an error.

        Writing notInService(2) to the RowStatus of an existing row 
        shall change the value of that row to notInService(2).  Writing 
        notInService(2) to the RowStatus of an existing row that is 
        already notInService(2) shall not cause an error, the row shall 
        remain notInService(2).  If the row does not exist, it shall be 
        an error.

        Writing destroy(6) to the RowStatus of a non-existent row shall 
        be an error.  If the row exists, it shall be removed.

        Writing notReady(3) to the RowStatus of a non-existent row or 
        to an existent row shall be an error.

        Attempts to create more entries than the hardware can support 
        shall be rejected."
      ::= { h3cL4RedirectIpExclusionEntry 3}

h3cL4RedirectVlanTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF H3cL4RedirectVlanEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "This table contains a row for each VLAN of the packet 
      		   which need to be redirected to the Web cache."
      ::= { h3cL4Redirect 3}

h3cL4RedirectVlanEntry OBJECT-TYPE
      SYNTAX      H3cL4RedirectVlanEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "Each row specifies a VLAN of the packet which need to 
      		   be redirected to the Web cache."
      INDEX       { h3cL4RedirectVlanID}
      ::= { h3cL4RedirectVlanTable 1}

H3cL4RedirectVlanEntry ::= SEQUENCE {
                  h3cL4RedirectVlanID                        INTEGER,
                  h3cL4RedirectVlanRowStatus                 RowStatus
                  }

h3cL4RedirectVlanID OBJECT-TYPE
      SYNTAX      INTEGER 
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION "This object specifies the VLAN ID of the packet which
      		   need to be redirected to the Web cache." 
      ::= { h3cL4RedirectVlanEntry 1}

h3cL4RedirectVlanRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "This object allows ports to be added and removed 
        from the table.

        The following are the valid values that may be written to 
        RowStatus:

        Writing createAndGo(4) to the RowStatus of a non-existent row 
        shall create a new row.  The new row shall be active(1).  If 
        the row exists, it shall be an error.

        Writing createAndWait(5) to the RowStatus of a non-existent row 
        or to an existent row shall be an error.

        Writing active(1) to the RowStatus of an existing row shall 
        change the value of that row to active(1). Writing active(1) to 
        the RowStatus of an existing row that is already active(1) 
        shall not cause an error, the row shall remain active(1).  If 
        the row does not exist, it shall be an error.

        Writing notInService(2) to the RowStatus of a non-existent row 
        or to an existent row shall be an error.

        Writing destroy(6) to the RowStatus of a non-existent row shall 
        be an error. If the row exists, it shall be removed.

        Writing notReady(3) to the RowStatus of a non-existent row or 
        to an existent row shall be an error.

        Attempts to create more entries than the hardware can support 
        shall be rejected."
      ::= { h3cL4RedirectVlanEntry 2}

h3cL4RedirectInformationString OBJECT-TYPE
      SYNTAX      DisplayString (SIZE(0..80))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION "This object shall contain the string generated as a 
        result of a Layer 4 Redirection configuration.  It shall 
        contain either a string describing successful configuration or 
        a string describing unsuccessful configuration.

        This length of this string shall be no longer than 80 
        characters."
      ::= { h3cL4Redirect 4}

h3cL4RedirectFreeCacheEntries OBJECT-TYPE
      SYNTAX      INTEGER 
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION "This object indicates the number of entries that may 
        still be added to the h3cL4RedirectCacheTable."
      ::= { h3cL4Redirect 5}

h3cL4RedirectFreeIpExclusionEntries OBJECT-TYPE
      SYNTAX      INTEGER 
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION "This object indicates the number of entries that may 
        still be added to the h3cL4RedirectIpExclusionTable."
      ::= { h3cL4Redirect 6}

h3cL4RedirectFreeVlanEntries OBJECT-TYPE
      SYNTAX      INTEGER 
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION "This object indicates the number of entries that may 
        still be added to the h3cL4RedirectVlanTable."
      ::= { h3cL4Redirect 7}

END

