version 1.1, 2001/08/07 11:08:21
|
version 1.2, 2001/12/13 14:53:16
|
|
|
|
// =================================================================== |
|
// Title: Network MOF Specification 2.6 |
|
// Filename: CIM_Network26.mof |
|
// Version: 2.6 |
|
// Release: 0 |
|
// Date: 06/01/2001 |
|
// =================================================================== |
|
// Copyright "2001" 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 cited should always be noted. |
|
// =================================================================== |
|
// Description: The object classes below are listed in an order that |
|
// avoids forward references. Required objects, defined |
|
// by other working groups, are omitted. |
|
// =================================================================== |
|
// Contents: Network Model specification, including the |
|
// BGP, Multi-Protocol Bridge, VLAN and QoS sub-models. |
|
// Editor: John Strassner |
|
// Authors: John Strassner, Al Grimstad, and Thomas McNeill, |
|
// with valuable input from other Networks WG team |
|
// members, including Andrea Westerinen, Lee Rafalow, |
|
// Marc Lavine, Walter Weiss, and Bernie Volz (for 2.2). |
|
// |
|
// For 2.4 (the QoS model and various small changes), |
|
// the authors were John Strassner and Andrea Westerinen. |
|
// Valuable input was contributed by Bob Moore, Lee |
|
// Rafalow, and Alex Wang, along with Walter Weiss and |
|
// Dave Durham. |
|
// |
|
// References: The information model represented here is based on |
|
// the following RFCs: BGP: 1657, 1700, 1771, 1965, 1966, |
|
// and 1997; Bridge: 1493 and 1525; VLAN includes |
|
// compliance with the 802.1q specification. Also, MAC |
|
// address formats are required to be in canonical form, |
|
// as stated in RFC 2469. |
|
// |
|
// The QoS model is based on the IETF DiffServ RFCs |
|
// (2474, 2475, 2597, and 2598), as well as other |
|
// related drafts (the conceptual model, the MIB, |
|
// and to a small extent, the PIB). |
|
// |
|
// =================================================================== |
|
// Date: 04/21/1999 - Initial release of the model, consolidating |
|
// each of the sub-models into a single spec |
|
// for CIM V2.2 |
|
// 05/06/1999 - Incorporated CR324, deleted references to the |
|
// User Model (this functionality will be added |
|
// back into CIM in V2.3) |
|
// 05/16/1999 - Fixed typos; Incorporated Novell |
|
// member review comments |
|
// 06/10/1999 - Added CRs 308a, 324a, 356a, 390a, 391b, |
|
// 404a, and 413 |
|
// 07/03/1999 - Miscellaneous changes according to CR cisco022 |
|
// 02/26/2000 - Incorporated the following CRs: 448b (this added |
|
// ManagedElement to the Core model); CIMCR 454 |
|
// and 455 (misc changes to the Network model) |
|
// 02/27/2000 - Incorporated CR464, which promotes the |
|
// CIM_ServiceComponent and the |
|
// CIM_AdapterActiveConnection classes to Core |
|
// 06/18/2000 - Integrated the QoS model into the Network model |
|
// (CR499) |
|
// (ERRATA) (CR500) - Corrected keys of BGPPathAttributes |
|
// (ERRATA) (CR501) - Correced cardinality of Forwarded |
|
// Routes (Antecedent must be Min(1), Max(1)) |
|
// (ERRATA) (CR506) - Corrected subclassing of Network |
|
// ServicesInAdminDomain |
|
// (ERRATA) (CR508) - Corrected 3 BGP-specific |
|
// associations - EGPRouteCalcDependency, |
|
// BGPAttributesForRoute and BGPPeerUsesRouteMap |
|
// (ERRATA) (CR510) - Removed subclassing from CIM_ |
|
// Dependency to not force reference name changes |
|
// (LogicalNetworkService and NetworksInAdminDomain) |
|
// (ERRATA) (CR512) - SwitchPortXXXStatistics should |
|
// subclass from SAPStatisticalInformation (not |
|
// SAPStatistics) and TransparentBridgingStatic |
|
// Forwarding was incorrectly named SwitchService |
|
// StaticForwarding (cut and paste error) |
|
// Added MOF for the following CRs: |
|
// CR483 updated the enum for ForwardingService. |
|
// ProtocolType |
|
// CR484 added "IB" and "FC" to various enums |
|
// CR485 created PortImplementsEndpoint |
|
// CR489 added "Policy Repository" to AdminDomain's |
|
// NameFormat enumeration |
|
// CR490a added missing associations, FilterListIn |
|
// System and FilterEntryInSystem |
|
// CR492a added FilterEntryBase, subclasses Filter |
|
// Entry from it and updates EntriesInFilterList |
|
// CR496 corrected use of SQL reserved words |
|
// CR498 added to the existing enums, and defined |
|
// two new properties of FilterEntry |
|
// CR502 added IsNegated boolean to FilterEntryBase |
|
// CR503 - Member comments on QoS |
|
// CR507a removed Min(1) or Max(1) from some |
|
// association references, to generalize them |
|
// CR509 added Override qualifier which was |
|
// missing on three associations |
|
// |
|
// 1/20/2001 - CR552 (Add ProtocolType enum to ProtocolEndpoint) |
|
// CR553 (Add NextHopRouting, subclass IPRoute from |
|
// it and update) |
|
// CR554 (Misc changes in descriptions for FilterEntry |
|
// and AdministrativeDistance) |
|
// CR556 (Update Descriptions for |
|
// TransparentBridgingService, |
|
// SpanningTreeService and SoureRouteService) |
|
// CR559a (Errata-Use of SQL reserved word in |
|
// CIM_RouteCalculationService (Type) ) |
|
// CR561 (Need to add Override qualifiers to the |
|
// CollectedBufferPool association) |
|
// CR564 (Move AdminDomain to the Core Model, change |
|
// to concrete, and update description) |
|
// CR565 (Update description for BridgeAddress property |
|
// of SwitchService to be more generic) |
|
// CR566 (ERRATA - Align with IETF DiffServ Mode) |
|
// CR567 (Update FilterList.Direction) |
|
// |
|
// =================================================================== |
|
// Generic Pragmas |
|
// =================================================================== |
|
|
|
#pragma Locale ("en_US") |
|
|
|
// ================================================================== |
|
// NetworkService |
|
// ================================================================== |
|
[Abstract, Description ( |
|
"This is an abstract base class, derived from the Service " |
|
"class. It serves as the root of the network service " |
|
"hierarchy. Network services represent generic functions " |
|
"that are available from the network that configure and/or " |
|
"modify the traffic being sent. For example, FTP is not a " |
|
"network service, as it simply passes data unchanged from " |
|
"source to destination. On the other hand, services " |
|
"that provide quality of service (e.g., DiffServ) and " |
|
"security (e.g., IPSec) do affect the traffic stream. " |
|
"Quality of service, IPSec, and other services are " |
|
"subclasses of this class. This class hierarchy enables " |
|
"developers to match services to users, groups, " |
|
"and other objects in the network.") ] |
|
|
|
class CIM_NetworkService : CIM_Service |
|
{ |
|
[Description ( |
|
"This is a free-form array of strings that provide " |
|
"descriptive words and phrases that can be used in queries " |
|
"to help locate and identify instances of this service.") ] |
|
string Keywords [ ]; |
|
[Description ( |
|
"This is a URL that provides the protocol, network " |
|
"location, and other service-specific information required " |
|
"in order to access the service. This should be implemented " |
|
"as a LabeledURI, with syntax DirectoryString and a " |
|
"matching rule of CaseExactMatch, for directory " |
|
"implementors.") ] |
|
string ServiceURL; |
|
[Description ( |
|
"This is a free-form array of strings that specify any " |
|
"specific pre-conditions that must be met in order for this " |
|
"service to start correctly. It is expected that subclasses " |
|
"will refine the inherited StartService() and StopService()" |
|
"methods to suit their own application-specific needs. This " |
|
"property is used to specify application-specific conditions " |
|
"needed by the refined StartService and StopService" |
|
"methods.") ] |
|
string StartupConditions [ ]; |
|
[Description ( |
|
"This is a free-form array of strings that specify any " |
|
"specific parameters that must be supplied to the " |
|
"StartService() method in order for this service to start " |
|
"correctly. It is expected that subclasses will refine the " |
|
"inherited StartService() and StopService() methods to suit " |
|
"their own application-specific needs. This property is used " |
|
"to specify application-specific parameters needed by the " |
|
"refined StartService and StopService methods.") ] |
|
string StartupParameters [ ]; |
|
}; |
|
|
|
// ================================================================== |
|
// NetworkServicesInAdminDomain |
|
// ================================================================== |
|
[Association, Description ( |
|
" This association establishes the Dependency relationships " |
|
"that exist between an administrative domain and the Network" |
|
"Services that it hosts. This also has the semantics that " |
|
"the associated Services are commonly administered. \n" |
|
" This relationship could be viewed as a kind of Hosted" |
|
"Service. However, the latter carries the additional " |
|
"semantics of 'weak'ness (or naming) the NetworkService " |
|
"relative to the hosted System. NetworkServices are scoped/" |
|
"named by the network device that 'hosts' them, not by " |
|
"the AdminDomain in which they are administered. Therefore, " |
|
"this relationship is similar to HostedService, but not a " |
|
"subclass of it.") ] |
|
|
|
class CIM_NetworkServicesInAdminDomain : CIM_HostedService |
|
{ |
|
[Override ("Antecedent"), Min(1), Description ( |
|
"The AdminDomain that aggregates the various " |
|
"network services and administers them.") ] |
|
CIM_AdminDomain REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The network service that is hosted in the administrative " |
|
"domain.") ] |
|
CIM_NetworkService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// ForwardingService |
|
// ================================================================== |
|
[Description ( |
|
"This class represents the functions used in forwarding " |
|
"network traffic. Its instances act on packets received" |
|
"from one or more ProtocolEndpoints or Services, and " |
|
"drop (discard), or send those packets to one or more " |
|
"other ProtocolEndpoints or Services. The explicit " |
|
"Endpoints being forwarded between, are described using the " |
|
"ForwardsAmong association (or one of its subclasses). " |
|
"\n\n" |
|
"ForwardingService is different than RouteCalculation" |
|
"Service in that it represents a way to forward " |
|
"traffic independent of calculating routing information " |
|
"(e.g., using static routing). Generally, the Endpoints " |
|
"among which a ForwardingService routes data are at the " |
|
"same protocol layer and are usually of similar types, " |
|
"or of the same type. This kind of service is used in the " |
|
"implementation of routers, switches and other network " |
|
"devices.") ] |
|
class CIM_ForwardingService : CIM_NetworkService |
|
{ |
|
[Description ( |
|
"This defines the type of protocol that is being " |
|
"forwarded. "), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", |
|
"9", "10", "11", "12", "13", "14", "15", "16", |
|
"17", "18", "19"}, |
|
Values { "Unknown", "Other", "IPv4", "IPv6", "IPv4/IPv6", |
|
"IPX", "AppleTalk", "DECnet", "SNA", "CONP", |
|
"CLNP", "VINES", "XNS", "ATM", "Frame Relay", |
|
"Ethernet", "TokenRing", "FDDI", "Infiniband", |
|
"Fibre Channel"} ] |
|
uint16 ProtocolType; |
|
[MaxLen(32), Description ( |
|
"This defines the type of protocol that is being forwarded " |
|
"when the value of the ProtocolType attribute is 1 (e.g., " |
|
"'Other'). This provides for future extensibility."), |
|
ModelCorrespondence {"CIM_ForwardingService.ProtocolType" } ] |
|
string OtherProtocolType; |
|
}; |
|
|
|
// ================================================================== |
|
// AutonomousSystem |
|
// ================================================================== |
|
[Description ( |
|
"An Autonomous System (AS) is a fundamental concept in " |
|
"networking. An AS provides a structured view of routing by " |
|
"segregating the system that is using routing (e.g., the " |
|
"Internet, or an extranet) into a set of separately " |
|
"administered domains that each have their own independent " |
|
"routing policies. These domains are called autonomous " |
|
"systems." |
|
"\n\n" |
|
"The classic definition of an AS, from RFC1771, is '...a set " |
|
"of routers under a single technical administration, using " |
|
"an interior gateway protocol and common metrics to route " |
|
"packets within the AS, and using an exterior gateway " |
|
"protocol to route packets to other ASs'. The RFC continues: " |
|
"'Since this classic definition was developed, it has become " |
|
"common for a single AS to use several interior gateway " |
|
"protocols and sometimes several sets of metrics " |
|
"within an AS. The use of the term Autonomous System here " |
|
"stresses the fact that, even when multiple IGPs and metrics " |
|
"are used, the administration of an AS appears to other ASs " |
|
"to have a single coherent interior routing plan and " |
|
"presents a consistent picture of what destinations are " |
|
"reachable through it.") ] |
|
|
|
class CIM_AutonomousSystem : CIM_AdminDomain |
|
{ |
|
[Description ( |
|
"An ASNumber is an integer between 1 and 65535, with the " |
|
"range 64512 through 65535 reserved for private use. Every " |
|
"AS has a unique AS number, which is assigned to it by an " |
|
"Internet Registry or a provider. IANA assigns and " |
|
"administers AS numbers.") ] |
|
uint16 ASNumber; |
|
[Description ( |
|
"IsSingleHomed is a boolean that, when its value is TRUE, " |
|
"indicates that this AS reaches networks outside of its " |
|
"domain through a single exit point. Whether a given AS is " |
|
"single-homed or not has important ramifications for BGP " |
|
"configuration.") ] |
|
boolean IsSingleHomed; |
|
[Description ( |
|
"IsTransit is a boolean that, when its value is TRUE, " |
|
"indicates that this AS will advertise routes that it " |
|
"learns from other ASs. A non-transit AS will only " |
|
"advertise its own routes.") ] |
|
boolean IsTransit; |
|
[Description ( |
|
"RequireIGPSync is a boolean that, when its value is TRUE, " |
|
"indicates that this AS must obey the following BGP rule: a " |
|
"BGP router should not advertise destinations learned from " |
|
"internal BGP neighbors to external BGP destinations unless " |
|
"those destinations are also known via some internal gateway " |
|
"protocol. Otherwise, a BGP router may receive traffic that " |
|
"cannot yet be routed. However, since this is a costly " |
|
"choice, it is common practice to allow this rule to be " |
|
"broken under certain carefully controlled circumstances.") ] |
|
boolean RequireIGPSync; |
|
[Description ( |
|
"RoutingUpdateSource defines how routing information is to " |
|
"be injected into BGP. Statically injected routes are " |
|
"maintained by the routing table and are independent of the " |
|
"status of the networks that they refer to. This is done by " |
|
"defining static routes in the BGP routing table. " |
|
"Dynamically injected routes are of two types. " |
|
"Dynamic routes refer to distributing all of the IGP routes " |
|
"into BGP. Semi-dynamic routes define a set of specific IGP " |
|
"routes that will be injected into BGP."), |
|
ValueMap { "0", "1", "2", "3" }, |
|
Values { "Unknown", "Static", "Dynamic", "Semi-Dynamic" } ] |
|
uint16 RoutingUpdateSource; |
|
[Description ( |
|
"Route aggregation refers to summarizing ranges of routes " |
|
"into one or more aggregate routes. This is done to minimize " |
|
"the number of routes in the global routing table. A " |
|
"potential drawback is that specific path information (e.g., " |
|
"AS_Path attribute value) is lost, which may lead to " |
|
"potential routing loops. There are a variety of ways to " |
|
"ensure that this does not happen. Note, however, that BGP4 " |
|
"is required to do this. " |
|
"\n\n" |
|
"There are many ways to form aggregate routes. The following " |
|
"are the most popular: 'Aggregate only', where only the " |
|
"aggregate is advertised, and all of its more specific " |
|
"routes are suppressed; 'Aggregate Plus Specific Routes', " |
|
"where both the aggregate as well as its more specific " |
|
"routes are advertised (e.g., send the aggregate to the NAP, " |
|
"but send the more specific routes to providers); " |
|
"'Aggregate Based on a Subset of Specific Routes', where the " |
|
"aggregate route is formed by looking at certain more " |
|
"specific routes and forming an aggregate on them, " |
|
"suppressing all others."), |
|
ValueMap { "0", "1", "2", "3", "4" }, |
|
Values { "Unknown", "None", "Aggregate Only ", |
|
"Aggregate And All Specific Routes ", |
|
"Aggregate Based on Subset of Specific Routes" } ] |
|
uint16 AggregationType; |
|
}; |
|
|
|
// ================================================================== |
|
// LogicalNetwork |
|
// ================================================================== |
|
[Description ( |
|
"A LogicalNetwork groups together a set of " |
|
"ProtocolEndpoints of a given type which are able to " |
|
"communicate with each other directly. It is used for " |
|
"describing the characteristics of the grouping " |
|
"and/or its associated medium. A LogicalNetwork " |
|
"represents the ability to send and/or receive data " |
|
"over a network.") ] |
|
|
|
class CIM_LogicalNetwork : CIM_CollectionOfMSEs |
|
{ |
|
[Propagated ("CIM_System.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping System's CreationClassName.") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_System.Name"), Key, MaxLen (256), |
|
Description ("The scoping System's Name.") ] |
|
string SystemName; |
|
[Key, MaxLen (256), 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, MaxLen (256), Description ( |
|
"The Name property defines the label by which the object is " |
|
"known.") ] |
|
string Name; |
|
[MaxLen(64), Description ( |
|
"Type is an enumeration that provides additional " |
|
"information that can be used to help categorize and " |
|
"classify different instances of this class . " |
|
"\n\n" |
|
"Subclasses should ensure that they are of the " |
|
"appropriate type defined in the Type enumeration. " |
|
"That is, the IPSubnet subclass should define its " |
|
"property as either IPv4 or IPv6, as opposed to, " |
|
"for example, ATM."), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", |
|
"10", "11", "12", "13", "14", "15", "16", "17", |
|
"18"}, |
|
Values { "Unknown", "Other", "IPv4", "IPv6", |
|
"IPX", "AppleTalk", "DECnet", "SNA", "CONP", |
|
"CLNP", "VINES", "XNS", "ATM", "Frame Relay", |
|
"Ethernet", "TokenRing", "FDDI", "Infiniband", |
|
"Fibre Channel" }, |
|
ModelCorrespondence { |
|
"CIM_LogicalNetwork.OtherTypeDescription"} ] |
|
string NetworkType; |
|
[MaxLen(64), Description ( |
|
"A string describing the type of protocol that is being " |
|
"run by this LogicalNetwork when the value of the Type " |
|
"property of the Collection class (or any of its subclasses " |
|
"is set to 1 (e.g., 'Other'). The format of the string " |
|
"inserted in this property should be similar in format to " |
|
"the values defined for the Type property. This property " |
|
"should be set to NULL when the Type property is any value " |
|
"other than 1."), |
|
ModelCorrespondence {"CIM_LogicalNetwork.NetworkType"} ] |
|
string OtherTypeDescription; |
|
}; |
|
|
|
// ================================================================== |
|
// LogicalNetworkService |
|
// ================================================================== |
|
[Association, Description ( |
|
"A LogicalNetworkService represents network services that " |
|
"either originate and/or terminate in a LogicalNetwork. This " |
|
"enables management applications to more easily identify " |
|
"services that are provided by particular network devices.") ] |
|
|
|
class CIM_LogicalNetworkService |
|
{ |
|
[Key, Description ( |
|
"The LogicalNetwork that contains the network service.") ] |
|
CIM_LogicalNetwork REF Network; |
|
[Key, Description ( |
|
"The NetworkService that is running in the LogicalNetwork. ")] |
|
CIM_NetworkService REF NetworkService; |
|
[Description ( |
|
"An enumeration that explicitly defines this network service " |
|
"as originating, terminating, or residing in this " |
|
"LogicalNetwork. "), |
|
ValueMap { "0", "1", "2", "3" }, |
|
Values {"Unknown", "Originates In", "Terminates In", |
|
"Resides In" } ] |
|
uint16 ContainmentType; |
|
}; |
|
|
|
// ================================================================== |
|
// IPSubnet |
|
// ================================================================== |
|
[Description ( |
|
"An IPSubnet represents a group of related " |
|
"IPProtocolEndpoints that can communicate with each other " |
|
"directly using IP. It is used for describing the " |
|
"characteristics of the grouping.") ] |
|
|
|
class CIM_IPSubnet : CIM_LogicalNetwork |
|
{ |
|
[Description ( |
|
"The IP address of the entire subnet, formatted according " |
|
"to the appropriate convention as defined in the AddressType " |
|
"property of this class. " |
|
"\n\n" |
|
"Note that CIDR format is not supported for this release. " |
|
"This is because, without more formal methods like " |
|
"constraints, it is possible to create different instances " |
|
"of the same object that have different naming formats." |
|
"\n\n" |
|
"IPv4-compatible addresses should be used instead of IPv6 " |
|
"addresses (see RFC 2373, section 2.5.4). In order to have a " |
|
"consistent format for IPv4 addresses in a mixed IPv4/v6 " |
|
"environment, all IPv4 addresses and both IPv4-compatible " |
|
"IPv6 addresses and IPv4-mapped IPv6 addresses, per " |
|
"RFC 2373, section 2.5.4, should be formatted in standard " |
|
"IPv4 format. However, this (the 2.2) version of the Network " |
|
"Common Model will not explicitly support mixed IPv4/IPv6 " |
|
"environments. This will be added in a future release.") ] |
|
string SubnetNumber; |
|
[Description ( |
|
"The mask for the starting IP address of the IPSubnet, " |
|
"formatted according to the appropriate convention as " |
|
"defined in the AddressType property of this class " |
|
" (e.g., '255.255.252.0').") ] |
|
string SubnetMask; |
|
[Description ( |
|
"An enumeration that describes the format of the address " |
|
"property. Addresses that can be formatted in IPv4 format, " |
|
"must be formatted that way to ensure mixed IPv4/IPv6 " |
|
"support."), |
|
ValueMap { "0", "1", "2" }, |
|
Values { "Unknown", "IPv4", "IPv6" } ] |
|
uint16 AddressType; |
|
}; |
|
|
|
// ================================================================== |
|
// ProtocolEndpoint |
|
// ================================================================== |
|
[Description ( |
|
"A communication point from which data may be sent or " |
|
"received. ProtocolEndpoints link router interfaces and " |
|
"switch ports to LogicalNetworks.") ] |
|
|
|
class CIM_ProtocolEndpoint : CIM_ServiceAccessPoint |
|
{ |
|
[Override ("Name"), MaxLen(256), Description ( |
|
"A string which identifies this ProtocolEndpoint with either " |
|
"a port or an interface on a device. To ensure uniqueness, " |
|
"the Name property should be prepended or appended with " |
|
"information from the Type or OtherTypeDescription " |
|
"properties. The method chosen is described in the " |
|
"NameFormat property of this class.") ] |
|
string Name; |
|
[MaxLen (256), Description ( |
|
"NameFormat contains the naming heuristic that is chosen to " |
|
"ensure that the value of the Name property is unique. For " |
|
"example, one might choose to prepend the name of the port " |
|
"or interface with the Type of ProtocolEndpoint that this " |
|
"instance is (e.g., IPv4)followed by an underscore.") ] |
|
string NameFormat; |
|
[MaxLen (64), Description ( |
|
"ProtocolType is an enumeration that provides additional " |
|
"information that can be used to help categorize and " |
|
"classify different instances of this class."), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", |
|
"10", "11", "12", "13", "14", "15", "16", "17", |
|
"18", "19", "20", "21"}, |
|
Values { "Unknown", "Other", "IPv4", "IPv6", "IPX", |
|
"AppleTalk", "DECnet", "SNA", "CONP", "CLNP", |
|
"VINES", "XNS", "ATM", "Frame Relay", |
|
"Ethernet", "TokenRing", "FDDI", "Infiniband", |
|
"Fibre Channel", "ISDN BRI Endpoint", |
|
"ISDN B Channel Endpoint", "ISDN D Channel Endpoint" }, |
|
ModelCorrespondence { |
|
"CIM_ProtocolEndpoint.OtherTypeDescription"} ] |
|
string ProtocolType; |
|
[MaxLen(64), Description ( |
|
"A string describing the type of ProtocolEndpoint that this " |
|
"instance is when the Type property of this class (or any of " |
|
"its subclasses) is set to 1 (e.g., 'Other'). The format of " |
|
"the string inserted in this property should be similar in " |
|
"format to the values defined for the Type property. This " |
|
"property should be set to NULL when the Type property is " |
|
"any value other than 1."), |
|
ModelCorrespondence {"CIM_ProtocolEndpoint.ProtocolType"} ] |
|
string OtherTypeDescription; |
|
}; |
|
|
|
// ================================================================== |
|
// ForwardsAmong |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association represents the dependency that exists " |
|
"between the ProtocolEndpoints that are used to forward data " |
|
"and the ForwardingService that is performing the forwarding " |
|
"of data.") ] |
|
|
|
class CIM_ForwardsAmong : CIM_ServiceSAPDependency |
|
{ |
|
[Override ("Antecedent"), Description( |
|
"The ProtocolEndpoints that are used to forward the data") ] |
|
CIM_ProtocolEndpoint REF Antecedent; |
|
[Override ("Dependent"), Description( |
|
"The service that is forwarding the data") ] |
|
CIM_ForwardingService REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// PortImplementsEndpoint |
|
// =================================================================== |
|
[Association, Description ( |
|
"PortImplementsEndpoint associates a LogicalPort with one or " |
|
"more ProtocolEndpoints that are implemented `on it'. This " |
|
"class specializes the DeviceSAPImplementation association. " |
|
"It indicates that the referenced Endpoint is dependent on the " |
|
"operations of the Port Device. (In the cases where Ports are " |
|
"not currently defined for a protocol, for example for " |
|
"Ethernet, an Endpoint could be associated directly with an " |
|
"EthernetAdapter via the DeviceSAPImplementation " |
|
"relationship.)") |
|
] |
|
class CIM_PortImplementsEndpoint : CIM_DeviceSAPImplementation |
|
{ |
|
[Override ("Antecedent"), |
|
Description ( |
|
"The LogicalPort that represents the Device behind " |
|
"the ProtocolEndpoint.") |
|
] |
|
CIM_LogicalPort REF Antecedent; |
|
[Override ("Dependent"), |
|
Description ( |
|
"The ProtocolEndpoint implemented on the LogicalPort.") |
|
] |
|
CIM_ProtocolEndpoint REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// LANEndpoint |
|
// ================================================================== |
|
|
|
[Description ( |
|
"A communication endpoint which, when its associated " |
|
"interface device is connected to a LAN, may send and " |
|
"receive data frames. LANEndpoints link switch ports and " |
|
"host interfaces to LANs. ") ] |
|
|
|
class CIM_LANEndpoint : CIM_ProtocolEndpoint |
|
{ |
|
[Description ( |
|
"A label or identifier for the LAN Segment."), |
|
ModelCorrespondence {"CIM_LANSegment.LANID"} ] |
|
string LANID; |
|
[Description ( |
|
"An indication of the kind of technology used on the LAN."), |
|
ValueMap { "0", "1", "2", "3", "4" }, |
|
Values { "Unknown", "Other", "Ethernet", "TokenRing", "FDDI" }, |
|
ModelCorrespondence {"CIM_LANSegment.LANType"} ] |
|
uint16 LANType; |
|
[Description ( |
|
"A free-form string that describes the type of technology " |
|
"used on the LAN when the value of the LANType property " |
|
"is equal to 1 (e.g., 'Other'). This provides built-in " |
|
"extensibility."), |
|
ModelCorrespondence {"CIM_LANEndpoint.LANType"} ] |
|
string OtherLANType; |
|
[MaxLen(12), Description ( |
|
"The principal unicast address used in communication " |
|
"with the LANEndpoint. The MAC address is formatted as " |
|
"twelve hexadecimal digits (e.g., \"010203040506\"), " |
|
"with each pair representing one of the six octets " |
|
"of the MAC address in \"canonical\" bit order " |
|
"according to RFC 2469.") ] |
|
string MACAddress; |
|
[Description ( |
|
"Other unicast addresses that may be used to communicate " |
|
"with the LANEndpoint.") ] |
|
string AliasAddresses[]; |
|
[Description ( |
|
"Multicast addresses to which the LANEndpoint " |
|
"listens.") ] |
|
string GroupAddresses[]; |
|
[Description ( |
|
"The largest information field that may be sent or received " |
|
"by the LANEndpoint."), Units ("Bits") ] |
|
uint32 MaxDataSize; |
|
}; |
|
|
|
// ================================================================== |
|
// LANSegment |
|
// ================================================================== |
|
[Description ( |
|
"A collection of LAN Endpoints of a particular type " |
|
"that are able to intercommunicate directly without " |
|
"the assistance of bridging or routing services.") ] |
|
|
|
class CIM_LANSegment : CIM_LogicalNetwork |
|
{ |
|
[MaxLen(64), Description ( |
|
"A label or identifier for the LAN Segment."), |
|
ModelCorrespondence {"CIM_LANEndpoint.LANID"} ] |
|
string LANID; |
|
[Description ( |
|
"An indication of the kind of technology used on the LAN."), |
|
ValueMap { "0", "1", "2", "3", "4" }, |
|
Values { "Unknown", "Other", "Ethernet", "TokenRing", "FDDI" }, |
|
ModelCorrespondence {"CIM_LANEndpoint.LANType"} ] |
|
uint16 LANType; |
|
[MaxLen(64), Description ( |
|
"A string describing the type of technology used on the LAN " |
|
"when the value of the LANType property of this class (or " |
|
"any of its subclasses) is set to 1 (e.g., 'Other'). The " |
|
"format of the string inserted in this property should be " |
|
"similar in format to the values defined for the LANType " |
|
"property. This property should be set to NULL when the " |
|
"LANType property is any value other than 1."), |
|
ModelCorrespondence {"CIM_LANSegment.LANType"} ] |
|
string OtherLANType; |
|
}; |
|
|
|
// ================================================================== |
|
// InLogicalNetwork |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This association defines a ProtocolEndpoint as a member of " |
|
"a specific LogicalNetwork.") ] |
|
|
|
class CIM_InLogicalNetwork : CIM_CollectedMSEs |
|
{ |
|
[Aggregate, Max(1), Override ("Collection"), |
|
Description ( |
|
"The LogicalNetwork that groups the ProtocolEndpoint " |
|
"instances.") ] |
|
CIM_LogicalNetwork REF Collection; |
|
[Override ("Member"), Description ( |
|
"The child ProtocolEndpoints that are components of the " |
|
"LogicalNetwork.") ] |
|
CIM_ProtocolEndpoint REF Member; |
|
}; |
|
|
|
// ================================================================== |
|
// InSegment |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"Defines a LANEndpoint as a member of a specific " |
|
"LANSegment.") ] |
|
|
|
class CIM_InSegment : CIM_InLogicalNetwork |
|
{ |
|
[Aggregate, Max(1), Override ("Collection"), Description ( |
|
"The LANSegment that groups the LANEndpoint instances.") ] |
|
CIM_LANSegment REF Collection; |
|
[Override ("Member"), Description ( |
|
"A child LANEndpoint that is a component of the " |
|
"LANSegment.") ] |
|
CIM_LANEndpoint REF Member; |
|
}; |
|
|
|
// ================================================================== |
|
// ActiveConnection |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association defines a connection that is currently " |
|
"carrying traffic between two ProtocolEndpoints.") ] |
|
|
|
class CIM_ActiveConnection : CIM_SAPSAPDependency |
|
{ |
|
[Override ("Antecedent"), Description ( |
|
"A ProtocolEndpoint in active communication with the " |
|
"dependent ProtocolEndpoint.") ] |
|
CIM_ProtocolEndpoint REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"A second ProtocolEndpoint communicating with the " |
|
"Antecedent ProtocolEndpoint.") ] |
|
CIM_ProtocolEndpoint REF Dependent; |
|
[Description ("The type of traffic that is carried " |
|
"over this connection."), |
|
ValueMap { "0", "1", "2", "3", "4", "5" }, |
|
Values { "Unknown", "Other", "Unicast", "Broadcast", |
|
"Multicast", "Anycast" }, |
|
ModelCorrespondence { |
|
"CIM_ActiveConnection.OtherTrafficDescription" } ] |
|
uint16 TrafficType; |
|
[MaxLen(64), Description ( |
|
"A string describing the type of traffic that is being " |
|
"carried over this instance when its Type property is set " |
|
"to 1 (e.g., 'Other'). The format of the string inserted " |
|
"in this property should be similar in format to the " |
|
"values defined for the TrafficType property. This " |
|
"property should be set to NULL when the TrafficType " |
|
"property is any value other than 1."), |
|
ModelCorrespondence { |
|
"CIM_ActiveConnection.TrafficType" } ] |
|
string OtherTrafficDescription; |
|
[Description ( |
|
"TRUE means that this connection is uni-directional; FALSE " |
|
"means that this connection is bi-directional.") ] |
|
boolean IsUnidirectional; |
|
}; |
|
|
|
// ================================================================== |
|
// IPAddressRange |
|
// ================================================================== |
|
[Abstract, Description ( |
|
"This represents a grouping of specific addresses, and " |
|
"provides additional semantics for this group if " |
|
"appropriate.") ] |
|
|
|
class CIM_IPAddressRange : CIM_CollectionOfMSEs |
|
{ |
|
[Description ( |
|
"The starting IP address of the AddressRange, formatted " |
|
"according to the appropriate convention as defined in the " |
|
"AddressType property of this class (e.g., 171.79.6.40).") ] |
|
string StartAddress; |
|
[Description ( |
|
"The ending IP address of the AddressRange, formatted " |
|
"according to the appropriate convention as defined in the " |
|
"AddressType property of this class (e.g., 171.79.6.40).") ] |
|
string EndAddress; |
|
[Description ( |
|
"An enumeration that defines how to format the address and " |
|
"mask of the address range that defines this IPSubnet)." |
|
"\n\n" |
|
"Whenever possible, IPv4-compatible addresses should " |
|
"be used instead of IPv6 addresses (see RFC 2373, " |
|
"section 2.5.4). In order to have a consistent format " |
|
"for IPv4 addresses in a mixed IPv4/v6 environment, all " |
|
"IPv4 addresses and both IPv4-compatible IPv6 addresses " |
|
"and IPv4-mapped IPv6 addresses, per RFC 2373, section " |
|
"2.5.4, should be formatted in standard IPv4 format. " |
|
"However, this (the 2.2) version of the Network Common " |
|
"Model will not explicitly support mixed IPv4/IPv6 " |
|
"environments. This will be added in a future release."), |
|
ValueMap { "0", "1", "2" }, |
|
Values { "Unknown", "IPv4", "IPv6" } ] |
|
uint16 TypeOfAddress; |
|
[Description ( |
|
"This attribute defines the region that addresses can be " |
|
"allocated to."), |
|
ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8" }, |
|
Values {"Unknown", |
|
"Multiregional: 192.0.0.0 to 193.255.255.255", |
|
"Europe: 194.0.0.0 to 195.255.255.255", |
|
"Others: 196.0.0.0 to 197.255.255.255", |
|
"North America: 198.0.0.0 to 199.255.255.255", |
|
"Central & South America: 200.0.0.0 to 201.255.255.255", |
|
"Pacific Rim: 202.0.0.0 to 203.255.255.255", |
|
"Others: 204.0.0.0 to 205.255.255.255", |
|
"Others: 206.0.0.0 to 207.255.255.255" } ] |
|
uint16 AllocationRegion; |
|
}; |
|
|
|
// ================================================================== |
|
// IPProtocolEndpoint |
|
// ================================================================== |
|
[Description ( |
|
"A ProtocolEndpoint that is dedicated to running IP.") ] |
|
|
|
class CIM_IPProtocolEndpoint : CIM_ProtocolEndpoint |
|
{ |
|
[Description ( |
|
"The IP address that this ProtocolEndpoint represents, " |
|
"formatted according to the appropriate convention as " |
|
"defined in the AddressType property of this class " |
|
" (e.g., 171.79.6.40).") ] |
|
string Address; |
|
[Description ( |
|
"The mask for the IP address of this ProtocolEndpoint, " |
|
"formatted according to the appropriate convention as " |
|
"defined in the AddressType property of this class " |
|
" (e.g., 255.255.252.0).") ] |
|
string SubnetMask; |
|
[Description ( |
|
"An enumeration that describes the format of the address " |
|
"property. Whenever possible, IPv4-compatible addresses " |
|
"should be used instead of native IPv6 addresses (see " |
|
"RFC 2373, section 2.5.4). In order to have a consistent " |
|
"format for IPv4 addresses in a mixed IPv4/v6 environment, " |
|
"all IPv4 addresses and both IPv4-compatible IPv6 addresses " |
|
"and IPv4-mapped IPv6 addresses, per RFC 2373, section " |
|
"2.5.4, should be formatted in standard IPv4 format. " |
|
"However, this (the 2.2) version of the Network Common " |
|
"Model will not explicitly support mixed IPv4/IPv6 " |
|
"environments. This will be added in a future release."), |
|
ValueMap { "0", "1", "2" }, |
|
Values { "Unknown", "IPv4", "IPv6" } ] |
|
uint16 AddressType; |
|
[Description ( |
|
"It is not possible to tell from the address alone if a " |
|
"given IPProtocolEndpoint can support IPv4 and IPv6, or " |
|
"just one of these. This property explicitly defines the " |
|
"support for different versions of IP that this " |
|
"IPProtocolEndpoint has. " |
|
"\n\n" |
|
"More implementation experience is needed in order to " |
|
"correctly model mixed IPv4/IPv6 networks; therefore, this " |
|
"version (2.2) of the Network Common Model will not support " |
|
"mixed IPv4/IPv6 environments. This will be looked at " |
|
"further in a future version."), |
|
ValueMap { "0", "1", "2" }, |
|
Values { "Unknown", "IPv4 Only", "IPv6 Only" } ] |
|
uint16 IPVersionSupport; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPProtocolEndpoint |
|
// ================================================================== |
|
[Description ( |
|
"A ProtocolEndpoint that is dedicated to running BGP.") ] |
|
|
|
class CIM_BGPProtocolEndpoint : CIM_ProtocolEndpoint |
|
{ |
|
[Description ( |
|
"A boolean that, when TRUE, signifies that this is an " |
|
"instance of the external version of BGP (FALSE is the " |
|
"internal version).") ] |
|
boolean IsEBGP; |
|
[Description ( |
|
"Normally, two routers running EBGP must be physically " |
|
"connected. This boolean, when TRUE, denotes a LOGICAL " |
|
"connection between two routers that are running EBGP " |
|
"(e.g., there is an intermediate router or interface " |
|
"between them.") ] |
|
boolean IsEBGPMultihop; |
|
[Description ( |
|
"This is the unique identifier of the local BGP router. " |
|
"This is often the router ID (e.g., an IP address)."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpIdentifier"} ] |
|
string LocalIdentifier; |
|
[Description ( |
|
"This is the unique identifier of the peer BGP router. " |
|
"This is often the router ID (e.g., an IP address)."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerIdentifier"} ] |
|
string PeerIdentifier; |
|
[Description ( |
|
"This defines the current connection state of the " |
|
"BGP Peer."), |
|
ValueMap { "1", "2", "3", "4", "5", "6" }, |
|
Values { "Idle", "Connect", "Active", "OpenSet", |
|
"OpenConfirm", "Established" }, |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerState"} ] |
|
uint16 State; |
|
[Description ( |
|
"This defines the desired state of the BGP connection."), |
|
ValueMap { "1", "2" }, |
|
Values { "Stop", "Start" }, |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerAdminStatus"} ] |
|
uint16 AdminStatus; |
|
[Description ( |
|
"This defines the negotiated version of BGP that is " |
|
"running between the two peers."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- MIB.bgpPeerNegotiatedVersion"} ] |
|
string NegotiatedVersion; |
|
[Description ( |
|
"This is the local IP address of this router's BGP " |
|
"connection."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerLocalAddr"} ] |
|
string LocalAddress; |
|
[Description ( |
|
"This is the local port number for the TCP connection of " |
|
"this router's BGP connection."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerLocalPort"} ] |
|
uint16 LocalPort; |
|
[Description ( |
|
"This is the remote IP address of this router's BGP " |
|
"connection."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerRemoteAddr"} ] |
|
string RemoteAddress; |
|
[Description ( |
|
"This is the remote port number for the TCP connection of " |
|
"this router's BGP connection."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerRemotePort"} ] |
|
uint16 RemotePort; |
|
[Description ( |
|
"This is the remote AS number for this router's BGP " |
|
"connection."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerRemoteAs"} ] |
|
uint16 RemoteAS; |
|
[Description ( |
|
"This defines the maximum amount of time in seconds that " |
|
"may elapse between the receipt of successive KEEPALIVE or " |
|
"UPDATE messages. This is instrumented as a counter that " |
|
"increments from zero to the value specified in this " |
|
"property. The value of this property is calculated by " |
|
"this BGP speaker by using the smaller of the values of " |
|
"bgpPeerHoldTimeConfigured and the Hold Time received in " |
|
"the OPEN message. This value, if not zero seconds, must " |
|
"be at least three seconds, up to a maximum of 65535 " |
|
"seconds. Receipt of either a KEEPALIVE or an UPDATE " |
|
"message resets this value."), |
|
Units ("Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerHoldTime"} ] |
|
uint16 HoldTime; |
|
[Description ( |
|
"This defines the time interval in seconds for the KeepAlive " |
|
"timer established with the peer. The value of this property " |
|
"is calculated by this speaker such that, when compared with " |
|
"the HoldTime property, it has the same proportion as the " |
|
"KeepAliveConfigured property has with the " |
|
"HoldTimeConfigured property. A value of 0 indicates that " |
|
"the KeepAlive timer has not yet been established. The " |
|
"maximum value of this property is 21845 seconds."), |
|
Units ("Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerKeepAlive"} ] |
|
uint16 KeepAlive; |
|
}; |
|
|
|
// ================================================================== |
|
// IPXProtocolEndpoint |
|
// ================================================================== |
|
[Description ( |
|
"An IPX communication point from which data may be sent " |
|
"or received.") ] |
|
|
|
class CIM_IPXProtocolEndpoint : CIM_ProtocolEndpoint |
|
{ |
|
[Description ( |
|
"An IPX address formatted as eight hexadecimal digits " |
|
"representing the network number, followed by a colon, " |
|
"followed by twelve hexadecimal digits representing the " |
|
"host address (e.g. \"00112233:010203040506\").") ] |
|
string Address; |
|
}; |
|
|
|
// ================================================================== |
|
// IPXNetwork |
|
// ================================================================== |
|
[Description ("A network or subnet that uses the IPX " |
|
"protocol") ] |
|
|
|
class CIM_IPXNetwork : CIM_LogicalNetwork |
|
{ |
|
[Description ( |
|
"An IPX network number formatted as eight hexadecimal " |
|
"digits (e.g., \"00112233\").") ] |
|
string NetworkNumber; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// NextHopRouting |
|
// ================================================================== |
|
|
|
[Abstract, Description ( |
|
"NextHopRouting relates a destination address to the " |
|
"address or interface through which the remote address " |
|
"may be reached. An instance of this class can represent " |
|
"either static or dynamic routing, and may represent a routing " |
|
"table entry (but it is not required that all NextHopRoutes be " |
|
"in a routing table). Static routes are distinguished by " |
|
"setting the IsStatic boolean property to TRUE. \n" |
|
"\n" |
|
"Subclasses of NextHopRouting provide specific protocol " |
|
"and Key information. For example, the IPRoute subclass " |
|
"contains an AddressType property as part of its key " |
|
"structure. This property is not required for next hop " |
|
"information defined for Infiniband. \n" |
|
"\n" |
|
"NextHopRoutes are dependent on at least one " |
|
"ForwardingService to execute them. This is conveyed by the " |
|
"CIM_NextHopForwardedByService association.")] |
|
|
|
class CIM_NextHopRouting : CIM_LogicalElement |
|
{ |
|
[Description ( |
|
"The address which serves as the destination to be " |
|
"reached.")] |
|
string DestinationAddress; |
|
|
|
[Description ( |
|
"The mask for the DestinationAddress.")] |
|
string DestinationMask; |
|
|
|
[Description ( |
|
"This contains either the address of the next-hop router, " |
|
"or the interface used to reach the destination.") ] |
|
string NextHop; |
|
|
|
[Description ( |
|
"TRUE indicates that this is a static route, and FALSE " |
|
"indicates a dynamically-learned route.") ] |
|
boolean IsStatic; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// RouteForwardedByService |
|
// ================================================================== |
|
|
|
[Association, Description ( |
|
"This assocation makes explicit the next hops that are " |
|
"forwarded by a specific ForwardingService, to reach the " |
|
"destination. Every ForwardingService can have its own " |
|
"unique set of routing destinations and next hops.") ] |
|
|
|
class CIM_RouteForwardedByService : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min (1)] |
|
CIM_ForwardingService REF Antecedent; |
|
|
|
[Override ("Dependent")] |
|
CIM_NextHopRouting REF Dependent; |
|
|
|
[Description ( |
|
"This property contains the current administrative distance " |
|
"of this route, for the ForwardingService. Note that this " |
|
"property indicates current, specific values - whereas an " |
|
"instance of the CIM_AdministrativeDistance class " |
|
"defines default distances.") ] |
|
uint16 AdminDistance; |
|
|
|
[Description ( |
|
"PathMetric provides a numeric indication as to the " |
|
"preference of this route compared to other routes that " |
|
"reach the same destination.") ] |
|
uint16 PathMetric; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// IPRoute |
|
// ================================================================== |
|
|
|
[Abstract, Description ( |
|
"An IPRoute relates a destination address to the " |
|
"address or interface through which the remote address " |
|
"may be reached. The destination address may be a " |
|
"specific IP endpoint or a subnet, dependent on the mask. " |
|
"An instance of this class represents either static or " |
|
"dynamic routing. Static routes are distinguished by " |
|
"setting the IsStatic boolean property to TRUE. \n" |
|
"\n" |
|
"Since many routes between endpoints can " |
|
"be defined (using different route calculation algorithms), " |
|
"the CIM_IPRoute class is defined as Abstract. This " |
|
"forces subclassing (for example, see CIM_BGPIPRoute) " |
|
"and allows the instances of its subclasses to be " |
|
"distinguished based on their CreationClassName key " |
|
"property.")] |
|
|
|
class CIM_IPRoute : CIM_NextHopRouting |
|
{ |
|
[Propagated("CIM_System.CreationClassName"), |
|
Key, MaxLen (256), Description ( |
|
"The scoping System's CreationClassName.") ] |
|
string SystemCreationClassName; |
|
|
|
[Propagated("CIM_System.Name"), Key, MaxLen (256), |
|
Description ( |
|
"The scoping System's Name.") ] |
|
string SystemName; |
|
|
|
[Propagated("CIM_Service.CreationClassName"), |
|
Key, MaxLen (256), Description ( |
|
"The scoping ForwardingService's CreationClassName.") ] |
|
string ServiceCreationClassName; |
|
|
|
[Propagated("CIM_Service.Name"), Key, MaxLen (256), |
|
Description ( |
|
"The scoping ForwardingService's Name.") ] |
|
string ServiceName; |
|
|
|
[Key, MaxLen (256), 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 ( |
|
"The IP address which serves as the destination of the " |
|
"traffic, formatted according to the appropriate convention " |
|
"as defined in the AddressType property of this class. \n" |
|
"\n" |
|
"This property has the same semantics as DestinationAddress " |
|
"inherited from the NextHopRouting superclass, but a different " |
|
"property name. This is because this property and class were " |
|
"defined before NextHopRouting and are Key properties. They " |
|
"cannot be removed. ModelCorrespondence indicates that they " |
|
"should be set to equivalent values for consistency and " |
|
"ease of query."), |
|
ModelCorrespondence {"CIM_IPRoute.DestinationAddress"} ] |
|
string IPDestinationAddress; |
|
|
|
[Key, Description ( |
|
"The mask for the destination IP address, formatted " |
|
"according to the appropriate convention as defined in the " |
|
"AddressType property of this class. \n" |
|
"\n" |
|
"This property has the same semantics as DestinationMask " |
|
"inherited from the NextHopRouting superclass, but a different " |
|
"property name. This is because this property and class were " |
|
"defined before NextHopRouting and are Key properties. They " |
|
"cannot be removed. ModelCorrespondence indicates that they " |
|
"should be set to equivalent values for consistency and " |
|
"ease of query."), |
|
ModelCorrespondence {"CIM_IPRoute.DestinationMask"} ] |
|
string IPDestinationMask; |
|
|
|
[Key, Description ( |
|
"An enumeration that describes the format of the address " |
|
"property. Addresses that can be formatted in IPv4 format, " |
|
"must be formatted that way to ensure mixed IPv4/IPv6 " |
|
"support. " |
|
"\n\n" |
|
"AddressType is part of the key so that an IPv4 and an IPv6 " |
|
"route to IP subnets with the same network number but " |
|
"different versions (v4/v6) can coexist "), |
|
ValueMap { "0", "1", "2" }, |
|
Values { "Unknown", "IPv4", "IPv6" } ] |
|
uint16 AddressType; |
|
|
|
[Override ("DestinationAddress"), |
|
ModelCorrespondence {"CIM_IPRoute.IPDestinationAddress"} ] |
|
string DestinationAddress; |
|
|
|
[Override ("DestinationMask"), |
|
ModelCorrespondence {"CIM_IPRoute.IPDestinationMask"} ] |
|
string DestinationMask; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// ForwardedRoutes |
|
// ================================================================== |
|
|
|
[Association, Description ( |
|
"This assocation makes explicit the IP routes that are defined " |
|
"in the context of a specific ForwardingService. Every " |
|
"ForwardingService can have its own unique set of IP routing " |
|
"destinations.") ] |
|
|
|
class CIM_ForwardedRoutes : CIM_RouteForwardedByService |
|
|
|
{ |
|
[Override ("Dependent"), Weak ] |
|
CIM_IPRoute REF Dependent; |
|
}; |
|
|
|
|
|
|
|
// ================================================================== |
|
// BindsTo |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association establishes a ServiceAccessPoint " |
|
"as a requestor of protocol services from a " |
|
"ProtocolEndpoint. Typically, this association runs " |
|
"between SAPs and endpoints on a single system. Since a " |
|
"ProtocolEndpoint is a kind of ServiceAccessPoint, this " |
|
"binding can be used to establish a layering of two " |
|
"protocols, the upper layer represented by the Dependent " |
|
"and the lower layer represented by the Antecedent.") ] |
|
|
|
class CIM_BindsTo : CIM_SAPSAPDependency |
|
{ |
|
[Override ("Antecedent") ] |
|
CIM_ProtocolEndpoint REF Antecedent; |
|
[Override ("Dependent") ] |
|
CIM_ServiceAccessPoint REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// BindsToLANEndpoint |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association makes explicit the dependency of a " |
|
"ProtocolEndpoint on some lower layer ProtocolEndpoint on " |
|
"the same system.") ] |
|
|
|
class CIM_BindsToLANEndpoint : CIM_BindsTo |
|
{ |
|
[Override ("Antecedent") ] |
|
CIM_LANEndpoint REF Antecedent; |
|
[Description ( |
|
"This describes the framing method for the upper layer " |
|
"protocol endpoint that is bound to a LANEndpoint. Note: " |
|
"\"Raw802.3\" is only known to be used with the IPX " |
|
"protocol."), |
|
ValueMap { "0", "1", "2", "3", "4" }, |
|
Values { "Unknown", "Ethernet", "802.2", "SNAP", "Raw802.3" } ] |
|
uint16 FrameType; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPIPRoute |
|
// ================================================================== |
|
[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.") ] |
|
|
|
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, Description ( |
|
"This association defines a BGP route, and makes explicit " |
|
"the dependency between a BGPIPRoute and a " |
|
"BGPProtocolEndpoint.") ] |
|
|
|
class CIM_RoutesBGP : CIM_Dependency |
|
{ |
|
[Max (2), Override ("Antecedent"), Description ( |
|
"The BGPProtocolEndpoints that represent the source and " |
|
"destination (or at least the next hop) of the BGP route.") ] |
|
CIM_BGPProtocolEndpoint REF Antecedent; |
|
[Min (1), Override ("Dependent"), Description ( |
|
"The routing table entry that represents a BGP route.") ] |
|
CIM_BGPIPRoute REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// NetworksInAdminDomain |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association is used to define the set of Logical" |
|
"Networks contained in an AdminDomain. This has the implied " |
|
"semantics that this set of LogicalNetworks are all " |
|
"administered by the same network administrator that " |
|
"administrates the AdminDomain.") ] |
|
|
|
class CIM_NetworksInAdminDomain |
|
{ |
|
[Min(1), Max(1), Key, Description ( |
|
"The AdminDomain that hosts the various LogicalNetworks.") ] |
|
CIM_AdminDomain REF Domain; |
|
[Weak, Key, Description ( |
|
"The LogicalNetworks that are hosted by the AdminDomain.") ] |
|
CIM_LogicalNetwork REF Network; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPCluster |
|
// ================================================================== |
|
[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. " |
|
"\n\n" |
|
"An AS can have more than one 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, Description ( |
|
"This aggregation establishes 'whole-part' relationships " |
|
"between a BGPCluster and the ComputerSystems (e.g., the " |
|
"routers) that it contains. At least three routers are " |
|
"required to form a cluster - a reflector and two clients. " |
|
"In addition, the routers that form a cluster share common " |
|
"configuration information, and are commonly administered.") ] |
|
|
|
class CIM_RoutersInBGPCluster : CIM_CollectedMSEs |
|
{ |
|
[Override ("Collection"), Aggregate, Max(1), |
|
Description ( |
|
"The Cluster that aggregates the routers belonging to it " |
|
"and administers them.") ] |
|
CIM_BGPCluster REF Collection; |
|
[Override ("Member"), Min(3), Description ( |
|
"The routers that form the Cluster.") ] |
|
CIM_ComputerSystem REF Member; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPClustersInAS |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This aggregation establishes 'whole-part' relationships " |
|
"between an AutonomousSystem and the BGPClusters that it " |
|
"In addition, the routers that form a cluster share common " |
|
"configuration information, and are commonly administered.") ] |
|
|
|
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; |
|
}; |
|
|
|
// ================================================================== |
|
// RoutersInAS |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This aggregation establishes 'whole-part' relationships " |
|
"between an AutonomousSystem and the routers that it " |
|
"contains. In addition, the routers in the AS share common " |
|
"configuration information, and are commonly administered.") ] |
|
|
|
class CIM_RoutersInAS : CIM_SystemComponent |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Max(1), Description ( |
|
"The AutonomousSystem that aggregates the routers belonging " |
|
"to it and administers them.") ] |
|
CIM_AutonomousSystem REF GroupComponent; |
|
[Override ("PartComponent"), Description ( |
|
"The Routers that are contained in the AS.") ] |
|
CIM_ComputerSystem REF PartComponent; |
|
[Description ( |
|
"This is an array of strings that contain the BGP attributes " |
|
"supported by this router.") ] |
|
string BGPSupportedAttributes []; |
|
[Description ( |
|
"TRUE means that the community value of this router is added " |
|
"to the existing community value, and FALSE means that the " |
|
"community value of this router replaces the existing " |
|
"community value.") ] |
|
boolean AddCommunityValue; |
|
[Description ( |
|
"This is an enumeration that defines the function, from the " |
|
"point of view of BGP, of this router."), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" }, |
|
Values { "Unknown", "Other", "Conventional BGP Speaker", |
|
"Route Reflector", "Router Reflector Client", |
|
"Route Reflector Non-Client", "Peer Group Member", |
|
"Confederation Member" }, |
|
ModelCorrespondence { |
|
"CIM_BGPService.OtherRoleDescription"} ] |
|
uint16 Role; |
|
[MaxLen(64), Description ( |
|
"A string describing the type of function that this router " |
|
"has in its AS when the value of the Role property of this " |
|
"class is set to 1 (e.g., 'Other'). The format of the string " |
|
"inserted in this property should be similar in format to " |
|
"the values defined for the Role property. This property " |
|
"should be set to NULL when the Role property is any value " |
|
"other than 1."), |
|
ModelCorrespondence {"CIM_BGPService.Role"} ] |
|
string OtherRoleDescription; |
|
}; |
|
|
|
// ================================================================== |
|
// ProvidesEndpoint |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association represents the endpoints that a network " |
|
"service provides to access it.") ] |
|
|
|
class CIM_ProvidesEndpoint : CIM_ServiceAccessBySAP |
|
{ |
|
[Override ("Antecedent"), Max(1), Description ( |
|
"The NetworkService that is being accessed by the " |
|
"ProtocolEndpoints.") ] |
|
CIM_NetworkService REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The ProtocolEndpoints that provide access to the " |
|
"NetworkService.") ] |
|
CIM_ProtocolEndpoint REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// ASBGPEndpoints |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This aggregation defines the different router interfaces " |
|
"that are running BGP in the AutonomousSystem.") ] |
|
|
|
class CIM_ASBGPEndpoints : CIM_SystemComponent |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Max(1), Description ( |
|
"The AutonomousSystem that aggregates the router interfaces " |
|
"that are running BGP.") ] |
|
CIM_AutonomousSystem REF GroupComponent; |
|
[Override ("PartComponent"), Description ( |
|
"The router interfaces that are contained in the AS.") ] |
|
CIM_BGPProtocolEndpoint REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// Confederation |
|
// ================================================================== |
|
[Association, Aggregation, 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. " |
|
"This 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, Max(1), Override ("GroupComponent"), |
|
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; |
|
}; |
|
|
|
// ================================================================== |
|
// RouteCalculationService |
|
// ================================================================== |
|
[Abstract, Description ( |
|
"This is an abstract base class, derived from Network" |
|
"Service, that represents the route calculation aspects of " |
|
"a router. This class also addresses functions performed by " |
|
"the router when it exchanges routing information. " |
|
"\n\n" |
|
"Note that there are a large variety of additional routing " |
|
"protocols that are not enumerated below, or currently " |
|
"subclassed. These will be added as models are developed.") ] |
|
|
|
class CIM_RouteCalculationService : CIM_NetworkService |
|
{ |
|
[Description ( |
|
"The RouterID uniquely identifies the router that is " |
|
"performing the route calculation. It is the highest IP " |
|
"address on the router (or the highest loopback interface, " |
|
"if there is one).") ] |
|
string RouterID; |
|
[Description ( |
|
"This is an enumerated value that defines the routing " |
|
"algorithm used in this route calculation."), |
|
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" }, |
|
Values { "Unknown", "RIPv1", "RIPv2", "OSPFv1", "OSPFv2", |
|
"BGPv1", "BGPv2", "BGPv3", "BGPv4" } ] |
|
uint16 AlgorithmType; |
|
}; |
|
|
|
// ================================================================== |
|
// CalculatedRoutes |
|
// ================================================================== |
|
[Association, Description ( |
|
"This assocation makes explicit the routes that are " |
|
"calculated by a specific RouteCalculationService. Thus, " |
|
"every RouteCalculationService can have its own unique set " |
|
"of calculated routes.") ] |
|
|
|
class CIM_CalculatedRoutes : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Max(1) ] |
|
CIM_RouteCalculationService REF Antecedent; |
|
[Override ("Dependent") ] |
|
CIM_IPRoute REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// HostedRoutingServices |
|
// ================================================================== |
|
[Association, Description ( |
|
"This is a specialization of CIM_HostedService, which is an" |
|
"association between a Service and the System on which the " |
|
"functionality resides. The ComputerSystem is made up of " |
|
"different routing services, which take the form of internal " |
|
"and external routing protocols. These are different " |
|
"NetworkServices, and are weak with respect to their hosting " |
|
"ComputerSystem.") ] |
|
|
|
class CIM_HostedRoutingServices : CIM_HostedService |
|
{ |
|
[Override ("Antecedent"), Max(1), Min(1), |
|
Description ("The hosting router.") ] |
|
CIM_ComputerSystem REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The Service hosted on the System.") ] |
|
CIM_RouteCalculationService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// HostedForwardingServices |
|
// ================================================================== |
|
[Association, Description ( |
|
"This is a specialization of CIM_HostedService, which is an" |
|
"association between a Service and the System on which the " |
|
"functionality resides. The ComputerSystem is made up of " |
|
"different forwarding services, which take the form of " |
|
"internal and external routing protocols. These are " |
|
"different NetworkServices, and are weak with respect to " |
|
"their hosting ComputerSystem.") ] |
|
|
|
class CIM_HostedForwardingServices : CIM_HostedService |
|
{ |
|
[Override ("Antecedent"), Max(1), Min(1), |
|
Description ("The hosting router.") ] |
|
CIM_ComputerSystem REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The Service hosted on the System.") ] |
|
CIM_ForwardingService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// EGPRouteCalcDependency |
|
// ================================================================== |
|
[Association, 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; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPService |
|
// ================================================================== |
|
[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|RFC1657-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."), |
|
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. If the ErrorCode property 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. If the ErrorCode property 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. If the ErrorCode property 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; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPPeerGroup |
|
// ================================================================== |
|
[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 |
|
{ |
|
[Propagated ("CIM_AutonomousSystem.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping AutonomousSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_AutonomousSystem.Name"), Key, MaxLen (256), |
|
Description ("The scoping AutonomousSystem's Name.") ] |
|
string SystemName; |
|
[Key, Description ( |
|
"The type of class that this instance is.") ] |
|
string CreationClassName; |
|
[MaxLen(256), Key, Description ( |
|
"This is the name of the BGP Peer Group.") ] |
|
string Name; |
|
[Description ( |
|
"This defines the time interval, in seconds, for the " |
|
"ConnectRetry timer. The suggested value is 120 seconds."), |
|
Units ("Seconds"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-MIB.bgpConnectRetryInterval"} ] |
|
uint32 ConnectRetryInterval; |
|
[Description ( |
|
"This defines the time interval in seconds for the Hold " |
|
"Time configured for this BGP speaker with a peer. This " |
|
"value is placed in an OPEN message sent to a peer by " |
|
"this BGP speaker, and is compared with the Hold Time " |
|
"field in the OPEN message received from the peer. This " |
|
"enables this speaker to establish a mutually agreeable " |
|
"Hold Time with the peer. This value must not be less " |
|
"than three seconds. If it is zero, then the Hold Time " |
|
"is NOT to be established with the peer. The suggested" |
|
"value for this timer is 90 seconds."), |
|
Units ("Seconds"), |
|
Mappingstrings |
|
{"MIB.IETF|RFC1657-MIB.bgpPeerHoldTimeConfigured"} ] |
|
uint16 HoldTimeConfigured; |
|
[Description ( |
|
"This defines the time interval in seconds for the " |
|
"KeepAlive timer configured for this BGP speaker with " |
|
"a peer. This value will determine the frequency of " |
|
"the KEEPALIVE messages relative to the value of the " |
|
"HoldTimeConfigured property; the actual frequency is " |
|
"specified by the value of the KeepAlive property. A " |
|
"reasonable value is one third of that of the value of " |
|
"the HoldTimeConfigured property. If it is zero, then " |
|
"NO periodic KEEPALIVE messages are sent to the peer. " |
|
"The suggested value for this property is 30 seconds. " |
|
"The maximum value of this property is 21845 seconds."), |
|
Units ("Seconds"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-MIB.bgpPeerKeepAliveConfigured"} ] |
|
uint16 KeepAliveConfigured; |
|
[Description ( |
|
"This defines the time interval in seconds for the " |
|
"MinASOriginationInterval timer. The suggested value for " |
|
"this property is 15 seconds."), |
|
Units ("Seconds"), |
|
Mappingstrings |
|
{"MIB.IETF|RFC1657-MIB.bgpPeerMinASOriginationInterval"} ] |
|
uint16 MinASOriginationInterval; |
|
[Description ( |
|
"This defines the time interval in seconds for the " |
|
"MinRouteAdvertisementInterval timer. The suggested value " |
|
"for this property is 30 seconds."), |
|
Units ("Seconds"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-MIB.bgpPeerMinRouteAdvertisementInterval"} ] |
|
uint16 MinRouteAdvertisementInterval; |
|
}; |
|
|
|
// ================================================================== |
|
// ReflectorService |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association will serve as the base class for defining " |
|
"BGP routing policies for the reflector of this Cluster.") ] |
|
|
|
class CIM_ReflectorService : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Max(1), Description ( |
|
"The Cluster for which this policy is being defined.") ] |
|
CIM_BGPCluster REF Antecedent; |
|
[Override ("Dependent"), Min(1), Description ( |
|
"The BGPService to which the policy will be applied in " |
|
"the Cluster.") ] |
|
CIM_BGPService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// ReflectorClientService |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association will serve as the base class for defining " |
|
"BGP routing policies for clients of the reflector of " |
|
"this Cluster.") ] |
|
|
|
class CIM_ReflectorClientService : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Max(1), Description ( |
|
"The Cluster for which this policy is being defined.") ] |
|
CIM_BGPCluster REF Antecedent; |
|
[Override ("Dependent"), Min(1), Description ( |
|
"The BGPService to which the policy will be applied in " |
|
"the Cluster.") ] |
|
CIM_BGPService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// ReflectorNonClientService |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association will serve as the base class for defining " |
|
"BGP routing policies 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 policy is being defined.") ] |
|
CIM_BGPCluster REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The BGPService to which the policy will be applied in " |
|
"the Cluster.") ] |
|
CIM_BGPService REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_FilterEntryBase |
|
// =================================================================== |
|
[Description ( |
|
" FilterEntryBase is an abstract class to define the naming " |
|
"of all filter entries, and to allow their common " |
|
"aggregation into FilterLists. The FilterEntry subclass " |
|
"represents packet filtering. Other types of Entries are " |
|
"possible - for example, to filter security credentials. \n" |
|
" FilterEntryBase is weak to the network device (e.g., the " |
|
"ComputerSystem) that contains it. Hence, the ComputerSystem " |
|
"keys are propagated to this class.") ] |
|
|
|
class CIM_FilterEntryBase : CIM_LogicalElement |
|
{ |
|
[Propagated ("CIM_ComputerSystem.CreationClassName"), Key, |
|
MaxLen (256), |
|
Description ( |
|
"The scoping ComputerSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256), |
|
Description ( |
|
"The scoping ComputerSystem's Name.") ] |
|
string SystemName; |
|
[Key, MaxLen (256), |
|
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, MaxLen (256), |
|
Description ( |
|
"The Name property defines the label by which the Filter" |
|
"Entry is known and uniquely identified.") ] |
|
string Name; |
|
[Description ( |
|
"Boolean indicating that the match condition described " |
|
"in the properties of the FilterEntryBase subclass " |
|
"should be negated.") ] |
|
boolean IsNegated; |
|
}; |
|
|
|
// ================================================================== |
|
// FilterEntry |
|
// ================================================================== |
|
[Description ( |
|
"A FilterEntry is used by network devices to identify " |
|
"traffic and either forward them (with possibly further " |
|
"processing) to their destination, or to deny their " |
|
"forwarding. They are the building block of FilterLists." |
|
"\n\n" |
|
"This class is oriented towards packet filtering. Other " |
|
"subclasses of FilterEntryBase can be defined to do other " |
|
"types of filtering. " |
|
"\n\n" |
|
"A FilterEntry is weak to the network device (e.g., the " |
|
"ComputerSystem) that contains it. Hence, the ComputerSystem " |
|
"keys are propagated to this class.") ] |
|
|
|
class CIM_FilterEntry : CIM_FilterEntryBase |
|
{ |
|
[Description ( |
|
"This defines the type of traffic that is being filtered. " |
|
"This will affect the filtering rules in the MatchCondition " |
|
"property of this class."), |
|
ValueMap { "0", "1", "2", "3" }, |
|
Values { "Unknown", "IPv4", "IPX", "IPv6" } ] |
|
uint16 TrafficType; |
|
[Description ( |
|
"This specifies one of a set of ways to identify traffic. " |
|
"if the value is 1 (e.g., 'Other'), then the specific " |
|
"type of filtering is specified in the " |
|
"OtherMatchConditionType property of this class."), |
|
ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", |
|
"10", "11", "12" }, |
|
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", "DSCP", "ToS Value", |
|
"802.1P Priority Value" }, |
|
ModelCorrespondence { |
|
"CIM_FilterEntry.OtherMatchConditionType" } ] |
|
uint16 MatchConditionType; |
|
[Description ( |
|
"If the value of the MatchConditionType property in this " |
|
"class is 1 (e.g., 'Other'), then the specific type of " |
|
"filtering is specified in this property."), |
|
ModelCorrespondence { |
|
"CIM_FilterEntry.MatchConditionType" } ] |
|
string OtherMatchConditionType; |
|
[Description ( |
|
"This is the value of the condition that filters the " |
|
"traffic. It corresponds to the condition specified in the " |
|
"MatchConditionType property. If, however, the value of the " |
|
"MatchConditionProperty is 1, then it corresponds to the " |
|
"condition specified in the OtherMatchConditionType " |
|
"property.") ] |
|
string MatchConditionValue; |
|
[Description ( |
|
"This defines whether the action should be to forward or " |
|
"deny traffic meeting the match condition specified in " |
|
"this filter."), |
|
ValueMap { "1", "2" }, |
|
Values { "Permit", "Deny" } ] |
|
uint16 Action; |
|
[Description ( |
|
"This defines whether this FilterEntry is the default " |
|
"entry to use by its FilterList.") ] |
|
boolean DefaultFilter; |
|
[Description ( |
|
"This defines the traffic class that is being matched by " |
|
"this FilterEntry. Note that FilterEntries are aggregated " |
|
"into FilterLists by the EntriesInFilterList " |
|
"relationship. If the EntrySequence property of the " |
|
"aggregation is set to 0, this means that all the Filter" |
|
"Entries should be ANDed together. Consequently, the " |
|
"TrafficClass property of each of the aggregated Entries " |
|
"should be set to the same value."), |
|
ModelCorrespondence { "CIM_NextService.TrafficClass" } ] |
|
string TrafficClass; |
|
}; |
|
|
|
// ================================================================== |
|
// FilterList |
|
// ================================================================== |
|
[Description ( |
|
"A FilterList is used by network devices to identify routes " |
|
"by aggregating a set of FilterEntries into a unit, called a " |
|
"FilterList. FilterLists can also be used to accept or deny " |
|
"routing updates." |
|
"\n\n" |
|
"A FilterList is weak to the network device (e.g., the " |
|
"ComputerSystem) that contains it. Hence, the ComputerSystem " |
|
"keys are propagated to this class.") ] |
|
|
|
class CIM_FilterList : CIM_LogicalElement |
|
{ |
|
[Propagated ("CIM_ComputerSystem.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping ComputerSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
|
|
[Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256), |
|
Description ("The scoping ComputerSystem's Name.") ] |
|
string SystemName; |
|
|
|
[Key, Description ( |
|
"The type of class that this instance is.") ] |
|
string CreationClassName; |
|
[Key, MaxLen(256), Description ( |
|
"This is the name of the FilterList.") ] |
|
string Name; |
|
|
|
[Description ( |
|
"This defines whether the FilterList is used " |
|
"for input, output, or both input and output " |
|
"filtering. All values are used with respect to " |
|
"the interface for which the FilterList applies. " |
|
"\n\n" |
|
"\"Not Applicable\" (0) is used when there is no " |
|
"direction applicable to the FilterList.\n" |
|
"\"Input\" (1) is used when the FilterList applies " |
|
"to packets that are inbound on the related " |
|
"interface.\n" |
|
"\"Output\" (2) is used when the FilterList applies " |
|
"to packets that are outbound on the related " |
|
"interface.\n" |
|
"\"Both\" (3) is used to indicate that " |
|
"the direction is immaterial, e.g., to filter on " |
|
"a source subnet regardless of whether the flow is " |
|
"inbound or outbound.\n" |
|
"\"Mirrored\" (4) is also applicable to " |
|
"both inbound and outbound flow processing, but " |
|
"indicates that the filter criteria are applied " |
|
"asymmetrically to traffic in both directions " |
|
"and, thus, specifies the reversal of source and " |
|
"destination criteria (as opposed to the equality " |
|
"of these criteria as indicated by \"Both\"). " |
|
"The match conditions in the aggregated " |
|
"FilterEntryBase subclass instances are defined " |
|
"from the perspective of outbound flows and applied " |
|
"to inbound flows as well by reversing the source " |
|
"and destination criteria. So, for example, " |
|
"consider a FilterList with 3 FilterEntries " |
|
"indicating destination port = 80, and source and " |
|
"destination addresses of a and b, respectively. " |
|
"Then, for the outbound direction, the filter " |
|
"entries match as specified and the ‘mirror’ (for " |
|
"the inbound direction) matches on source " |
|
"port = 80 and source and destination addresses " |
|
"of b and a, respectively."), |
|
Values {"Not Applicable", "Input", "Output", |
|
"Both", "Mirrored" } ] |
|
uint16 Direction; |
|
}; |
|
|
|
// ================================================================== |
|
// FilterEntryInSystem |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"All filter entries (FilterEntryBase and its subclasses) " |
|
"can be used directly in the implementation of a network " |
|
"device such as a router, host or firewall, or they can be " |
|
"aggregated in a FilterList. Since both of these uses are " |
|
"possible, FilterEntryBase is defined as weak to the " |
|
"ComputerSystem (i.e., the network device) where it is used " |
|
"to identify and act on network traffic.") ] |
|
|
|
class CIM_FilterEntryInSystem : CIM_SystemComponent |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Min (1), Max (1), |
|
Description ( |
|
"The ComputerSystem/network device that aggregates the " |
|
"FilterEntry, for identifying and acting on network " |
|
"traffic.") ] |
|
CIM_ComputerSystem REF GroupComponent; |
|
[Override ("PartComponent"), Weak, Description ( |
|
"The FilterEntry used in the System's operation.") ] |
|
CIM_FilterEntryBase REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// FilterListInSystem |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"The purpose of this weak association is to model the use of " |
|
"a FilterList by a ComputerSystem (e.g., a router, firewall " |
|
"or host). One example of such a use is in the QoS Model, " |
|
"where a ClassifierService aggregates a set of FilterLists " |
|
"in order to build its services.") ] |
|
|
|
class CIM_FilterListInSystem : CIM_SystemComponent |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Min (1), Max (1), |
|
Description ( |
|
"The ComputerSystem/network device that aggregates the " |
|
"FilterList and administers it.") ] |
|
CIM_ComputerSystem REF GroupComponent; |
|
[Override ("PartComponent"), Weak, Description ( |
|
"The FilterList used in the System's operation.") ] |
|
CIM_FilterList REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// RoutingPolicy |
|
// ================================================================== |
|
[Description ( |
|
"This class is used to implement routing policies. It " |
|
"aggregates a set of FilterLists, along with other " |
|
"appropriate constructs, into a unit. One of the most " |
|
"important uses of this class is to change the routing " |
|
"policy by changing values of various BGP attributes in a " |
|
"consistent manner." |
|
"\n\n" |
|
"A RoutingPolicy is weak to the network device (e.g., the " |
|
"ComputerSystem) that contains it. Hence, the ComputerSystem " |
|
"keys are propagated to this class.") ] |
|
|
|
class CIM_RoutingPolicy : CIM_LogicalElement |
|
{ |
|
[Propagated ("CIM_ComputerSystem.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping ComputerSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256), |
|
Description ("The scoping ComputerSystem's Name.") ] |
|
string SystemName; |
|
[Key, MaxLen(256), 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, MaxLen(256), Description ( |
|
"This is the name of the Routing Policy.") ] |
|
string Name; |
|
[Description ( |
|
"The Description property is a free-form string that " |
|
"provides a textual description of the routing policy.") ] |
|
string Description; |
|
[Description ( |
|
"This defines the type of action that will be performed " |
|
"if the match conditions of this filter policy are met. " |
|
"There are essentially three choices: forward the traffic " |
|
"unmodified, forward the traffic, but modify either the " |
|
"BGP attributes describing the route and/or other " |
|
"attributes that define how to condition the traffic " |
|
"(e.g., its ToS byte settings), or prevent the traffic " |
|
"from being forwarded."), |
|
ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9" }, |
|
Values { "Accept As Is", "Accept With BGP Changes", |
|
"Accept and Remark Packet", |
|
"Accept With BGP and Remark Changes", |
|
"Accept With Other Actions", |
|
"Accept With BGP Changes and Other Actions", |
|
"Accept with Remark Changes and Other Actions", |
|
"Accept with BGP and Remark Changes and Other Actions", |
|
"Deny" } ] |
|
uint16 Action; |
|
[Description ( |
|
"This defines one or more BGP attributes that should be" |
|
"used to modify this routing update."), |
|
ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }, |
|
Values { "Origin", "AS_Path", "NEXT_HOP", "Multi_Exit_Disc", |
|
"Local_Pref", "Atomic_Aggregate", "Aggregator", "Community", |
|
"Originator_ID", "Cluster_List" } ] |
|
uint16 BGPAction; |
|
[Description ( |
|
"The value for the corresponding BGPAction.") ] |
|
string BGPValue; |
|
[Description ( |
|
"This defines a remarking action for this traffic."), |
|
ValueMap { "1", "2", "3", "4", "5", "6", "7" }, |
|
Values { "Change DSCP", "Change ToS", "Change 802.1Q Value", |
|
"Change CIR", "Change CBR", "Change ABR", "Change VBR" } ] |
|
uint16 RemarkAction; |
|
[Description ( |
|
"The value for the corresponding RemarkAction.") ] |
|
string RemarkValue; |
|
[Description ( |
|
"This defines other actions to be taken for this traffic."), |
|
ValueMap { "1", "2", "3", "4", "5", "6", "7" }, |
|
Values { "Other", "Input Flow Policing", |
|
"Output Flow Policing", "Input Aggregate Policing", |
|
"Output Aggregate Policing", |
|
"PoliceByMarkingDown", "PoliceByDroppingDown" } ] |
|
uint16 ConditioningAction; |
|
[Description ( |
|
"If the value of the ConditioningAction property of this " |
|
"class is 1, this contains an application-specific type of " |
|
"conditioning that is to be performed. Otherwise, if the " |
|
"ConditioningAction property is any other value, the value " |
|
"of this property should be NULL."), |
|
ModelCorrespondence { |
|
"CIM_RoutingPolicy.ConditioningAction" } ] |
|
string OtherConditioningAction; |
|
[Description ( |
|
"The value for the corresponding ConditioningAction.") ] |
|
string ConditioningValue; |
|
[Description ( |
|
"This controls whether BGP attribute values replace, get " |
|
"prepended, or get appended to their existing values."), |
|
ValueMap { "1", "2", "3" }, |
|
Values { "Replace", "Prepend", "Append" } ] |
|
uint16 AttributeAction; |
|
}; |
|
|
|
// ================================================================== |
|
// EntriesInFilterList |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This is a specialization of the CIM_Component aggregation " |
|
"which is used to define a set of filter entries (subclasses " |
|
"of FilterEntryBase) that are aggregated by a particular " |
|
"FilterList.") ] |
|
class CIM_EntriesInFilterList : CIM_Component |
|
{ |
|
[Aggregate, Max(1), Override ("GroupComponent"), |
|
Description ( |
|
"The FilterList, which aggregates the set " |
|
"of FilterEntries.") ] |
|
CIM_FilterList REF GroupComponent; |
|
[Override ("PartComponent"), |
|
Description ( |
|
"Any subclass of FilterEntryBase which is a part of " |
|
"the FilterList.") ] |
|
CIM_FilterEntryBase REF PartComponent; |
|
[Description ( |
|
"The order of the Entry relative to all others in the " |
|
"FilterList. A value of zero indicates that all the Entries " |
|
"should be ANDed together. Use of the Sequence property " |
|
"should be consistent across the List. It is not valid to " |
|
"define some Entries as ANDed in the FilterList (Sequence" |
|
"=0) while other Entries have a non-zero Sequence number.") ] |
|
uint16 EntrySequence; |
|
}; |
|
|
|
// ================================================================== |
|
// ListsInRoutingPolicy |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This is a specialization of the CIM_Component aggregation " |
|
"which is used to define a set of FilterLists that are " |
|
"aggregated by a particular RoutingPolicy.") ] |
|
|
|
class CIM_ListsInRoutingPolicy : CIM_Component |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Description ( |
|
"The RoutingPolicy, which aggregates the set " |
|
"of FilterLists.") ] |
|
CIM_RoutingPolicy REF GroupComponent; |
|
[Override ("PartComponent"), Description ( |
|
"A FilterList, which is part-of the RoutingPolicy.") ] |
|
CIM_FilterList REF PartComponent; |
|
[Description ("The position of the FilterList relative " |
|
"to all other entries in the RoutingPolicy.") ] |
|
uint16 ListSequence; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPRoutingPolicy |
|
// ================================================================== |
|
[Association, 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 is controlled by the routing policy.") ] |
|
CIM_BGPService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPPeerGroupService |
|
// ================================================================== |
|
[Association, Description ( |
|
"This defines the relationship between a BGPService and the " |
|
"BGP Peer Group that hosts it.") ] |
|
|
|
class CIM_BGPPeerGroupService : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min(1), Max(1), |
|
Description ( |
|
"The BGP Peer Group that hosts the BGP Service.") ] |
|
CIM_BGPPeerGroup REF Antecedent; |
|
[Override ("Dependent"), |
|
Description ( |
|
"The BGPService that is hosted in the BGP Peer Group.") ] |
|
CIM_BGPService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// AdministrativeDistance |
|
// ================================================================== |
|
[Description ( |
|
"Information in this class affects the choice of one " |
|
"protocol over another, when two protocols learn " |
|
"the same route. Properties define the preference of " |
|
"a protocol, called its distance. The lower the " |
|
"distance, the higher the preference for that protocol. " |
|
"This class affects ALL routes and contains the " |
|
"default distances. Specific administrative " |
|
"distances relative to an individual route and Forwarding" |
|
"Service are defined in the NextHopForwardedByService " |
|
"association, its AdminDistance property." |
|
"\n\n" |
|
"AdministrativeDistance, being a global object, is weak to " |
|
"the AdminDomain that contains it. Hence, the AdminDomain " |
|
"keys are propagated to this class.") ] |
|
|
|
class CIM_AdministrativeDistance : CIM_LogicalElement |
|
{ |
|
[Propagated ("CIM_ComputerSystem.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping ComputerSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_ComputerSystem.Name"), Key, MaxLen (256), |
|
Description ("The scoping ComputerSystem's Name.") ] |
|
string SystemName; |
|
[Key, Description ( |
|
"The type of class that this instance is.") ] |
|
string CreationClassName; |
|
[Key, MaxLen(256), Description ( |
|
"This is the name of the AdministrativeDistance class.") ] |
|
string Name; |
|
[Description ( |
|
"The distance for directly connected peers. It has a default " |
|
"value of 0.") ] |
|
uint8 DirectConnect; |
|
[Description ( |
|
"The distance for staticly connected peers. It has a default " |
|
"value of 1.") ] |
|
uint8 Static; |
|
[Description ( |
|
"The distance for peers using EBGP. It has a default value " |
|
"of 20.") ] |
|
uint8 EBGP; |
|
[Description ( |
|
"The distance for peers using internal EIGRP. It has a " |
|
"default value of 90.") ] |
|
uint8 EIGRPInternal; |
|
[Description ( |
|
"The distance for peers using IGRP. It has a default value " |
|
"of 100.") ] |
|
uint8 IGRP; |
|
[Description ( |
|
"The distance for peers using OSPF. It has a default value " |
|
"of 110.") ] |
|
uint8 OSPF; |
|
[Description ( |
|
"The distance for peers using ISIS. It has a default value " |
|
"of 115.") ] |
|
uint8 ISIS; |
|
[Description ( |
|
"The distance for peers using RIP. It has a default value " |
|
"of 120.") ] |
|
uint8 RIP; |
|
[Description ( |
|
"The distance for peers using EGP. It has a default value " |
|
"of 140.") ] |
|
uint8 EGP; |
|
[Description ( |
|
"The distance for peers using external EIGRP. It has a " |
|
"default value of 170.") ] |
|
uint8 EIGRPExternal; |
|
[Description ( |
|
"The distance for peers using IBGP. It has a default value " |
|
"of 200.") ] |
|
uint8 IBGP; |
|
[Description ( |
|
"The distance for peers using BGP locally. It has a default " |
|
"value of 200.") ] |
|
uint8 BGPLocal; |
|
[Description ( |
|
"The distance for peers using an unknown protocol. It has a " |
|
"default value of 255.") ] |
|
uint8 Unknown; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPAdminDistance |
|
// ================================================================== |
|
[Association, Description ( |
|
"This is a specialization of the Dependency association, and " |
|
"defines the relationship between a BGPService and the " |
|
"Administrative Distances 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 all BGP services.") ] |
|
CIM_AdministrativeDistance REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The BGP service object, that makes BGP routing decisions.") ] |
|
CIM_BGPService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPRouteMap |
|
// ================================================================== |
|
[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 (see accompanying white paper). " |
|
"\n\n" |
|
"Route maps may use FilterLists to identify the route " |
|
" (again, see the accompanying white paper). " |
|
"\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 |
|
{ |
|
[Propagated ("CIM_AutonomousSystem.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping AutonomousSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_AutonomousSystem.Name"), Key, MaxLen (256), |
|
Description ("The scoping AutonomousSystem's Name.") ] |
|
string SystemName; |
|
[Key, Description ( |
|
"The type of class that this instance is.") ] |
|
string CreationClassName; |
|
[Key, MaxLen(256), Description ( |
|
"This is the name of the RouteMap class.") ] |
|
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 (e.g., '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 for now (e.g., its " |
|
"use is limited to setting a BGP attribute to a specific " |
|
"value), and will be upgraded in a subsequent release. 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" } ] |
|
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; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPRouteMapsInRoutingPolicy |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This aggregation defines the RouteMaps 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, 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 |
|
{ |
|
[Override("Collection"), Aggregate, |
|
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, 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; |
|
}; |
|
|
|
// ================================================================== |
|
// InBGPPeerGroup |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This aggregation defines the specific routers (e.g., " |
|
"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; |
|
[Min(2), Override ("Member"), Description ( |
|
"The routers that comprise the PeerGroup.") ] |
|
CIM_ComputerSystem REF Member; |
|
}; |
|
|
|
// ================================================================== |
|
// CalculatesAmong |
|
// ================================================================== |
|
[Association, Description ( |
|
"This is a specialization of the ServiceSAPDependency " |
|
"association, indicating that the referenced " |
|
"ProtocolEndpoint is utilized by the " |
|
"RouteCalculationService to provide its functionality.") ] |
|
|
|
class CIM_CalculatesAmong : CIM_ServiceSAPDependency |
|
{ |
|
[Override ("Antecedent"), |
|
Description ("The required ProtocolEndpoint") ] |
|
CIM_ProtocolEndpoint REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The RouteCalculationService, which is dependent on the " |
|
"underlying ProtocolEndpoint.") ] |
|
CIM_RouteCalculationService REF Dependent; |
|
[Description ( |
|
"TRUE indicates that this ProtocolEndpoint represents a " |
|
"static route, and FALSE means that it represents a " |
|
"dynamically-learned route.") ] |
|
boolean IsStatic; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPAttributes |
|
// ================================================================== |
|
[Description ( |
|
"This class defines all of the BGP Attributes, for a given " |
|
"version of the BGP protocol, that can be used to affect " |
|
"routing decisions. " |
|
"\n\n" |
|
"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 |
|
{ |
|
[Propagated ("CIM_AutonomousSystem.CreationClassName"), Key, |
|
MaxLen (256), Description ( |
|
"The scoping AutonomousSystem's CreationClassName. ") ] |
|
string SystemCreationClassName; |
|
[Propagated ("CIM_AutonomousSystem.Name"), Key, MaxLen (256), |
|
Description ("The scoping AutonomousSystem's Name.") ] |
|
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|RFC1657-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|RFC1657-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|RFC1657-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|RFC1657-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 attribute gets set 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."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- MIB.bgp4PathAttrAtomicAggregate"} ] |
|
boolean AtomicAggregate; |
|
[Description ( |
|
"This specifies the AS and IP address of the router that has " |
|
"generated an aggregate."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- 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|RFC1657-MIB.bgp4PathAttrOrigin"} ] |
|
uint16 Origin; |
|
[Description ( |
|
"This is the router ID for the ORIGIN attribute.") ] |
|
string OriginatorID; |
|
}; |
|
|
|
// ================================================================== |
|
// FilteredBGPAttributes |
|
// ================================================================== |
|
[Association, Aggregation, 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; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPPathAttributes |
|
// ================================================================== |
|
[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 |
|
{ |
|
[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" |
|
" <type, length, value>" |
|
"\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\n" |
|
"The length is a 1-octet field containing the number of ASs " |
|
"in the value field. " |
|
"\n\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: " |
|
" first-byte-of-pair = ASNumber / 256; " |
|
" second-byte-of-pair = ASNumber & 255;" |
|
"\n\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. "), |
|
ArrayType ("Indexed"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-MIB.bgp4PathAttrASPathSegment"} ] |
|
uint8 PathAttrASPathSegment[ ]; |
|
[Key, MaxLen (512), 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.") ] |
|
string ASNumbers; |
|
[Key, MaxLen (32), Description ( |
|
"This is the address of the border router that should be " |
|
"used for the destination network."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrNextHop"} ] |
|
string PathAttrNextHop; |
|
[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|RFC1657-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|RFC1657- 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|RFC1657-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 { "1", "2" }, |
|
Values {"Less Specific Not Selected", |
|
"Less Specific Selected"}, |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- MIB.bgp4PathAttrAtomicAggregate"} ] |
|
uint32 PathAttrAtomicAggregate; |
|
[Description ( |
|
"This is the AS number of the last BGP4 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|RFC1657- MIB.bgp4PathAttrAggregatorAS"} ] |
|
uint16 PathAttrAggregatorAS; |
|
[Description ( |
|
"This is the IP address of the last BGP4 speaker that " |
|
"performed route aggregation. A value of 0.0.0.0 indicates " |
|
"the absence of this attribute."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- MIB.bgp4PathAttrAggregatorAddr"} ] |
|
string PathAttrAggregatorAddr; |
|
[Description ( |
|
"This is the degree of preference calculated by the " |
|
"receiving BGP4 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|RFC1657- MIB.bgp4PathAttrCalcLocalPref"} ] |
|
sint16 PathAttrCalcLocalPref; |
|
[Description ( |
|
"This is an indication of whether or not this route was " |
|
"chosen as the best BGP4 route. There are two possible " |
|
"values, 1 (FALSE) and 2 (TRUE)."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrBest"} ] |
|
uint16 PathAttrBest; |
|
[Description ( |
|
"This contains one or more path atributes not understood by " |
|
"this BGP4 speaker. The MIB variable is an OctetString, and " |
|
"contains a 1-octet length field and up to 254 additional " |
|
"octets of data. The length is placed in a separate " |
|
"attribute of this class, PathAttrUnknownNumber."), |
|
ModelCorrespondence { |
|
"CIM_BGPPathAttributes.PathAttrUnknownNumber" }, |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrUnknown"} ] |
|
string PathAttrUnknown[ ]; |
|
[Description ( |
|
"The MIB variable is an OctetString, and contains a 1-octet " |
|
"length field and up to 255 additional octets of data. The " |
|
"length is placed in this attribute."), |
|
ModelCorrespondence { |
|
"CIM_BGPPathAttributes.PathAttrUnknown" }, |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgp4PathAttrUnknown"} ] |
|
uint16 PathAttrUnknownNumber; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPAttributesForRoute |
|
// ================================================================== |
|
[Association, Description ( |
|
"This defines the attributes that are transmitted between " |
|
"BGP peers on a per-route basis.") ] |
|
|
|
class CIM_BGPAttributesForRoute : CIM_Dependency |
|
{ |
|
[Max(1), Override ("Antecedent"), Description ( |
|
"The BGPPathAttribute object that may be associated with " |
|
"a BGP route.") ] |
|
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|RFC1657-MIB.bgp4PathAttrPeer"} ] |
|
string PathAttrPeer; |
|
[Description ( |
|
"This defines the length in bits of the IP address prefix " |
|
"in the Network Layer Reachability information field. The " |
|
"range of this attribute is defined to be 0 to 32."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- MIB.bgp4PathAttrIpAddrPrefixLen"} ] |
|
uint8 PathAttrIPAddrPrefixLen; |
|
[Description ( |
|
"An IP address prefix in the Network Layer Reachability " |
|
"Information field. This object is an IP address " |
|
"containing the prefix with length specified by the " |
|
"PathAttrIpAddrPrefixLen attribute."), |
|
ModelCorrespondence { |
|
"CIM_BGPPathAttributes.PathAttrIpAddrPrefixLen" }, |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657- MIB.bgp4PathAttrIpAddrPrefix"} ] |
|
string PathAttrIPAddrPrefix; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPServiceAttributes |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"This is a specialization of the Component aggregation. This " |
|
"aggregation defines the set of BGP Attributes that are " |
|
"transmitted in per-path UPDATE messages.") ] |
|
|
|
class CIM_BGPServiceAttributes : CIM_Component |
|
{ |
|
[Aggregate, Max(1), |
|
Override ("GroupComponent"), Description ( |
|
"The BGPService that aggregates BGP attributes as part of " |
|
"its routing information.") ] |
|
CIM_BGPService REF GroupComponent; |
|
[Override ("PartComponent"), Min(1), Max(1), Description ( |
|
"The BGP attribute, which are part-of the BGP UPDATE " |
|
"message.") ] |
|
CIM_BGPPathAttributes REF PartComponent; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchService |
|
// =================================================================== |
|
[Description ( |
|
"Generic switch (bridging) service class. Additional " |
|
"switching functions are incorporated as subordinate " |
|
"services related to this class via ServiceComponent " |
|
"associations.") |
|
] |
|
|
|
class CIM_SwitchService : CIM_ForwardingService |
|
{ |
|
[MaxLen(32), Description ( |
|
"Address used by this SwitchService when it must be " |
|
"uniquely identified. For an ethernet bridge, the MAC " |
|
"Address serves as the BridgeAddress. When concatenated with a " |
|
"SpanningTreeService Priority, a unique bridge identifier " |
|
"results. The MAC address is formatted as twelve " |
|
"hexadecimal digits (e.g., \"010203040506\"), with each " |
|
"pair representing one of the six octets of the MAC address " |
|
"in \"canonical\" bit order according to RFC 2469." |
|
"In other scenarios, like Ipv6, the address is formatted as " |
|
"\"ffff:ffff:ffff:ffff\"." ), |
|
ModelCorrespondence {"CIM_SwitchService.BridgeAddressType"}, |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dBaseBridgeAddress"} ] |
|
string BridgeAddress; |
|
|
|
[Description ( |
|
"The number of switch ports controlled by this " |
|
"switching service.") , |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dBaseNumPorts"} ] |
|
uint16 NumPorts ; |
|
|
|
[Description ( |
|
"BridgeAddressType defines the type of addressing scheme used " |
|
"for this Bridge. Note that the MappingStrings is ONLY valid " |
|
"for canonical 802 addresses." ), |
|
ModelCorrespondence {"CIM_SwitchingService.BridgeAddress"} ] |
|
uint16 BridgeAddressType; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPort |
|
// =================================================================== |
|
[Description ( |
|
"Switch Port from which frames are received " |
|
"and out which they are transmitted.") ] |
|
|
|
class CIM_SwitchPort : CIM_ProtocolEndpoint |
|
{ |
|
[Description ( |
|
"Numeric identifier for a switch port."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dPort"} ] |
|
uint16 PortNumber; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchesAmong |
|
// =================================================================== |
|
[Association, Description ( |
|
"A SwitchService switches frames between SwitchPorts. " |
|
"This association makes that relationship explicit.") ] |
|
|
|
class CIM_SwitchesAmong : CIM_ForwardsAmong |
|
{ |
|
[Override ("Antecedent"), |
|
Description ("The switch port.") ] |
|
CIM_SwitchPort REF Antecedent; |
|
[Override ("Dependent"), Max(1), |
|
Description ("The switching service.") ] |
|
CIM_SwitchService REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// Switchable |
|
// =================================================================== |
|
[Association, |
|
Description ( |
|
"A switch port has a LANEndpoint that is " |
|
"exposed via this relationship.") ] |
|
|
|
class CIM_Switchable : CIM_BindsToLANEndpoint |
|
{ |
|
[Override ("Antecedent"), Max(1), |
|
Description ("The switch port.") ] |
|
CIM_LANEndpoint REF Antecedent; |
|
[Override ("Dependent"), Max(1), |
|
Description ("The LAN endpoint.") ] |
|
CIM_SwitchPort REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// TransparentBridgingService |
|
// =================================================================== |
|
[Description ( |
|
"This service class represents the learning/transparent " |
|
"bridging aspect of switch service.") ] |
|
|
|
class CIM_TransparentBridgingService : CIM_Service |
|
{ |
|
[Description ( |
|
"The timeout period in seconds for aging out " |
|
"dynamically learned forwarding information. " |
|
"802.1D-1990 recommends a default of 300 seconds."), |
|
Units("Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpAgingTime"} |
|
] |
|
uint32 AgingTime; |
|
[Description ( |
|
"Filtering Database Identifier. Used by VLAN-aware " |
|
"switch having more than one filtering database."), |
|
Mappingstrings {"MIB.IETF|RFC????-MIB.dot1qFdbId"} |
|
] |
|
uint32 FID; |
|
}; |
|
|
|
// =================================================================== |
|
// SpanningTreeService |
|
// =================================================================== |
|
[Description ( |
|
"This service class represents the capability of a switch " |
|
"to participate in the distributed construction of a " |
|
"spanning tree.") ] |
|
|
|
class CIM_SpanningTreeService : CIM_Service |
|
{ |
|
[Description ( |
|
"The version of the spanning tree protocol " |
|
"used by the switch."), |
|
ValueMap {"1", "2", "3"}, |
|
Values {"unknown", "decLb100", "ieee802d"}, |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpProtocolSpecification"} ] |
|
uint16 ProtocolSpec; |
|
[Description ( |
|
"The format of the priority bits are the first two octets of " |
|
"the 8-octet long Bridge ID. The other (last) 6 octets of the " |
|
"Bridge ID are given by the value of the Bridge Address. " |
|
"\n\n" |
|
"A priority that can be assigned to the switch for use in " |
|
"constructing the spanning tree. The unique identifier for " |
|
"a switch is constructed by concatenating the MAC address " |
|
"associated with the switch for spanning tree operations " |
|
"to the two-byte priority. Choice of the priority value " |
|
"influences election of the root bridge."), |
|
Mappingstrings {"MIB.IETF|RFC1493- MIB.dot1dStpPriority"} ] |
|
uint16 Priority; |
|
[MaxLen(16), Description ( |
|
"The Bridge ID (Priority + MAC Address) of the root bridge." |
|
"\n\n" |
|
"The format of the priority bits are the first two octets of " |
|
"the 8-octet long Bridge ID. The other (last) 6 octets of the " |
|
"Bridge ID are given by the value of the Bridge Address. " |
|
"Note that the MAC address is formatted as twelve " |
|
"hexadecimal digits (e.g., \"010203040506\"), with each " |
|
"pair representing one of the six octets of the MAC address " |
|
"in \"canonical\" bit order according to RFC 2469. "), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpDesignatedRoot"} |
|
] |
|
string DesignatedRoot; |
|
[Description ( |
|
"The cost of the path from the switch to the root."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpRootCost"} |
|
] |
|
uint16 RootCost; |
|
[Description ( |
|
"The port number of the port having the lowest cost path " |
|
"to the root bridge."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpRootPort"} |
|
] |
|
uint16 RootPort; |
|
[Description ( |
|
"The current value for the maximum age of Spanning Tree " |
|
"information before discard, as learned from the network."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpMaxAge"} |
|
] |
|
uint32 MaxAge; |
|
[Description ( |
|
"The current value of the interval between transmission " |
|
"of bridge PDUs by the switch on any port for which it is " |
|
"the spanning tree root or trying to become so, as learned " |
|
"from the network."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpHelloTime"} |
|
] |
|
uint32 HelloTime; |
|
[Description ( |
|
"The minimum interval between transmission of bridge PDUs " |
|
"through a given port, as learned from the network."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpHoldTime"} |
|
] |
|
uint32 HoldTime; |
|
[Description ( |
|
"The time spent by a port in the listening state before " |
|
"transitioning to the learning state and in the learning " |
|
"state before transitioning to the forwarding state, as " |
|
"learned from the network. This value is also used during " |
|
"the period of a topology change as the maximum age of " |
|
"Spanning Tree information before discard. "), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpForwardDelay"} |
|
] |
|
uint32 ForwardDelay; |
|
[Description ( |
|
"The MaxAge parameter to be used by all switches in the " |
|
"network if this switch becomes the root."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpBridgeMaxAge"} |
|
] |
|
uint32 BridgeMaxAge; |
|
[Description ( |
|
"The HelloTime parameter to be used by all switches in the " |
|
"network if this switch becomes the root."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpBridgeHelloTime"} |
|
] |
|
uint32 BridgeHelloTime; |
|
[Description ( |
|
"The ForwardDelay parameter to be used by all switches in " |
|
"the network if this switch becomes the root."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpBridgeForwardDelay"} ] |
|
uint32 BridgeForwardDelay; |
|
[Description ( |
|
"MAC address used by the spanning tree service when it " |
|
"must be uniquely identified. When concatenated with a " |
|
"SpanningTreeService Priority, a unique bridge identifier " |
|
"results. This property is defined for use of switches " |
|
"supporting multiple spanning tree services. " |
|
"\n\n" |
|
"Note that the MAC address is formatted as twelve " |
|
"hexadecimal digits (e.g., \"010203040506\"), with each " |
|
"pair representing one of the six octets of the MAC address " |
|
"in \"canonical\" bit order according to RFC 2469.") ] |
|
string SpanningTreeBridgeAddress; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPortSpanningTree |
|
// =================================================================== |
|
[Association, |
|
Description ( |
|
"A switch participating in the spanning tree maintains " |
|
"spanning-tree specific information about each port " |
|
"whose forwarding is determined by the spanning tree. " |
|
"This association represents that information.") ] |
|
|
|
class CIM_SwitchPortSpanningTree : CIM_ServiceSAPDependency |
|
{ |
|
[Override ("Antecedent"), Description ("The switch port.")] |
|
CIM_SwitchPort REF Antecedent; |
|
[Override ("Dependent"), |
|
Description ("The spanning tree service.") ] |
|
CIM_SpanningTreeService REF Dependent; |
|
[Description ( |
|
"The priority assigned to the port. Contained in " |
|
"the first octet of the two-octet port ID; the other " |
|
"octet is the port number."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortPriority"} |
|
] |
|
uint8 Priority; |
|
[Description ( |
|
"The current state of the port as determined by the " |
|
"spanning tree protocol."), |
|
ValueMap {"1", "2", "3", "4", "5", "6"}, |
|
Values {"disabled", "blocking", "listening", "learning", |
|
"forwarding", "broken"}, |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortState"} |
|
] |
|
uint16 State; |
|
[Description ( |
|
"The enabled/disabled status of the port."), |
|
ValueMap {"1", "2"}, |
|
Values {"enabled", "disabled"}, |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortEnable"} |
|
] |
|
uint16 Enable; |
|
[Description ( |
|
"The contribution of this port to the path cost of " |
|
"paths towards the spanning tree root which include " |
|
"this port."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpPortPathCost"} |
|
] |
|
uint16 PathCost; |
|
[Description ( |
|
"The bridge identifier of the root bridge for the segment " |
|
"to which the port is attached, as transmitted by the " |
|
"designated bridge for the segment."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedRoot"} ] |
|
string DesignatedRoot; |
|
[Description ( |
|
"The cost of the path to the root offered by the " |
|
"designated bridge for the segment."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedCost"} ] |
|
uint16 DesignatedCost; |
|
[Description ( |
|
"The bridge identifier of the designated bridge for the " |
|
"segment to which the port is attached."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedBridge"} ] |
|
string DesignatedBridge; |
|
[Description ( |
|
"The port identifier of the port on the designated bridge " |
|
"serving the segment to which the port is attached."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpPortDesignatedPort"} ] |
|
uint16 DesignatedPort; |
|
}; |
|
|
|
// =================================================================== |
|
// DynamicForwardingEntry |
|
// =================================================================== |
|
[Description ( |
|
"A DynamicForwardingEntry represents an entry in the " |
|
"forwarding (filtering) database associated with the " |
|
"transparent bridging service.") |
|
] |
|
class CIM_DynamicForwardingEntry : CIM_LogicalElement |
|
{ |
|
[Propagated("CIM_System.CreationClassName"), |
|
Key, MaxLen (256), |
|
Description ("The scoping System's CreationClassName.") ] |
|
string SystemCreationClassName; |
|
[Propagated("CIM_System.Name"), |
|
Key, MaxLen (256), |
|
Description ("The scoping System's Name.") ] |
|
string SystemName; |
|
[Propagated("CIM_Service.CreationClassName"), |
|
Key, MaxLen (256), |
|
Description ("The scoping Service's CreationClassName.") |
|
] |
|
string ServiceCreationClassName; |
|
[Propagated("CIM_Service.Name"), |
|
Key, MaxLen (256), |
|
Description ("The scoping Service's Name.") ] |
|
string ServiceName; |
|
[Key, MaxLen (256), |
|
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, MaxLen (6), Description ( |
|
"Unicast MAC address for which the transparent bridging " |
|
"service has forwarding and/or filtering information. " |
|
"\n\n" |
|
"Note that the MAC address is formatted as twelve " |
|
"hexadecimal digits (e.g., \"010203040506\"), with each " |
|
"pair representing one of the six octets of the MAC address " |
|
"in \"canonical\" bit order according to RFC 2469."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpFdbAddress"} |
|
] |
|
string MACAddress; |
|
[Description ( |
|
"The status of the entry."), |
|
ValueMap {"1", "2", "3", "4", "5"}, |
|
Values {"other", "invalid", "learned", "self", "mgmt"}, |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpFdbStatus"} |
|
] |
|
uint16 DynamicStatus; |
|
}; |
|
|
|
// ================================================================== |
|
// TransparentBridgingDynamicForwarding |
|
// ================================================================== |
|
[Association, |
|
Description ( |
|
"This association links an instance of the transparent " |
|
"bridging service to the entries of its forwarding database. " |
|
"The forwarding database is weak to the service.") |
|
] |
|
class CIM_TransparentBridgingDynamicForwarding : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min(1), Max(1), |
|
Description ("The transparent bridging service.") ] |
|
CIM_TransparentBridgingService REF Antecedent; |
|
[Override ("Dependent"), Weak, |
|
Description ("Dynamic Forwarding Entry of forwarding database.") |
|
] |
|
CIM_DynamicForwardingEntry REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchPortDynamicForwarding |
|
// ================================================================== |
|
[Association, |
|
Description ( |
|
"This association links a dynamic forwarding entry " |
|
"and the switch port to which the entry applies.") ] |
|
|
|
class CIM_SwitchPortDynamicForwarding : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min(1), Max(1), |
|
Description ("The switch port.") ] |
|
CIM_SwitchPort REF Antecedent; |
|
[Override ("Dependent"), |
|
Description ("Dynamic Forwarding Entry of forwarding database.") |
|
] |
|
CIM_DynamicForwardingEntry REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// StaticForwardingEntry |
|
// =================================================================== |
|
[Description ( |
|
"A StaticForwardingEntry represents an entry in the " |
|
"static (destination-address filtering) database associated " |
|
"with the switch service.") ] |
|
|
|
class CIM_StaticForwardingEntry : CIM_LogicalElement |
|
{ |
|
[Propagated("CIM_System.CreationClassName"), |
|
Key, MaxLen (256), |
|
Description ("The scoping System's CreationClassName.") ] |
|
string SystemCreationClassName; |
|
[Propagated("CIM_System.Name"), |
|
Key, MaxLen (256), |
|
Description ("The scoping System's Name.") ] |
|
string SystemName; |
|
[Propagated("CIM_Service.CreationClassName"), |
|
Key, MaxLen (256), |
|
Description ("The scoping Service's CreationClassName.") ] |
|
string ServiceCreationClassName; |
|
[Propagated("CIM_Service.Name"), |
|
Key, MaxLen (256), |
|
Description ("The scoping Service's Name.") ] |
|
string ServiceName; |
|
[Key, MaxLen (256), |
|
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, MaxLen (6), Description ( |
|
"Destination MAC address (unicast, multicast or broadcast) " |
|
"to which the filtering information applies. " |
|
"\n\n" |
|
"Note that the MAC address is formatted as twelve " |
|
"hexadecimal digits (e.g., \"010203040506\"), with each " |
|
"pair representing one of the six octets of the MAC address " |
|
"in \"canonical\" bit order according to RFC 2469."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStaticAddress"} |
|
] |
|
string MACAddress; |
|
[Description ( |
|
"The status of the entry."), |
|
ValueMap {"1", "2", "3", "4", "5"}, |
|
Values {"other", "invalid", "permanent", "deleteOnReset", |
|
"DeleteOnTimeout"}, |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStaticStatus"} |
|
] |
|
uint16 StaticStatus; |
|
[Description ( |
|
"The ports to which frames with the destination MAC " |
|
"address arriving on the port represented by the " |
|
"SwitchPortStaticForwarding association are allowed " |
|
"to be forwarded.") |
|
] |
|
uint16 AllowedToGo[]; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// TransparentBridgingStaticForwarding |
|
// ================================================================== |
|
[Association, |
|
Description ( |
|
"This association links an instance of the transparent " |
|
"bridging service to the entries of its static " |
|
"(destination-address filtering) database.") |
|
] |
|
|
|
class CIM_TransparentBridgingStaticForwarding : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min(1), Max(1), |
|
Description ("The transparent bridging service.") |
|
] |
|
CIM_TransparentBridgingService REF Antecedent; |
|
[Override ("Dependent"), Weak, |
|
Description ("Static Forwarding Entry of forwarding database.") |
|
] |
|
CIM_StaticForwardingEntry REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchPortStaticForwarding |
|
// ================================================================== |
|
[Association, |
|
Description ( |
|
"This association links a static database entry " |
|
"and the switch port to which the entry applies.") ] |
|
class CIM_SwitchPortStaticForwarding : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min(1), |
|
Description ("The switch port.") ] |
|
CIM_SwitchPort REF Antecedent; |
|
[Override ("Dependent"), |
|
Description ("Static Forwarding Entry of static database.") |
|
] |
|
CIM_StaticForwardingEntry REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchServiceTransparentBridging |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"An association linking SwitchService to a component " |
|
"TransparentBridgingService. The cardinality of the " |
|
"TransparentBridgingService is 0..1 for a VLAN-unaware " |
|
"switch.") ] |
|
|
|
class CIM_SwitchServiceTransparentBridging : CIM_ServiceComponent |
|
{ |
|
[Override ("GroupComponent"), Aggregate, Min(1), |
|
Description ("The parent service.") ] |
|
CIM_SwitchService REF GroupComponent; |
|
[Override ("PartComponent"), |
|
Description ("The component service.") ] |
|
CIM_TransparentBridgingService REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchServiceSpanningTree |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"An association linking SwitchService to a component " |
|
"SpanningTreeService. The cardinality of the " |
|
"SpanningTreeService is 0..1 for a VLAN-unaware " |
|
"switch.") ] |
|
|
|
class CIM_SwitchServiceSpanningTree : CIM_ServiceComponent |
|
{ |
|
[Override ("GroupComponent"), Aggregate, Min(1), |
|
Description ("The parent service.") ] |
|
CIM_SwitchService REF GroupComponent; |
|
[Override ("PartComponent"), |
|
Description ("The component service.") ] |
|
CIM_SpanningTreeService REF PartComponent; |
|
}; |
|
|
|
// =================================================================== |
|
// SourceRoutingService |
|
// =================================================================== |
|
[Description ( |
|
"SourceRoutingService represents the capability of a switch " |
|
"to participate in the source routing of frames received " |
|
"at its ports. It is a system-level Service that provides " |
|
"and supports local switching only. For this reason, it is " |
|
"not defined as a subclass of NetworkService. Instead, Source" |
|
"RoutingService is aggregated into a higher level Network/" |
|
"Forwarding/SwitchService through the SwitchServiceSource" |
|
"Routing association.")] |
|
|
|
class CIM_SourceRoutingService : CIM_Service |
|
{ |
|
[Description ( |
|
"Indicates whether the bridge operates using older " |
|
"3 bit length negotiation fields or the newer 6 bit " |
|
"length field in its RIF."), |
|
ValueMap {"1", "2"}, |
|
Values {"mode3", "mode6"}, |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrBridgeLfMode"} |
|
] |
|
uint16 BridgeLfMode; |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchServiceSourceRouting |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"An association linking SwitchService to a component " |
|
"SourceRoutingService. The cardinality of the " |
|
"SourceRoutingService is 0..1 for a VLAN-unaware " |
|
"switch.") ] |
|
|
|
class CIM_SwitchServiceSourceRouting : CIM_ServiceComponent |
|
{ |
|
[Override ("GroupComponent"), Aggregate, Min(1), |
|
Description ("The parent service.") ] |
|
CIM_SwitchService REF GroupComponent; |
|
[Override ("PartComponent"), |
|
Description ("The component service.") ] |
|
CIM_SourceRoutingService REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchPortPair |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association represents information regarding port " |
|
"pairings that is used by the SourceRoutingService of a " |
|
"switch.") ] |
|
|
|
class CIM_SwitchPortPair : CIM_SAPSAPDependency |
|
{ |
|
[Override ("Antecedent"), Min(1), Description ( |
|
"The lower numbered port.")] |
|
CIM_SwitchPort REF Antecedent; |
|
[Override ("Dependent"), Min(1), Description ( |
|
"The higher numbered port.")] |
|
CIM_SwitchPort REF Dependent; |
|
[Description ( |
|
"A bridge number that uniquely identifies the path " |
|
"provided by this source routing bridge between the " |
|
"segments connected to high and low ports. The purpose " |
|
"of bridge number is to disambiguate between multiple paths " |
|
"connecting the same two LANs."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dPortPairBridgeNum"} |
|
] |
|
uint16 BridgeNum; |
|
[Description ( |
|
"The state of dot1dPortPairBridgeNum. Writing " |
|
"'invalid(3)' to this property removes the " |
|
"association instance."), |
|
ValueMap {"1", "2", "3"}, |
|
Values {"enabled", "disabled", "invalid"}, |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dPortPairBridgeState"} |
|
] |
|
uint16 BridgeState; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPortSourceRouting |
|
// =================================================================== |
|
[Association, Description ( |
|
"A switch capable of source routing maintains " |
|
"source-routing specific information about each port. " |
|
"This association represents that information.") ] |
|
|
|
class CIM_SwitchPortSourceRouting : CIM_ServiceSAPDependency |
|
{ |
|
[Override ("Antecedent"), Description ("The switch port.")] |
|
CIM_SwitchPort REF Antecedent; |
|
[Override ("Dependent"), Min(0), Max(1), |
|
Description ("The source routing service.") ] |
|
CIM_SourceRoutingService REF Dependent; |
|
[Description ( |
|
"The maximum number of routing descriptors allowed " |
|
"in an All Paths or Spanning Tree Explorer frames."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortHopCount"} |
|
] |
|
uint16 HopCount; |
|
[Description ( |
|
"The segment number that uniquely identifies the " |
|
"segment to which this port is connected. Current " |
|
"source routing protocols limit this value to the " |
|
"range: 0 through 4095. (The value 0 is used by " |
|
"some management applications for special test " |
|
"cases.) A value of 65535 signifies that no segment " |
|
"number is assigned to this port."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortLocalSegment"} |
|
] |
|
uint16 LocalSegment; |
|
[Description ( |
|
"A bridge number uniquely identifies a bridge when " |
|
"more than one bridge is used to span the same two " |
|
"segments. Current source routing protocols limit " |
|
"this value to the range: 0 through 15. A value of " |
|
"65535 signifies that no bridge number is assigned " |
|
"to this bridge."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortBridgeNum"} |
|
] |
|
uint16 BridgeNum; |
|
[Description ( |
|
"The segment number that corresponds to the target " |
|
"segment this port is considered to be connected to " |
|
"by the switch. Current source routing protocols " |
|
"limit this value to the range: 0 through 4095. " |
|
"(The value 0 is used by some management " |
|
"applications for special test cases.) A value of " |
|
"65535 signifies that no target segment is assigned " |
|
"to this port."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortTargetSegment"} |
|
] |
|
uint16 TargetSegment; |
|
[Description ( |
|
"Determines how the port behaves when presented " |
|
"with a Spanning Tree Explorer frame. The value " |
|
"'disabled(2)' indicates that the port will not " |
|
"accept or send Spanning Tree Explorer packets; any " |
|
"STE packets received will be silently discarded. " |
|
"The value 'forced(3)' indicates the port will " |
|
"always accept and propagate Spanning Tree Explorer " |
|
"frames. This allows a manually configured " |
|
"Spanning Tree for this class of packet to be " |
|
"configured. Note that unlike transparent " |
|
"bridging, this is not catastrophic to the network " |
|
"if there are loops. The value 'auto-span(1)' can " |
|
"only be returned by a bridge that both implements " |
|
"the Spanning Tree Protocol and has use of the " |
|
"protocol enabled on this port. The behavior of the " |
|
"port for Spanning Tree Explorer frames is " |
|
"determined by the value of the State property of " |
|
"the SwitchPortSpanningTree association for the port. " |
|
"If the port is in the 'forwarding' state, the frame " |
|
"will be accepted or propagated. Otherwise, it " |
|
"will be silently discarded."), |
|
ValueMap {"1", "2", "3"}, |
|
Values {"auto-span", "disabled", "forced"}, |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSTESpanMod"} |
|
] |
|
uint16 STESpanMode; |
|
}; |
|
|
|
// ================================================================== |
|
// VLAN |
|
// ================================================================== |
|
[Description ( |
|
"An instance of VLAN represents a VLAN within a switch. " |
|
"In a particular switch, there should be an instance of VLAN " |
|
"for every VLAN available in the switch. For example, in a " |
|
"switch with port-based VLANs, if there are 16 VLANs to which " |
|
"ports can be assigned (VLAN 1 through VLAN 16), there should " |
|
"be an instance of CIM_VLAN for each of VLAN 1 through " |
|
"VLAN 16." |
|
"\n\n" |
|
"VLAN inherits Name from ServiceAccessPoint. Use this for " |
|
"the textual name of the VLAN, if there is one. Otherwise, " |
|
"synthesize a textual name, e.g., VLAN 0003. (Consider " |
|
"leading zero fill, as shown, to ensure that if the textual " |
|
"VLAN names are extracted and presented by a management " |
|
"applictions, the VLAN names will sort in the expected order. " |
|
"It's irritating to see a list sorted" |
|
"'VLAN 1, VLAN 10, VLAN 11, VLAN 2, VLAN 3...'" |
|
"when it could have been" |
|
"'VLAN 0001, VLAN 0002, ..., VLAN 0010, VLAN 0011, ....')" |
|
"The numeric part of the name should be at least four " |
|
"digits wide since 802.1Q specifies 4095 VLANs." |
|
"\n\n" |
|
"It is intended that VLAN be subclassed only if necessary " |
|
"to add attributes. The type of the VLAN can be inferred from " |
|
"the VLANService(s) with which the VLAN is associated " |
|
"in the VLANFor association." |
|
"\n\n" |
|
"An instance of VLAN may be associated with more than one " |
|
"VLANService. For example, there are switches that " |
|
"support both 802.1Q VLANs and the vendor's proprietary " |
|
"VLANs. In some such switches if a broadcast packet received " |
|
"on a port in 802.1Q VLAN 5 will be transmitted from a port " |
|
"in proprietary VLAN 5. In effect, there is only one VLAN 5, " |
|
"and the type of port only determines the packet format for " |
|
"tagged packets. In the case just described, only one " |
|
"instance of CIM_VLAN should be instantiated for VLAN 5, and " |
|
"it should be associated both with the 802.1Q VLANService " |
|
"and the proprietary VLANService. " |
|
"\n\n" |
|
"In typical VLAN-aware switches, packets can be assigned to " |
|
"a VLAN based on the port on which they are received " |
|
"(port-based VLANS), based on the source MAC address " |
|
"(MAC-based VLANs), or based on the value of a set of bits in " |
|
"the packet (protocol-based VLANs). If it is desirable to " |
|
"represent the VLAN assignment predicate for some MAC-based " |
|
"VLAN switch, it will be necessary to subclass VLAN. The list " |
|
"of MAC addresses associated with a VLAN would be an " |
|
"attribute of the subclass. If it is desirable to represent" |
|
"the VLAN assignment predicate in a protocol-based VLAN " |
|
"switch, it will be necessary to subclass VLAN, " |
|
"InboundVLAN, or both. If the predicate applies to all ports " |
|
"in the switch, then only VLAN need be subclassed. If the " |
|
"predicate may vary based on the port, then InboundVLAN must " |
|
"be subclassed, and CIM_VLAN might have to be subclassed " |
|
"as well.") ] |
|
|
|
class CIM_VLAN : CIM_ServiceAccessPoint |
|
{ |
|
[Description ("VLAN identifying number.") ] |
|
uint32 VLANNumber; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// RelatedTransparentBridgingService |
|
// ================================================================== |
|
[Association, Description ( |
|
"The association between a VLAN and the forwarding database" |
|
"(some use the term filtering database) used to determine" |
|
"which port a packet should be transmitted on, given that it" |
|
"is assigned to the VLAN and that it has a particular" |
|
"destination MAC address. The TransparentBridgingService" |
|
"represents a forwarding database.") ] |
|
|
|
class CIM_RelatedTransparentBridgingService : CIM_ServiceSAPDependency |
|
{ |
|
[Override ("Antecedent"), Min(0)] |
|
CIM_VLAN REF Antecedent; |
|
[Override ("Dependent"), Min(1), Max(1)] |
|
CIM_TransparentBridgingService REF Dependent; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// CIM_RelatedSpanningTree |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association identifies the spanning tree in which" |
|
"a forwarding database (TransparentBridgingService) is" |
|
"nested.") ] |
|
|
|
class CIM_RelatedSpanningTree : CIM_ServiceServiceDependency |
|
{ |
|
[Override ("Antecedent"), Min(0)] |
|
CIM_TransparentBridgingService REF Antecedent; |
|
[Override ("Dependent"), Min(0), Max(1)] |
|
CIM_SpanningTreeService REF Dependent; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// InboundVLAN |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association makes explicit the operational " |
|
"dependencies of a SwitchPort when operating in a VLAN." |
|
"\n\n" |
|
"If there is an association between a particular " |
|
"SwitchPort and a particular VLAN, then there is the " |
|
"possibility that a packet received by the port will be " |
|
"assigned to the VLAN (or if the packet already has a VLAN " |
|
"tag, that the packet will not be dropped). If there is no " |
|
"such association, then there is no possibility that a " |
|
"packet received by the port will progress through the " |
|
"switch having been assigned to the VLAN in question.") ] |
|
|
|
class CIM_InboundVLAN : CIM_SAPSAPDependency |
|
{ |
|
[Override ("Antecedent"), Min(0)] |
|
CIM_VLAN REF Antecedent; |
|
[Override ("Dependent"), Min(0)] |
|
CIM_SwitchPort REF Dependent; |
|
[Description ( |
|
"If true, packets already tagged with this VLAN number will be" |
|
"accepted when arriving at this port. For example, if there is" |
|
"an InboundVLAN association between port 12 and VLAN 7 for" |
|
"which Tagged is true, then if a packet tagged with VLAN 7" |
|
"arrives at port 12, the packet will be accepted into the" |
|
"switch for further processing. If there is no such " |
|
"association, then the packet will be dropped." |
|
"\n\n" |
|
"If false, it means that any untagged packets arriving at this" |
|
"port MIGHT be classified into the associated VLAN. If, for a" |
|
"particular SwitchPort, there is only one instance of the" |
|
"association for which Tagged is false, then all incoming" |
|
"untagged packets will be classified into that VLAN. This is" |
|
"the typical configuration of a non-trunk port in a switch" |
|
"implementing port-based VLANs. If there is more than one such" |
|
"association instance, then the packet MIGHT be classified" |
|
"into any one of them, based on some criterion other than the" |
|
"identity of the switch port. For example, in a MAC-based " |
|
"VLAN switch, the decision would be based on the source MAC " |
|
"address. In a protocol-based VLAN switch, the decision would " |
|
"be based on the values of some set of bits in the packet. " |
|
"\n\n" |
|
"Note that the MAC address is formatted as twelve " |
|
"hexadecimal digits (e.g., \"010203040506\"), with each " |
|
"pair representing one of the six octets of the MAC address " |
|
"in \"canonical\" bit order according to RFC 2469.") ] |
|
boolean Tagged; |
|
[Description ( |
|
"Default should be true if untagged packets received by the " |
|
"SwitchPort are assigned to the VLAN by default. For " |
|
"802.1Q-compliant ports, the Default property should be " |
|
"true on the association instance connecting a SwitchPort to " |
|
"the CIM_VLAN corresponding to the port's PVID. Default " |
|
"should never be true if Tagged is true -- it applies only " |
|
"to untagged packets.") ] |
|
boolean Default; |
|
}; |
|
|
|
// ================================================================== |
|
// OutboundVLAN |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association makes explicit the operational " |
|
"dependencies of a SwitchPort when operating in a VLAN. " |
|
"\n\n" |
|
"If there is no instance of OutboundVLAN between a given " |
|
"SwitchPort and CIM_VLAN, then any packet that has been " |
|
"assigned to the VLAN and whose destination address is " |
|
"associated with the port will be dropped by the switch " |
|
"without being transmitted. Otherwise, the packet will be " |
|
"transmitted.") ] |
|
|
|
class CIM_OutboundVLAN : CIM_SAPSAPDependency |
|
{ |
|
[Override ("Antecedent"), Min(0)] |
|
CIM_VLAN REF Antecedent; |
|
[Override ("Dependent"), Min(0)] |
|
CIM_SwitchPort REF Dependent; |
|
[Description ( |
|
"If Tagged is true, then the packet will be transmitted in" |
|
"encapsulated form, tagged with the associated VLAN tag. If" |
|
"Tagged is false, the packet will be trasmitted without any" |
|
"VLAN tag.") ] |
|
boolean Tagged; |
|
}; |
|
|
|
// ================================================================== |
|
// VLANService |
|
// ================================================================== |
|
[Abstract, Description ( |
|
"VLANService represents the VLAN aspects of the function" |
|
"performed by a switch. Some VLAN-aware devices participate" |
|
"in protocols where VLAN information is propagated among" |
|
"switches, e.g., GVRP in 802.1Q switches and VTP in Cisco" |
|
"Catalyst switches. VLANService also represents the function" |
|
"performed by the switch as a participant in such a protocol." |
|
"\n\n" |
|
"VLANService must be subclassed so that instances can be" |
|
"distinguished by their class. If there is a name assigned to" |
|
"a set of VLAN-aware switches, e.g., the VTP domain name in" |
|
"Cisco Catalyst switches, use the Name attribute inherited" |
|
"from CIM_Service to store the name." |
|
"\n\n" |
|
"A VLANService should be instantiated in a VLAN-aware switch" |
|
"even if there is no GVRP-like protocol.") ] |
|
|
|
class CIM_VLANService : CIM_Service |
|
{ |
|
}; |
|
|
|
// ================================================================== |
|
// 802dot1QVLANService |
|
// ================================================================== |
|
[Description ( |
|
"If a switch supports 802.1Q, an instance of this class should" |
|
"be instantiated in the switch. If the switch supports GVRP," |
|
"this class represents the function that the switch performs" |
|
"with respect to GVRP.") ] |
|
|
|
class CIM_802dot1QVLANService : CIM_VLANService |
|
{ |
|
}; |
|
|
|
// ================================================================== |
|
// SwitchServiceVLAN |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"An association linking SwitchService to a component " |
|
"VLANService.") ] |
|
|
|
class CIM_SwitchServiceVLAN : CIM_ServiceComponent |
|
{ |
|
[Override ("GroupComponent"), Min(1), Max(1), Aggregate] |
|
CIM_SwitchService REF GroupComponent; |
|
[Override ("PartComponent")] |
|
CIM_VLANService REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// VLANFor |
|
// ================================================================== |
|
[Association, Description( |
|
"The VLAN Port used by the VLAN Service.") ] |
|
|
|
class CIM_VLANFor : CIM_ServiceSAPDependency |
|
{ |
|
[Override ("Antecedent"), Min(0)] |
|
CIM_VLAN REF Antecedent; |
|
[Override ("Dependent"), Min(1)] |
|
CIM_VLANService REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// TransparentBridgingStatistics |
|
// =================================================================== |
|
[Description( |
|
"Statistical information regarding the Transparent Bridging " |
|
"Service.") ] |
|
|
|
class CIM_TransparentBridgingStatistics : |
|
CIM_ServiceStatisticalInformation |
|
{ |
|
[Description ( |
|
"The total number of Forwarding Database entries, " |
|
"which have been or would have been learnt, but " |
|
"have been discarded due to a lack of space to " |
|
"store them in the Forwarding Database. "), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dTpLearnedEntryDiscards"} |
|
] |
|
uint32 LearnedEntryDiscards; |
|
}; |
|
|
|
// =================================================================== |
|
// SpanningTreeStatistics |
|
// =================================================================== |
|
[Description( |
|
"Statistical information regarding the Spanning Tree " |
|
"Service.") ] |
|
|
|
class CIM_SpanningTreeStatistics : CIM_ServiceStatisticalInformation |
|
{ |
|
[Description( |
|
"The time since the last topology change was " |
|
"detected by the switch."), |
|
Units ("Hundredths of Seconds"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpTimeSinceTopologyChange"} ] |
|
uint32 TimeSinceTopologyChange; |
|
[Description ( |
|
"The total number of topology changes detected by " |
|
"the switch since the counter was last reset or " |
|
"initialized."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dStpTopChanges"} |
|
] |
|
uint32 TopChanges; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPortStatistics |
|
// =================================================================== |
|
[Description ( |
|
"Statistical information regarding a generic switch port, " |
|
"independent of the specific kind of switching done on " |
|
"frames arriving at the port.") ] |
|
|
|
class CIM_SwitchPortStatistics : CIM_SAPStatisticalInformation |
|
{ |
|
[Description ( |
|
"The number of frames discarded by this port due " |
|
"to excessive transit delay through the bridge."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dBasePortDelayExceededDiscards"} |
|
] |
|
uint32 DelayExceededDiscards; |
|
[Description ( |
|
"The number of frames discarded by this port due " |
|
"to an excessive size."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dBasePortMtuExceededDiscards"} |
|
] |
|
uint32 MtuExceededDiscards; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPortTransparentBridgingStatistics |
|
// =================================================================== |
|
[Description ( |
|
"Statistical information regarding a switch port, " |
|
"at which transparent bridging is performed.") ] |
|
|
|
class CIM_SwitchPortTransparentBridgingStatistics : |
|
CIM_SAPStatisticalInformation |
|
{ |
|
[Description ( |
|
"The number of frames that have been received by " |
|
"the port from its segment. Note that a frame " |
|
"is only counted if and only if it is for a " |
|
"protocol being processed by the local bridging " |
|
"function, including bridge management frames."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpPortInFrames"} |
|
] |
|
uint32 InFrames; |
|
[Description ( |
|
"The number of frames that have been transmitted by " |
|
"the port to its segment. Note that a frame " |
|
"is only counted if and only if it is for a " |
|
"protocol being processed by the local bridging " |
|
"function, including bridge management frames."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpPortOutFrames"} |
|
] |
|
uint32 OutFrames; |
|
[Description ( |
|
"Count of valid frames received which were " |
|
"discarded (i.e., filtered) by the Forwarding Process."), |
|
Mappingstrings {"MIB.IETF|RFC1493-MIB.dot1dTpPortInDiscards"} |
|
] |
|
uint32 InDiscards; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPortSpanningTreeStatistics |
|
// =================================================================== |
|
[Description ( |
|
"Statistical information regarding a switch port " |
|
"participating in the spanning tree.") ] |
|
|
|
class CIM_SwitchPortSpanningTreeStatistics : |
|
CIM_SAPStatisticalInformation |
|
{ |
|
[Description ( |
|
"The number of times the port has transitioned " |
|
"from the Learning state to the Forwarding state."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1493- MIB.dot1dStpPortForwardTransitions"} |
|
] |
|
uint32 ForwardTransitions; |
|
}; |
|
|
|
// =================================================================== |
|
// SwitchPortSourceRoutingStatistics |
|
// =================================================================== |
|
[Description ( |
|
"Statistical information regarding a switch port " |
|
"supporting source routing.") ] |
|
|
|
class CIM_SwitchPortSourceRoutingStatistics : |
|
CIM_SAPStatisticalInformation |
|
{ |
|
[Counter, Description ( |
|
"The number of Specifically Routed frames, also " |
|
"referred to as Source Routed Frames, that have " |
|
"been received from the segment attached to the port."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSpecInFrames"} |
|
] |
|
uint32 SpecInFrames; |
|
[Counter, Description ( |
|
"The number of Specifically Routed frames, also " |
|
"referred to as Source Routed Frames, that the " |
|
"port has transmitted on its segment."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSpecOutFrames"} |
|
] |
|
uint32 SpecOutFrames; |
|
[Counter, Description ( |
|
"The number of All Paths Explorer frames, also " |
|
"referred to as All Routes Explorer frames, that " |
|
"have been received by the port from its segment."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortApeInFrames"} |
|
] |
|
uint32 ApeInFrames; |
|
[Counter, Description ( |
|
"The number of all Paths Explorer Frames, also " |
|
"referred to as All Routes Explorer frames, that " |
|
"have been transmitted by the port on its segment."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortApeOutFrames"} |
|
] |
|
uint32 ApeOutFrames; |
|
[Counter, Description ( |
|
"The number of spanning tree explorer frames that " |
|
"have been received by the port from its segment."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSteInFrames"} |
|
] |
|
uint32 SteInFrames; |
|
[Counter, Description ( |
|
"The number of spanning tree explorer frames that " |
|
"have been transmitted by the port on its segment."), |
|
Mappingstrings {"MIB.IETF|RFC1525-MIB.dot1dSrPortSteOutFrames"} |
|
] |
|
uint32 SteOutFrames; |
|
[Counter, Description ( |
|
"The number of explorer frames that have been " |
|
"discarded by the port because the routing " |
|
"descriptor field contained an invalid adjacent " |
|
"segment value."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1525- MIB.dot1dSrPortSegmentMismatchDiscards"} |
|
] |
|
uint32 SegmentMismatchDiscards; |
|
[Counter, Description ( |
|
"The number of frames that have been discarded by " |
|
"the port because the routing descriptor field " |
|
"contained a duplicate segment identifier."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1525- MIB.dot1dSrPortDuplicateSegmentDiscards"} |
|
] |
|
uint32 DuplicateSegmentDiscards; |
|
[Counter, Description ( |
|
"The number of explorer frames that have been " |
|
"discarded by the port because the Routing " |
|
"Information Field has exceeded the maximum route " |
|
"descriptor length."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1525- MIB.dot1dSrPortHopCountExceedsDiscards"} |
|
] |
|
uint32 HopCountExceedsDiscards; |
|
[Counter, Description ( |
|
"The number of duplicate LAN IDs or Tree errors. " |
|
"This helps in detection of problems in networks " |
|
"containing older IBM Source Routing Bridges."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1525- MIB.dot1dSrPortDupLanIdOrTreeErrors"} |
|
] |
|
uint32 DupLanIdOrTreeErrors; |
|
[Counter, Description ( |
|
"The number of ARE and STE frames that were " |
|
"discarded because the last LAN ID in the routing " |
|
"information field did not equal the LAN-in ID. " |
|
"This error can occur in implementations which do " |
|
"only a LAN-in ID and Bridge Number check instead " |
|
"of a LAN-in ID, Bridge Number, and LAN-out ID " |
|
"check before they forward broadcast frames."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1525- MIB.dot1dSrPortLanIdMismatches"} |
|
] |
|
uint32 LanIdMismatches; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPStatistics |
|
// ================================================================== |
|
[Description ( |
|
"This class contains statistical information for a " |
|
"Group sessions.") ] |
|
|
|
class CIM_BGPStatistics : CIM_ServiceStatisticalInformation |
|
{ |
|
[Counter, Description ( |
|
"This is the number of BGP UPDATE messages received on this" |
|
"router's BGP connection. This is a 32-bit counter."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerInUpdates"} ] |
|
uint32 InUpdates; |
|
[Counter, Description ( |
|
"This is the number of BGP UPDATE messages transmitted on " |
|
"this router's BGP connection. This is a 32-bit counter."), |
|
Mappingstrings {"MIB.IETF|RFC1657-MIB.bgpPeerOutUpdates"} ] |
|
uint32 OutUpdates; |
|
[Counter, Description ( |
|
"This is the total number of BGP messages received on this" |
|
"router's BGP connection. This is a 32-bit counter."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-MIB.bgpPeerInTotalMessages"} ] |
|
uint32 InTotalMessages; |
|
[Counter, Description ( |
|
"This is the total number of BGP messages transmitted on " |
|
"this router's BGP connection. This is a 32-bit counter."), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-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|RFC1657-MIB.bgpPeerLastError"} ] |
|
uint8 LastError [2]; |
|
[Counter, 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."), |
|
Mappingstrings |
|
{"MIB.IETF|RFC1657-MIB.bgpPeerFsmEstablishedTransitions"} ] |
|
uint32 FsmEstablishedTransitions; |
|
[Gauge, 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"), |
|
Mappingstrings { |
|
"MIB.IETF|RFC1657-MIB.bgpPeerFsmEstablishedTime"} ] |
|
uint32 FsmEstablishedTime; |
|
[Gauge, 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"), |
|
Mappingstrings |
|
{"MIB.IETF|RFC1657-MIB.bgpPeerInUpdateElapsedTime"} ] |
|
uint32 InUpdateElapsedTime; |
|
}; |
|
|
|
// ================================================================== |
|
// BGPServiceStatistics |
|
// ================================================================== |
|
[Association, Description ( |
|
"This association defines statistics collected for a BGP " |
|
"session.") ] |
|
|
|
class CIM_BGPServiceStatistics : CIM_ServiceStatistics |
|
{ |
|
[Max(1), Override("Stats"), Weak, Description ( |
|
"The statistics object for the BGP session.") ] |
|
CIM_BGPStatistics REF Stats; |
|
[Min(1), Max(1), Override("Element"), Description ( |
|
"The BGPService for which statistics are being gathered.") ] |
|
CIM_BGPService REF Element; |
|
}; |
|
|
|
|
|
// =================================================================== |
|
// CIM_EndpointIdentity (CR308a) - this class stays here! |
|
// =================================================================== |
|
[Association, Description ( |
|
"CIM_EndpointIdentity indicates that two ProtocolEndpoints " |
|
"represent different aspects of the same underlying address " |
|
"or protocol-specific ID. This association refines the " |
|
"CIM_LogicalIdentity superclass by restricting it to the " |
|
"Endpoint level and defining its use in well understood " |
|
"scenarios. One of these scenarios is to represent that an " |
|
"Endpoint has both 'LAN' and protocol-specific aspects. " |
|
"For example, an Endpoint could be both a LANEndpoint as " |
|
"well as a DHCPEndpoint.") ] |
|
|
|
class CIM_EndpointIdentity: CIM_LogicalIdentity |
|
{ |
|
[Override ("SystemElement"), Description ( |
|
"SystemElement represents one aspect of the " |
|
"Endpoint.") ] |
|
CIM_ProtocolEndpoint ref SystemElement; |
|
[Override ("SameElement"), Description ( |
|
"SameElement represents an alternate aspect of " |
|
"the Endpoint.") ] |
|
CIM_ProtocolEndpoint ref SameElement; |
|
}; |
|
|
|
// =================================================================== |
|
// Start of the QoS sub-model |
|
// =================================================================== |
|
|
|
// =================================================================== |
|
// CIM_QoSService |
|
// =================================================================== |
|
|
|
[Description ( |
|
"This is a concrete class that represents the ability to " |
|
"conceptualize a QoS service as a set of coordinated " |
|
"sub-services. This enables the network administrator to map " |
|
"business rules to the network, and the network designer to " |
|
"engineer the network such that it can provide different " |
|
"functions for different traffic streams. " |
|
"\n\n" |
|
"This class has two main purposes. First, it serves as a " |
|
"common base class for defining various sub-services that " |
|
"are needed to build higher-level QoS services. Second, it " |
|
"serves as a way to consolidate relationships between " |
|
"different types of QoS services and different types of " |
|
"ConditioningServices." |
|
"\n\n" |
|
"For example, Gold Service may be defined as a set of " |
|
"sub-services, where each of these sub-services perform one " |
|
"or more different functions required by the higher-level " |
|
"service. Continuing the example, Gold Service may be used " |
|
"to specify EF for one traffic stream along with different " |
|
"AF services for other different traffic streams. Each of " |
|
"these services are instances of the class QoSService, and " |
|
"each require a set of sub-services to be defined as part of " |
|
"their implementation. For example, one would expect to see " |
|
"different marking, dropping, and queuing sub-services to be " |
|
"defined for each of these services.") ] |
|
|
|
class CIM_QoSService: CIM_NetworkService |
|
{ |
|
}; |
|
|
|
// ================================================================== |
|
// QoSSubService |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
" The associations - QoSSubService and QoSConditioningSub" |
|
"Service - operate in conjunction. High level QoS " |
|
"definitions, such as 'John gets Gold Service', map to " |
|
"lower level, more concrete QoSServices (the subclasses " |
|
"of QoSService). This is described by the QoSSubService " |
|
"association. In turn, each of the SubServices may require " |
|
"their own conditioning. This is modeled using the " |
|
"QoSConditioningSubService aggregation. \n" |
|
" Note that a more concrete QoSService may only be " |
|
"aggregated into one higher level Service, using this " |
|
"association. The cardinality on the GroupComponent " |
|
"reference is Max (1).") ] |
|
|
|
class CIM_QoSSubService : CIM_ServiceComponent |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Max (1), |
|
Description ( |
|
"The higher level QoSService that is constructed by" |
|
"aggregating one or more lower-level QoSServices.") ] |
|
CIM_QoSService REF GroupComponent; |
|
[Override ("PartComponent"), Description ( |
|
"The more concrete QoSService that is used to provide " |
|
"the higher level Service.") ] |
|
CIM_QoSService REF PartComponent; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_PrecedenceService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a specialization of the general " |
|
"concept of forwarding network traffic by adding specific " |
|
"semantics that define how traffic is forwarded based on " |
|
"the value of the ToS byte of a packet. " |
|
"\n\n" |
|
"This class is used to enable DiffServ devices and non-" |
|
"DiffServ devices to exchange traffic. This is done by " |
|
"defining a sibling class, DiffServService, to represent " |
|
"devices that forward traffic based on the DiffServ code " |
|
"point. This enables the administrator to define mappings " |
|
"between devices that do not support DiffServ, and instead " |
|
"use IP Precedence, to devices that do support DiffServ, " |
|
"which use DSCPs. " |
|
"\n\n" |
|
"Since the PrecedenceService class is a specialization of " |
|
"QoSService, it can be related to higher-level QoS services " |
|
"as well as to lower-level sub-services (e.g., " |
|
"classification, metering, dropping, queuing, and others).") ] |
|
|
|
class CIM_PrecedenceService: CIM_NetworkService |
|
{ |
|
[Description ( |
|
"This property is an 8-bit unsigned integer that defines the " |
|
"notion of precedence for different types of traffic.") ] |
|
uint8 PrecedenceValue; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_DiffServService |
|
// =================================================================== |
|
[Description ( |
|
"DiffServService represents using standard or custom " |
|
"DiffServ services to implement a (higher-level) QoS service. " |
|
"Note that the DiffServService may be just one of a set of " |
|
"coordinated QoSSubServices that together implement a " |
|
"higher-level QoS service." |
|
"\n\n" |
|
"DiffServService is modeled as a specialization of QoS" |
|
"Service. This enables it to be related to a higher-level " |
|
"QoSService (via QoSSubService) as well as to specific " |
|
"ConditioningServices (e.g., classification, metering, " |
|
"dropping, queuing, and others).") ] |
|
|
|
class CIM_DiffServService: CIM_QoSService |
|
{ |
|
[Description ( |
|
"This property is an unsigned 8-bit integer, and defines the " |
|
"Differentiated Services Code Point (DSCP) that this link " |
|
"uses to represent various types of differentiated " |
|
"services through device-specific configuration commands.") ] |
|
uint8 DSCP; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_8021PService |
|
// =================================================================== |
|
|
|
[Description ( |
|
"This class represents a specialization to the general " |
|
"concept of forwarding network traffic by adding specific " |
|
"semantics that define how traffic is forwarded based on " |
|
"the value of the Priority field in the 802.1P header. " |
|
"\n\n" |
|
"This class is used to enable DiffServ domains and domains " |
|
"that support 802.1P only to exchange traffic. It represents " |
|
"the mapping between implementations that only support " |
|
"802.1P priority marking to be mapped to implementations " |
|
"that support DiffServ, which use DSCPs. " |
|
"\n\n" |
|
"The 8021PService class is modeled as a specialization of " |
|
"QoSService. This enables it to be related to a higher-level " |
|
"QoS service as well as to lower-level sub-services (e.g., " |
|
"classification, metering, dropping, queuing, and others).") ] |
|
|
|
class CIM_8021PService: CIM_QoSService |
|
{ |
|
[Description ( |
|
"This property is an 8-bit unsigned integer that defines the " |
|
"notion of priority as specified in 802.1P " |
|
"implementations.") ] |
|
uint8 PriorityValue; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_AFService |
|
// =================================================================== |
|
|
|
[Description ( |
|
"This class represents a specialization to the general " |
|
"concept of forwarding network traffic by adding specific " |
|
"semantics that characterize the operation of the Assured " |
|
"Forwarding (AF) Service (RFC2597). This RFC defines four " |
|
"different AF classes to represent four different treatments " |
|
"of traffic (e.g., a different amount of forwarding " |
|
"resources, such as buffer space and bandwidth, are " |
|
"allocated. Within each AF class, IP packets are marked with " |
|
"one of three possible drop precedence values. The drop " |
|
"precedence of a packet determines the relative " |
|
"importance of that packet compared to other packets within " |
|
"the same AF class if congestion occurs. A congested " |
|
"interface will try to avoid dropping packets with a lower " |
|
"drop precedence value by instead discarding packets with a " |
|
"higher drop precedence value." |
|
"\n\n" |
|
"Note that this RFC defines 12 DSCPs that together implement " |
|
"the AF Per-Hop Behavior (PHB) group. Implementations are " |
|
"free to extend this (e.g., add more classes and/or drop " |
|
"precedences) and indeed do not have to implement the AF PHB " |
|
"to be considered compliant to DiffServ. However, " |
|
"implementations should use this set of DSCPs if they " |
|
"implement the AF PHB. " |
|
"\n\n" |
|
"The AFService class is modeled as a specialization of " |
|
"DiffServService, which is in turn a specialization of " |
|
"QoSService. This enables it to be related to a higher-level " |
|
"QoS services as well as to lower-level sub-services (e.g., " |
|
"classification, metering, dropping, queuing, and others).") ] |
|
|
|
class CIM_AFService: CIM_DiffServService |
|
{ |
|
[Description ( |
|
"This property is an 8-bit unsigned integer that defines the " |
|
"number of classes that this AF implementation uses. " |
|
"Implementations should define at least four classes.") ] |
|
uint8 ClassNumber; |
|
[Description ( |
|
"This property is an 8-bit unsigned integer that defines the " |
|
"number of drop precedence values that this AF " |
|
"implementation uses. The number of drop precedence values " |
|
"are PER AF CLASS. Implementations should define at least " |
|
"three drop precedence values per class.") ] |
|
uint8 DropperNumber; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_EFService |
|
// =================================================================== |
|
|
|
[Description ( |
|
"This class represents a specialization to the general " |
|
"concept of forwarding network traffic by adding specific " |
|
"semantics that characterize the operation of the " |
|
"Expedited Forwarding (EF) Service (defined in RFC 2598). " |
|
"\n\n" |
|
"The EFService class is modeled as a specialization of " |
|
"DiffServService, which is in turn a specialization of " |
|
"QoSService. This enables it to be related to a higher-level " |
|
"QoS service as well as to lower-level sub-services (e.g., " |
|
"classification, metering, dropping, queuing, and others). " |
|
"\n\n" |
|
"The EF PHB can be used to build a low loss, low latency, " |
|
"low jitter, assured bandwidth, end-to-end service through " |
|
"DiffServ domains. Such a service appears to the endpoints " |
|
"like a point-to-point connection or a virtual leased line. " |
|
"This service has also been described as Premium service in " |
|
"the IETF literature. " |
|
"\n\n" |
|
"The EF PHB is not a mandatory part of the DiffServ " |
|
"architecture (e.g., a node does not have to implement the " |
|
"EF PHB to be considered DiffServ-compliant. However, when " |
|
"a DiffServ-compliant node claims to implement the EF PHB, " |
|
"the implementation must conform to the specification given " |
|
"in RFC2598." |
|
"\n\n" |
|
"RFC 2598 defines one DSCP for the EF service. Thus, there " |
|
"is no need to define any attributes in this class, since an " |
|
"instance of the EFService class, by definition, means that " |
|
"this particular DSCP is used.") ] |
|
|
|
class CIM_EFService: CIM_DiffServService |
|
{ |
|
}; |
|
|
|
// ================================================================== |
|
// AFRelatedServices |
|
// ================================================================== |
|
[Association, Description ( |
|
"The IETF's RFC2597 describes a Differentiated Services " |
|
"Per-Hop-Behavior (PHB) Group called Assured Forwarding " |
|
"(AF). Quoting from the RFC, \"The AF PHB group provides " |
|
"delivery of IP packets in four independently forwarded " |
|
"AF classes. Within each AF class, an IP packet can be " |
|
"assigned one of three different levels of drop " |
|
"precedence.\" The AFRelatedServices association describes " |
|
"the precedence of the individual AF drop-related " |
|
"Services within an AF IP packet-forwarding class.") ] |
|
|
|
class CIM_AFRelatedServices |
|
{ |
|
[Key, Max (1), Description ( |
|
"The AFService with a lower drop precedence (ie, lower " |
|
"probability of dropping packets).") ] |
|
CIM_AFService REF AFLowerDropPrecedence; |
|
[Key, Description ( |
|
"An AFService at the same IP packet-forwarding class level, " |
|
"but at a higher drop precedence.") ] |
|
CIM_AFService REF AFHigherDropPrecedence; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_ConditioningService |
|
// =================================================================== |
|
[Description ( |
|
"This class is a specialization of ForwardingService, and " |
|
"represents the ability to define how traffic will be " |
|
"conditioned in the data forwarding path of a device. The " |
|
"subclasses of ConditioningService define the particular " |
|
"type of conditioning that is done. Five fundamental types " |
|
"of functions are defined in this version (2.4) of the " |
|
"model. They are the services performed by a classifier, " |
|
"meter, marker, dropper, and queue. Note that other, more " |
|
"sophisticated, types of actions may be defined in the " |
|
"future.") ] |
|
|
|
class CIM_ConditioningService: CIM_ForwardingService |
|
{ |
|
[Description ( |
|
"This property is a boolean that, if TRUE, signifies that " |
|
"one or more conditioning functions can be performed on " |
|
"traffic encountered by this ConditioningService. This " |
|
"allows one or more ConditioningServices to be enabled or " |
|
"disabled to provide different types of conditioning for " |
|
"traffic.") ] |
|
boolean Enabled; |
|
}; |
|
|
|
// ================================================================== |
|
// QoSConditioningSubService |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"A QoSService utilizes underlying ConditioningServices as " |
|
"part of its overall functionality. This is modeled using " |
|
"the QoSConditioningSubService association. Note that " |
|
"a ConditioningService may only be part of a single " |
|
"QoSService - the cardinality on the QoSService " |
|
"reference is Max (1).") ] |
|
|
|
class CIM_QoSConditioningSubService : CIM_ServiceComponent |
|
{ |
|
[Aggregate, Override ("GroupComponent"), Max (1), |
|
Description ( |
|
"The QoSService that includes the ConditioningService.") ] |
|
CIM_QoSService REF GroupComponent; |
|
[Override ("PartComponent"), |
|
Description ("The ConditioningService.") ] |
|
CIM_ConditioningService REF PartComponent; |
|
}; |
|
|
|
// ================================================================== |
|
// ConditioningServiceOnEndpoint |
|
// ================================================================== |
|
[Association, Description ( |
|
"The QoS Model describes the traffic conditioning functions " |
|
"in place for a network device. In order to 'be " |
|
"conditioned', a packet is received at a ProtocolEndpoint. " |
|
"After 'conditioning', a packet is dropped or leaves the " |
|
"device via a ProtocolEndpoint. This dependency on " |
|
"ProtocolEndpoints is defined by the ConditioningServiceOn" |
|
"Endpoint association. A property of the association, " |
|
"ServiceType, indicates whether the ConditioningService " |
|
"handles incoming (\"Ingress\") or out-going (\"Egress\") " |
|
"packets.") ] |
|
|
|
class CIM_ConditioningServiceOnEndpoint : CIM_ForwardsAmong |
|
{ |
|
[Override ("Antecedent"), Max (1), Description ( |
|
"The ProtocolEndpoint through which traffic arrives at or " |
|
"leaves from a network device.") ] |
|
CIM_ProtocolEndpoint REF Antecedent; |
|
[Override ("Dependent"), Max (1), Description ( |
|
"The ConditioningService which begins or ends the traffic " |
|
"conditioning processing within a network device.") ] |
|
CIM_ConditioningService REF Dependent; |
|
[Description ( |
|
"Indicates whether a packet is incoming (value = 1, " |
|
"\"Ingress\") or out-going (value = 2, \"Egress\") at the " |
|
"ProtocolEndpoint, relative to the ConditioningService."), |
|
Values {"Unknown", "Ingress", "Egress"} ] |
|
uint16 ServiceType; |
|
}; |
|
|
|
|
|
// ================================================================== |
|
// NextService |
|
// ================================================================== |
|
[Association, Description ( |
|
" In processing or 'conditioning' a packet at a network " |
|
"device, that packet is handled by a variety of Conditioning" |
|
"Services (such as Classifiers, Meters, Droppers, etc.). " |
|
"The Services may feed one another directly, or be more " |
|
"discretely mapped to multiple 'next' Services (for example, " |
|
"queues) based on the characteristics of the packet. \n" |
|
" There is a need to indicate the sequence of Services " |
|
"when conditioning packets in a network device. This " |
|
"is accomplished via the NextService association. Both one-" |
|
"to-one and fan in/fan out relationships can be described. \n" |
|
" Note that this relationship is truly a Dependency " |
|
"association, but can not be modeled as such - since an " |
|
"additional key property is required. This key allows a " |
|
"ConditioningService to forward multiple traffic flows to " |
|
"the same 'next' Service but maintain their traffic " |
|
"'identity'. This identity must be maintained to allow a " |
|
"later step in the conditioning process to 'fan out' from " |
|
"one to many 'next' Services. The TrafficClass key " |
|
"property uniquely distinguishes potentially multiple " |
|
"NextService instances between the same " |
|
"ConditioningServices.") ] |
|
|
|
class CIM_NextService |
|
{ |
|
[Key, Description ( |
|
"The preceeding ConditioningService, 'earlier' in the " |
|
"processing sequence for a packet.") ] |
|
CIM_ConditioningService REF PreceedingService; |
|
[Key, Description ( |
|
"The 'next' or following ConditioningService.") ] |
|
CIM_ConditioningService REF FollowingService; |
|
[Key, Description ( |
|
"Traffic flows from the various ConditioningServices may be " |
|
"distinguished by their specific traffic class (information " |
|
"which is conveyed in the FilterEntry.TrafficClass " |
|
"property). There can be only one traffic 'class of " |
|
"service' per output from the ConditioningService (i.e., " |
|
"per instance of this association)."), |
|
ModelCorrespondence { "CIM_FilterEntry.TrafficClass" } ] |
|
string TrafficClass; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_ClassifierService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. A classifier " |
|
"takes a single input traffic stream and sorts it into one " |
|
"or more output traffic streams. The sorting is done by a " |
|
"set of filters that select packets based on the packet " |
|
"contents (or possibly other attributes associated with the " |
|
"packet). Each output stream is the result of matching a " |
|
"particular filter (or not matching any filter). " |
|
"\n\n" |
|
"Classification is modeled as a QoSSubService that occurs " |
|
"as part of the conditioning that may be applied to a " |
|
"traffic stream. Thus, it is subclassed from " |
|
"ConditioningService.") ] |
|
|
|
class CIM_ClassifierService : CIM_ConditioningService |
|
{ |
|
[Description ( |
|
"This property is an enumerated 16-bit unsigned integer " |
|
"that is used to define the specific type of classifier " |
|
"of this instance. The following types of " |
|
"classifiers are defined: " |
|
"\n\n" |
|
" 1 - Other; \n 2 - Behavior Aggregate; \n" |
|
" 3 - IPv4 Multi-Field-5; \n" |
|
" 4 - IPv6 Multi-Field-5; \n 5 - IPv4 Multi-Field-6; \n" |
|
" 6 - IPv6 Multi-Field-6; \n 7 - 802 MAC; \n " |
|
" 8 - IEEE Priority; \n" |
|
" 9 - IEEE VLAN; \n 10 - Free-form. " |
|
"\n\n" |
|
"Here, Multi-Field-5 defines a filter to match on source " |
|
"and destination IP address, source and destination port, " |
|
"and IP Protocol. Multi-Field-6 is the same, except that " |
|
"the DSCP value is also matched."), |
|
ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", |
|
"10"}, |
|
Values {"Other", "Behavior Aggregate", |
|
"IPv4 Multi-Field-5", "IPv6 Multi-Field-5", |
|
"IPv4 Multi-Field-6", "IPv6 Multi-Field-6", |
|
"802 MAC", "IEEE Priority", "IEEE VLAN", |
|
"Free-form"}, |
|
ModelCorrespondence { |
|
"CIM_ClassifierService.OtherClassifierType" } ] |
|
uint16 ClassifierType; |
|
[Description ( |
|
"This is a vendor-specified string describing the type " |
|
"of classifier. It is used when the value of the " |
|
"ClassifierType attribute of this class is equal to 1."), |
|
ModelCorrespondence { |
|
"CIM_ClassifierService.ClassifierType" } ] |
|
string OtherClassifierType; |
|
[Description ( |
|
"This is a boolean attribute that, if TRUE, means that " |
|
"this Classifier has already processed at least one " |
|
"packet.") ] |
|
boolean HaveClassifiedPackets; |
|
}; |
|
|
|
// ================================================================== |
|
// ClassifierFilterSet |
|
// ================================================================== |
|
[Association, Description ( |
|
"In order for a ClassifierService to correctly identify and " |
|
"process network traffic, that traffic must be described by " |
|
"FilterEntries, which are aggregated into FilterLists. This " |
|
"association defines the Dependency of the ClassifierService " |
|
"on FilterLists (and therefore, their FilterEntries). The " |
|
"cardinality of the association requires that the Classifier" |
|
"Service operate against at least one FilterList.") ] |
|
|
|
class CIM_ClassifierFilterSet : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Min (1), Description ( |
|
"The FilterList aggregating FilterEntries, these in turn " |
|
"describe how traffic is identified and processed by the " |
|
"ClassifierService.") ] |
|
CIM_FilterList REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The ClassifierService which uses the FilterList and its " |
|
"aggregated FilterEntries.") ] |
|
CIM_ClassifierService REF Dependent; |
|
[Description ( |
|
"The ordering of the FilterLists used in the classification " |
|
"and forwarding functions of the ClassifierService.") ] |
|
uint16 FilterListPosition; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_MeterService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes " |
|
"the metering of network traffic. Metering is the " |
|
"function of monitoring the arrival times of packets of a " |
|
"traffic stream and determining the level of conformance of " |
|
"each packet with respect to a pre-established traffic " |
|
"profile. A meter has the ability to invoke different " |
|
"ConditioningServices for conforming traffic and non-" |
|
"conforming traffic. Non-conforming packets may be further " |
|
"conditioned (e.g., dropped or queued) by routing the packet " |
|
"to the appropriate conditioning element. " |
|
"\n\n" |
|
"This class is the base class for defining different types " |
|
"of meters. As such, it contains common properties that all " |
|
"meter subclasses share. ") ] |
|
|
|
class CIM_MeterService: CIM_ConditioningService |
|
{ |
|
[Description ( |
|
"This property is an enumerated 16-bit unsigned integer " |
|
"that is used to specify the particular type of meter. " |
|
"Defined values of the enumeration are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: AverageRateMeter \n" |
|
" 3: EWMAMeter \n" |
|
" 4: TokenBucketMeter." |
|
"\n\n" |
|
"Note: The MeterType property and the MeterService " |
|
"subclasses provide similar information. This property is " |
|
"defined for query purposes and for future expansion. It " |
|
"is assumed that not all MeterServices will require a " |
|
"subclass to define them. Therefore, MeterService will " |
|
"be instantiated directly and the Type property is " |
|
"needed."), |
|
ValueMap {"1", "2", "3", "4"}, |
|
Values {"Other", "AverageRateMeter", |
|
"EWMAMeter", "TokenBucketMeter"}, |
|
ModelCorrespondence {"CIM_MeterService.OtherMeterType"} ] |
|
uint16 MeterType; |
|
[Description ( |
|
"This property is a string used in conjunction with " |
|
"the MeterType property. When the value of MeterType " |
|
"is 1 (e.g., \"Other\"), then the name of the conformance " |
|
"level for this meter is defined in this property."), |
|
ModelCorrespondence { "CIM_MeterService.MeterType" } ] |
|
string OtherMeterType; |
|
[Description ( |
|
"An unsigned integer indicating the number of conformance " |
|
"levels supported by the Meter. For example, when only " |
|
"'in-profile' or 'out of profile' metering is supported. " |
|
"ConformanceLevels is set to 2.") ] |
|
uint16 ConformanceLevels; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_AverageRateMeterService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"metering of network traffic using an Average Rate Meter. " |
|
"This type of meter measures the average rate at which " |
|
"packets are submitted to it over a specified time. Packets " |
|
"are defined as conformant if their average arrival rate " |
|
"does not exceed the specified measuring rate of the meter. " |
|
"Any packet that causes the specified measuring rate to be " |
|
"exceeded is defined to be non-conforming. " |
|
"\n\n" |
|
"This is modeled as a subclass of ConditioningService and " |
|
"has the ability to invoke different ConditioningServices " |
|
"for conforming and non-conforming traffic.") ] |
|
|
|
class CIM_AverageRateMeterService: CIM_MeterService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit real number that defines the " |
|
"rate that determines whether admitted packets are in " |
|
"conformance or not."), |
|
Units ("KiloBits per Second") ] |
|
real32 AverageRate; |
|
|
|
|
|
[Description ( |
|
"This property is a 64-bit unsigned integer that defines " |
|
"the time period over which the average measurement should " |
|
"be taken."), |
|
Units ("NanoSeconds") ] |
|
uint64 DeltaInterval; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_EWMAMeterService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"metering of network traffic using an Exponentially Weighted " |
|
"Moving Average meter. This meter can be modeled as a simple " |
|
"IIR low-pass filter that measures the rate of incoming " |
|
"packets over a small fixed sampling interval. Any admitted " |
|
"packet that pushes the average rate over a pre-defined " |
|
"limit is defined to be non-conforming. " |
|
"\n\n" |
|
"This is modeled as a subclass of ConditioningService and " |
|
"has the ability to invoke different ConditioningServices " |
|
"for conforming and non-conforming traffic.") ] |
|
|
|
class CIM_EWMAMeterService: CIM_MeterService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit real number that defines the " |
|
"average rate against which the sampled arrival rate of " |
|
"packets should be measured. Any packet that causes the " |
|
"sampled rate to exceed this rate is deemed " |
|
"non-conforming."), |
|
Units ("KiloBits Per Second") ] |
|
real32 AverageRate; |
|
|
|
[Description ( |
|
"This property is a 64-bit unsigned integer that defines " |
|
"the sampling interval used to measure the arrival rate in " |
|
"bytes. The calculated rate is averaged over this interval " |
|
"and checked against the AverageRate property. All " |
|
"packets whose computed average arrival rate is " |
|
"less than the AverageRate are deemed conforming."), |
|
Units ("NanoSeconds") ] |
|
uint64 DeltaInterval; |
|
|
|
[Description ( |
|
"This property is a 32-bit real number that defines the time " |
|
"constant (e.g. frequency response) of what is essentially a " |
|
"simple IIR low-pass filter.") ] |
|
real32 Gain; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_TokenBucketMeterService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"metering of network traffic using a token bucket meter. " |
|
"Two types of token bucket meters are defined using this " |
|
"class - a simple, 2 parameter bucket meter, and a multi-" |
|
"stage meter." |
|
"\n\n" |
|
"A simple token bucket usually has two parameters, an " |
|
"average token rate and a burst size. Quoting from the IETF " |
|
"Draft, 'A Conceptual Model for DiffServ Routers', \"TB " |
|
"meters compare the arrival rate of packets to the average " |
|
"rate specified by the TB profile. Logically, tokens " |
|
"accumulate in a bucket at the average rate, up to a " |
|
"maximum credit which is the burst size. Packets of length " |
|
"L bytes are considered conforming if any tokens are " |
|
"available in the bucket at the time of packet arrival: up " |
|
"to L bytes may then be borrowed from future token " |
|
"allocations. Packets are allowed to exceed the average " |
|
"rate in bursts up to the burst size. Packets which arrive " |
|
"to find a bucket with no tokens in it are deemed " |
|
"non-conforming.\" This type of meter has only two " |
|
"conformance levels - conforming and non-conforming. " |
|
"\n\n" |
|
"This class also defines an excess burst size, which enables " |
|
"the meter to have three conformance levels (basically, " |
|
"'conforming', 'partially conforming', and 'non-conforming'). " |
|
"The difference is that packets that exceed the excess burst " |
|
"size are deemed non-conforming, while packets that exceed " |
|
"the smaller BurstSize but are less than the ExcessBurst" |
|
"Size are deemed partially conforming. " |
|
"\n\n" |
|
"This is modeled as a subclass of ConditioningService and " |
|
"has the ability to invoke different ConditioningServices " |
|
"for conforming, partially conforming and non-conforming " |
|
"traffic.") ] |
|
|
|
class CIM_TokenBucketMeterService: CIM_MeterService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit real number that is used to " |
|
"define the committed rate of the meter."), |
|
Units ("KiloBits per Second") ] |
|
real32 AverageRate; |
|
[Description ( |
|
"This attribute is a 32-bit real number that is used to " |
|
"define the peak rate of the meter."), |
|
Units ("KiloBits per Second") ] |
|
real32 PeakRate; |
|
[Description ( |
|
"This property is a 32-bit real number that is used to " |
|
"define the maximum number of tokens available for the " |
|
"committed rate (specified by the AverageRate property)."), |
|
Units ("KiloBytes") ] |
|
real32 BurstSize; |
|
[Description ( |
|
"This property is a 32-bit real number that is used to " |
|
"define the maximum number of tokens available for the " |
|
"peak rate (specified by the PeakRate property)."), |
|
Units ("KiloBytes") ] |
|
real32 ExcessBurstSize; |
|
}; |
|
|
|
// ================================================================== |
|
// NextServiceAfterMeter |
|
// ================================================================== |
|
[Association, Description ( |
|
"Describes the 'next' ConditioningService for a packet, " |
|
"after processing by the MeterService.") ] |
|
|
|
class CIM_NextServiceAfterMeter : CIM_NextService |
|
{ |
|
[Override ("PreceedingService"), |
|
Description ("The MeterService.") ] |
|
CIM_MeterService REF PreceedingService; |
|
[Description ( |
|
"Information on the result of the metering. Traffic " |
|
"is distinguished as being in- or out-of-profile, or " |
|
"\"Partially Conforming\" for a 3 color Meter. This " |
|
"is captured through setting the property to the value " |
|
"1, 3 or 2, respectively."), |
|
Values {"Unknown", "In-profile", "Partially Conforming", |
|
"Out-of-profile"} ] |
|
uint16 MeterResult; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_MarkerService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"marking or re-marking (e.g., set or reset a particular " |
|
"field in a packet header) of network traffic. Markers may " |
|
"act either on unmarked packets or re-mark previously " |
|
"marked packets. Markers are usually invoked as a result of " |
|
"a preceding classifier match. " |
|
"\n\n" |
|
"This is modeled as a QoSSubService that is part of a " |
|
"higher-level QoSService. It is a subclass of Conditioning" |
|
"Service and has the ability to mark traffic and then invoke " |
|
"another ConditioningServices for further processing of the " |
|
"traffic.") ] |
|
|
|
class CIM_MarkerService: CIM_ConditioningService |
|
{ |
|
[Description ( |
|
"This property is a boolean attribute that, when TRUE, " |
|
"signifies that this Marker can remark the field value " |
|
"specified in the RemarkType property, with the value " |
|
"specified in the RemarkValue property. This change is " |
|
"made to unmarked packets or to re-mark a previously " |
|
"marked packet.") ] |
|
boolean CanRemark; |
|
[Description ( |
|
"This property is an enumerated 16-bit unsigned integer " |
|
"that defines what type of remarking will be done. Values " |
|
"are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: Mark ToS Byte \n" |
|
" 3: Mark the DSCP \n" |
|
" 4: Mark the Priority Field "), |
|
ValueMap {"1", "2", "3", "4"}, |
|
Values {"Other", "Mark ToS Byte", "Mark the DSCP", |
|
"Mark the Priority Field"}, |
|
ModelCorrespondence { |
|
"CIM_MarkerService.OtherRemarkType" } ] |
|
uint16 RemarkType; |
|
[Description ( |
|
"This property contains a vendor-specific value for " |
|
"the type of remarking that is done. It is used when the " |
|
"value of the RemarkType property is 1 (Other)."), |
|
ModelCorrespondence { "CIM_MarkerService.RemarkType" } ] |
|
string OtherRemarkType; |
|
[Description ( |
|
"This property is a 16-bit unsigned integer that is the " |
|
"value to be applied to the field specified in the " |
|
"RemarkType attribute.") ] |
|
uint16 RemarkValue; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_DropperService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"ability to drop network traffic. As such, it is the base " |
|
"class for different types of droppers. These droppers are " |
|
"distinguished by the algorithm that they use to drop " |
|
"traffic. " |
|
"\n\n" |
|
"This is modeled as a QoSSubService that is part of a " |
|
"higher-level QoSService. It is a subclass of Conditioning" |
|
"Service and has the ability to drop traffic or invoke " |
|
"another ConditioningServices for further processing of the " |
|
"remaining traffic.") ] |
|
|
|
class CIM_DropperService: CIM_ConditioningService |
|
{ |
|
[Description ( |
|
"This property is an enumerated 16-bit unsigned integer " |
|
"that defines the type of dropper. Values are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: Head \n" |
|
" 3: Tail \n" |
|
" 4: RED \n" |
|
" 5: Weighted RED" |
|
"\n\n" |
|
"Note: The DropperType property and the DropperService " |
|
"subclasses provide similar information. This property is " |
|
"defined for query purposes and to not require a " |
|
"subclass for all types of DropperServices (for example, " |
|
"to describe a Head or Tail Dropper in today's model). " |
|
"Therefore, DropperService can be instantiated directly " |
|
"and the Type property is needed."), |
|
ValueMap {"1", "2", "3", "4", "5"}, |
|
Values {"Other", "Head", "Tail", "RED", "Weighted RED"}, |
|
ModelCorrespondence { |
|
"CIM_DropperService.OtherDropperType" } ] |
|
uint16 DropperType; |
|
[Description ( |
|
"This property contains a vendor-specific value for the " |
|
"type of dropping that is done. It is used when the value " |
|
"of the DropperType property is 1 (Other)."), |
|
ModelCorrespondence { "CIM_DropperService.DropperType" } ] |
|
string OtherDropperType; |
|
[Description ( |
|
"This property is a boolean attribute that, if TRUE, " |
|
"indicates that this Dropper will always drop incoming " |
|
"packets regardless of their type.") ] |
|
uint16 AlwaysDrop; |
|
[Description ( |
|
"This property is an enumerated unsigned 16-bit integer " |
|
"that defines the metric used to trigger the start of " |
|
"dropping packets. This does NOT mean that all packets " |
|
"will be dropped; it does mean that SOME packets will " |
|
"start to be dropped. The number and type of packets " |
|
"dropped is a function of the type of algorithm used by " |
|
"this Dropper. Values are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: Queue Threshold \n" |
|
" 3: Arrival Rate "), |
|
ValueMap {"1", "2", "3"}, |
|
Values {"Other", "Queue Threshold", "Arrival Rate"} ] |
|
uint16 DropStartMetric; |
|
[Description ( |
|
"This property is an enumerated unsigned 16-bit integer " |
|
"that defines the metric used to determine when ALL " |
|
"packets will be dropped REGARDLESS of the type of " |
|
"algorithm used by this Dropper. Values are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: Queue Threshold \n" |
|
" 3: Arrival Rate "), |
|
ValueMap {"1", "2", "3"}, |
|
Values {"Other", "Queue Threshold", "Arrival Rate"} ] |
|
uint16 DropMaintainMetric; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_REDDropperService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"ability to drop network traffic using a Random Early " |
|
"Detection (RED) algorithm. The purpose of RED is to avoid " |
|
"congestion (as opposed to managing congestion). That is, " |
|
"instead of waiting for the queues to fill up and then " |
|
"dropping large numbers of packets, RED works by monitoring " |
|
"the average queue depth. When the queue depth exceeds " |
|
"a minimum threshold, packets are randomly discarded, asking " |
|
"only those connections to slow down. " |
|
"\n\n" |
|
"This is modeled as a QoSSubService that is part of a " |
|
"higher-level QoSService. It is a subclass of Conditioning" |
|
"Service and has the ability to drop traffic or invoke " |
|
"another ConditioningServices for further processing of the " |
|
"remaining traffic.") ] |
|
|
|
class CIM_REDDropperService: CIM_DropperService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and is used " |
|
"to define the minimum queue length at which packets are " |
|
"subject to being dropped according to the dropping " |
|
"algorithm being used.") ] |
|
uint32 MinQueueThreshold; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and is used " |
|
"to define the maximum queue length at which packets are " |
|
"subject to always being dropped regardless of the dropping " |
|
"algorithm being used.") ] |
|
uint32 MaxQueueThreshold; |
|
[Description ( |
|
"This property is a 32-bit real number, and is used in " |
|
"conjunction with the StopProbability attribute to define " |
|
"the slope of the drop probability function. The latter " |
|
"governs the rate at which packets are subject to being " |
|
"dropped, as a function of the queue length."), |
|
MinValue (0), MaxValue (100), |
|
ModelCorrespondence { |
|
"CIM_REDDropperService.StopProbability"} ] |
|
real32 StartProbability; |
|
[Description ( |
|
"This property is a 32-bit real number, and is used in " |
|
"conjunction with the StartProbability attribute to define " |
|
"the slope of the drop probability function. The latter " |
|
"governs the rate at which packets are subject to being " |
|
"dropped, as a function of the queue length."), |
|
MinValue (0), MaxValue (100), |
|
ModelCorrespondence { |
|
"CIM_REDDropperService.StartProbability"} ] |
|
real32 StopProbability; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_WeightedREDDropperService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"ability to drop network traffic using a Weighted Random " |
|
"Early Detection (WRED) algorithm. Like RED, the purpose of " |
|
"WRED is to avoid congestion (as opposed to managing " |
|
"congestion). This modification of the basic RED algorithm " |
|
"enables packets belonging to different traffic classes to " |
|
"be dropped at different queue depths. This algorithm also " |
|
"enables discard to be done based on different information " |
|
"contained in the packet header, such as IP Precedence, " |
|
"RSVP session parameters, or even on other factors not " |
|
"directly encoded in the packet header, such as the " |
|
"queue depth. " |
|
"\n\n" |
|
"This is modeled as a QoSSubService that is part of a " |
|
"higher-level QoSService. It is a subclass of Conditioning" |
|
"Service and has the ability to drop traffic or invoke " |
|
"another ConditioningServices for further processing of the " |
|
"remaining traffic.") ] |
|
|
|
class CIM_WeightedREDDropperService: CIM_DropperService |
|
{ |
|
[Description ( |
|
"This property is an enumerated 16-bit unsigned integer, " |
|
"and defines the type of metric that is used to drop " |
|
"traffic. Values are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: IP Precedence \n" |
|
" 3: DSCP Value \n" |
|
" 4: 802.1P Priority Value \n" |
|
" 5: RSVP Session \n" |
|
" 6: Queue Depth \n" |
|
" 7: Packet Arrival Rate "), |
|
ValueMap {"1", "2", "3", "4", "5", "6", "7"}, |
|
Values {"Other", "IP Precedence", "DSCP Value", |
|
"802.1P Priority Value", "RSVP Session", |
|
"Queue Depth", "Packet Arrival Rate"}, |
|
ModelCorrespondence |
|
{ "CIM_WeightedREDDropperService.OtherDropMetric" } ] |
|
uint16 DropMetric; |
|
[Description ( |
|
"This string property is used in conjunction with the " |
|
"DropMetric property. When the value of DropMetric is " |
|
"1 (e.g., Other), then the type of metric to be used " |
|
"is defined in this property. "), |
|
ModelCorrespondence |
|
{ "CIM_WeightedREDDropperService.DropMetric" } ] |
|
string OtherDropMetric; |
|
[Description ( |
|
"This is a 32-bit real number that represents the " |
|
"weighting factor used to determine which queues " |
|
"get more service."), |
|
MinValue (0), MaxValue (100) ] |
|
real32 Weight; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_QueuingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a logical entity that resides in the " |
|
"data forwarding path of a network device. It describes the " |
|
"ability to queue network traffic and to specify the " |
|
"characteristics for determining long-term congestion. " |
|
"\n\n" |
|
"This is modeled as a QoSSubService that is part of a " |
|
"higher-level QoSService. It is a subclass of Conditioning" |
|
"Service and has the ability to queue traffic or invoke " |
|
"another ConditioningServices for further processing.") ] |
|
|
|
class CIM_QueuingService: CIM_ConditioningService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit real number, and defines the " |
|
"degree to which each actual queue depth influences the " |
|
"averaged (smoothed) queue depth used for determining " |
|
"long-term congestion in RED-like droppers. This " |
|
"property is specified as the percentage/weight that " |
|
"each calculation of averaged queue depth influences " |
|
"the new value of average depth."), |
|
MinValue (0), MaxValue (100) ] |
|
real32 SmoothingWeight; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and defines " |
|
"the number of nano-seconds between each calculation of " |
|
"average queue depth. When this property is not specified, " |
|
"it implies that the calculation is performed every time a " |
|
"packet departs from the queue under normal operating " |
|
"conditions. In other words, if the queue is serviced " |
|
"intermittently, the calculations will be performed " |
|
"logically to simulate a consistent queue servicing " |
|
"interval."), |
|
Units ("NanoSeconds") ] |
|
uint32 TimeInterval; |
|
[Description ( |
|
"This property is a boolean attribute that, if TRUE, " |
|
"enables the queue to be made available to other " |
|
"queue/scheduler instances. When true, the queue " |
|
"can be used to hold packets from other traffic " |
|
"classes than normally serviced. For example, assume " |
|
"that queues for Gold, Silver and Bronze traffic " |
|
"classes are defined. Further assume that the " |
|
"Silver queue is full and the others are empty. If " |
|
"this boolean is set for the Gold and Bronze queues, " |
|
"their capacity can be used to hold Silver traffic, " |
|
"as opposed to dropping it.") ] |
|
boolean GiveExcessCapacity; |
|
}; |
|
|
|
// ================================================================== |
|
// QueueHierarchy |
|
// ================================================================== |
|
[Association, Description ( |
|
"Describes the reliance of a QueuingService on other, " |
|
"supporting queues and their QueuingServices. A given Service " |
|
"can only act in support of one QueuingService; but a " |
|
"higher level queue may be supported by many lower level " |
|
"QueuingServices.") ] |
|
|
|
class CIM_QueueHierarchy : CIM_ServiceServiceDependency |
|
{ |
|
[Override ("Antecedent"), Description ( |
|
"The supporting queue(s) and its QueuingService. This Service " |
|
"can only support at most one, higher level QueuingService.") ] |
|
CIM_QueuingService REF Antecedent; |
|
[Override ("Dependent"), Max (1), Description ( |
|
"The QueuingService dependent on other, supporting Queuing" |
|
"Services.") ] |
|
CIM_QueuingService REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_BufferPool |
|
// =================================================================== |
|
[Description ( |
|
"This class represents the use of buffers by a Queuing" |
|
"Service. The existence and management of individual buffers " |
|
"will be modeled in a future release. At the current level " |
|
"of abstraction, modeling the existence of the BufferPool " |
|
"is necessary. Long term, it is not sufficient." |
|
"\n\n" |
|
"In implementations where there are " |
|
"multiple buffer sizes, an instance of BufferPool should be " |
|
"defined for each set of buffers with identical or similar " |
|
"sizes. These instances of buffer pools can then be grouped " |
|
"together using the CollectedBuffersPool association. " |
|
"\n\n" |
|
"Note that this class is derived from CollectionOfMSEs, " |
|
"and not from Forwarding or ConditioningService. BufferPool " |
|
"is only a collection of storage, and is NOT a Service.") ] |
|
|
|
class CIM_BufferPool: CIM_CollectionOfMSEs |
|
{ |
|
[Key, Override ("CollectionID"), MaxLen (256), |
|
Description ( |
|
"This property is defined in the CollectionOfMSEs class, " |
|
"but is overridden here to serve as part of the " |
|
"(composite) key that identifies the BufferPool instance.") ] |
|
string CollectionID; |
|
[Key, MaxLen (256), 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, MaxLen (256), Description ( |
|
"The Name property defines the label by which the object " |
|
"is known.") ] |
|
string Name; |
|
[Description ( |
|
"This property is a 16-bit unsigned integer, and defines " |
|
"the number of bytes in each buffer.") ] |
|
uint16 BufferSize; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and defines " |
|
"the total number of buffers in the Pool.") ] |
|
uint32 TotalBuffers; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and defines " |
|
"the number of buffers in the Pool that are currently " |
|
"not allocated to any instance of a QueuingService. " |
|
"Buffers allocated to a QueuingService could either be " |
|
"in use (containing packet data), or allocated to a Queue " |
|
"pending the arrival of new packet data.") ] |
|
uint32 AvailableBuffers; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and defines " |
|
"the number of buffers in the Pool that have been " |
|
"simultaneously allocated to multiple instances of " |
|
"QueuingService.") ] |
|
uint32 SharedBuffers; |
|
}; |
|
|
|
// ================================================================== |
|
// QueueAllocation |
|
// ================================================================== |
|
[Association, Description ( |
|
"Describes the reliance of a QueuingService on the " |
|
"availability of space in a BufferPool. ") ] |
|
|
|
class CIM_QueueAllocation : CIM_Dependency |
|
{ |
|
[Override ("Antecedent"), Description ( |
|
"The BufferPool supporting packet storage for a " |
|
"QueuingService.") ] |
|
CIM_BufferPool REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The QueuingService dependent on the BufferPool for storage " |
|
"space.") ] |
|
CIM_QueuingService REF Dependent; |
|
}; |
|
|
|
// ================================================================== |
|
// CollectedBufferPool |
|
// ================================================================== |
|
[Association, Aggregation, Description ( |
|
"CIM_CollectedBufferPool is an aggregation association " |
|
"representing that a Pool may itself be contained " |
|
"in a 'higher level' Pool.") ] |
|
class CIM_CollectedBufferPool : CIM_MemberOfCollection |
|
{ |
|
[Override("Collection"), Aggregate, |
|
Description ("The 'higher level' or parent Pool.") ] |
|
CIM_BufferPool REF Collection; |
|
[Override("Member"), |
|
Description ("The 'collected' Pool.") ] |
|
CIM_BufferPool REF Member; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_PacketSchedulingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents the scheduling service, which is a " |
|
"process that determines whether a queued packet should be " |
|
"removed from a queue and sent to an output interface. Note " |
|
"that output interfaces can be physical network interfaces or " |
|
"interfaces to components internal to systems, such as " |
|
"crossbars or backplanes. In either case, if multiple queues " |
|
"are involved, schedulers are used to provide access to the " |
|
"interface. Each instance of a PacketSchedulingService " |
|
"describes a scheduler from the perspective of the queue " |
|
"that the scheduler is servicing. One can describe that " |
|
"different schedulers support different queues, or that " |
|
"a scheduler supports several queues. " |
|
"\n\n" |
|
"PacketSchedulingService is modeled as a sibling service " |
|
"to ConditioningService. Both are derived from a common " |
|
"root, ForwardingService. ") ] |
|
|
|
class CIM_PacketSchedulingService: CIM_ForwardingService |
|
{ |
|
[Description ( |
|
"This property is an enumerated 16-bit unsigned integer, and " |
|
"defines the type of scheduler. Values are: " |
|
"\n\n" |
|
" 1: Other \n" |
|
" 2: FIFO \n" |
|
" 3: Priority \n" |
|
" 4: Bandwidth \n" |
|
" 5: Priority Bandwidth \n" |
|
" 6: Round Robin Packet \n" |
|
" 7: Weighted Round Robin Packet. " |
|
"\n\n" |
|
"Note: The SchedulerType property and the Scheduler" |
|
"Service subclasses provide similar information. This " |
|
"property is defined for query purposes and to not require " |
|
"a subclass for all types of SchedulerServices (for " |
|
"example, to describe a FIFO Scheduler in today's model). " |
|
"Therefore, SchedulerService can be instantiated directly " |
|
"and the Type property is needed."), |
|
ValueMap {"1", "2", "3", "4", "5", "6", "7"}, |
|
Values {"Other", "FIFO", "Priority", "Bandwidth", |
|
"Priority Bandwidth", "Round Robin Packet", |
|
"Weighted Round Robin Packet"}, |
|
ModelCorrespondence |
|
{ "CIM_PacketSchedulingService.SchedulerType" } ] |
|
uint16 SchedulerType; |
|
[Description ( |
|
"This string property is used in conjunction with " |
|
"the SchedulerType property. When the value of " |
|
"SchedulerType is 1 (e.g., Other), then the type of " |
|
"metric to be used is defined in this attribute. "), |
|
ModelCorrespondence |
|
{ "CIM_ PacketSchedulingService.SchedulerType" } ] |
|
string OtherSchedulerType; |
|
}; |
|
|
|
// ================================================================== |
|
// SchedulerUsed |
|
// ================================================================== |
|
[Association, Description ( |
|
"In order to remove queued packets, a process or Service " |
|
"(identified as a PacketSchedulingService) runs. This " |
|
"association describes the Dependency of the queue and its " |
|
"QueuingService on a SchedulingService, which empties it.") ] |
|
|
|
class CIM_SchedulerUsed : CIM_ServiceServiceDependency |
|
{ |
|
[Override ("Antecedent"), Min(1), Max (1), Description ( |
|
"The PacketSchedulingService which empties the Queuing" |
|
"Service's queue.") ] |
|
CIM_PacketSchedulingService REF Antecedent; |
|
[Override ("Dependent"), Description ( |
|
"The queue and its QueuingService from which packets " |
|
"are emptied.") ] |
|
CIM_QueuingService REF Dependent; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_PrioritySchedulingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a simple priority scheduler, which is " |
|
"a process that schedules arriving packets into different " |
|
"priority queues. " |
|
"\n\n" |
|
"This is modeled as a specialization of the " |
|
"PacketSchedulingService, which is a sibling service to " |
|
"ConditioningService. Both PacketSchedulingService and " |
|
"ConditioningService instances are derived from a " |
|
"common root, ForwardingService. ") ] |
|
|
|
class CIM_PrioritySchedulingService : CIM_PacketSchedulingService |
|
{ |
|
[Description ( |
|
"This property is a 16-bit unsigned integer that defines " |
|
"the priority level of the queue that is being scheduled. ") ] |
|
uint16 Priority; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_PriorityBandwidthSchedulingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a priority scheduler that is extended " |
|
"to specify an upper limit on the bandwidth that can be sent " |
|
"on the priority queue, over some time interval. " |
|
"\n\n" |
|
"This is modeled as a specialization of the " |
|
"PacketSchedulingService, which is a sibling service to " |
|
"ConditioningService. Both PacketSchedulingService and " |
|
"ConditioningService instances are derived from a " |
|
"common root, ForwardingService. ") ] |
|
|
|
class CIM_PriorityBndwidthSchedulingService: CIM_PrioritySchedulingService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and defines " |
|
"the number of bytes that can be delivered from a queue each " |
|
"cycle. "), |
|
Units ("Bytes") ] |
|
uint32 BandwidthAllocation; |
|
[Description ( |
|
"This is a boolean property which, if TRUE, signifies that a " |
|
"temporary or short-term allocation of additional bandwidth " |
|
"in addition to the amount of bandwidth allocated through the " |
|
"BandwidthAllocation attribute is allowed. ") ] |
|
boolean BurstsAllowed; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and specifies " |
|
"the amount of temporary or short-term bandwidth that can be " |
|
"allocated beyond the amount of bandwidth allocated through " |
|
"the BandwidthAllocation attribute. If the maximum actual " |
|
"bandwidth allocation were to be measured, it would be the " |
|
"sum of the BurstAllocation and the BandwidthAllocation " |
|
"properties."), |
|
Units ("Bytes") ] |
|
uint32 BurstAllocation; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_BandwidthSchedulingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a bandwidth scheduler, which is a " |
|
"process that reserves a portion of the bandwidth of a link " |
|
"for each selected traffic type. This is modeled as a " |
|
"specialization of the PacketSchedulingService, which is a " |
|
"sibling service to ConditioningService. Both " |
|
"PacketSchedulingService and ConditioningService instances " |
|
"are derived from a common root, ForwardingService. ") ] |
|
|
|
class CIM_BandwidthSchedulingService: CIM_PacketSchedulingService |
|
{ |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and defines " |
|
"the number of bytes that can be delivered from a queue " |
|
"each cycle. "), |
|
Units ("Bytes") ] |
|
uint32 BandwidthAllocation; |
|
[Description ( |
|
"This is a boolean attribute which, if TRUE, signifies that " |
|
"a temporary or short-term allocation of additional bandwidth " |
|
"in addition to the amount of bandwidth allocated through the " |
|
"BandwidthAllocation attribute is allowed. ") ] |
|
boolean BurstsAllowed; |
|
[Description ( |
|
"This property is a 32-bit unsigned integer, and specifies " |
|
"the amount of temporary or short-term bandwidth that can be " |
|
"allocated beyond the amount of bandwidth allocated through " |
|
"the BandwidthAllocation attribute. If the maximum actual " |
|
"bandwidth allocation were to be measured, it would be the " |
|
"sum of the BurstAllocation and the BandwidthAllocation " |
|
"properties."), |
|
Units ("Bytes") ] |
|
uint32 BurstAllocation; |
|
[Description ( |
|
"This is a boolean attribute that, if TRUE, enables unused " |
|
"bandwidth from the associated queue to be allocated to " |
|
"queues that need additional resources. ") ] |
|
boolean CanShare; |
|
[Description ( |
|
"This is a boolean attribute that, if TRUE, prevents the " |
|
"scheduler from bursting traffic from the queue to which this " |
|
"instance of the scheduler is associated (via SchedulerUsed). " |
|
"When TRUE, this attribute also prevents bandwidth from other " |
|
"idle queues to be consumed by the associated queue, thereby " |
|
"preventing resource allocations above the assigned " |
|
"bandwidth. ") ] |
|
boolean WorkConserving; |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_RoundRobinPacketSchedulingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a round robin packet scheduler, which " |
|
"is a process that guarantees that bandwidth will be " |
|
"allocated fairly at the packet level. With this type of " |
|
"scheduler, each associated queue is entitled to equal access " |
|
"to the output interface. This is modeled as a specialization " |
|
"of the PacketSchedulingService, which is a sibling service " |
|
"to ConditioningService. Both PacketSchedulingService and " |
|
"ConditioningService are derived from a common root, " |
|
"ForwardingService. ") ] |
|
|
|
class CIM_RoundRobinPacketSchedulingService: CIM_PacketSchedulingService |
|
{ |
|
}; |
|
|
|
// =================================================================== |
|
// CIM_WeightedRoundRobinPacketSchedulingService |
|
// =================================================================== |
|
[Description ( |
|
"This class represents a weighted round robin packet " |
|
"scheduler, which is the same as a fair packet scheduler " |
|
"except that a per-traffic stream multiplier is applied to " |
|
"each stream. This is modeled as a specialization of the " |
|
"PacketSchedulingService, which is a sibling service to " |
|
"ConditioningService. Both PacketSchedulingService and " |
|
"ConditioningService are derived from a common root, " |
|
"ForwardingService.") ] |
|
|
|
class CIM_WeightedRoundRobinPacketSchedulingService : |
|
CIM_PacketSchedulingService |
|
{ |
|
[Description ( |
|
"This property is a real 32-bit number, which is used to " |
|
"define the weighting factor that will be used to offer some " |
|
"queues a higher probability of being serviced than other " |
|
"queues. This property represents this probability. "), |
|
MinValue (0), MaxValue (100) ] |
|
real32 WeightingFactor; |
|
[Description ( |
|
"This property is a 16-bit unsigned integer, which specifies " |
|
"a tie breaker in the event that two or more queues achieve " |
|
"an equal weighting. While this condition may not occur in " |
|
"some implementations of a weighted round robin scheduler, " |
|
"there are many implementations that require a priority to " |
|
"resolve this condition. However, in instances where this " |
|
"behavior is not necessary or is undesirable, this property " |
|
"may be left unspecified. ") ] |
|
uint16 Priority; |
|
}; |
|
|
|
// ================================================================== |
|
// Pragmas for new classes in premliminary release status |
|
// ================================================================== |
|
|
|
#pragma include ("CIM_Network26_Add.mof") |
|
|
|
|
|
// =================================================================== |
|
// end of file |
|
// =================================================================== |