FSM7326-QOS-DIFFSERV-EXTENSIONS-MIB DEFINITIONS ::= BEGIN

-- Copyright 2003 LVL7 Systems, Inc.  All rights reserved.

-- This SNMP Management Information Specification
-- embodies LVL7 System's confidential and proprietary
-- intellectual property.  LVL7 Systems retains all title
-- and ownership in the Specification including any revisions.

-- This Specification is supplied "AS IS", LVL7 Systems
-- makes no warranty, either expressed or implied,
-- as to the use, operation, condition, or performance of the
-- Specification.
    
    IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
      IpAddress, Integer32, Unsigned32                  FROM SNMPv2-SMI
      TEXTUAL-CONVENTION, RowStatus, StorageType,       
      MacAddress                                        FROM SNMPv2-TC
      InetPortNumber                                    FROM INET-ADDRESS-MIB
      DisplayString                                     FROM RFC1213-MIB
      IndexInteger, IndexIntegerNextFree, IfDirection   FROM DIFFSERV-MIB
      fsm7326QOS                                        FROM FSM7326-QOS-MIB;
    
    fsm7326QOSDiffServExtensions MODULE-IDENTITY
           LAST-UPDATED "200311101200Z" -- 10 Nov 2003 12:00:00 GMT
    ORGANIZATION "Netgear"

    CONTACT-INFO
        ""
    DESCRIPTION
        ""
-- revision history
    REVISION
        "200311101200Z" -- 10 Nov 2003 12:00:00 GMT

    DESCRIPTION
        "Initial revision."
    ::= { fsm7326QOS 3 } 

IpPrecedence ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "An IP Precedence value that may be used for marking a traffic stream."
    SYNTAX   Integer32 (0..7)

Cos ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "The 802.1p header Class of Service field that may be used for
       marking a traffic streams. Also known as the Ethernet frame 
       priority."
    SYNTAX   Integer32 (0..7)

CosOrAny ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "The 802.1p header Class of Service field that may be used for
       discriminating among traffic streams. Also known as the Ethernet 
       frame priority.  The value -1 is used to indicate a wild card 
       i.e. any value."
    SYNTAX   Integer32 (-1 | 0..7)
    
VlanIdOrAny ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "The virtual LAN identifier (VLAN ID) that may be used to 
       differentiate among traffic streams. The value -1 is
       used to indicate a wild card i.e. any value."
    SYNTAX   Integer32 (-1 | 1..4094)

agentDiffServMIBObjects     OBJECT IDENTIFIER ::= { fsm7326QOSDiffServExtensions 1 }

--
-- Classifiers
--

agentDiffServClassifier     OBJECT IDENTIFIER ::= { agentDiffServMIBObjects 1 }

--
-- Auxiliary Multi-field Classification Table
--
-- Classification based on different fields in the Layer 2 and IP headers.
-- Functional Data Paths may share definitions by using the same entry.
--
-- NOTE: This table is an alternative to the IP Multi-field Classification
--       Table.
--

agentDiffServAuxMfClfrNextFree  OBJECT-TYPE
    SYNTAX       IndexIntegerNextFree
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object contains an unused value for
        agentDiffServAuxMfClfrId , or a zero to indicate that none exist."
    ::= { agentDiffServClassifier 1 }

agentDiffServAuxMfClfrTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF AgentDiffServAuxMfClfrEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION
       "A table of Auxiliary Multi-field Classifier filter entries that a
       system may use to identify IP traffic."
    ::= { agentDiffServClassifier 2 }

agentDiffServAuxMfClfrEntry OBJECT-TYPE
    SYNTAX       AgentDiffServAuxMfClfrEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION
       "An IP Multi-field Classifier entry describes a single filter."
    INDEX { agentDiffServAuxMfClfrId }
    ::= { agentDiffServAuxMfClfrTable 1 }

AgentDiffServAuxMfClfrEntry ::= SEQUENCE {
    agentDiffServAuxMfClfrId            IndexInteger,
    agentDiffServAuxMfClfrDstAddr       IpAddress,
    agentDiffServAuxMfClfrDstMask       IpAddress,
    agentDiffServAuxMfClfrSrcAddr       IpAddress,
    agentDiffServAuxMfClfrSrcMask       IpAddress,
    agentDiffServAuxMfClfrProtocol      Unsigned32,
    agentDiffServAuxMfClfrDstL4PortMin  InetPortNumber,
    agentDiffServAuxMfClfrDstL4PortMax  InetPortNumber,
    agentDiffServAuxMfClfrSrcL4PortMin  InetPortNumber,
    agentDiffServAuxMfClfrSrcL4PortMax  InetPortNumber,
    agentDiffServAuxMfClfrCos           CosOrAny,
    agentDiffServAuxMfClfrTos           OCTET STRING,
    agentDiffServAuxMfClfrTosMask       OCTET STRING,
    agentDiffServAuxMfClfrDstMac        MacAddress,
    agentDiffServAuxMfClfrDstMacMask    MacAddress,
    agentDiffServAuxMfClfrSrcMac        MacAddress,
    agentDiffServAuxMfClfrSrcMacMask    MacAddress,
    agentDiffServAuxMfClfrVlanId        VlanIdOrAny,
    agentDiffServAuxMfClfrStorage       StorageType,
    agentDiffServAuxMfClfrStatus        RowStatus
}

