// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::Routes" ), 
    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 {

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

      [Key, Description ( "The scoping AdminDomain\'s Name." ), 
       MaxLen ( 256 ), 
       Propagated ( "CIM_AdminDomain.Name" )]
   string SystemName;

      [Key, Description ( 
          "CreationClassName indicates the name of the class or the "
          "subclass used in the creation of an instance. When used "
          "with the other key properties of this class, this "
          "property allows all instances of this class and its "
          "subclasses to be uniquely identified." )]
   string CreationClassName;

      [Key, Override ( "Name" ), 
       Description ( 
          "This is the name of the AdministrativeDistance class." ), 
       MaxLen ( 256 )]
   string Name;

      [Description ( 
          "The distance for directly connected peers. It has a "
          "default value of 0." )]
   uint8 DirectConnect = 0;

      [Description ( 
          "The distance for staticly connected peers. It has a "
          "default value of 1." )]
   uint8 Static = 1;

      [Description ( 
          "The distance for peers using EBGP. It has a default value of 20."
           )]
   uint8 EBGP = 20;

      [Description ( 
          "The distance for peers using internal EIGRP. It has a "
          "default value of 90." )]
   uint8 EIGRPInternal = 90;

      [Description ( 
          "The distance for peers using IGRP. It has a default value of 100."
           )]
   uint8 IGRP = 100;

      [Description ( 
          "The distance for peers using OSPF. It has a default value of 110."
           )]
   uint8 OSPF = 110;

      [Description ( 
          "The distance for peers using ISIS. It has a default value of 115."
           )]
   uint8 ISIS = 115;

      [Description ( 
          "The distance for peers using RIP. It has a default value of 120."
           )]
   uint8 RIP = 120;

      [Description ( 
          "The distance for peers using EGP. It has a default value of 140."
           )]
   uint8 EGP = 140;

      [Description ( 
          "The distance for peers using external EIGRP. It has a "
          "default value of 170." )]
   uint8 EIGRPExternal = 170;

      [Description ( 
          "The distance for peers using IBGP. It has a default value of 200."
           )]
   uint8 IBGP = 200;

      [Description ( 
          "The distance for peers using BGP locally. It has a "
          "default value of 200." )]
   uint8 BGPLocal = 200;

      [Description ( 
          "The distance for peers using an unknown protocol. It has "
          "a default value of 255." )]
   uint8 Unknown = 255;


};
