-- extracted from draft-nadeau-mpls-packet-classifier-mib-00.txt -- at Wed May 10 07:07:20 2000 PACKET-CLASSIFIER-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Unsigned32, Counter32, IpAddress, experimental FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, TruthValue, RowStatus FROM SNMPv2-TC InterfaceIndex, InterfaceIndexOrZero FROM IF-MIB; mplsMplsPacketClassifierMIB MODULE-IDENTITY LAST-UPDATED "200005082030Z" -- 08 May 2000 20:30:00 EST ORGANIZATION " Multiprotocol Label Switching (MPLS) Working Group" CONTACT-INFO " Thomas D. Nadeau Postal: Cisco Systems, Inc. 250 Apollo Drive Chelmsford, MA 01824 Tel: +1-978-244-3051 Email: tnadeau@cisco.com" Cheenu Srinivasan Postal: Tachion Networks, Inc. 2 Meridian Road Eatontown, NJ 0772 Tel: +1 732 542 7750 x234 Email: cheenu@tachion.com Arun Viswanathan Postal: Force10 Networks 1440 McCarthy Blvd Milpitas, CA 95035 Tel: +1-408-571-3516 Email: arun@force10networks.com" DESCRIPTION "This MIB module contains managed object definitions for specifying packet classification for MPLS." -- Revision history. REVISION "200005082030Z" -- 08 May 2000 20:30:00 EST DESCRIPTION "Initial draft version." ::= { experimental oid } -- to be assigned -- Textual Conventions. PortAddr ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "A TCP or UDP port number. Along with an IP address identifies a stream of IP traffic uniquely." SYNTAX INTEGER (0..65535) Ipv6Address ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "IPv6 address." SYNTAX OCTET STRING (SIZE(16)) -- Top level components of the MIB. -- tables, scalars mplsMplsPacketClassifierObjects OBJECT IDENTIFIER ::= { mplsMplsPacketClassifierMIB 1 } -- traps mplsMplsPacketClassifierNotifications OBJECT IDENTIFIER ::= { mplsMplsPacketClassifierMIB 2 } -- conformance mplsMplsPacketClassifierConformance OBJECT IDENTIFIER ::= { mplsMplsPacketClassifierMIB 3 } -- Packet classifier table. mplsMplsPacketClassifierTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsMplsPacketClassifierEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the currently defined packet classifiers." ::= { mplsMplsPacketClassifierMIBObjects 1 } mplsMplsPacketClassifierEntry OBJECT-TYPE SYNTAX MplsMplsPacketClassifierEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry represents one packet classifier which in turn consists of a set of rules. A unique name object indexes each packet classifier. The rules corresponding to a packet classifier are defined in mplsMplsPacketClassifierRuleTable." INDEX { mplsMplsPacketClassifierName } ::= { mplsMplsPacketClassifierTable 1 } MplsMplsPacketClassifierEntry ::= SEQUENCE { mplsMplsPacketClassifierName DisplayString, mplsMplsPacketClassifierDescr DisplayString, mplsMplsPacketClassifierApplied TruthValue, mplsMplsPacketClassifierRowStatus RowStatus } mplsMplsPacketClassifierName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS not-accessible STATUS current DESCRIPTION "Unique name for the this packet classifier." ::= { mplsMplsPacketClassifierEntry 1 } mplsMplsPacketClassifierDescr OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "String describing this packet classifier." ::= { mplsMplsPacketClassifierEntry 2 } mplsMplsPacketClassifierApplied OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates whether this packet classifier has been applied on any interface or not. If so, its contents are no longer editable." ::= { mplsMplsPacketClassifierEntry 3 } mplsMplsPacketClassifierRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For controlling the creation and deletion of this row." ::= { mplsMplsPacketClassifierEntry 4 } -- End of mplsMplsPacketClassifierTable -- Packet classifier rule table. mplsMplsPacketClassifierRuleTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsMplsPacketClassifierRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the packet classification rules for each packet classifier defined in mplsMplsPacketClassifierTable." ::= { mplsMplsPacketClassifierObjects 2 } mplsMplsPacketClassifierRuleEntry OBJECT-TYPE SYNTAX MplsMplsPacketClassifierRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry represents one packet classification rule. It is indexed by the mplsMplsPacketClassifierName" INDEX { mplsMplsPacketClassifierName, mplsMplsPacketClassifierRuleIndex } ::= { mplsMplsPacketClassifierRuleTable 1 } MplsMplsPacketClassifierRuleEntry ::= SEQUENCE { mplsMplsPacketClassifierRuleIndex Integer32, mplsMplsPacketClassifierRuleDescr DisplayString, mplsMplsPacketClassifierRuleMask BITS, mplsMplsPacketClassifierRuleSourceAddrMin IpAddress, mplsMplsPacketClassifierRuleSourceAddrMax IpAddress, mplsMplsPacketClassifierRuleDestAddrMin IpAddress, mplsMplsPacketClassifierRuleDestAddrMax IpAddress, mplsMplsPacketClassifierRuleSourcePortMin PortAddr, mplsMplsPacketClassifierRuleSourcePortMax PortAddr, mplsMplsPacketClassifierRuleDestPortMin PortAddr, mplsMplsPacketClassifierRuleDestPortMax PortAddr, mplsMplsPacketClassifierRuleProtocol INTEGER, mplsMplsPacketClassifierRuleActionIndex Unsigned32, mplsMplsPacketClassifierRuleRowStatus RowStatus } mplsMplsPacketClassifierRuleIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "Unique index for this rule for the particular packet classifier that it belongs to." ::= { mplsMplsPacketClassifierRuleEntry 1 } mplsMplsPacketClassifierRuleDescr OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Text describing this rule." ::= { mplsMplsPacketClassifierRuleEntry 2 } mplsMplsPacketClassifierRuleMask OBJECT-TYPE SYNTAX BITS { sourceAddr(0), destAddr(1), sourcePort(2), destPort(3), protocol(4) } MAX-ACCESS read-create STATUS current DESCRIPTION "This bit map indicates which of the fields described next, namely source address range, destination address range, source port range, destination port range, and protocol is active for this rule. If a particular bit is inactive (set to zero) then the corresponding field in the packet is ignored for comparison purposes." ::= { mplsMplsPacketClassifierRuleEntry 3 } mplsMplsPacketClassifierRuleSourceAddrMin OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "Lower end of source address range." ::= { mplsMplsPacketClassifierRuleEntry 4 } mplsMplsPacketClassifierRuleSourceAddrMax OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "Higher end of source address range." ::= { mplsMplsPacketClassifierRuleEntry 5 } mplsMplsPacketClassifierRuleDestAddrMin OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION " Lower end of destination address range." ::= { mplsMplsPacketClassifierRuleEntry 6 } mplsMplsPacketClassifierRuleDestAddrMax OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "Higher end of destination address range." ::= { mplsMplsPacketClassifierRuleEntry 7 } mplsMplsPacketClassifierRuleSourcePortMin OBJECT-TYPE SYNTAX PortAddr MAX-ACCESS read-create STATUS current DESCRIPTION "Lower end of source port range." ::= { mplsMplsPacketClassifierRuleEntry 8 } mplsMplsPacketClassifierRuleSourcePortMax OBJECT-TYPE SYNTAX PortAddr MAX-ACCESS read-create STATUS current DESCRIPTION "Higher end of source port range." ::= { mplsMplsPacketClassifierRuleEntry 9 } mplsMplsPacketClassifierRuleDestPortMin OBJECT-TYPE SYNTAX PortAddr MAX-ACCESS read-create STATUS current DESCRIPTION "Lower end of the destination port range." ::= { mplsMplsPacketClassifierRuleEntry 10 } mplsMplsPacketClassifierRuleDestPortMax OBJECT-TYPE SYNTAX PortAddr MAX-ACCESS read-create STATUS current DESCRIPTION "Higher end of the destination port range." ::= { mplsMplsPacketClassifierRuleEntry 11 } mplsMplsPacketClassifierRuleProtocol OBJECT-TYPE SYNTAX INTEGER (0..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "Protocol." ::= { mplsMplsPacketClassifierRuleEntry 12 } mplsMplsPacketClassifierRuleActionIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Index into mplsMplsPacketClassifierActionTable to determine the action to be taken on matching packets." ::= { mplsMplsPacketClassifierRuleEntry 13 } mplsMplsPacketClassifierRuleRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creation and deletion of this row." ::= { mplsMplsPacketClassifierRuleEntry 14 } -- Packet classifier action table. mplsMplsPacketClassifierActionTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsMplsPacketClassifierActionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information on actions to be taken on packets matching packet classifier rules. Entries in this table are referred to from mplsMplsPacketClassifierRuleTable." ::= { mplsMplsPacketClassifierObjects 3 } mplsMplsPacketClassifierActionEntry OBJECT-TYPE SYNTAX MplsPacketClassifierActionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry represents an action to be taken on a matching packet." INDEX { mplsMplsPacketClassifierActionIndex } ::= { mplsMplsPacketClassifierActionTable 1 } MplsMplsPacketClassifierActionEntry ::= SEQUENCE { mplsMplsPacketClassifierActionIndex Unsigned32, mplsMplsPacketClassifierActionMask BITS, mplsMplsPacketClassifierActionIfIndex InterfaceIndex, mplsMplsPacketClassifierActionNextHopIpAddr IpAddress, mplsMplsXcIndex Integer32, -- ... mplsMplsPacketClassifierActionRowStatus RowStatus } mplsMplsPacketClassifierActionIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Index for this row. Identifies an action." ::= { mplsMplsPacketClassifierActionEntry 1 } mplsMplsPacketClassifierActionMask OBJECT-TYPE SYNTAX BITS { drop(0), pass(1), redirect(2), redirectLsp(3), settos(4), assignTSpec(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "This bit map indicated the type of action to be performed on matching packets. Note that such a bit map allows multiple actions to be specified for example to pass the packet through and set its TOS field to a particular value. Some combination are disallowed, for example drop(0) and pass(1)." ::= { mplsMplsPacketClassifierActionEntry 2 } mplsMplsPacketClassifierActionIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Interface to redirect matching packet to if mplsMplsPacketClassifierActionMask is redirect(3)." ::= { mplsMplsPacketClassifierActionEntry 3 } mplsMplsPacketClassifierActionNextHopIpAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "IPv4 address of the next hop in case mplsMplsPacketClassifierActionMask is redirect(3)." ::= { mplsMplsPacketClassifierActionEntry 4 } mplsMplsXcIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "This value points at the segment's cross-connect entry as defined in the LSR MIB. This object is used when the mplsMplsPacketClassifierActionMask is set to redirectLsp." REFERENCE "Srinivasan, C., Viswanathan, A., and T. Nadeau, MPLS Label Switch Router Management Information Base Using SMIv2, Internet Draft , March 2000." ::= { mplsMplsPacketClassifierActionEntry 6 } mplsMplsPacketClassifierActionRowStatus OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "For creation and deletion of this row." ::= { mplsMplsPacketClassifierActionEntry 6 } -- End of mplsMplsPacketClassifierActionTable. -- Packet classifier applied table. mplsMplsPacketClassifierAppliedTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsMplsPacketClassifierAppliedEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information on packet classifier application on different interfaces." ::= { mplsMplsPacketClassifierObjects 4 } mplsMplsPacketClassifierAppliedEntry OBJECT-TYPE SYNTAX MplsMplsPacketClassifierAppliedEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry indicates the application of a particular packet classifier on an interface. The order of application of packet classifiers on an interface is the order in which they will be compared against incoming packets for a match. Each entry of this table is indexed by the interface index that the classifier is applied to, with the value 0 representing all interfaces, the name of the previous packet classifier applied on the interface and the name of the current packet classifier. This linked-list structure allows classifiers to be inserted at arbitrary positions in the list." INDEX { mplsMplsPacketClassifierAppliedIfIndex, mplsMplsPacketClassifierAppliedPrevName, mplsMplsPacketClassifierAppliedCurrName } ::= { mplsMplsPacketClassifierAppliedTable 1 } MplsPacketClassifierAppliedEntry ::= SEQUENCE { mplsPacketClassifierAppliedIfIndex InterfaceIndexOrZero, mplsPacketClassifierAppliedPrevName DisplayString, mplsPacketClassifierAppliedCurrName DisplayString, mplsPacketClassifierAppliedRowStatus RowStatus } mplsPacketClassifierAppliedIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "Interface index that this classifier is being applied to. Zero represents all interfaces." ::= { mplsPacketClassifierAppliedEntry 1 } mplsPacketClassifierAppliedPrevName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Name of the previous classifier that was applied to this interface. An empty string indicates that this is the first classifier in the list." ::= { mplsPacketClassifierAppliedEntry 2 } mplsPacketClassifierAppliedCurrName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Name of the current classifier that is being applied to this interface." ::= { mplsPacketClassifierAppliedEntry 3 } mplsPacketClassifierAppliedRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For controlling the creation and deletion of this row." ::= { mplsPacketClassifierAppliedEntry 4 } -- End of packetClassifierAppliedTable -- Packet classifier rule performance table mplsPacketClassifierRulePerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsPacketClassifierRulePerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains performance statistics on packet classifier rules defined in mplsPacketClassifierRuleTable that are currently active on some interface." ::= { mplsPacketClassifierObjects 5 } mplsPacketClassifierRulePerfEntry OBJECT-TYPE SYNTAX MplsPacketClassifierRulePerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry represents statistics corresponding to a rule defined in mplsPacketClassifierRuleTable that has been applied to an interface." INDEX { mplsPacketClassifierAppliedIfIndex, mplsPacketClassifierName, mplsPacketClassifierRuleIndex } ::= { mplsPacketClassifierRulePerfTable 1 } MplsPacketClassifierRulePerfEntry ::= SEQUENCE { mplsPacketClassifierRuleMatchedPackets Counter32, mplsPacketClassifierRuleMatchedOctets Counter32 } mplsPacketClassifierRuleMatchedPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of packets that matched this rule." ::= { mplsPacketClassifierRulePerfEntry 1 } mplsPacketClassifierRuleMatchedOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of octets that matched this rule." ::= { mplsPacketClassifierRulePerfEntry 2 } -- End of mplsPacketClassifierRulePerfTable -- End of PACKET-CLASSIFIER-MIB END -- -- Copyright (C) The Internet Society (2000). All Rights Reserved. -- -- This document and translations of it may be copied and furnished -- to others, and derivative works that comment on or otherwise -- explain it or assist in its implementation may be prepared, -- copied, published and distributed, in whole or in part, without -- restriction of any kind, provided that the above copyright notice -- and this paragraph are included on all such copies and derivative -- works. However, this document itself may not be modified in any -- way, such as by removing the copyright notice or references to the -- Internet Society or other Internet organizations, except as needed -- for the purpose of developing Internet standards in which case the -- procedures for copyrights defined in the Internet Standards -- process must be followed, or as required to translate it into -- languages other than English. -- -- The limited permissions granted above are perpetual and will not -- be revoked by the Internet Society or its successors or assigns. -- This document and the information contained herein is provided on -- an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET -- ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR -- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE -- OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY -- IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR -- PURPOSE.