INET Framework for OMNeT++/OMNEST
ansaOspfRoutingTableEntry6.h File Reference

Go to the source code of this file.

Classes

class  AnsaOspf6::RoutingTableEntry

Namespaces

namespace  AnsaOspf6

Functions

std::ostream & operator<< (std::ostream &out, const AnsaOspf6::RoutingTableEntry &entry)

Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const AnsaOspf6::RoutingTableEntry entry 
) [inline]

Definition at line 175 of file ansaOspfRoutingTableEntry6.h.

                                                                                        {
   out << "Destination: "
         << entry.GetDestinationPrefix().str()
         << "/"
         << entry.GetPrefixLength()
         << " (";

   if (entry.GetDestinationType() == AnsaOspf6::RoutingTableEntry::NetworkDestination) {
      out << "Network";
   } else {
      if ((entry.GetDestinationType()
            & AnsaOspf6::RoutingTableEntry::AreaBorderRouterDestination) != 0) {
         out << "AreaBorderRouter";
      }
      if ((entry.GetDestinationType()
            & ( AnsaOspf6::RoutingTableEntry::ASBoundaryRouterDestination
              | AnsaOspf6::RoutingTableEntry::AreaBorderRouterDestination)) != 0) {
         out << "+";
      }
      if ((entry.GetDestinationType()
            & AnsaOspf6::RoutingTableEntry::ASBoundaryRouterDestination) != 0) {
         out << "ASBoundaryRouter";
      }
   }

   out << "), Area: "
         << entry.GetArea()
         << ", PathType: ";

    switch (entry.GetPathType()){
      case AnsaOspf6::RoutingTableEntry::IntraArea:
         out << "IntraArea";
         break;
      case AnsaOspf6::RoutingTableEntry::InterArea:
         out << "InterArea";
         break;
      case AnsaOspf6::RoutingTableEntry::Type1External:
         out << "Type1External";
         break;
      case AnsaOspf6::RoutingTableEntry::Type2External:
         out << "Type2External";
         break;
      default:
         out << "Unknown";
         break;
   }

   out << ", Cost: "
         << entry.GetCost()
         << ", Type2Cost: "
         << entry.GetType2Cost()
         << ", Origin: [";

   PrintLsaHeader6(entry.GetLinkStateOrigin()->getHeader(), out);
   out << "], NextHops: ";

   unsigned int hopCount = entry.GetNextHopCount();
   for (unsigned int i = 0; i < hopCount; i++) {
     out << entry.GetNextHop(i).hopAddress << " ";
   }

   return out;
}