src/devices/point-to-point/point-to-point-net-device.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 27 Aug 2007 14:59:50 +0200
changeset 1364 7866d4dd9e64
parent 1341 f685d4bf320f
child 1376 ad7e61edfb9d
permissions -rw-r--r--
add TraceContextElement::GetName method
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     2
/*
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     3
 * Copyright (c) 2007 University of Washington
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     4
 *
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     7
 * published by the Free Software Foundation;
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     8
 *
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    12
 * GNU General Public License for more details.
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    13
 *
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    14
 * You should have received a copy of the GNU General Public License
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    15
 * along with this program; if not, write to the Free Software
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    17
 *
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    18
 * Author: Craig Dowell <craigdo@ee.washington.edu>
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    19
 */
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
369
29ea5d1a83c8 Rename classes from Serial to PointToPoint
Tom Henderson <tomh@tomh.org>
parents: 368
diff changeset
    21
#ifndef POINT_TO_POINT_NET_DEVICE_H
29ea5d1a83c8 Rename classes from Serial to PointToPoint
Tom Henderson <tomh@tomh.org>
parents: 368
diff changeset
    22
#define POINT_TO_POINT_NET_DEVICE_H
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    24
#include <string.h>
1167
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 996
diff changeset
    25
#include "ns3/address.h"
729
b5e744285e92 rename i-node to node
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 728
diff changeset
    26
#include "ns3/node.h"
331
d75ee9d8efa4 move p2p to new dir
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 252
diff changeset
    27
#include "ns3/net-device.h"
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    28
#include "ns3/callback.h"
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    29
#include "ns3/packet.h"
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
    30
#include "ns3/callback-trace-source.h"
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
    31
#include "ns3/nstime.h"
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
    32
#include "ns3/data-rate.h"
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
    33
#include "ns3/default-value.h"
543
a730800a31d5 Node* -> Ptr<Node>
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 517
diff changeset
    34
