//************************************************************************** // File Name: IPRoute_02.MOF // Author: mthatch // Date: 03/07/00 // Comments: Split this out into more classes following conversation with // Dennis Harding. Done to accomodate more that just IP4 // // Mod/Date: // 000315 Re-assembled back into single class and renamed to be IP4 // specific. Removed all non relevent properties. The clarified // goal here being to replicate 'route print' command. not more. // 000405 Added Event class // //************************************************************************** class Win32_IP4RouteTableEvent : __ExtrinsicEvent { } ; //************************************************************************** //* Class: Win32_IP4RouteTable //* Derived from : CIM_LogicalElement //************************************************************************** [dynamic, provider("RouteProvider"), Description ("The IP4RouteTable class " "information governs where network data packets are routed to (e.g. usually " "internet packets are sent to a gateway, and local packets may be routed " "directly by the client's machine). Administrators can use this " "information to trace problems associated with misrouted packets, and also " "direct a computer to a new gateway as necessary.This class deals specifically " "with IP4 and does not address IPX or IP6. It is only intended to model the " "information revealed when typing the 'Route Print' command from the command " "prompt."), Locale (0x409), UUID ("{}")] class Win32_IP4RouteTable : CIM_LogicalElement { [read,write,key, Description ("The Destination property contains the " "destination IP address for this route.") ] string Destination; [read,write, Description ("The Mask property contains the mask used " "in this entry. Masks should be logical-ANDed with the destination " "address before being compared to the value in the ipRouteDest field.") ] string Mask; [read, write, Description ("The InterfaceIndex property contains the " "index value that uniquely identifies the local interface through which " "the next hop of this route should be reached.") ] sint32 InterfaceIndex ; [read, write, Description ("The NextHop property contains the IP address " "of the next hop of this route. (In the case of a route bound to an " "interface that is realized via a broadcast media, the value of this " "field is the agent's IP address on that interface.).") ] string NextHop ; [read,write, Description ("The Type property reveals the type of route. " "The values direct(3) and indirect(4) refer to the notion of direct and " "indirect routing in the IP architecture. Setting this object to the " "value invalid(2) has the effect of invalidating the corresponding entry " "in the RouteTable object. That is, it effectively disassociates the " "destination identified with said entry from the route identified with " "said entry. It is an implementation-specific matter as to whether the " "agent removes an invalidated entry from the table. Accordingly, " "management stations must be prepared to receive tabular information " "from agents that corresponds to entries not currently in use. Proper " "interpretation of such entries requires examination of the relevant " "ipRouteType object."), ValueMap{"1","2","3","4"}, Values{"other" , "invalid","direct","indirect"} ] uint32 Type; [read, Description ("The Protocol property reveals the routing mechanism " "via which this route was learned. Inclusion of values for gateway routing " "protocols is not intended to imply that hosts must support those " "protocols."), ValueMap{"1","2","3","4","5","6","7","8","9","10","11","12","13","14"}, Values{"other","local","netmgmt","icmp","egp","ggp","hello","rip", "is-is","es-is","ciscoIgrp","bbnSpfIgp","ospf","bgp"} ] uint32 Protocol; [read,write, Description ("The Age property contains the number of seconds " "since this route was last updated or otherwise determined to be correct. " "No semantics of 'too old' can be implied except through knowledge of the " "routing protocol by which the route was learned.") ] sint32 Age; [read, write, Description ("The Metric1 property contains the primary " "routing metric for this route. The semantics of this metric are " "determined by the routing protocol specified in the route's ipRouteProto " "value. If this metric is not used, its value should be set to -1.") ] sint32 Metric1 ; [read, write, Description ("The Metric2 property contains an alternate " "routing metric for this route. The semantics of this metric are " "determined by the routing protocol specified in the route's " "ipRouteProto value. If this metric is not used, its value should be " "set to -1.") ] sint32 Metric2 ; [read, write, Description ("The Metric3 property contains an alternate " "routing metric for this route. The semantics of this metric are " "determined by the routing protocol specified in the route's " "ipRouteProto value. If this metric is not used, its value should be " "set to -1.") ] sint32 Metric3 ; [read, write, Description ("The Metric4 property contains an alternate " "routing metric for this route. The semantics of this metric are " "determined by the routing protocol specified in the route's " "ipRouteProto value. If this metric is not used, its value should be " "set to -1.") ] sint32 Metric4 ; [read, write, Description ("The Metric5 property contains an alternate " "routing metric for this route. The semantics of this metric are " "determined by the routing protocol specified in the route's " "ipRouteProto value. If this metric is not used, its value should be " "set to -1.") ] sint32 Metric5 ; [read, Description ("The Information property contains a reference to " "MIB definitions specific to the particular routing protocol that is " "responsible for this route, as determined by the value specified in " "the route's ipRouteProto value. If this information is not present, " "its value should be set to the OBJECT IDENTIFIER {0 0}, which is a " "syntactically valid object identifier, and any conformant " "implementation of ASN.1 and BER must be able to generate and recognize " "this value.") ] string Information; }; // Persisted Route class [dynamic, provider("RouteProvider"), Description ("The IP4PersistedRouteTable " "class contains IP routes that are persited. By default, the routes you add " "to the routing table aren't permanent. You lose these routes when you reboot " "your computer. However, if you use the command route -p add, Windows NT makes " "the permanent--so you won't lose the route when you reboot your computer. " "Persistent entries are automatically reinserted in your route table each " "time your computer's route table is rebuilt. Windows NT stores persistent " "routes in the Registry. This class deals specifically with IP4 and does not " "address IPX or IP6."), Locale (0x409), UUID ("{2CAF4666-AC9B-45AB-00A6-AF8C537794C2}")] class Win32_IP4PersistedRouteTable : CIM_LogicalElement { [read,write,key, Description ("The Destination property contains the " "destination IP address for this persisted route.") ] string Destination; [read,write, key, Description ("The Mask property contains the mask used " "in this persisted entry. Masks should be logical-ANDed with the destination " "address before being compared to the value in the ipRouteDest field.") ] string Mask; [read, write, key, Description ("The NextHop property contains the IP address " "of the next hop of this persisted route. (In the case of a route bound to an " "interface that is realized via a broadcast media, the value of this " "field is the agent's IP address on that interface.).") ] string NextHop ; [read, write, key, Description ("The Metric1 property contains the primary " "routing metric for this persisted route. The semantics of this metric are " "determined by the routing protocol specified in the route's ipRouteProto " "value. If this metric is not used, its value should be set to -1.") ] sint32 Metric1 ; }; // ================================================================== // LogicalIdentity // ================================================================== [Association, Abstract, Description ( "CIM_LogicalIdentity is an abstract and generic association, " "indicating that two LogicalElements represent different " "aspects of the same underlying entity. This relationship " "conveys what could be defined with multiple inheritance. It " "is restricted to the 'logical' aspects of a ManagedSystem" "Element. In most scenarios, the Identity relationship is " "determined by the equivalence of Keys or some other " "identifying properties of the related Elements. The " "association should only be used in well understood scenarios. " "This is why the association is abstract - allowing more " "concrete definition and clarification in subclasses. One of " "the scenarios where this relationship is reasonable is to " "represent that a Device is both a 'bus' entity and a " "'functional' entity. For example, a Device could be both a " "USB (bus) and a Keyboard (functional) entity.") ] class CIM_LogicalIdentity { [Key, Description( "SystemElement represents one aspect of the Logical" "Element.") ] CIM_LogicalElement ref SystemElement; [Key, Description( "SameElement represents an alternate aspect of the " "System entity.") ] CIM_LogicalElement ref SameElement; }; // new assoc b/w persisted and routetable class will use rulebased assoc // but also populate for Nova builds. IP routes don't apply to win9x // On RuleBased addition - please clean syntax as required. [dynamic, provider("RouteProvider"), Description ("The ActiveRoute class " "assoctiates the current IP4 Route being used with the persited IP route " "table."), Locale (0x409), UUID ("{7BA1437A-C51C-421B-A359-2906AF2BDD9F}")] class Win32_ActiveRoute : CIM_LogicalIdentity { [Read: ToSubClass, Override ("SystemElement"): ToSubClass, Description ("The SystemElement represents the active IP route being" "used."): ToSubClass, MappingStrings {""}: ToSubClass] Win32_IP4RouteTable REF SystemElement; [Read: ToSubClass, Override ("SameElement"): ToSubClass, Description ("The SameElement represents persistent IP route in this" "relationship."): ToSubClass, MappingStrings {""}: ToSubClass] Win32_IP4PersistedRouteTable REF SameElement; };