// =================================================================== // Title: Network BGP Model 2.8 // Filename: Network28_BGP.mof // Version: 2.8 // Status: Preliminary // Date: August 18, 2003 // =================================================================== // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. // =================================================================== // Description: The Network Model extends the management concepts to // represent protocol interfaces and network/protocol // services. This file defines the classes that model // BGP (Border Gateway Protocol). // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.8 // CR1128 - Change subclassing of HostedBGPPeerGroup, // HostedBGPAttributes, and HostedBGPRoutMap from // Dependency to HostedDependency. // // Change Log for v2.7 // CR792 - Add the Composition qualifer to BGPClustersInAS, // ASBGPEndpoints, and Confederation // CR863 - Update the format of the MappingStrings qualifier when // referencing IETF RFCs // CR866 - Fixes to the BGP Model // CR920 - BGPAttributes.AtomicAggregate is incorrectly defined with // Values/ValueMap qualifiers when it is a boolean - these // qualifiers must be removed and the Description updated // CR965 - Update Description for BGPIPRoute // CR982 - Removal of Experimental for preliminary to final // CR983 - v2.7 Deprecations promoted to final // =================================================================== #pragma Locale ("en_US") // ================================================================== // BGPService // ================================================================== [Version ("2.7.0"), Description ( "This class is used to represent the basic operation of BGP. " "It is derived from RouteCalculationService, the superclass of " "all routing protocols.") ] class CIM_BGPService : CIM_RouteCalculationService { [Description ( "The BGPVersion property defines the version of BGP that " "this router is using. This is part of the BGP peer " "negotiation process)."), MappingStrings {"MIB.IETF|BGP4-MIB.bgpVersion"} ] uint8 BGPVersion; [Description ( "BGP sends errors using a NOTIFICATION message. This " "message contains an error code, an error subcode, and error " "data. The error code defines the type of the " "notification. The 'Cease' error is for all fatal errors " "that are not one of the other five types of errors. For " "several of the errors, subcode information is also " "enumerated in other properties of this class."), ValueMap {"0", "1", "2", "3", "4", "5", "6"}, Values {"None", "Message Header Error", "OPEN Message Error", "UPDATE Message Error", "Hold Timer Expired", "Finite State Machine Error", "Cease"} ] uint16 LastErrorCode; [Description ( "This defines the BGP error subcode for message header " "errors (LastErrorCode = 1). If LastErrorCode is any other " "value, then this property should be set to NULL."), ValueMap {"0", "1", "2", "3"}, Values {"None", "Connection Not Synchronized", "Bad Message Length", "Bad Message Type"}, ModelCorrespondence {"CIM_BGPService.ErrorCode"} ] uint16 LastMessageErrorSubCode; [Description ( "This defines the BGP error subcode for OPEN message errors " "(LastErrorCode = 2). If LastErrorCode is any other value, " "then this property should be set to NULL."), ValueMap {"0", "1", "2", "3", "4", "5", "6"}, Values {"None", "Unsupported Version Number", "Bad Peer AS", "Bad BGP Identifier", "Unsupported Optional Parameter", "Authentication Failure", "Unacceptable Hold Time"}, ModelCorrespondence {"CIM_BGPService.ErrorCode"} ] uint16 LastOpenErrorSubCode; [Description ( "This defines the BGP error subcode for UPDATE message " "errors (LastErrorCode = 3). If LastErrorCode is any other " "value, then this property should be set to NULL."), ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"}, Values {"None", "Malformed Attribute List", "Unrecognized Well-Known Attribute", "Missing Well-Known Attribute", "Attribute Flags Error", "Attribute Length Error", "Invalid Origin Attribute", "AS Routing Loop", "Invalid NEXT_HOP Attribute", "Optional Attribute Error", "Invalid Network Field", "Malformed AS_path"}, ModelCorrespondence {"CIM_BGPService.ErrorCode"} ] uint16 LastUpdateErrorSubCode; }; // ================================================================== // BGPAdminDistance // ================================================================== [Association, Version ("2.6.0"), Description ( "This is a specialization of the Dependency association, and " "defines the relationship between a BGPService and the " "AdministrativeDistances that it uses to control the (BGP) " "routing decisions that it makes.") ] class CIM_BGPAdminDistance : CIM_Dependency { [Override ("Antecedent"), Min (1), Max (1), Description ( "The table of (global) administrative distances that are " "used by the BGPService.") ] CIM_AdministrativeDistance REF Antecedent; [Override ("Dependent"), Description ( "The BGPService object that makes BGP routing decisions.") ] CIM_BGPService REF Dependent; }; // ================================================================== // BGPCluster // ================================================================== [Version ("2.6.0"), Description ( "The BGP speakers in an AS are required to be fully meshed. " "This can lead to a huge number of TCP connections per router. " "One way to reduce the peering requirements is to use a route " "reflector. This is based on specifying one or more routers to " "act as focal points for IBGP sessions.\n" "\n" "The route reflector as a whole is called a cluster. It is " "logically divided into three types of routers: reflectors, " "clients of the route reflector(s), and non-clients of the " "route reflector. There can be more than one route reflector " "in a cluster, and there can be more than one cluster in an " "AS.") ] class CIM_BGPCluster : CIM_CollectionOfMSEs { [Key, Description ( "If a cluster has more than one route reflector, all of the " "route reflectors in the cluster need to be configured with " "a 4-byte cluster ID. This allows route reflectors to " "recognize updates from other route reflectors in the same " "cluster.") ] uint32 ClusterID; }; // ================================================================== // RoutersInBGPCluster // ================================================================== [Association, Aggregation, Version ("2.6.0"), Description ( "This aggregation establishes the routers (ComputerSystems) in " "a BGPCluster. At least three routers are required to form a " "cluster - a reflector and two clients. The routers that form " "a cluster share common configuration information.") ] class CIM_RoutersInBGPCluster : CIM_CollectedMSEs { [Aggregate, Override ("Collection"), Max (1), Description ( "The Cluster that aggregates the routers participating in " "it.") ] CIM_BGPCluster REF Collection; [Override ("Member"), Min (3), Description ( "The routers that form the Cluster.") ] CIM_ComputerSystem REF Member; }; // ================================================================== // BGPClustersInAS // ================================================================== [Association, Aggregation, Composition, Version ("2.7.0"), Description ( "This aggregation establishes 'whole-part' relationships " "between an AutonomousSystem and the BGPClusters that it " "contains.") ] class CIM_BGPClustersInAS { [Key, Aggregate, Max (1), Description ( "The AutonomousSystem that aggregates the Clusters belonging " "to it and administers them.") ] CIM_AutonomousSystem REF GroupAS; [Key, Description ( "The Clusters that are contained in the AS.") ] CIM_BGPCluster REF PartAS; }; // ================================================================== // Confederation // ================================================================== [Association, Aggregation, Composition, Version ("2.7.0"), Description ( "The BGP speakers in an AS are required to be fully meshed. " "This can lead to a huge number of TCP connections per router. " "One way to reduce the peering requirements is to use a " "confederation. A confederation effectively partitions one AS " "into a group of 'sub-ASs'. This enables all of the benefits " "of IBGP to be applied inside the confederation, while enabling " "EBGP to be run between each confederation. It also enables " "certain BGP attribute values to be preserved between " "confederations. However, to the outside world, the AS with " "its confederations appear to be a single AS.") ] class CIM_Confederation : CIM_SystemComponent { [Aggregate, Override ("GroupComponent"), Max (1), Description ( "The AutonomousSystem that contains the confederations.") ] CIM_AutonomousSystem REF GroupComponent; [Override ("PartComponent"), Description ( "The Confederation within the AutonomousSystem.") ] CIM_AutonomousSystem REF PartComponent; [Description ( "A unique identifier of the AutonomousSystem that contains " "the confederations.") ] uint32 ParentASNumber; [Description ( "A unique identifier of the Confederation within the " "AutonomousSystem.") ] uint32 ChildASNumber; }; // ================================================================== // BGPIPRoute // ================================================================== [Version ("2.6.0"), Description ( "BGPIPRoute describes a BGP routing entry that connects two " "peer routers that are running BGP. The source and destination " "addresses may be either specific IP endpoints or IP subnets. " "Examining the BGPIPRoute class definition, note that its " "superclass IPRoute is deprecated. Unfortunately, IPRoute " "cannot be removed from the object hierarchy without a major " "Schema release. When/if this occurs, the IPRoute superclass " "will be removed, and BGPIPRoute will subclass from " "CIM_NextHopRouting directly.") ] class CIM_BGPIPRoute : CIM_IPRoute { [Description ( "Usually, the administrative distance is used to determine " "which route gets installed in the routing table. Using " "this scheme, routes learned via EBGP will win over routes " "learned via an IGP. If this is not desired, then this " "assigns the administrative distance of this route to be " "equal to that of a local route, which means that the same " "route learned by an IGP will have a lower administrative " "distance and be installed instead.") ] boolean IsBackDoorRoute; [Description ( "Loopback interfaces are often used by IBGP peers, because " "they eliminate a dependency that would otherwise occur if " "the actual IP address of a physical interface was used to " "configure BGP. The loopback interface instead instructs " "the router to use any available interface.") ] boolean UsesLoopbackPeering; }; // ================================================================== // RoutesBGP // ================================================================== [Association, Version ("2.6.0"), Description ( "This association defines a BGP route, and makes explicit the " "dependency between a BGPIPRoute and a BGPProtocolEndpoint.") ] class CIM_RoutesBGP : CIM_Dependency { [Override ("Antecedent"), Max (2), Description ( "The BGPProtocolEndpoints that represent the source and " "destination (or at least the next hop) of the BGP route.") ] CIM_BGPProtocolEndpoint REF Antecedent; [Override ("Dependent"), Min (1), Description ( "The routing table entry that represents a BGP route.") ] CIM_BGPIPRoute REF Dependent; }; // ================================================================== // EGPRouteCalcDependency // ================================================================== [Association, Version ("2.6.0"), Description ( "This is a specialization of ServiceServiceDependency, and " "captures the dependency that external gateway protocols (such " "as BGP) have on interior gateway protocols (such as OSPF).") ] class CIM_EGPRouteCalcDependency : CIM_ServiceServiceDependency { [Override ("Antecedent"), Description ( "The independent RouteCalculationService that provides " "routing information from the AS, for the EGP to use.") ] CIM_RouteCalculationService REF Antecedent; [Override ("Dependent"), Description ( "The dependent RouteCalculationService (e.g., the Route " "CalculationService) that is functioning as an EGP.") ] CIM_RouteCalculationService REF Dependent; [Description ( "Sometimes it is necessary to inject EGP information, such " "as that from BGP, into IGPs. This attribute defines " "whether this should be done for the two routing protocols " "that are defined by this association. The values below " "mean that no, partial, and full EGP information is injected " "into the IGP, respectively."), ValueMap {"1", "2", "3"}, Values {"None", "Partial", "Full"} ] uint16 IGPInjection; }; // ================================================================== // BGPPeerGroup // ================================================================== [Version ("2.7.0"), Description ( "A BGP Peer Group is a set of BGP neighbors that share the same " "update policies. This enables an administrator to assign " "policies to the peer group, instead of individually. This " "enables the routers in the Peer Group to optimize UPDATE " "messages. Consequently, Peer Groups have a set of " "restrictions that must be followed in order to work correctly " "with external BGP peers. Otherwise, loss of routing " "information could occur.\n" "\n" "A BGPPeerGroup is weak to the AutonomousSystem that contains " "it. Therefore, the keys from System must be propagated to " "it.") ] class CIM_BGPPeerGroup : CIM_CollectionOfMSEs { [Key, Propagated ("CIM_AutonomousSystem.CreationClassName"), Description ( "The scoping AutonomousSystem's CreationClassName."), MaxLen (256) ] string SystemCreationClassName; [Key, Propagated ("CIM_AutonomousSystem.Name"), Description ( "The scoping AutonomousSystem's Name."), MaxLen (256) ] string SystemName; [Key, Description ( "CreationClassName indicates the name of the class or the " "subclass used in the creation of an instance. When used " "with the other key properties of this class, this property " "allows all instances of this class and its subclasses to be " "uniquely identified.") ] string CreationClassName; [Key, Description ( "This is the name of the BGP Peer Group."), MaxLen (256) ] string Name; [Description ( "This defines the time interval, in seconds, for the " "ConnectRetry timer for the endpoints of the routers in the " "PeerGroup. The suggested value is 120 seconds."), Units ("Seconds"), MappingStrings { "MIB.IETF|BGP4-MIB.bgpConnectRetryInterval"} ] uint32 ConnectRetryInterval = 120; [Description ( "This defines the time interval in seconds for the Hold " "TimeConfigured property of the endpoints of the routers in " "the PeerGroup. This value must not be less than three " "seconds. The suggested value for this timer is 90 " "seconds."), Units ("Seconds"), MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerHoldTimeConfigured"} ] uint16 HoldTimeConfigured = 90; [Description ( "This defines the time interval in seconds for the " "KeepAliveConfigured timer for the endpoints of the routers " "in the PeerGroup. The suggested value for this property is " "30 seconds. The maximum value of this property is 21845 " "seconds."), Units ("Seconds"), MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerKeepAliveConfigured"} ] uint16 KeepAliveConfigured = 30; [Description ( "This defines the time interval in seconds for the " "MinASOriginationInterval timer for the endpoints of the " "routers in the PeerGroup. The suggested value for this " "property is 15 seconds."), Units ("Seconds"), MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerMinASOriginationInterval"} ] uint16 MinASOriginationInterval = 15; [Description ( "This defines the time interval in seconds for the " "MinRouteAdvertisementInterval timer for the endpoints of " "the routers in the PeerGroup. The suggested value for this " "property is 30 seconds."), Units ("Seconds"), MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerMinRouteAdvertisementInterval"} ] uint16 MinRouteAdvertisementInterval = 30; }; // ================================================================== // HostedBGPPeerGroup // ================================================================== [Association, Version ("2.6.0"), Description ( "A BGPPeerGroup is weak to the AutonomousSystem that contains " "it. This association formalizes that relationship.") ] class CIM_HostedBGPPeerGroup : CIM_HostedDependency { [Override ("Antecedent"), Min (1), Max (1), Description ( "The AutonomousSystem that scopes the BGP peer group.") ] CIM_AutonomousSystem REF Antecedent; [Override ("Dependent"), Weak, Description ( "The BGP peer group defined in the context of the " "AutonomousSystem.") ] CIM_BGPPeerGroup REF Dependent; }; // ================================================================== // InBGPPeerGroup // ================================================================== [Association, Aggregation, Version ("2.6.0"), Description ( "This aggregation defines the specific routers (i.e., " "ComputerSystems) that participate in a PeerGroup.") ] class CIM_InBGPPeerGroup : CIM_CollectedMSEs { [Aggregate, Override ("Collection"), Max (1), Description ( "The PeerGroup that aggregates the routers.") ] CIM_BGPPeerGroup REF Collection; [Override ("Member"), Min (2), Description ( "The routers that comprise the PeerGroup.") ] CIM_ComputerSystem REF Member; }; // ================================================================== // BGPPeerGroupService // ================================================================== [Association, Version ("2.7.0"), Description ( "This defines the relationship between a BGPService and a " "specific BGPPeerGroup in which it is executing.") ] class CIM_BGPPeerGroupService : CIM_Dependency { [Override ("Antecedent"), Description ( "The BGPPeerGroup in which the BGPService is executing.") ] CIM_BGPPeerGroup REF Antecedent; [Override ("Dependent"), Description ( "The BGPService that is executing in the BGPPeerGroup.") ] CIM_BGPService REF Dependent; }; // ================================================================== // ReflectorService // ================================================================== [Association, Version ("2.6.0"), Description ( "This association will serve as the base class for defining and " "distributing BGP routing information for the reflector of this " "Cluster.") ] class CIM_ReflectorService : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The Cluster for which this Service is being defined.") ] CIM_BGPCluster REF Antecedent; [Override ("Dependent"), Min (1), Description ( "The BGPService which distributes routing information in the " "Cluster.") ] CIM_BGPService REF Dependent; }; // ================================================================== // ReflectorClientService // ================================================================== [Association, Version ("2.6.0"), Description ( "This association will serve as the base class for handling BGP " "routing information for clients of the reflector of this " "Cluster.") ] class CIM_ReflectorClientService : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The Cluster for which this Service is being defined.") ] CIM_BGPCluster REF Antecedent; [Override ("Dependent"), Min (1), Description ( "The BGPService to handles routing information as a client " "in the Cluster.") ] CIM_BGPService REF Dependent; }; // ================================================================== // ReflectorNonClientService // ================================================================== [Association, Version ("2.6.0"), Description ( "This association will serve as the base class for handling BGP " "routing information for the non-clients of the reflector of " "this Cluster.") ] class CIM_ReflectorNonClientService : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The Cluster for which this Service is being defined.") ] CIM_BGPCluster REF Antecedent; [Override ("Dependent"), Description ( "The BGPService which handles routing information as a " "non-client of the Cluster.") ] CIM_BGPService REF Dependent; }; // ================================================================== // BGPRoutingPolicy // ================================================================== [Association, Version ("2.6.0"), Description ( "This is a specialization of the Dependency association, and " "defines the relationship between a BGPService and the " "RoutingPolicy that control it.") ] class CIM_BGPRoutingPolicy : CIM_Dependency { [Override ("Antecedent"), Description ( "The BGP routing policy object.") ] CIM_RoutingPolicy REF Antecedent; [Override ("Dependent"), Description ( "The BGPService that operates according to the routing " "policy.") ] CIM_BGPService REF Dependent; }; // ================================================================== // BGPAttributes // ================================================================== [Version ("2.7.0"), Description ( "This class defines the BGP Attributes, that can be used to " "affect routing decisions. BGPAttributes are specific to a " "given AutonomousSystem that contains it. Hence, the keys of " "the AutonomousSystem are propagated to this class.") ] class CIM_BGPAttributes : CIM_LogicalElement { [Key, Propagated ("CIM_AutonomousSystem.CreationClassName"), Description ( "The scoping AutonomousSystem's CreationClassName."), MaxLen (256) ] string SystemCreationClassName; [Key, Propagated ("CIM_AutonomousSystem.Name"), Description ( "The scoping AutonomousSystem's Name."), MaxLen (256) ] string SystemName; [Key, Description ( "This defines the version of the BGP protocol.") ] string Version; [Description ( "This defines the priority, or preference, of a route, in " "order to better compare it with other routes for the same " "destination. Higher values indicate a higher preference " "for a route."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrLocalPref"} ] uint16 LocalPreference; [Description ( "This attribute is a sequences of the AS numbers through " "which routing information carried in this UPDATE message " "has passed. The components of this list can be AS_SETs or " "AS_SEQUENCEs."), MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrASPath"} ] string ASPath; [Description ( "This is the set of all elements contained in all specific " "paths that are being summarized, so that those attributes " "will remain available to the routing decision process.") ] string AS_Set; [Description ( "This attribute defines the IP address of the border router " "that should be used as the next hop to the destinations " "listed in the UPDATE message."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrNextHop"} ] string NextHop; [Description ( "This defines the next hop to be the IP address of the " "border IBGP neighbor.") ] string NextHopSelf; [Description ( "This is used on external (e.g., inter-AS) links to indicate " "which is the preferred entry point into an AS, when that AS " "has multiple entry points. Lower MED values have " "preference."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrMultiExitDisc"} ] uint32 MED; [Description ( "This defines a group of destinations that share a similar " "property. Communities are not restricted to a single AS, " "and can span multiple ASs. This attribute is used to " "simplify routing policies by basing policies on a logical " "value, as opposed to an IP address or an AS number.") ] uint32 BGPCommunityValue; [Description ( "This property is set to TRUE if there are overlapping " "routes, and a less-specific route is selected instead of a " "more specific one (e.g., a system propagates an aggregate " "that causes loss of information). The value is set to " "FALSE if a less-specific route is NOT selected."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrAtomicAggregate"} ] boolean AtomicAggregate; [Description ( "This specifies the AS and IP address of the router that has " "generated an aggregate."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrAggregatorAS"} ] string Aggregator; [Description ( "This is generated by the AS that originates the routing " "information. There are three types of origins - IGP, EGP, " "and INCOMPLETE. These correspond to whether the " "information was learned internally in the AS, externally " "via an EGP, or by some other means."), ValueMap {"1", "2", "3"}, Values {"IGP", "EGP", "INCOMPLETE"}, MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrOrigin"} ] uint16 Origin; [Description ( "This is the router ID for the ORIGIN attribute.") ] string OriginatorID; }; // ================================================================== // HostedBGPAttributes // ================================================================== [Association, Version ("2.7.0"), Description ( "The class BGPAttributes is weak to the AutonomousSystem that " "contains it. This association formalizes that relationship.") ] class CIM_HostedBGPAttributes : CIM_HostedDependency { [Override ("Antecedent"), Min (1), Max (1), Description ( "The AutonomousSystem that scopes the BGP attributes.") ] CIM_AutonomousSystem REF Antecedent; [Override ("Dependent"), Weak, Description ( "The BGP attributes defined in the context of the " "AutonomousSystem.") ] CIM_BGPAttributes REF Dependent; }; // ================================================================== // FilteredBGPAttributes // ================================================================== [Association, Aggregation, Version ("2.7.0"), Description ( "This is a specialization of the Component aggregation, which " "is used to define the set of BGP Attributes that are used by a " "particular Routing Policy.") ] class CIM_FilteredBGPAttributes : CIM_Component { [Aggregate, Override ("GroupComponent"), Description ( "The RoutingPolicy, which aggregates a set of BGP " "attributes.") ] CIM_RoutingPolicy REF GroupComponent; [Override ("PartComponent"), Description ( "A BGP attribute, which is part-of the RoutingPolicy.") ] CIM_BGPAttributes REF PartComponent; }; // ================================================================== // BGPRouteMap // ================================================================== [Version ("2.7.0"), Description ( "A route map is used to control and modify routing information " "as well as to define when a route is redistributed between " "routing domains. Route maps are placed in router " "configuration files, and several instances of the same route " "map may be used to implement different actions. RouteMaps MAY " "use FilterLists to identify the route.\n" "\n" "A BGPRouteMap is specific to a given AutonomousSystem that " "contains it. Hence, the keys of the AutonomousSystem are " "propagated to this class.") ] class CIM_BGPRouteMap : CIM_LogicalElement { [Key, Propagated ("CIM_AutonomousSystem.CreationClassName"), Description ( "The scoping AutonomousSystem's CreationClassName."), MaxLen (256) ] string SystemCreationClassName; [Key, Propagated ("CIM_AutonomousSystem.Name"), Description ( "The scoping AutonomousSystem's Name."), MaxLen (256) ] string SystemName; [Key, Description ( "CreationClassName indicates the name of the class or the " "subclass used in the creation of an instance. When used " "with the other key properties of this class, this property " "allows all instances of this class and its subclasses to be " "uniquely identified.") ] string CreationClassName; [Key, Override ("Name"), Description ( "This is the name of the RouteMap class."), MaxLen (256) ] string Name; [Description ( "This defines whether this RouteMap is used for input, " "output, or both input and output filtering."), ValueMap {"1", "2", "3"}, Values {"Input", "Output", "Both"} ] uint16 Direction; [Description ( "This defines whether the action should be to forward or " "deny traffic meeting the match condition specified in this " "RouteMap."), ValueMap {"1", "2"}, Values {"Permit", "Deny"} ] uint16 Action; [Description ( "This specifies the criteria that must be matched in order " "for the corresponding MatchAction to take effect. The " "matching of the criteria may be specified by using a " "FilterList. For example, the command 'match ip address " "foo' uses the FilterList named 'foo' to do the matching of " "IP addresses."), ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"}, Values {"Other", "Source Address and Mask", "Destination Address and Mask", "Source Port", "Source Port Range", "Destination Port", "Destination Port Range", "Protocol Type", "Protocol Type and Option"}, ModelCorrespondence { "CIM_RouteMap.OtherMatchConditionType"} ] uint16 MatchConditionType; [Description ( "If the value of the MatchConditionType property in this " "class is 1 (i.e., \"Other\"), then the specific type of " "filtering is specified in this property."), ModelCorrespondence { "CIM_RouteMap.MatchConditionType"} ] string OtherMatchConditionType; [Description ( "This defines an additional action to take if the " "MatchCondition is satisfied. This definition is " "specifically limited to BGP filtering at this time. The " "actual value of the metric is specified in the " "SetMetricValue property."), ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9"}, Values {"Origin", "AS_Path", "NEXT_HOP", "Multi_Exit_Disc", "Local_Pref", "Atomic_Aggregate", "Aggregator", "Community", "Originator_ID"}, ModelCorrespondence {"CIM_BGPRouteMap.SetMetricValue"} ] uint16 SetMetricType; [Description ( "This is the value of the metric that is being set for the " "BGP attribute defined in the SetMetricType property.") ] string SetMetricValue; }; // ================================================================== // HostedBGPRouteMap // ================================================================== [Association, Version ("2.6.0"), Description ( "A BGPRouteMap is weak to the AutonomousSystem that contains " "it. This association formalizes that relationship.") ] class CIM_HostedBGPRouteMap : CIM_HostedDependency { [Override ("Antecedent"), Min (1), Max (1), Description ( "The AutonomousSystem that scopes the BGPRouteMap.") ] CIM_AutonomousSystem REF Antecedent; [Override ("Dependent"), Weak, Description ( "The BGPRouteMap defined in the context of the " "AutonomousSystem.") ] CIM_BGPRouteMap REF Dependent; }; // ================================================================== // BGPRouteMapsInRoutingPolicy // ================================================================== [Association, Aggregation, Version ("2.6.0"), Description ( "This aggregation defines the BGPRouteMaps that are used by a " "particular RoutingPolicy object. Multiple instances of the " "same RouteMap may be used in the same RoutingPolicy instance. " "If this is desired, then the Sequence attribute of this " "aggregation can be used to disambiguate them.") ] class CIM_BGPRouteMapsInRoutingPolicy : CIM_Component { [Aggregate, Override ("GroupComponent"), Description ( "The RoutingPolicy that aggregates the RouteMaps.") ] CIM_RoutingPolicy REF GroupComponent; [Override ("PartComponent"), Description ( "The RouteMaps that are used by the RoutingPolicy.") ] CIM_BGPRouteMap REF PartComponent; [Description ( "This defines the position of this RouteMap instance " "relative to all other instances of the same RouteMap.") ] uint16 MapSequence; }; // ================================================================== // BGPPeerUsesRouteMap // ================================================================== [Association, Aggregation, Version ("2.6.0"), Description ( "This association defines the RouteMaps that are aggregated and " "used by a particular BGPPeerGroup object. Multiple instances " "of the same RouteMap may be aggregated into the same " "BGPPeerGroup. If this is desired, then the MapSequence " "attribute of the association can be used to disambiguate " "them.") ] class CIM_BGPPeerUsesRouteMap : CIM_CollectedMSEs { [Aggregate, Override ("Collection"), Description ( "The BGPPeerGroup that aggregates the RouteMaps.") ] CIM_BGPPeerGroup REF Collection; [Override ("Member"), Description ( "The RouteMaps that are used by the BGPPeerGroup.") ] CIM_BGPRouteMap REF Member; [Description ( "This defines the position of this RouteMap instance " "relative to all other instances of the same RouteMap.") ] uint16 MapSequence; }; // ================================================================== // FilterListsInBGPRouteMap // ================================================================== [Association, Version ("2.6.0"), Description ( "RouteMaps do not have to use FilterLists, but if they do, this " "association defines which FilterList is used by a particular " "RouteMap.") ] class CIM_FilterListsInBGPRouteMap : CIM_Dependency { [Override ("Antecedent"), Description ( "The FilterList used by a RouteMap.") ] CIM_FilterList REF Antecedent; [Override ("Dependent"), Description ( "The RouteMap using the FilterList.") ] CIM_BGPRouteMap REF Dependent; }; // ================================================================== // BGPPathAttributes // ================================================================== [Version ("2.7.0"), Description ( "This class defines the per-path information used to process " "specific BGP attribute information, as defined in the " "bgp4PathAttrTable of RFC 1657.") ] class CIM_BGPPathAttributes : CIM_LogicalElement { [Key, Description ( "A comma-separated list of AS numbers, as would be stored in " "the value portion of the path segment in the " "PathAttrASPathSegment property. This list can be ordered " "or unordered."), MaxLen (512) ] string ASNumbers; [Key, Description ( "This is the address of the border router that should be " "used for the destination network."), MaxLen (32), MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrNextHop"} ] string PathAttrNextHop; [Description ( "This property and its description are taken directly from " "RFC 1657. The property represents a sequence of AS path " "segments. Each AS path segment is represented by the tuple:\n" "\n" "The type is a 1-octet field which has two possible values:\n" "1 = AS_SET\n" "2 = AS_SEQUENCE\n" "An AS_SET is an unordered set of ASs representing the path " "that an UPDATE message has traversed, and an AS_SEQUENCE is " "an ordered set of ASs representing the path that an UPDATE " "message has traversed.\n" "The length is a 1-octet field containing the number of ASs " "in the value field.\n" "The value field contains one or more AS numbers, each AS is " "represented in the octet string as a pair of octets " "according to the following algorithm:\n" "first-byte-of-pair = ASNumber / 256;\n" "second-byte-of-pair = ASNumber & 255;\n" "This property is mapped from the bgp4PathAttrASPathSegment " "MIB variable, which is an OctetString. Its length is " "defined as a minimum of 2 and a maximum of 255 octets."), OctetString, MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrASPathSegment"} ] uint8 PathAttrASPathSegment[]; [Description ( "This is an enumeration that defines the ultimate origin of " "the path information. The value 'IGP' means that the " "origin is interior; the value 'EGP' means that it was " "learned via an EGP; the value 'INCOMPLETE' means that the " "origin is undetermined."), ValueMap {"1", "2", "3"}, Values {"IGP", "EGP", "Incomplete"}, MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrOrigin"} ] uint16 PathAttrOrigin; [Description ( "This metric is used to discriminate between multiple " "adjacent autonomous systems. A value of -1 indicates the " "absence of this attribute. The range of this attribute is " "defined to be -1 to 2147483647."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrMultiExitDisc"} ] sint32 PathAttrMultiExitDisc; [Description ( "This is the originating BGP4 speaker's degree of preference " "for an advertised route. A value of -1 indicates the " "absence of this attribute. The range of this attribute is " "defined to be -1 to 2147483647."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrLocalPref"} ] sint32 PathAttrLocalPref; [Description ( "This is an enumeration that defines whether or not the " "local system has selected a less specific route without " "selecting a more specific route. There are two values, 1 " "and 2, indicating that a less specific route has not and " "has been selected, respectively. This is a 32-bit integer " "to correspond to the IETF MIB."), ValueMap {"0", "1", "2"}, Values {"Unknown", "Less Specific Not Selected", "Less Specific Selected"}, MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrAtomicAggregate"} ] uint32 PathAttrAtomicAggregate; [Description ( "This is the AS number of the last BGP speaker that " "performed route aggregation. A value of 0 indicates the " "absence of this attribute. The range of this attribute is " "defined to be 0 to 65535."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrAggregatorAS"} ] uint16 PathAttrAggregatorAS; [Description ( "This is the IP address of the last BGP speaker that " "performed route aggregation. A value of 0.0.0.0 indicates " "the absence of this attribute."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrAggregatorAddr"} ] string PathAttrAggregatorAddr; [Description ( "This is the degree of preference calculated by the " "receiving BGP speaker for an advertised route. A value of " "-1 indicates the absence of this attribute. The range of " "this attribute is defined to be -1 to 2147483647."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrCalcLocalPref"} ] sint16 PathAttrCalcLocalPref; [Description ( "This is an indication of whether or not this route was " "chosen as the best BGP route. There are three possible " "values, 0 (Unknown), 1 (FALSE) and 2 (TRUE)."), ValueMap {"0", "1", "2"}, Values {"Unknown", "False", "True"}, MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrBest"} ] uint16 PathAttrBest; [Description ( "This contains one or more path atributes not understood by " "this BGP speaker. It is a array of path attributes that " "are not understood. The number of attributes is placed in " "a separate property of this class, PathAttrUnknownNumber."), OctetString, MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrUnknown"}, ModelCorrespondence { "CIM_BGPPathAttributes.PathAttrUnknownNumber"} ] string PathAttrUnknown[]; [Description ( "The number of unknown attributes in the array, " "PathAttrUnknown."), MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrUnknown"}, ModelCorrespondence { "CIM_BGPPathAttributes.PathAttrUnknown"} ] uint16 PathAttrUnknownNumber; }; // ================================================================== // BGPAttributesForRoute // ================================================================== [Association, Version ("2.7.0"), Description ( "This defines the attributes that are transmitted between BGP " "peers on a per-route basis.") ] class CIM_BGPAttributesForRoute : CIM_Dependency { [Override ("Antecedent"), Max (1), Description ( "The BGPPathAttribute object that may be associated with a " "BGPIPRoute.") ] CIM_BGPPathAttributes REF Antecedent; [Override ("Dependent"), Max (1), Description ( "The BGPIPRoute that may have an associated set of per-peer " "attributes.") ] CIM_BGPIPRoute REF Dependent; [Description ( "This defines the IP address of the peer where the path " "information was learned."), MappingStrings {"MIB.IETF|BGP4-MIB.bgp4PathAttrPeer"}, ModelCorrespondence { "CIM_BGPPathAttributes.PathAttrIpAddrPrefixLen", "CIM_BGPPathAttributes.PathAttrIpAddrPrefix"} ] string PathAttrPeer; [Description ( "This defines the length in bits of the IP address prefix " "for the property, PathAttrPeer. The range is 0 to 32."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrIpAddrPrefixLen"}, ModelCorrespondence { "CIM_BGPPathAttributes.PathAttrPeer"} ] uint8 PathAttrIPAddrPrefixLen; [Description ( "The IP address prefix of the property, PathAttrPeer. Its " "length is specified by the property, " "PathAttrIpAddrPrefixLen."), MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrIpAddrPrefix"}, ModelCorrespondence { "CIM_BGPPathAttributes.PathAttrPeer", "CIM_BGPPathAttributes.PathAttrIpAddrPrefixLen"} ] string PathAttrIPAddrPrefix; }; // ================================================================== // BGPServiceAttributes // ================================================================== [Association, Deprecated {"No value"}, Aggregation, Version ("2.7.0"), Description ( "This is a specialization of the Component aggregation. This " "aggregation defines the set of BGPPathAttributes that are " "transmitted in per-path UPDATE messages. The association is " "deprecated since it is incorrectly defined as a Component " "relationship, and since the properties of BGPPathAttribute are " "path/endpoint-specific (not defined at the level of the " "Service).") ] class CIM_BGPServiceAttributes : CIM_Component { [Deprecated {"No value"}, Aggregate, Override ("GroupComponent"), Max (1), Description ( "The BGPService that aggregates BGPPathAttributes as part of " "its routing information.") ] CIM_BGPService REF GroupComponent; [Deprecated {"No value"}, Override ("PartComponent"), Max (1), Description ( "The BGP attribute, which are part-of the BGP UPDATE " "message.") ] CIM_BGPPathAttributes REF PartComponent; }; // ================================================================== // BGPEndpointStatistics // ================================================================== [Version ("2.7.0"), Description ( "This class contains statistical information for a connection " "on a BGPProtocolEndpoint. It is defined as a subclass of " "StatisticalData and associated with the Endpoint using the " "relationship, ElementStatisticalData.") ] class CIM_BGPEndpointStatistics : CIM_StatisticalData { [Description ( "This is the number of BGP UPDATE messages received on this " "router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerInUpdates"} ] uint32 InUpdates; [Description ( "This is the number of BGP UPDATE messages transmitted on " "this router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerOutUpdates"} ] uint32 OutUpdates; [Description ( "This is the total number of BGP messages received on this " "router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerInTotalMessages"} ] uint32 InTotalMessages; [Description ( "This is the total number of BGP messages transmitted on " "this router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerOutTotalMessages"} ] uint32 OutTotalMessages; [Description ( "This contains the last error code and error subcode for " "this router's BGP connection. If no error has occurred, " "then each integer in the array is zero."), MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerLastError"} ] uint8 LastError [2]; [Description ( "This contains the total number of times that the BGP Finite " "State Machine has transitioned into the established state " "for this router's BGP connection. This is a 32-bit " "counter."), Counter, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerFsmEstablishedTransitions"} ] uint32 FsmEstablishedTransitions; [Description ( "This indicates how long, in seconds, this peer has been in " "the established state, or how long since this peer was last " "in the established state. It is set to zero when a new " "peer is configured or when the router is booted. This has " "the semantics of a 32-bit gauge."), Units ("Seconds"), Gauge, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerFsmEstablishedTime"} ] uint32 FsmEstablishedTime; [Description ( "This defines the time in seconds since the last BGP UPDATE " "message was received from the peer. This has the semantics " "of a 32-bit gauge."), Units ("Seconds"), Gauge, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerInUpdateElapsedTime"} ] uint32 InUpdateElapsedTime; }; // ================================================================== // BGPStatistics // ================================================================== [Deprecated {"CIM_BGPEndpointStatistics"}, Version ("2.7.0"), Description ( "This class contains statistical information for a Service's " "sessions. It is deprecated since the statistics are defined " "in the BGP4 MIB at the level of individual peers/ endpoints.") ] class CIM_BGPStatistics : CIM_ServiceStatisticalInformation { [Deprecated {"CIM_BGPEndpointStatistics.InUpdates"}, Description ( "This is the number of BGP UPDATE messages received on this " "router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerInUpdates"} ] uint32 InUpdates; [Deprecated {"CIM_BGPEndpointStatistics.OutUpdates"}, Description ( "This is the number of BGP UPDATE messages transmitted on " "this router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerOutUpdates"} ] uint32 OutUpdates; [Deprecated {"CIM_BGPEndpointStatistics.InTotalMessages"}, Description ( "This is the total number of BGP messages received on this " "router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerInTotalMessages"} ] uint32 InTotalMessages; [Deprecated {"CIM_BGPEndpointStatistics.OutTotalMessages"}, Description ( "This is the total number of BGP messages transmitted on " "this router's BGP connection. This is a 32-bit counter."), Counter, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerOutTotalMessages"} ] uint32 OutTotalMessages; [Deprecated {"CIM_BGPEndpointStatistics.LastError"}, Description ( "This contains the last error code and error subcode for " "this router's BGP connection. If no error has occurred, " "then each integer in the array is zero."), MappingStrings {"MIB.IETF|BGP4-MIB.bgpPeerLastError"} ] uint8 LastError [2]; [Deprecated {"CIM_BGPEndpointStatistics.FsmEstablishedTransitions"}, Description ( "This contains the total number of times that the BGP Finite " "State Machine has transitioned into the established state " "for this router's BGP connection. This is a 32-bit " "counter."), Counter, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerFsmEstablishedTransitions"} ] uint32 FsmEstablishedTransitions; [Deprecated {"CIM_BGPEndpointStatistics.FsmEstablishedTime"}, Description ( "This indicates how long, in seconds, this peer has been in " "the established state, or how long since this peer was last " "in the established state. It is set to zero when a new " "peer is configured or when the router is booted. This has " "the semantics of a 32-bit gauge."), Units ("Seconds"), Gauge, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerFsmEstablishedTime"} ] uint32 FsmEstablishedTime; [Deprecated {"CIM_BGPEndpointStatistics.InUpdateEstablishedTime"}, Description ( "This defines the time in seconds since the last BGP UPDATE " "message was received from the peer. This has the semantics " "of a 32-bit gauge."), Units ("Seconds"), Gauge, MappingStrings { "MIB.IETF|BGP4-MIB.bgpPeerInUpdateElapsedTime"} ] uint32 InUpdateElapsedTime; }; // ================================================================== // BGPServiceStatistics // ================================================================== [Association, Deprecated {"CIM_ElementStatisticalData"}, Version ("2.7.0"), Description ( "This association defines statistics collected for a BGP " "Service. The relationship is deprecated since the class " "BGPStatistics is deprecated. It is incorrectly associated " "with a BGPService, but should instead be associated with a " "BGPProtocolEndpoint using the ElementStatisticalData " "relationship.") ] class CIM_BGPServiceStatistics : CIM_ServiceStatistics { [Deprecated {"CIM_ElementStatisticalData.Stats"}, Override ("Stats"), Max (1), Description ( "The statistics object for the BGP session.") ] CIM_BGPStatistics REF Stats; [Deprecated {"CIM_ElementStatisticalData.ManagedElement"}, Override ("Element"), Min (1), Max (1), Description ( "The BGPService for which statistics are being gathered.") ] CIM_BGPService REF Element; }; // =================================================================== // end of file // ===================================================================