#include "ns3/ptr.h"
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
namespace ns3 {
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
402
f47285751901 add NetDevice::GetChannel method and doxygen-document it
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 379
diff changeset
    38
class Queue;
369
29ea5d1a83c8 Rename classes from Serial to PointToPoint
Tom Henderson <tomh@tomh.org>
parents: 368
diff changeset
    39
class PointToPointChannel;
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
1229
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    41
class PointToPointTraceType : public TraceContextElement
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    42
{
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    43
public:
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    44
  PointToPointTraceType ();
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    45
  void Print (std::ostream &os) const;
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    46
  static uint16_t GetUid (void);
1364
7866d4dd9e64 add TraceContextElement::GetName method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1341
diff changeset
    47
  std::string GetName (void) const;
1229
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    48
};
e4cfe4094c10 build with the new TraceContextElement API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1167
diff changeset
    49
409
1cbb9ed862d0 add empty template for doxygen doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 402
diff changeset
    50
/**
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    51
 * \class PointToPointNetDevice
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    52
 * \brief A Device for a Point to Point Network Link.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    53
 *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    54
 * Ns-3 takes a four-layer view of a protocol stack.  This is the same model
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    55
 * that TCP uses.  In this view, layers 5-7 of the OSI reference model are
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    56
 * grouped together into an application layer; layer four (transport / TCP) is
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    57
 * broken out; layer three (network / IP) is broken out; and layers 1-2 are
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    58
 * grouped together.  We call this grouping of layers one and two a NetDevice
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    59
 * and represent it as a class in the system.
409
1cbb9ed862d0 add empty template for doxygen doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 402
diff changeset
    60
 *
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    61
 * The NetDevice class is specialized according to the needs of the specific
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    62
 * kind of network link.  In this case, the link is a PointToPoint link.  The
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    63
 * PointToPoint link is a family of classes that includes this class, the
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    64
 * PointToPointNetDevice, a PointToPointChannel class that represents the 
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    65
 * actual medium across which bits are sent, a PointToPointIpv4Interface class
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    66
 * that provides the hook to tie a general purpose node to this specific
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    67
 * link, and finally, a PointToPointTopology object that is responsible for
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    68
 * putting all of the pieces together.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    69
 *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    70
 * This is the PointToPointNetDevice class that represents, essentially, the
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    71
 * PC card that is used to connect to the PointToPoint network.
409
1cbb9ed862d0 add empty template for doxygen doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 402
diff changeset
    72
 */
369
29ea5d1a83c8 Rename classes from Serial to PointToPoint
Tom Henderson <tomh@tomh.org>
parents: 368
diff changeset
    73
class PointToPointNetDevice : public NetDevice {
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    74
public:
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    75
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    76
   * Construct a PointToPointNetDevice
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    77
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    78
   * This is the constructor for the PointToPointNetDevice.  It takes as a
728
95c426b1cb60 rename INode to Node
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 607
diff changeset
    79
   * parameter the Node to which this device is connected.  Ownership of the
95c426b1cb60 rename INode to Node
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 607
diff changeset
    80
   * Node pointer is not implied and the node must not be deleded.
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    81
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    82
   * @see PointToPointTopology::AddPointToPointLink ()
728
95c426b1cb60 rename INode to Node
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 607
diff changeset
    83
   * @param node the Node to which this device is connected.
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    84
   */
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
    85
  PointToPointNetDevice (Ptr<Node> node,
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
    86
                         const DataRate& = g_defaultRate.GetValue());
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    87
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    88
   * Destroy a PointToPointNetDevice
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    89
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    90
   * This is the destructor for the PointToPointNetDevice.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    91
   */
369
29ea5d1a83c8 Rename classes from Serial to PointToPoint
Tom Henderson <tomh@tomh.org>
parents: 368
diff changeset
    92
  virtual ~PointToPointNetDevice();
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    93
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    94
   * Set the Data Rate used for transmission of packets.  The data rate is
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    95
   * set in the Attach () method from the corresponding field in the channel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    96
   * to which the device is attached.  It can be overridden using this method.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    97
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    98
   * @see Attach ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
    99
   * @param bps the data rate at which this object operates
409
1cbb9ed862d0 add empty template for doxygen doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 402
diff changeset
   100
   */
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   101
  void SetDataRate(const DataRate& bps);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   102
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   103
   * Set the inteframe gap used to separate packets.  The interframe gap
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   104
   * defines the minimum space required between packets sent by this device.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   105
   * It is usually set in the Attach () method based on the speed of light
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   106
   * delay of the channel to which the device is attached.  It can be 
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   107
   * overridden using this method if desired.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   108
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   109
   * @see Attach ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   110
   * @param t the interframe gap time
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   111
   */
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   112
  void SetInterframeGap(const Time& t);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   113
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   114
   * Attach the device to a channel.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   115
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   116
   * The PointToPointTopology object creates a PointToPointChannel and two
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   117
   * PointtoPointNetDevices.  In order to introduce these components to each
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   118
   * other, the topology object calls Attach () on each PointToPointNetDevice.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   119
   * Inside this method, the Net Device calls out to the PointToPointChannel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   120
   * to introduce itself.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   121
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   122
   * @see PointToPointTopology::AddPointToPointLink ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   123
   * @see SetDataRate ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   124
   * @see SetInterframeGap ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   125
   * @param ch a pointer to the channel to which this object is being attached.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   126
   */
568
e1660959ecbb use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 543
diff changeset
   127
  bool Attach(Ptr<PointToPointChannel> ch);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   128
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   129
   * Attach a queue to the PointToPointNetDevice.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   130
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   131
   * The PointToPointNetDevice "owns" a queue.  This queue is created by the
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   132
   * PointToPointTopology object and implements a queueing method such as
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   133
   * DropTail or RED.  The PointToPointNetDevice assumes ownership of this
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   134
   * queue and must delete it when the device is destroyed.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   135
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   136
   * @see PointToPointTopology::AddPointToPointLink ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   137
   * @see Queue
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   138
   * @see DropTailQueue
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   139
   * @param queue a pointer to the queue for which object is assuming
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   140
   *        ownership.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   141
   */
581
15240a33f517 make Queue derive from Interface
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 568
diff changeset
   142
  void AddQueue(Ptr<Queue> queue);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   143
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   144
   * Receive a packet from a connected PointToPointChannel.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   145
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   146
   * The PointToPointNetDevice receives packets from its connected channel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   147
   * and forwards them up the protocol stack.  This is the public method
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   148
   * used by the channel to indicate that the last bit of a packet has 
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   149
   * arrived at the device.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   150
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   151
   * @see PointToPointChannel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   152
   * @param p a reference to the received packet
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   153
   */
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
   154
  void Receive (Packet& p);
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
   155
protected:
1341
f685d4bf320f use the Object::GetTraceResolver tracing support rather than the old adhoc tracing code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1333
diff changeset
   156
  /**
f685d4bf320f use the Object::GetTraceResolver tracing support rather than the old adhoc tracing code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1333
diff changeset
   157
   * Create a Trace Resolver for events in the net device.
f685d4bf320f use the Object::GetTraceResolver tracing support rather than the old adhoc tracing code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1333
diff changeset
   158
   *
f685d4bf320f use the Object::GetTraceResolver tracing support rather than the old adhoc tracing code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1333
diff changeset
   159
   * @see class TraceResolver
f685d4bf320f use the Object::GetTraceResolver tracing support rather than the old adhoc tracing code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1333
diff changeset
   160
   */
f685d4bf320f use the Object::GetTraceResolver tracing support rather than the old adhoc tracing code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1333
diff changeset
   161
  virtual Ptr<TraceResolver> GetTraceResolver (void);
517
702e96b8960f finish Dispose -> DoDispose rework
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 465
diff changeset
   162
  virtual void DoDispose (void);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   163
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   164
   * Get a copy of the attached Queue.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   165
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   166
   * This method is provided for any derived class that may need to get
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   167
   * direct access to the underlying queue.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   168
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   169
   * @see PointToPointTopology
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   170
   * @returns a pointer to the queue.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   171
   */
581
15240a33f517 make Queue derive from Interface
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 568
diff changeset
   172
  Ptr<Queue> GetQueue(void) const; 
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   173
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   174
   * Get a copy of the attached Channel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   175
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   176
   * This method is provided for any derived class that may need to get
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   177
   * direct access to the connected channel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   178
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   179
   * @see PointToPointChannel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   180
   * @returns a pointer to the channel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   181
   */
568
e1660959ecbb use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 543
diff changeset
   182
  virtual Ptr<Channel> DoGetChannel(void) const;
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   183
  /**
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   184
   * Set a new default data rate
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   185
   * @param Data rate to set for new default
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   186
   */
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   187
  static void SetDefaultRate(const DataRate&);
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   188
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   189
  /** 
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   190
   * Get the current default rate.
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   191
   * @returns a const reference to current default
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   192
   */
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   193
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   194
  static const DataRate& GetDefaultRate();
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   195
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
   196
private:
975
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   197
  /**
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   198
   * Adds the necessary headers and trailers to a packet of data in order to
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   199
   * respect the protocol implemented by the agent.
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   200
   */
1167
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 996
diff changeset
   201
  void AddHeader(Packet& p, uint16_t protocolNumber);
975
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   202
  /**
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   203
   * Removes, from a packet of data, all headers and trailers that
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   204
   * relate to the protocol implemented by the agent
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   205
   * \return Returns true if the packet should be forwarded up the
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   206
   * protocol stack.
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   207
   */
996
3888206177b8 protocol number is a 16 bit unsigned integer
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 975
diff changeset
   208
  bool ProcessHeader(Packet& p, uint16_t& param);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   209
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   210
   * Send a Packet Down the Wire.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   211
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   212
   * The SendTo method is defined as the standard way that the level three
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   213
   * protocol uses to tell a NetDevice to send a packet.  SendTo is declared
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   214
   * as abstract in the NetDevice class and we declare it here.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   215
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   216
   * @see NetDevice
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   217
   * @param p a reference to the packet to send
1167
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 996
diff changeset
   218
   * @param dest a reference to the Address of the destination device
975
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   219
   * @param protocolNumber Protocol Number used to find protocol touse
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   220
   * @returns true if success, false on failure
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   221
   */
1167
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 996
diff changeset
   222
  virtual bool SendTo (Packet& p, const Address& dest, 
975
98233c6c9c2e Move LLC encapsulation from NetDevice to subclasses.
Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
parents: 973
diff changeset
   223
                       uint16_t protocolNumber);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   224
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   225
   * Start Sending a Packet Down the Wire.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   226
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   227
   * The TransmitStart method is the method that is used internally in the
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   228
   * PointToPointNetDevice to begin the process of sending a packet out on
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   229
   * the channel.  The corresponding method is called on the channel to let
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   230
   * it know that the physical device this class represents has virually
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   231
   * started sending signals.  An event is scheduled for the time at which
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   232
   * the bits have been completely transmitted.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   233
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   234
   * @see PointToPointChannel::TransmitStart ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   235
   * @see TransmitCompleteEvent ()
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   236
   * @param p a reference to the packet to send
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   237
   * @returns true if success, false on failure
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   238
   */
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   239
  bool TransmitStart (Packet &p);
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   240
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   241
   * Stop Sending a Packet Down the Wire and Begin the Interframe Gap.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   242
   *
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   243
   * The TransmitComplete method is used internally to finish the process
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   244
   * of sending a packet out on the channel.
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   245
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   246
   */
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   247
  void TransmitComplete(void);
445
10cd9049a0ad add NetDevice::NeedsArp method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 419
diff changeset
   248
  virtual bool DoNeedsArp (void) const;
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   249
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   250
   * Enumeration of the states of the transmit machine of the net device.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   251
   */
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   252
  enum TxMachineState
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   253
    {
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   254
      READY, /**< The transmitter is ready to begin transmission of a packet */
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   255
      BUSY   /**< The transmitter is busy transmitting a packet */
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   256
    };
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   257
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   258
   * The state of the Net Device transmit state machine.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   259
   * @see TxMachineState
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   260
   */
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   261
  TxMachineState m_txMachineState;
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   262
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   263
   * The data rate that the Net Device uses to simulate packet transmission
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   264
   * timing.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   265
   * @see class DataRate
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   266
   */
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   267
  DataRate       m_bps;
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   268
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   269
   * The interframe gap that the Net Device uses to throttle packet
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   270
   * transmission
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   271
   * @see class Time
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   272
   */
378
32bd402ea5ea remove unused files, remove notion of PHY, make more realistic p2p-net-device and p2p-channel
Craig Dowell
parents: 369
diff changeset
   273
  Time           m_tInterframeGap;
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   274
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   275
   * The PointToPointChannel to which this PointToPointNetDevice has been
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   276
   * attached.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   277
   * @see class PointToPointChannel
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   278
   */
568
e1660959ecbb use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 543
diff changeset
   279
  Ptr<PointToPointChannel> m_channel;
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   280
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   281
   * The Queue which this PointToPointNetDevice uses as a packet source.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   282
   * Management of this Queue has been delegated to the PointToPointNetDevice
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   283
   * and it has the responsibility for deletion.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   284
   * @see class Queue
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   285
   * @see class DropTailQueue
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   286
   */
581
15240a33f517 make Queue derive from Interface
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 568
diff changeset
   287
  Ptr<Queue> m_queue;
414
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   288
  /**
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   289
   * The trace source for the packet reception events that the device can
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   290
   * fire.
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   291
   *
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   292
   * @see class CallBackTraceSource
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   293
   * @see class TraceResolver
71babb829194 fix queue leak and add p2p net device dox
Craig Dowell
parents: 409
diff changeset
   294
   */
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
   295
  CallbackTraceSource<Packet &> m_rxTrace;
926
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   296
  /** 
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   297
   * Default data rate.  Used for all newly created p2p net devices
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   298
   */
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   299
   static DataRateDefaultValue g_defaultRate;
1fdec986d774 Simplifications to the point to point devices and channel
George F. Riley<riley@ece.gatech.edu>
parents: 773
diff changeset
   300
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   301
};
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   302
368
1df1165d6a68 Rename file names from serial to p2p
Tom Henderson <tomh@tomh.org>
parents: 345
diff changeset
   303
}; // namespace ns3
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   304
369
29ea5d1a83c8 Rename classes from Serial to PointToPoint
Tom Henderson <tomh@tomh.org>
parents: 368
diff changeset
   305
#endif // POINT_TO_POINT_NET_DEVICE_H
245
28ba3a5cdff8 add p2p netdevice and channel
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   306