// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::BGP" ), 
    Description ( 
       "This class defines the BGP Attributes, that can be used to "
       "affect routing decisions. BGPAttributes are specific to a "
       "given AutonomousSystem that contains it. Hence, the keys of "
       "the AutonomousSystem are propagated to this class." )]
class CIM_BGPAttributes : CIM_LogicalElement {

      [Key, Description ( 
          "The scoping AutonomousSystem\'s CreationClassName." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_AutonomousSystem.CreationClassName" )]
   string SystemCreationClassName;

      [Key, Description ( "The scoping AutonomousSystem\'s Name." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_AutonomousSystem.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|BGP4-MIB.bgp4PathAttrLocalPref" }]
   uint16 LocalPreference;

      [Description ( 
          "This attribute is a sequences of the AS numbers through "
          "which routing information carried in this UPDATE message "
          "has passed. The components of this list can be AS_SETs "
          "or AS_SEQUENCEs." ), 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrASPath" }]
   string ASPath;

      [Description ( 
          "This is the set of all elements contained in all "
          "specific paths that are being summarized, so that those "
          "attributes will remain available to the routing decision "
          "process." )]
   string AsSet;

      [Description ( 
          "This attribute defines the IP address of the border "
          "router that should be used as the next hop to the "
          "destinations listed in the UPDATE message." ), 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrNextHop" }]
   string NextHop;

      [Description ( 
          "This defines the next hop to be the IP address of the "
          "border IBGP neighbor." )]
   string NextHopSelf;

      [Description ( 
          "This is used on external (e.g., inter-AS) links to "
          "indicate which is the preferred entry point into an AS, "
          "when that AS has multiple entry points. Lower MED values "
          "have preference." ), 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrMultiExitDisc" }]
   uint32 MED;

      [Description ( 
          "This defines a group of destinations that share a "
          "similar property. Communities are not restricted to a "
          "single AS, and can span multiple ASs. This attribute is "
          "used to simplify routing policies by basing policies on "
          "a logical value, as opposed to an IP address or an AS "
          "number." )]
   uint32 BGPCommunityValue;

      [Description ( 
          "This property is set to TRUE if there are overlapping "
          "routes, and a less-specific route is selected instead of "
          "a more specific one (e.g., a system propagates an "
          "aggregate that causes loss of information). The value is "
          "set to FALSE if a less-specific route is NOT selected." ), 
       MappingStrings { 
          "MIB.IETF|BGP4-MIB.bgp4PathAttrAtomicAggregate" }]
   boolean AtomicAggregate;

      [Description ( 
          "This specifies the AS and IP address of the router that "
          "has generated an aggregate." ), 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrAggregatorAS" }]
   string Aggregator;

      [Description ( 
          "This is generated by the AS that originates the routing "
          "information. There are three types of origins - IGP, "
          "EGP, and INCOMPLETE. These correspond to whether the "
          "information was learned internally in the AS, externally "
          "via an EGP, or by some other means." ), 
       ValueMap { "1", "2", "3" }, 
       Values { "IGP", "EGP", "INCOMPLETE" }, 
       MappingStrings { "MIB.IETF|BGP4-MIB.bgp4PathAttrOrigin" }]
   uint16 Origin;

      [Description ( 
          "This is the router ID for the ORIGIN attribute." )]
   string OriginatorID;


};
