PKTC-ES-IPTAP-MIB DEFINITIONS ::= BEGIN IMPORTS Integer32, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF InetAddress, InetAddressPrefixLength, InetAddressType, InetPortNumber FROM INET-ADDRESS-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB RowStatus FROM SNMPv2-TC pktcEScTapMediationContentId, pktcEScTapStreamIndex FROM PKTC-ES-TAP-MIB pktcESSupportMibs FROM CLAB-DEF-MIB; pktcESIpTapMIB MODULE-IDENTITY LAST-UPDATED "200804250000Z" ORGANIZATION "Cable Television Laboratories, Inc." CONTACT-INFO "Bernie McKibben Cable Television Laboratories, Inc. 858 Coal Creek Circle, Louisville, CO 80027, USA Phone: +1 303-661-3823 Email: mibs@cablelabs.com Primary Author: Srinivas Dhulipala, Cisco Systems" DESCRIPTION "This module manages intercept feature for IP. This MIB is used along with TAP-MIB to intercept IP traffic. TAP-MIB along with specific filter MIBs like this MIB replace TAP-MIB. To create an IP intercept, an entry pktcESTapStreamEntry is created which contains the filter details. An entry pktcEScpktcESTapStreamEntry of TAP-MIB is created, which is the common stream information for all kinds of intercepts and type of the specific stream is set to ip in this entry." REVISION "200804250000Z" DESCRIPTION "Initial version of this MIB module." ::= { pktcESSupportMibs 2 } pktcESIpTapMIBNotifs OBJECT IDENTIFIER ::= { pktcESIpTapMIB 0 } pktcESIpTapMIBObjects OBJECT IDENTIFIER ::= { pktcESIpTapMIB 1 } pktcESIpTapMIBConform OBJECT IDENTIFIER ::= { pktcESIpTapMIB 2 } pktcESTapStreamEncodePacket OBJECT IDENTIFIER ::= { pktcESIpTapMIBObjects 1 } -- -- The filter specifics for intercepting IPv4 and IPv6 traffic -- pktcESTapStreamCapabilities OBJECT-TYPE SYNTAX BITS { tapEnable(0), interface(1), ipV4(2), ipV6(3), l4Port(4), dscp(5), voip(6) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object displays what types of intercept streams can be configured on this type of device. This may be dependent on hardware capabilities, software capabilities. The following fields may be supported: tapEnable: set if table entries with pktcEScTapStreamInterceptEnable set to 'false' are used to pre-screen packets for intercept; otherwise these entries are ignored. interface: SNMP ifIndex Value may be used to select interception of all data crossing an interface or set of interfaces. ipV4: IPv4 Address or prefix may be used to select traffic to be intercepted. ipV6: IPv6 Address or prefix may be used to select traffic to be intercepted. l4Port: TCP/UDP Ports may be used to select traffic to be intercepted. dscp: DSCP (Differentiated Services Code Point) may be used to select traffic to be intercepted. voip: packets belonging to a voice session may be intercepted using source IPv4 address and source UDP port." ::= { pktcESTapStreamEncodePacket 1 } -- -- The 'access list' for intercepting data at the IP network layer -- pktcESTapStreamTable OBJECT-TYPE SYNTAX SEQUENCE OF PktcESTapStreamEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Intercept Stream IP Table lists the IPv4 and IPv6 streams to be intercepted. The same data stream may be required by multiple taps, and one might assume that often the intercepted stream is a small subset of the traffic that could be intercepted. This essentially provides options for packet selection, only some of which might be used. For example, if all traffic to or from a given interface is to be intercepted, one would configure an entry which lists the interface, and wild-card everything else. If all traffic to or from a given IP Address is to be intercepted, one would configure two such entries listing the IP Address as source and destination respectively, and wild-card everything else. If a particular voice on a teleconference is to be intercepted, on the other hand, one would extract the multicast (destination) IP address, the source IP Address, the protocol (UDP), and the source and destination ports from the call control exchange and list all necessary information. The first index indicates which Mediation Device the intercepted traffic will be diverted to. The second index permits multiple classifiers to be used together, such as having an IP address as source or destination. The value of the second index is that of the stream's counter entry in the pktcEScTapStreamTable. Entries are added to this table via pktcESTapStreamStatus in accordance with the RowStatus convention." ::= { pktcESTapStreamEncodePacket 2 } pktcESTapStreamEntry OBJECT-TYPE SYNTAX PktcESTapStreamEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A stream entry indicates a single data stream to be intercepted to a Mediation Device. Many selected data streams may go to the same application interface, and many application interfaces are supported." INDEX { pktcEScTapMediationContentId, pktcEScTapStreamIndex } ::= { pktcESTapStreamTable 1 } PktcESTapStreamEntry::= SEQUENCE { pktcESTapStreamInterface Integer32, pktcESTapStreamAddrType InetAddressType, pktcESTapStreamDestinationAddress InetAddress, pktcESTapStreamDestinationLength InetAddressPrefixLength, pktcESTapStreamSourceAddress InetAddress, pktcESTapStreamSourceLength InetAddressPrefixLength, pktcESTapStreamTosByte Integer32, pktcESTapStreamTosByteMask Integer32, pktcESTapStreamFlowId Integer32, pktcESTapStreamProtocol Integer32, pktcESTapStreamDestL4PortMin InetPortNumber, pktcESTapStreamDestL4PortMax InetPortNumber, pktcESTapStreamSourceL4PortMin InetPortNumber, pktcESTapStreamSourceL4PortMax InetPortNumber, pktcESTapStreamVRF SnmpAdminString, pktcESTapStreamStatus RowStatus } pktcESTapStreamInterface OBJECT-TYPE SYNTAX Integer32 (-2..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "The ifIndex value of the interface over which traffic to be intercepted is received or transmitted. The interface may be physical or virtual. If this is the only parameter specified, and it is other than -2, -1 or 0, all traffic on the selected interface will be chosen. If the value is zero, matching traffic may be received or transmitted on any interface. Additional selection parameters must be selected to limit the scope of traffic intercepted. This is most useful on non-routing platforms or on intercepts placed elsewhere than a subscriber interface. If the value is -1, one or both of pktcESTapStreamDestinationAddress and pktcESTapStreamSourceAddress must be specified with prefix length greater than zero. Matching traffic on the interface pointed to by ipRouteIfIndex or ipCidrRouteIfIndex values associated with those values is intercepted, whichever is specified to be more focused than a default route. If routing changes, either by operator action or by routing protocol events, the interface will change with it. This is primarily intended for use on subscriber interfaces and other places where routing is guaranteed to be symmetrical. In both of these cases, it is possible to have the same packet selected for intersection on both its ingress and egress interface. Nonetheless, only one instance of the packet is sent to the Mediation Device. If the value is -2, packets belonging to a Voice over IP (VoIP) session identified by pktcESTapStreamSourceAddress, pktcESTapStreamSourceLen & pktcESTapStreamSourceL4PortMin may be intercepted, as a specific voice session can be identified with source IP address and udp port number. Other selection parameters may be not considered, even if they are set by the Mediation Device. This value must be set when creating a stream entry, either to select an interface, to select all interfaces, or to select the interface that routing chooses. Some platforms may not implement the entire range of options." REFERENCE "RFC 1213, RFC 2096" ::= { pktcESTapStreamEntry 1 } pktcESTapStreamAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "The type of address, used in packet selection." DEFVAL { ipv4 } ::= { pktcESTapStreamEntry 2 } pktcESTapStreamDestinationAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Destination address or prefix used in packet selection. This address will be of the type specified in pktcESTapStreamAddrType." DEFVAL { '00000000'H } -- 0.0.0.0 ::= { pktcESTapStreamEntry 3 } pktcESTapStreamDestinationLength OBJECT-TYPE SYNTAX InetAddressPrefixLength MAX-ACCESS read-create STATUS current DESCRIPTION "The length of the Destination Prefix. A value of zero causes all addresses to match. This prefix length will be consistent with the type specified in pktcESTapStreamAddrType." DEFVAL { 0 } -- by default, any destination address ::= { pktcESTapStreamEntry 4 } pktcESTapStreamSourceAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Source Address used in packet selection. This address will be of the type specified in pktcESTapStreamAddrType." DEFVAL { '00000000'H } -- 0.0.0.0 ::= { pktcESTapStreamEntry 5 } pktcESTapStreamSourceLength OBJECT-TYPE SYNTAX InetAddressPrefixLength MAX-ACCESS read-create STATUS current DESCRIPTION "The length of the Source Prefix. A value of zero causes all addresses to match. This prefix length will be consistent with the type specified in pktcESTapStreamAddrType." DEFVAL { 0 } -- by default, any source address ::= { pktcESTapStreamEntry 6 } pktcESTapStreamTosByte OBJECT-TYPE SYNTAX Integer32 (0..255) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of the TOS byte, when masked with pktcESTapStreamTosByteMask, of traffic to be intercepted. If pktcESTapStreamTosByte&(~pktcESTapStreamTosByteMask)!=0, configuration is rejected." DEFVAL { 0 } ::= { pktcESTapStreamEntry 7 } pktcESTapStreamTosByteMask OBJECT-TYPE SYNTAX Integer32 (0..255) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of the TOS byte in an IPv4 or IPv6 header is ANDed with pktcESTapStreamTosByteMask and compared with pktcESTapStreamTosByte. If the values are equal, the comparison is equal. If the mask is zero and the TosByte value is zero, the result is to always accept." DEFVAL { 0 } -- by default, any DSCP or other TOS byte value ::= { pktcESTapStreamEntry 8 } pktcESTapStreamFlowId OBJECT-TYPE SYNTAX Integer32 (-1 | 0..1048575) MAX-ACCESS read-create STATUS current DESCRIPTION "The flow identifier in an IPv6 header. -1 indicates that the Flow Id is unused." DEFVAL { -1 } -- by default, any flow identifier value ::= { pktcESTapStreamEntry 9 } pktcESTapStreamProtocol OBJECT-TYPE SYNTAX Integer32 (-1 | 0..255) MAX-ACCESS read-create STATUS current DESCRIPTION "The IP protocol to match against the IPv4 protocol number or the IPv6 Next- Header number in the packet. -1 means 'any IP protocol'." DEFVAL { -1 } -- by default, any IP protocol ::= { pktcESTapStreamEntry 10 } pktcESTapStreamDestL4PortMin 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 value must be equal to or less than the value specified for this entry in pktcESTapStreamDestL4PortMax. If both pktcESTapStreamDestL4PortMin and pktcESTapStreamDestL4PortMax are at their default values, the port number is effectively unused." DEFVAL { 0 } -- by default, any transport layer port number ::= { pktcESTapStreamEntry 11 } pktcESTapStreamDestL4PortMax 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 pktcESTapStreamDestL4PortMin. If both pktcESTapStreamDestL4PortMin and pktcESTapStreamDestL4PortMax are at their default values, the port number is effectively unused." DEFVAL { 65535 } -- by default, any transport layer port number ::= { pktcESTapStreamEntry 12 } pktcESTapStreamSourceL4PortMin 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 value must be equal to or less than the value specified for this entry in pktcESTapStreamSourceL4PortMax. If both pktcESTapStreamSourceL4PortMin and pktcESTapStreamSourceL4PortMax are at their default values, the port number is effectively unused." DEFVAL { 0 } -- by default, any transport layer port number ::= { pktcESTapStreamEntry 13 } pktcESTapStreamSourceL4PortMax 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 pktcESTapStreamSourceL4PortMin. If both pktcESTapStreamSourceL4PortMin and pktcESTapStreamSourceL4PortMax are at their default values, the port number is effectively unused." DEFVAL { 65535 } -- by default, any transport layer port number ::= { pktcESTapStreamEntry 14 } pktcESTapStreamVRF OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "An ASCII string, which is the name of a Virtual Routing and Forwarding (VRF) table comprising the routing context of a Virtual Private Network. The interface or set of interfaces on which the packet might be found should be selected from the set of interfaces in the VRF table. A string length of zero implies that global routing table be used for selection of interfaces on which the packet might be found." DEFVAL { "" } -- by default, global routing table ::= { pktcESTapStreamEntry 15 } pktcESTapStreamStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. This object manages creation, modification, and deletion of rows in this table. When any rows must be changed, pktcESTapStreamStatus must be first set to 'notInService'." ::= { pktcESTapStreamEntry 16 } -- conformance information pktcESIpTapMIBCompliances OBJECT IDENTIFIER ::= { pktcESIpTapMIBConform 1 } pktcESIpTapMIBGroups OBJECT IDENTIFIER ::= { pktcESIpTapMIBConform 2 } -- compliance statement pktcESIpTapMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement the Intercept MIB for IP." MODULE -- this module MANDATORY-GROUPS { pktcESIpTapStreamComplianceGroup } ::= {pktcESIpTapMIBCompliances 1 } -- units of conformance pktcESIpTapStreamComplianceGroup OBJECT-GROUP OBJECTS { pktcESTapStreamCapabilities, pktcESTapStreamInterface, pktcESTapStreamAddrType, pktcESTapStreamDestinationAddress, pktcESTapStreamDestinationLength, pktcESTapStreamSourceAddress, pktcESTapStreamSourceLength, pktcESTapStreamTosByte, pktcESTapStreamTosByteMask, pktcESTapStreamFlowId, pktcESTapStreamProtocol, pktcESTapStreamDestL4PortMin, pktcESTapStreamDestL4PortMax, pktcESTapStreamSourceL4PortMin, pktcESTapStreamSourceL4PortMax, pktcESTapStreamVRF, pktcESTapStreamStatus } STATUS current DESCRIPTION "These objects are necessary for a description of IPv4 and IPv6 packets to select for interception." ::= { pktcESIpTapMIBGroups 1 } END