agentDiffServAuxMfClfrId OBJECT-TYPE
    SYNTAX         IndexInteger
    MAX-ACCESS     not-accessible
    STATUS     current
    DESCRIPTION
       "An index that enumerates the Auxiliary MultiField Classifier filter
       entries.  Managers obtain new values for row creation in this
       table by reading agentDiffServAuxMfClfrNextFree."

    ::= { agentDiffServAuxMfClfrEntry 1 }

agentDiffServAuxMfClfrDstAddr OBJECT-TYPE
    SYNTAX         IpAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The IP address to match against the packet's destination IP
        address."
    ::= { agentDiffServAuxMfClfrEntry 2 }
    
agentDiffServAuxMfClfrDstMask OBJECT-TYPE
    SYNTAX         IpAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "This mask value identifies the portion of agentDiffServAuxMfClfrDstAddr
        that is compared against a packet. 
	A non-contiguous mask value is permitted. A mask of 0 indicates a match
	of any address."
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 3 }
    

agentDiffServAuxMfClfrSrcAddr OBJECT-TYPE
    SYNTAX         IpAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The IP address to match against the packet's source IP
        address."
    ::= { agentDiffServAuxMfClfrEntry 4 }
    
agentDiffServAuxMfClfrSrcMask OBJECT-TYPE
    SYNTAX         IpAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "This mask value identifies the portion of agentDiffServAuxMfClfrSrcAddr
        that is compared against a packet. 
	A non-contiguous mask value is permitted. A mask of 0 indicates a match
	of any address."
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 5 }
    
    
agentDiffServAuxMfClfrProtocol OBJECT-TYPE
    SYNTAX         Unsigned32 (0..255)
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The IP protocol to match against the IPv4 protocol number. A value of 255 means
       match all.  "
    DEFVAL         { 255 }
    ::= { agentDiffServAuxMfClfrEntry 6 }
    
    
agentDiffServAuxMfClfrDstL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The minimum value that the layer-4 destination port number in the packet must have
        in order to match this classifier entry.  "
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 7 }
    
    
agentDiffServAuxMfClfrDstL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The maximum value that the layer-4 destination port number in the 
        packet must have in order to match this classifier entry. 
	This value must be equal to or greater than the value specified
       for this entry in agentDiffServAuxMfClfrDstL4PortMin.  "
    DEFVAL         { 65535 }
    ::= { agentDiffServAuxMfClfrEntry 8 }
    
    
agentDiffServAuxMfClfrSrcL4PortMin OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The minimum value that the layer-4 source port number in the
       packet must have in order to match this classifier entry.  "
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 9 }
    
    
agentDiffServAuxMfClfrSrcL4PortMax OBJECT-TYPE
    SYNTAX         InetPortNumber
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "The maximum value that the layer-4 source port number in the
        packet must have in order to match this classifier entry. This
        value must be equal to or greater than the value specified for
        this entry in diffServMultiFieldClfrSrcL4PortMin.  "
    DEFVAL         { 65535 }
    ::= { agentDiffServAuxMfClfrEntry 10 }
    
    
agentDiffServAuxMfClfrCos OBJECT-TYPE
    SYNTAX         CosOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "Three-bit 802.1p priority field in the Ethernet frame used as
	a class-match parameter. A value of -1 indicates that a specific
	COS value has not been defined and thus all COS values are considered
	a match."
    DEFVAL         { -1 }
    ::= { agentDiffServAuxMfClfrEntry 11 }
    
    
agentDiffServAuxMfClfrTos OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(1))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "IP TOS bits value, defined as all eight bits of the Service 
        Type octet in the IPv4 header. There are multiple, overlapping, 
	meanings of the TOS octet in use today:

          Precedence (bits 7-5):  IP Precedence, values 0-7
	  DSCP (bits 7-2):  IP DiffServ Code Point, values 0-63
	  TOS (bits 7-0):  IP Type of Service, by bits, values 0-255

	Each of these definitions can be produced using the appropriate
	agentDiffServAuxMfClfrTosMask mask value. These definitions are 
	mutually-exclusive, so only one is allowed for any given classifier
	element."
    ::= { agentDiffServAuxMfClfrEntry 12 }
    
    
agentDiffServAuxMfClfrTosMask OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(1))
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "IP TOS bits mask value. It identifies the portion of 
        agentDiffServAuxMfClfrTos that is compared against a packet. 
	A non-contiguous mask value is permitted. A mask of 0 indicates a match
	of any TOS value.

        There are multiple, overlapping meanings of the TOS octet in use today.
	These are represented by the following specific mask values:

          Precedence (bits 7-5):  224 (bit mask '11100000')
	  DSCP (bits 7-2):  252 (bit mask '11111100')
	  TOS (bits 7-0):  255 (bit mask '11111111')

        Other mask values are also permitted."
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 13 }
    
    
agentDiffServAuxMfClfrDstMac OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "Destination MAC address. "
    ::= { agentDiffServAuxMfClfrEntry 14 }
    
    
agentDiffServAuxMfClfrDstMacMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "Destination MAC address mask value. This mask value
        identifies the portion of agentDiffServAuxMfClfrDstMac 
	that is compared against a packet. 
	A non-contiguous mask value is permitted. A mask of 0 indicates a match
	of any MAC address."
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 15 }
    
    
agentDiffServAuxMfClfrSrcMac OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "Source MAC address. "
    ::= { agentDiffServAuxMfClfrEntry 16 }
    
    
agentDiffServAuxMfClfrSrcMacMask OBJECT-TYPE
    SYNTAX         MacAddress
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "Source MAC address mask value. This mask value
        identifies the portion of agentDiffServAuxMfClfrSrcMac 
	that is compared against a packet. 
	A non-contiguous mask value is permitted. A mask of 0 indicates a match
	of any MAC address."
    DEFVAL         { 0 }
    ::= { agentDiffServAuxMfClfrEntry 17 }
    
agentDiffServAuxMfClfrVlanId OBJECT-TYPE
    SYNTAX         VlanIdOrAny
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
       "VLAN ID  value for the classifier. A value of -1 indicates that 
       a specific VLAN ID value has not been defined and thus all 
       VLAN ID values are considered a match."
    DEFVAL         { -1 }
    ::= { agentDiffServAuxMfClfrEntry 18 }


agentDiffServAuxMfClfrStorage OBJECT-TYPE
    SYNTAX       StorageType
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
       "The storage type for this conceptual row. "
    DEFVAL { nonVolatile }
    ::= { agentDiffServAuxMfClfrEntry 19 }

agentDiffServAuxMfClfrStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The status of this conceptual row."
    ::= { agentDiffServAuxMfClfrEntry 20 }
  
--
-- Actions
--

agentDiffServAction         OBJECT IDENTIFIER ::= { agentDiffServMIBObjects 2 }

-- IP Precedence Mark Action Table
--
-- Rows of this table are pointed to by diffServActionSpecific to
-- provide detailed parameters specific to the IP Precedence Mark action.
--
-- A single entry in this table can be shared by multiple
-- diffServActionTable entries.
--
-- NOTE: This table is referenced instead of the DSCP Mark Action Table
--       when marking the IP Precedence of a packet rather than its DSCP.
--

agentDiffServIpPrecMarkActTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF AgentDiffServIpPrecMarkActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table enumerates specific IP Precedence values used for marking
       or remarking the Precedence field of IP packets. The entries of this 
       table may be referenced by a diffServActionSpecific attribute."
    ::= { agentDiffServAction 4 }

agentDiffServIpPrecMarkActEntry OBJECT-TYPE
    SYNTAX       AgentDiffServIpPrecMarkActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "An entry in the IP Precedence mark action table that describes a
       single IP Precedence value used for marking."
    INDEX { agentDiffServIpPrecMarkActPrecedence }
    ::= { agentDiffServIpPrecMarkActTable 1 }

AgentDiffServIpPrecMarkActEntry ::= SEQUENCE  {
    agentDiffServIpPrecMarkActPrecedence     IpPrecedence
}

agentDiffServIpPrecMarkActPrecedence OBJECT-TYPE
    SYNTAX       IpPrecedence
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "The IP Precedence that this Action will store into the Precedence
       field of the IP packet. It is quite possible that the only packets 
       subject to this Action are already marked with this IP Precedence. 
       Note also that Differentiated Services processing may result in a
       packet being marked on both ingress to a network and on egress from 
       it, and that ingress and egress can occur in the same router."
    ::= { agentDiffServIpPrecMarkActEntry 1 }


-- COS Mark Action Table
--
-- Rows of this table are pointed to by diffServActionSpecific to
-- provide detailed parameters specific to the COS Mark action.
--
-- A single entry in this table can be shared by multiple
-- diffServActionTable entries.
--
-- NOTE: This table is referenced when marking the Class of Service 
--       priority bits as defined in the 802.1p header.
--

agentDiffServCosMarkActTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF AgentDiffServCosMarkActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table enumerates specific Class of Service values used for marking
       or remarking the priority bits in the 802.1p header. The entries of this 
       table may be referenced by a diffServActionSpecific attribute."
    ::= { agentDiffServAction 2 }

agentDiffServCosMarkActEntry OBJECT-TYPE
    SYNTAX       AgentDiffServCosMarkActEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "An entry in the COS mark action table that describes a
       single Class of Service value used for marking."
    INDEX { agentDiffServCosMarkActCos }
    ::= { agentDiffServCosMarkActTable 1 }

AgentDiffServCosMarkActEntry ::= SEQUENCE  {
    agentDiffServCosMarkActCos     Cos
}

agentDiffServCosMarkActCos OBJECT-TYPE
    SYNTAX       Cos
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "The Class of Service value that this Action will store into the
       priority bits of the 802.1p header. It is quite possible that the 
       only packets subject to this Action are already marked with this COS 
       value.  COS packet marking occurs upon egress from the network node."
    ::= { agentDiffServCosMarkActEntry 1 }

END
