text: // Copyright (c) 2015, Cisco Systems
  // All rights reserved.
  //
  // Redistribution and use in source and binary forms, with or without
  // modification, are permitted provided that the following conditions
  // are met:
  //
  // 1. Redistributions of source code must retain the above copyright notice,
  //    this list of conditions and the following disclaimer.
  // 
  // 2. Redistributions in binary form must reproduce the above copyright
  //    notice, this list of conditions and the following disclaimer in the
  //    documentation and/or other materials provided with the distribution.
  //
  // 3. Neither the name of the copyright holder nor the names of its
  //    contributors may be used to endorse or promote products derived
  //    from this software without specific prior written permission.
  //
  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  // This file is autogenerated
  //
  // The following edits are possible, without affecting the validity of the
  // file:
  //
  //  * Fields may be renamed.
  //  * Fields may be deleted.
  //  * The unique numbered tag for a field may be changed, provided that
  //    the ordering of tags for fields within a message is preserved.
  //  * Message types may be renamed.
  //  * Message types may be deleted (if all fields that reference them
  //    have been deleted).
  //
  // All Cisco message and field extensions must be preserved (except when the
  // field itself is being deleted).
  
  syntax = "proto3";
  
  package cisco_ios_xr_ipv4_ospf_oper.ospf.processes.process.vrfs.vrf.route_information.route_table.route;
  
  // OSPF Route Information
  message ospf_sh_topology_KEYS {
      string process_name = 1;
      string vrf_name = 2;
      string prefix = 3;
      uint32 prefix_length = 4;
  }
  
  message ospf_sh_topology {
      // Prefix
      string route_prefix = 50;
      // Prefix length
      uint32 route_prefix_length = 51;
      // Metric
      uint32 route_metric = 52;
      // Route type
      string route_type = 53;
      // If true, connected route
      bool route_connected = 54;
      // Route information
      ospf_sh_top_common route_info = 55;
      // List of paths to this route
      repeated ospf_sh_top_path route_path_list = 56;
  }
  
  message ospf_sh_time {
      uint32 second = 1;
      uint32 nanosecond = 2;
  }
  
  // OSPF Common Route Information
  message ospf_sh_top_common {
      // Area ID
      uint32 route_area_id = 1;
      // TE metric
      uint32 route_te_metric = 2;
      // RIB version
      uint32 route_rib_version = 3;
      // SPF version
      uint64 route_spf_version = 4;
      // Forward distance
      uint32 route_forward_distance = 5;
      // Protocol source
      uint32 route_source = 6;
      // Last time updated
      ospf_sh_time route_update_time = 7;
      // Last time update failed
      ospf_sh_time route_fail_time = 8;
      // SPF priority
      uint32 route_spf_priority = 9;
      // If true, exclude from TE paths
      bool route_auto_excluded = 10;
      // If true, SRTE registered prefix route
      bool route_srte_prefix_registered = 11;
      // SRTE registered neigbhor count on route
      uint32 route_srte_nbr_registered = 12;
  }
  
  // OSPF Route Path Information
  message ospf_sh_top_path {
      // Next hop Interface
      string route_interface_name = 1;
      // Nexthop IP address
      string route_next_hop_address = 2;
      // IP address of source of route
      string route_source = 3;
      // LSA ID, see RFC2328
      string route_lsaid = 4;
      // Multicast-intact path
      bool route_path_is_mcast_intact = 5;
      // UCMP path
      bool route_path_is_ucmp_path = 6;
      // Metric
      uint32 route_metric = 7;
      // LSA type, see RFC2328 etc.
      uint32 lsa_type = 8;
      // Area ID
      uint32 area_id = 9;
      // Area format IP or uint32
      bool area_format = 10;
  }
  
  