-- ***************************************************************** -- DLINKSW-IP-FILTER-MIB.mib : IP FILTER MIB -- -- Copyright (c) 2016 D-Link Corporation, all rights reserved. -- -- ***************************************************************** DLINKSW-IP-FILTER-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32 FROM SNMPv2-SMI InetAddressType, InetAddress, InetAddressPrefixLength FROM INET-ADDRESS-MIB MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF DisplayString, RowStatus FROM SNMPv2-TC dlink-common-mgmt FROM DLINK-ID-REC-MIB; dlinkSwIPFilterMIB MODULE-IDENTITY LAST-UPDATED "201606210000Z" ORGANIZATION "D-Link Corp." CONTACT-INFO " D-Link Corporation Postal: No. 289, Sinhu 3rd Rd., Neihu District, Taipei City 114, Taiwan, R.O.C Tel: +886-2-66000123 E-mail: tsd@dlink.com.tw " DESCRIPTION "This MIB module defines objects for IP filter." REVISION "201606080000Z" DESCRIPTION "This is the first version of the MIB file for configuring IP filter." REVISION "201606210000Z" DESCRIPTION "Add dPrefixListTable, dPrefixListRuleTable and dPrefixListDescTable." ::= { dlink-common-mgmt 117 } dIPFilterNotifications OBJECT IDENTIFIER ::= { dlinkSwIPFilterMIB 0 } dIPFilterObjects OBJECT IDENTIFIER ::= { dlinkSwIPFilterMIB 1 } dIPFilterConform OBJECT IDENTIFIER ::= { dlinkSwIPFilterMIB 2 } -- ------------------------------------------------------------------------ -- -- Create or delete route-map -- dRouteMapTable OBJECT-TYPE SYNTAX SEQUENCE OF DRouteMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains route-map name." ::= { dIPFilterObjects 1 } dRouteMapEntry OBJECT-TYPE SYNTAX DRouteMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry is a specific name of a route map." INDEX { dRouteMapName } ::= { dRouteMapTable 1 } DRouteMapEntry ::= SEQUENCE { dRouteMapName DisplayString, dRouteMapRowStatus RowStatus } dRouteMapName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..16)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the route map." ::= { dRouteMapEntry 1 } dRouteMapRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of the route-map. Only createAndGo(4) and destroy(6) are supported." ::= { dRouteMapEntry 99 } -- -- Route map configuration -- dRouteMapSeqTable OBJECT-TYPE SYNTAX SEQUENCE OF DRouteMapSeqEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains entries for route maps instances." ::= { dIPFilterObjects 2 } dRouteMapSeqEntry OBJECT-TYPE SYNTAX DRouteMapSeqEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry is a specific sequence of a route map." INDEX { dRouteMapName, dRouteMapSeqNum } ::= { dRouteMapSeqTable 1 } DRouteMapSeqEntry ::= SEQUENCE { dRouteMapSeqNum Unsigned32, dRouteMapSeqMatchAction INTEGER, dRouteMapSeqRowStatus RowStatus } dRouteMapSeqNum OBJECT-TYPE SYNTAX Unsigned32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Multiple entries of the same route map can be created by assigning a different sequence number to it. Each instance is identified by the route map name and the sequence number. The value of the sequence number associated with the particular route map instance determines the order in which the routing protocol evaluates routes; the instance of having lowest sequence number is evaluated first. If the routes pass all the match conditions specified in the lowest-numbered instance, and if all set clause elements are successfully configured, then no other instance of the route map is considered. However, any routes that do not pass all the match conditions are evaluated against the next instance of the route map." ::= { dRouteMapSeqEntry 1 } dRouteMapSeqMatchAction OBJECT-TYPE SYNTAX INTEGER { permit(1), deny(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the action performed by this route map instance." ::= { dRouteMapSeqEntry 2 } dRouteMapSeqRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Controls creation/deletion of entries in this table according to the RowStatus textual convention. The writable columns in a row cannot be changed if the row is active. In other words, once created, dRouteMapMatchAction cannot be modified directly. It is required to destroy the instance and then create it with the new value. Before configure match or set a clause/element, it is required to create the same route map instance. Deletion of the route map instance will also delete all the clause elements confgured which associate the deleted route map." ::= { dRouteMapSeqEntry 99 } -- -- The route-map clauses(match and set command) table -- dRouteMapClauseTable OBJECT-TYPE SYNTAX SEQUENCE OF DRouteMapClauseEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains entries for instances of the route map clause elements." ::= { dIPFilterObjects 3 } dRouteMapClauseEntry OBJECT-TYPE SYNTAX DRouteMapClauseEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry describes the characteristics of one route map clause element instance." INDEX { dRouteMapName, dRouteMapSeqNum, dRouteMapClauseTypeId, dRouteMapClauseSubId } ::= { dRouteMapClauseTable 1 } DRouteMapClauseEntry ::= SEQUENCE { dRouteMapClauseTypeId INTEGER, dRouteMapClauseSubId Integer32, dRouteMapClauseAddOption INTEGER, dRouteMapClauseElementValue DisplayString, dRouteMapClauseRowStatus RowStatus } dRouteMapClauseTypeId OBJECT-TYPE SYNTAX INTEGER { matchIpAccessList(1), matchIpPrefixList(2), matchIpv6AccessList(3), matchAsPath(4), matchCommunity(5), macthIpNexthop(7), matchIpNexthopPrefixList(8), matchMetric(9), matchInterface(10), matchRouteType(11), matchIpRouteSource(12), matchIpv6Nexthop(13), matchIpv6NexthopPrefixList(14), matchIpv6PrefixList(15), -- set clause element selection options setIpNexthop(129), setIpv6Nexthop(131), setAsPath(136), setCommunity(137), setMetric(139), setLocalPreference(140), setOrigin(141), setWeight(142), setDampening(143), setMetricType(144) } MAX-ACCESS not-accessible STATUS current DESCRIPTION "The type of match or set command in this entry. A route map entry can contain multiple match and set statements. To match a route against a route map entry, all of the match clause elements in a route map sequence must be satisfied. When a route map entry is matched, all the set clause elements in the sequence will be performed (if applicable) for a 'permit' sequence. The valid values and ranges of dRouteMapClauseAddOption and dRouteMapClauseElementValue depends on this object. Please refer to the dRouteMapClauseRowStatus object's DESCRIPTION for details." ::= { dRouteMapClauseEntry 1 } dRouteMapClauseSubId OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Indicates the clause element sub ID. Because for some clause types (e.g. setIpNexthop), multiple instances can be created, this object is used solely to distinguish specific instance of the element. If the created instance has same dRouteMapName, dRouteMapSeqNum, dRouteMapClauseTypeId and dRouteMapClauseElementValue as the entry exists in the dRouteMapClauseTable,the creation will be rejected. This value is determined by choosing the next available by walking the table and may change across system reboots." ::= { dRouteMapClauseEntry 2 } dRouteMapClauseAddOption OBJECT-TYPE SYNTAX INTEGER { notApplicable(0), exact(1), additive(2), communityNone(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "This indicates the additional option selected along with the main option (dRouteMapClauseTypeId) whenever it applies. For more information on how to map this object value to each value, refer to the route-map clauses table in the dRouteMapClauseRowStatus object's DESCRIPTION." DEFVAL { notApplicable } ::= { dRouteMapClauseEntry 3 } dRouteMapClauseElementValue OBJECT-TYPE SYNTAX DisplayString (SIZE(0..255)) MAX-ACCESS read-create STATUS current DESCRIPTION "This represents match and set clauses' variable element instance values in character string form. Whatever may be the data type of the attribute element instance value, it is always interpreted as a set of characters for both configuration and display purposes. It is up to the user to know the element's data type mapping in order to input the correct value while configuring. Refer to the route-map clauses table in the dRouteMapClauseRowStatus object descrption for detailed information." ::= { dRouteMapClauseEntry 4 } dRouteMapClauseRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Controls creation/deletion of entries in this table according to the RowStatus textual convention. The writable columns in a row cannot be changed if the row is active. In other words, the table entry elements may not be modified. To create/delete an entry in this table, the following entry objects MUST be explicitly configured: dRouteMapClauseRowStatus dRouteMapClauseElementValue Make sure the corresponding route map(s) are created before configuring their corresponding clause elements. The table below explains how to determine the values and ranges of dRouteMapClauseAddOption and dRouteMapClauseElementValue. Clause element configuration table ==================================================== Clause Type Addtional Option Element Value dRouteMapClauseTypeId dRouteMapClauseAddOption dRouteMapClauseElementValue ======================= ========================== ================== matchIpAccessList notApplicable DisplayString (SIZE(1..32)) matchIpPrefixList notApplicable DisplayString (SIZE(1..32)) matchIpv6AccessList notApplicable DisplayString (SIZE(1..32)) matchIpv6PrefixList notApplicable DisplayString (SIZE(1..32)) matchAsPath notApplicable DisplayString (SIZE(1..32)) matchCommunity exact/ DisplayString (SIZE(1..32)) notApplicable DisplayString (SIZE(1..32)) macthIpNexthop notApplicable DisplayString (SIZE(1..32)) matchIpNexthopPrefixList notApplicable DisplayString (SIZE(1..32)) matchIpv6Nexthop notApplicable DisplayString (SIZE(1..32)) matchIpv6NexthopPrefixList notApplicable DisplayString (SIZE(1..32)) matchMetric notApplicable DisplayString (SIZE(1..32)) matchInterface notApplicable DisplayString (SIZE(1..32)) matchRouteType notApplicable DisplayString (SIZE(1..32)) matchIpRouteSource notApplicable DisplayString (SIZE(1..32)) setIpNexthop notApplicable InetAddressIPv4 setIpv6Nexthop notApplicable InetAddressIPv6 setAsPath notApplicable DisplayString (SIZE(1..32)) setCommunity(Note#1) additive/ DisplayString (SIZE(1..32)) communityNone zero-length string notApplicable DisplayString (SIZE(1..32)) setMetric notApplicable Unsigned32 setLocalPreference notApplicable Unsigned32 setOrigin notApplicable { egp, igp, incomplete } (Note#2) setWeight notApplicable Interger32 (0..65535) setDampening notApplicable Interger32 (0..65535) setMetricType notApplicable Interger32 (0..65535) ======================================================================================== Note#1: Given a {route map, sequence number}, setCommunity will have at most one instance, i.e., all options and values will be aggregated into one dRouteMapClauseSubId. When 'additive' is chosen for dRouteMapClauseAddOption, the specified community list will be added to the existed community list. If 'communityNone' is chosen, the dRouteMapClauseElementValue should be a zeor-length string. When read dRouteMapClauseElementValue, the value 'additive' is never returned. Note#2: The element value needs choose the exact case-sensitive string to set the option. For example, for setOrigin, egp or igp or incomplete will be the valid options to select." ::= { dRouteMapClauseEntry 99 } -- -- IP standard access list name -- dAccessListTable OBJECT-TYPE SYNTAX SEQUENCE OF DAccessListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains name for IP access list." ::= { dIPFilterObjects 4 } dAccessListEntry OBJECT-TYPE SYNTAX DAccessListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry contains the information of IP access list." INDEX { dAccessListName, dAccessListAddrType } ::= { dAccessListTable 1 } DAccessListEntry ::= SEQUENCE { dAccessListName DisplayString, dAccessListAddrType InetAddressType, dAccessListRowStatus RowStatus } dAccessListName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..16)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the IP access list." ::= { dAccessListEntry 1 } dAccessListAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object indicates the address type of the access list." ::= { dAccessListEntry 2 } dAccessListRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of this entry. Only createAndGo(4) and destroy(6) are supported." ::= { dAccessListEntry 99 } -- -- IP access list rule table -- dAccessListRuleTable OBJECT-TYPE SYNTAX SEQUENCE OF DAccessListRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains rules for IP access list." ::= { dIPFilterObjects 5 } dAccessListRuleEntry OBJECT-TYPE SYNTAX DAccessListRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry contains one rule of the IP access list." INDEX { dAccessListName, dAccessListAddrType, dAccessListRuleMatchAction, dAccessListRuleNetAddr, dAccessListRulePfxLen } ::= { dAccessListRuleTable 1 } DAccessListRuleEntry ::= SEQUENCE { dAccessListRuleMatchAction INTEGER, dAccessListRuleNetAddr InetAddress, dAccessListRulePfxLen INTEGER, dAccessListRuleRowStatus RowStatus } dAccessListRuleMatchAction OBJECT-TYPE SYNTAX INTEGER { permit(1), deny(2) } MAX-ACCESS not-accessible STATUS current DESCRIPTION "Indicates the action performed for this IP access list." ::= { dAccessListRuleEntry 1 } dAccessListRuleNetAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "Indicates the network address." ::= { dAccessListRuleEntry 2 } dAccessListRulePfxLen OBJECT-TYPE SYNTAX INTEGER MAX-ACCESS not-accessible STATUS current DESCRIPTION "Indicates the prefix length of the network address." ::= { dAccessListRuleEntry 3 } dAccessListRuleRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of this entry. Only createAndGo(4) and destroy(6) are supported." ::= { dAccessListRuleEntry 99 } -- -- IP prefix list name -- dPrefixListTable OBJECT-TYPE SYNTAX SEQUENCE OF DPrefixListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains name for IP prefix list." ::= { dIPFilterObjects 6 } dPrefixListEntry OBJECT-TYPE SYNTAX DPrefixListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry contains the information of IP prefix list." INDEX { dPrefixListName, dPrefixListAddrType } ::= { dPrefixListTable 1 } DPrefixListEntry ::= SEQUENCE { dPrefixListName DisplayString, dPrefixListAddrType InetAddressType, dPrefixListRowStatus RowStatus } dPrefixListName OBJECT-TYPE SYNTAX DisplayString (SIZE(1..16)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The name of the IP prefix list." ::= { dPrefixListEntry 1 } dPrefixListAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object indicates the address type of the prefix." ::= { dPrefixListEntry 2 } dPrefixListRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of this entry. Only createAndGo(4) and destroy(6) are supported." ::= { dPrefixListEntry 99 } -- -- IP prefix list rule -- dPrefixListRuleTable OBJECT-TYPE SYNTAX SEQUENCE OF DPrefixListRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table consists of a list of IP prefixes. The initial 2 index elements identify the prefix list that a prefix belongs to. " ::= { dIPFilterObjects 7 } dPrefixListRuleEntry OBJECT-TYPE SYNTAX DPrefixListRuleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry contains the information of an IP prefix." INDEX { dPrefixListName, dPrefixListAddrType, dPrefixListRuleSeqNum } ::= { dPrefixListRuleTable 1 } DPrefixListRuleEntry ::= SEQUENCE { dPrefixListRuleSeqNum Unsigned32, dPrefixListRuleAction INTEGER, dPrefixListRuleNetAddr InetAddress, dPrefixListRulePrefixLen InetAddressPrefixLength, dPrefixListRuleGeValue Unsigned32, dPrefixListRuleLeValue Unsigned32, dPrefixListRuleHitCount Unsigned32, dPrefixListRuleRowStatus RowStatus } dPrefixListRuleSeqNum OBJECT-TYPE SYNTAX Unsigned32 ( 0 | 1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The checking sequence of the prefix within a prefix list. The lower the number is, the higher the precedence of the permit/deny rule. The special value of 0 means the sequence number will be automatically determined by the agent. " ::= { dPrefixListRuleEntry 1 } dPrefixListRuleAction OBJECT-TYPE SYNTAX INTEGER { permit(1), deny(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates whether to permit or deny the matched route entry." ::= { dPrefixListRuleEntry 2 } dPrefixListRuleNetAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the network address (prefix)." ::= { dPrefixListRuleEntry 3 } dPrefixListRulePrefixLen OBJECT-TYPE SYNTAX InetAddressPrefixLength MAX-ACCESS read-create STATUS current DESCRIPTION "The length of network address (prefix)." ::= { dPrefixListRuleEntry 4 } dPrefixListRuleGeValue OBJECT-TYPE SYNTAX Unsigned32(0 | 1..128) MAX-ACCESS read-create STATUS current DESCRIPTION "The minimum prefix length of the route that can be matched. The special value of 0 indicates this object is not specified. " DEFVAL { 0 } ::= { dPrefixListRuleEntry 5 } dPrefixListRuleLeValue OBJECT-TYPE SYNTAX Unsigned32 (0 | 1..128) MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum prefix length of the route that can be matched. The special value of 0 indicates this object is not specified. " DEFVAL { 0 } ::= { dPrefixListRuleEntry 6 } dPrefixListRuleHitCount OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "Counter that the prefix list entry has been matched." ::= { dPrefixListRuleEntry 7 } dPrefixListRuleRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of this entry. Only createAndGo(4) and destroy(6) are supported." ::= { dPrefixListRuleEntry 99 } -- -- IP prefix list description -- dPrefixListDescTable OBJECT-TYPE SYNTAX SEQUENCE OF DPrefixListDescEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table consists of a list of descriptions for IP prefix lists." ::= { dIPFilterObjects 8 } dPrefixListDescEntry OBJECT-TYPE SYNTAX DPrefixListDescEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry contains the description of an IP prefix list." INDEX { dPrefixListName, dPrefixListAddrType } ::= { dPrefixListDescTable 1 } DPrefixListDescEntry ::= SEQUENCE { dPrefixListDescContent DisplayString, dPrefixListDescRowStatus RowStatus } dPrefixListDescContent OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "Specify the description for prefix list." ::= { dPrefixListDescEntry 1 } dPrefixListDescRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of this entry. Only createAndGo(4) and destroy(6) are supported." ::= { dPrefixListDescEntry 99 } -- Conformance Information dIPFilterMIBGroups OBJECT IDENTIFIER ::= { dIPFilterConform 1 } dIPFilterMIBCompliances OBJECT IDENTIFIER ::= { dIPFilterConform 2 } -- Compliance Statements dIPFilterMIBFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement" MODULE -- this module MANDATORY-GROUPS { dRouteMapGroup, dRouteMapSeqGroup, dRouteMapClauseGroup, dAccessListGroup, dAccessListRuleGroup, dPrefixListGroup, dPrefixListRuleGroup, dPrefixListDescGroup } ::= { dIPFilterMIBCompliances 1 } -- units of conformance dRouteMapGroup OBJECT-GROUP OBJECTS { dRouteMapRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring route map configurations." ::= { dIPFilterMIBGroups 1 } dRouteMapSeqGroup OBJECT-GROUP OBJECTS { dRouteMapSeqMatchAction, dRouteMapSeqRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring route map sequence configurations." ::= { dIPFilterMIBGroups 2 } dRouteMapClauseGroup OBJECT-GROUP OBJECTS { dRouteMapClauseAddOption, dRouteMapClauseElementValue, dRouteMapClauseRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring route map clauses." ::= { dIPFilterMIBGroups 3 } dAccessListGroup OBJECT-GROUP OBJECTS { dAccessListRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring IP access list configuration." ::= { dIPFilterMIBGroups 4 } dAccessListRuleGroup OBJECT-GROUP OBJECTS { dAccessListRuleRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring IP access list rules configuration." ::= { dIPFilterMIBGroups 5 } dPrefixListGroup OBJECT-GROUP OBJECTS { dPrefixListRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring route map clauses." ::= { dIPFilterMIBGroups 6 } dPrefixListRuleGroup OBJECT-GROUP OBJECTS { dPrefixListRuleAction, dPrefixListRuleNetAddr, dPrefixListRulePrefixLen, dPrefixListRuleGeValue, dPrefixListRuleLeValue, dPrefixListRuleHitCount, dPrefixListRuleRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring IP access list configuration." ::= { dIPFilterMIBGroups 7 } dPrefixListDescGroup OBJECT-GROUP OBJECTS { dPrefixListDescContent, dPrefixListDescRowStatus } STATUS current DESCRIPTION "These objects are used for managing/monitoring IP access list rules configuration." ::= { dIPFilterMIBGroups 8 } END