src/routing/olsr/repositories.h
changeset 4358 e63305078fe5
parent 4279 7cb2938928d4
child 4359 8d689bf4405f
--- a/src/routing/olsr/repositories.h	Thu Mar 19 11:33:19 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2004 Francisco J. Ros 
- * Copyright (c) 2007 INESC Porto
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Authors: Francisco J. Ros  <fjrm@dif.um.es>
- *          Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
- */
-
-///
-/// \file	OLSR_repositories.h
-/// \brief	Here are defined all data structures needed by an OLSR node.
-///
-
-#ifndef __OLSR_REPOSITORIES_H__
-#define __OLSR_REPOSITORIES_H__
-
-#include <set>
-#include <vector>
-
-#include "ns3/ipv4-address.h"
-#include "ns3/nstime.h"
-
-namespace ns3 { namespace olsr {
-
-
-
-/// An Interface Association Tuple.
-struct IfaceAssocTuple
-{
-  /// Interface address of a node.
-  Ipv4Address ifaceAddr;
-  /// Main address of the node.
-  Ipv4Address mainAddr;
-  /// Time at which this tuple expires and must be removed.
-  Time time;
-};
-
-static inline bool
-operator == (const IfaceAssocTuple &a, const IfaceAssocTuple &b)
-{
-  return (a.ifaceAddr == b.ifaceAddr
-          && a.mainAddr == b.mainAddr);
-}
-
-static inline std::ostream&
-operator << (std::ostream &os, const IfaceAssocTuple &tuple)
-{
-  os << "IfaceAssocTuple(ifaceAddr=" << tuple.ifaceAddr
-     << ", mainAddr=" << tuple.mainAddr
-     << ", time=" << tuple.time << ")";
-  return os;
-}
-
-/// A Link Tuple.
-struct LinkTuple
-{
-  /// Interface address of the local node.
-  Ipv4Address localIfaceAddr;
-  /// Interface address of the neighbor node.
-  Ipv4Address neighborIfaceAddr;
-  /// The link is considered bidirectional until this time.
-  Time symTime;
-  /// The link is considered unidirectional until this time.
-  Time asymTime;
-  /// Time at which this tuple expires and must be removed.
-  Time time;
-};
-
-static inline bool
-operator == (const LinkTuple &a, const LinkTuple &b)
-{
-  return (a.localIfaceAddr == b.localIfaceAddr
-          && a.neighborIfaceAddr == b.neighborIfaceAddr);
-}
-
-static inline std::ostream&
-operator << (std::ostream &os, const LinkTuple &tuple)
-{
-  os << "LinkTuple(localIfaceAddr=" << tuple.localIfaceAddr
-     << ", neighborIfaceAddr=" << tuple.neighborIfaceAddr
-     << ", symTime=" << tuple.symTime
-     << ", asymTime=" << tuple.asymTime
-     << ", expTime=" << tuple.time;
-  return os;
-}
-
-/// A Neighbor Tuple.
-struct NeighborTuple
-{
-  /// Main address of a neighbor node.
-  Ipv4Address neighborMainAddr;
-  /// Neighbor Type and Link Type at the four less significative digits.
-  enum Status {
-    STATUS_NOT_SYM = 0, // "not symmetric"
-    STATUS_SYM = 1, // "symmetric"
-  } status;
-  /// A value between 0 and 7 specifying the node's willingness to carry traffic on behalf of other nodes.
-  uint8_t willingness;
-};
-
-static inline bool
-operator == (const NeighborTuple &a, const NeighborTuple &b)
-{
-  return (a.neighborMainAddr == b.neighborMainAddr
-          && a.status == b.status
-          && a.willingness == b.willingness);
-}
-
-static inline std::ostream&
-operator << (std::ostream &os, const NeighborTuple &tuple)
-{
-  os << "NeighborTuple(neighborMainAddr=" << tuple.neighborMainAddr
-     << ", status=" << (tuple.status == NeighborTuple::STATUS_SYM? "SYM" : "NOT_SYM")
-     << ", willingness=" << (int) tuple.willingness << ")";
-  return os;
-}
-
-/// A 2-hop Tuple.
-struct TwoHopNeighborTuple
-{
-  /// Main address of a neighbor.
-  Ipv4Address neighborMainAddr;
-  /// Main address of a 2-hop neighbor with a symmetric link to nb_main_addr.
-  Ipv4Address twoHopNeighborAddr;
-  /// Time at which this tuple expires and must be removed.
-  Time expirationTime;        // previously called 'time_'
-};
-
-static inline std::ostream&
-operator << (std::ostream &os, const TwoHopNeighborTuple &tuple)
-{
-  os << "TwoHopNeighborTuple(neighborMainAddr=" << tuple.neighborMainAddr
-     << ", twoHopNeighborAddr=" << tuple.twoHopNeighborAddr
-     << ", expirationTime=" << tuple.expirationTime
-     << ")";
-  return os;
-}
-
-static inline bool
-operator == (const TwoHopNeighborTuple &a, const TwoHopNeighborTuple &b)
-{
-  return (a.neighborMainAddr == b.neighborMainAddr
-          && a.twoHopNeighborAddr == b.twoHopNeighborAddr);
-}
-
-/// An MPR-Selector Tuple.
-struct MprSelectorTuple
-{
-  /// Main address of a node which have selected this node as a MPR.
-  Ipv4Address mainAddr;
-  /// Time at which this tuple expires and must be removed.
-  Time expirationTime;       // previously called 'time_'
-};
-
-static inline bool
-operator == (const MprSelectorTuple &a, const MprSelectorTuple &b)
-{
-  return (a.mainAddr == b.mainAddr);
-}
-
-
-/// The type "list of interface addresses"
-//typedef std::vector<nsaddr_t> addr_list_t;
-
-/// A Duplicate Tuple
-struct DuplicateTuple
-{
-  /// Originator address of the message.
-  Ipv4Address address;
-  /// Message sequence number.
-  uint16_t sequenceNumber;
-  /// Indicates whether the message has been retransmitted or not.
-  bool retransmitted;
-  /// List of interfaces which the message has been received on.
-  std::vector<Ipv4Address> ifaceList;
-  /// Time at which this tuple expires and must be removed.
-  Time expirationTime;
-};
-
-static inline bool
-operator == (const DuplicateTuple &a, const DuplicateTuple &b)
-{
-  return (a.address == b.address
-          && a.sequenceNumber == b.sequenceNumber);
-}
-
-/// A Topology Tuple
-struct TopologyTuple
-{
-  /// Main address of the destination.
-  Ipv4Address destAddr;
-  /// Main address of a node which is a neighbor of the destination.
-  Ipv4Address lastAddr;
-  /// Sequence number.
-  uint16_t sequenceNumber;
-  /// Time at which this tuple expires and must be removed.
-  Time expirationTime;
-};
-
-static inline bool
-operator == (const TopologyTuple &a, const TopologyTuple &b)
-{
-  return (a.destAddr == b.destAddr
-          && a.lastAddr == b.lastAddr
-          && a.sequenceNumber == b.sequenceNumber);
-}
-
-static inline std::ostream&
-operator << (std::ostream &os, const TopologyTuple &tuple)
-{
-  os << "TopologyTuple(destAddr=" << tuple.destAddr
-     << ", lastAddr=" << tuple.lastAddr
-     << ", sequenceNumber=" << (int) tuple.sequenceNumber
-     << ", expirationTime=" << tuple.expirationTime
-     << ")";
-  return os;
-}
-
-
-typedef std::set<Ipv4Address> 			MprSet;	///< MPR Set type.
-typedef std::vector<MprSelectorTuple>		MprSelectorSet;	///< MPR Selector Set type.
-typedef std::vector<LinkTuple>			LinkSet;	///< Link Set type.
-typedef std::vector<NeighborTuple>		NeighborSet;	///< Neighbor Set type.
-typedef std::vector<TwoHopNeighborTuple>	TwoHopNeighborSet; ///< 2-hop Neighbor Set type.
-typedef std::vector<TopologyTuple>		TopologySet;	///< Topology Set type.
-typedef std::vector<DuplicateTuple>		DuplicateSet;	///< Duplicate Set type.
-typedef std::vector<IfaceAssocTuple>		IfaceAssocSet; ///< Interface Association Set type.
-
-
-}}; // namespace ns3, olsr
-
-#endif  /* __OLSR_REPOSITORIES_H__ */