src/node/packet-socket.h
author Florian Westphal <fw@strlen.de>
Wed, 03 Sep 2008 23:24:59 +0200
changeset 3595 693faf7f4e9b
parent 3548 e5ab96db540e
child 3772 f0d8608ab155
permissions -rw-r--r--
nsc: Fix build problem if gtk config store is disabled gtk config store pulled in libdl.so for us, so things fail to link of the config store isn't enabled. This makes nsc pull in libdl itself when its enabled.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2007 Emmanuelle Laprise, INRIA
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Authors: Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>,
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 *          Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
 */
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#ifndef PACKET_SOCKET_H
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
#define PACKET_SOCKET_H
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include <stdint.h>
3097
1b1661bbfa33 Plumb in socket receive pull model, in parallel to existing Receive framework
Tom Henderson <tomh@tomh.org>
parents: 2592
diff changeset
    25
#include <queue>
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
#include "ns3/callback.h"
3112
b5413dcad0c8 Enable receive buffer limit for packet socket
Tom Henderson <tomh@tomh.org>
parents: 3107
diff changeset
    27
#include "ns3/traced-callback.h"
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
#include "ns3/ptr.h"
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
#include "ns3/socket.h"
3448
0bd851bb1225 Simplify promiscuous mode API: NetDevices always operate in promiscuous mode, normal receive callbacks receive extra destination address and packet type.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3269
diff changeset
    30
#include "ns3/net-device.h"
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
namespace ns3 {
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
class Node;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
class Packet;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
class NetDevice;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
class PacketSocketAddress;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
/**
3183
fc3b2e03e61e more doxygen
Tom Henderson <tomh@tomh.org>
parents: 3123
diff changeset
    40
 * \ingroup socket
fc3b2e03e61e more doxygen
Tom Henderson <tomh@tomh.org>
parents: 3123
diff changeset
    41
 *
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
 * \brief A PacketSocket is a link between an application and a net device.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
 * A PacketSocket can be used to connect an application to a net
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
 * device. The application provides the buffers of data, the socket
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    46
 * conserts them to a raw packet and the net device then adds the
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    47
 * protocol specific headers and trailers. This socket type
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    48
 * is very similar to the linux and BSD "packet" sockets.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    50
 * Here is a summary of the semantics of this class:
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
 * - Bind: Bind uses only the protocol and device fields of the 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    52
 *       PacketSocketAddress. If none are provided, Bind uses 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    53
 *       zero for both, which means that the socket is bound
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
 *       to all protocols on all devices on the node.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    55
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    56
 * - Connect: uses only the protocol, device and "physical address" 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    57
 *       field of the PacketSocketAddress. It is used to set the default
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
 *       destination address for outgoing packets.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    59
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    60
 * - Send: send the input packet to the underlying NetDevices
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    61
 *       with the default destination address. The socket must
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    62
 *       be bound and connected.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    63
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
 * - SendTo: uses the protocol, device, and "physical address" 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
 *       fields of the PacketSocketAddress. The device value is 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    66
 *       used to specialize the packet transmission to a single 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    67
 *       device, the protocol value specifies the protocol of this
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    68
 *       packet only and the "physical address" field is used to override the 
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    69
 *       default destination address. The socket must be bound.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    70
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    71
 * - Recv: The address represents the address of the packer originator.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
 *       The fields "physical address", device, and protocol are filled.
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    73
 *
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    74
 * - Accept: not allowed
3213
08a0424399fb bug 203: Listen must be implemented for Udp and Packet sockets.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3183
diff changeset
    75
 *
08a0424399fb bug 203: Listen must be implemented for Udp and Packet sockets.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3183
diff changeset
    76
 * - Listen: returns -1 (OPNOTSUPP)
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    77
 */
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    78
class PacketSocket : public Socket
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    79
{
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    80
public:
3112
b5413dcad0c8 Enable receive buffer limit for packet socket
Tom Henderson <tomh@tomh.org>
parents: 3107
diff changeset
    81
  static TypeId GetTypeId (void);
b5413dcad0c8 Enable receive buffer limit for packet socket
Tom Henderson <tomh@tomh.org>
parents: 3107
diff changeset
    82
2592
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1866
diff changeset
    83
  PacketSocket ();
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    84
  virtual ~PacketSocket ();
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    85
2592
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1866
diff changeset
    86
  void SetNode (Ptr<Node> node);
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1866
diff changeset
    87
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    88
  virtual enum SocketErrno GetErrno (void) const;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    89
  virtual Ptr<Node> GetNode (void) const;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    90
  virtual int Bind (void);
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    91
  virtual int Bind (const Address & address);
1264
577875bb5a65 split callback registration from socket operations in socket.h API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1195
diff changeset
    92
  virtual int Close (void);
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    93
  virtual int ShutdownSend (void);
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    94
  virtual int ShutdownRecv (void);
1264
577875bb5a65 split callback registration from socket operations in socket.h API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1195
diff changeset
    95
  virtual int Connect(const Address &address);
3213
08a0424399fb bug 203: Listen must be implemented for Udp and Packet sockets.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3183
diff changeset
    96
  virtual int Listen(uint32_t queueLimit);
3105
682950a37ea6 Add GetTxBuffer; add some socket options; make limited UDP receive buffer functional
Tom Henderson <tomh@tomh.org>
parents: 3104
diff changeset
    97
  virtual uint32_t GetTxAvailable (void) const;
3269
448134601b03 RecvFrom() expansion, add flags parameter to some Send calls
Tom Henderson <tomh@tomh.org>
parents: 3219
diff changeset
    98
  virtual int Send (Ptr<Packet> p, uint32_t flags);
448134601b03 RecvFrom() expansion, add flags parameter to some Send calls
Tom Henderson <tomh@tomh.org>
parents: 3219
diff changeset
    99
  virtual int SendTo(Ptr<Packet> p, uint32_t flags, const Address &toAddress);
448134601b03 RecvFrom() expansion, add flags parameter to some Send calls
Tom Henderson <tomh@tomh.org>
parents: 3219
diff changeset
   100
  virtual uint32_t GetRxAvailable (void) const;
3097
1b1661bbfa33 Plumb in socket receive pull model, in parallel to existing Receive framework
Tom Henderson <tomh@tomh.org>
parents: 2592
diff changeset
   101
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
3269
448134601b03 RecvFrom() expansion, add flags parameter to some Send calls
Tom Henderson <tomh@tomh.org>
parents: 3219
diff changeset
   102
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
448134601b03 RecvFrom() expansion, add flags parameter to some Send calls
Tom Henderson <tomh@tomh.org>
parents: 3219
diff changeset
   103
    Address &fromAddress);
3097
1b1661bbfa33 Plumb in socket receive pull model, in parallel to existing Receive framework
Tom Henderson <tomh@tomh.org>
parents: 2592
diff changeset
   104
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   105
private:
3548
e5ab96db540e bug 273: constify packet pointers.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3448
diff changeset
   106
  void ForwardUp (Ptr<NetDevice> device, Ptr<const Packet> packet, 
3448
0bd851bb1225 Simplify promiscuous mode API: NetDevices always operate in promiscuous mode, normal receive callbacks receive extra destination address and packet type.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3269
diff changeset
   107
                  uint16_t protocol, const Address &from, const Address &to,
0bd851bb1225 Simplify promiscuous mode API: NetDevices always operate in promiscuous mode, normal receive callbacks receive extra destination address and packet type.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3269
diff changeset
   108
                  NetDevice::PacketType packetType);
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   109
  int DoBind (const PacketSocketAddress &address);
3219
49dcb3f0bd34 bug 210: must take device mtu into account.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3213
diff changeset
   110
  uint32_t GetMinMtu (PacketSocketAddress ad) const;
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   111
  virtual void DoDispose (void);
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   112
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   113
  enum State {
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   114
    STATE_OPEN,
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   115
    STATE_BOUND,     // open and bound
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   116
    STATE_CONNECTED, // open, bound and connected
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   117
    STATE_CLOSED
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   118
  };
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   119
  Ptr<Node> m_node;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   120
  enum SocketErrno m_errno;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   121
  bool m_shutdownSend;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   122
  bool m_shutdownRecv;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   123
  enum State m_state;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   124
  uint16_t m_protocol;
1195
53f1175dbe94 fix tracing
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1188
diff changeset
   125
  bool m_isSingleDevice;
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   126
  uint32_t m_device;
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   127
  Address m_destAddr; /// Default destination address
3097
1b1661bbfa33 Plumb in socket receive pull model, in parallel to existing Receive framework
Tom Henderson <tomh@tomh.org>
parents: 2592
diff changeset
   128
1b1661bbfa33 Plumb in socket receive pull model, in parallel to existing Receive framework
Tom Henderson <tomh@tomh.org>
parents: 2592
diff changeset
   129
  std::queue<Ptr<Packet> > m_deliveryQueue;
3104
24d9d9aa0977 Implement GetRxAvailable ()
Tom Henderson <tomh@tomh.org>
parents: 3097
diff changeset
   130
  uint32_t m_rxAvailable;
3112
b5413dcad0c8 Enable receive buffer limit for packet socket
Tom Henderson <tomh@tomh.org>
parents: 3107
diff changeset
   131
  
b5413dcad0c8 Enable receive buffer limit for packet socket
Tom Henderson <tomh@tomh.org>
parents: 3107
diff changeset
   132
  TracedCallback<Ptr<const Packet> > m_dropTrace;
3123
fae57a467d54 undo SocketDefaults class; plumb in new UdpSocket option attributes
Tom Henderson <tomh@tomh.org>
parents: 3120
diff changeset
   133
  
fae57a467d54 undo SocketDefaults class; plumb in new UdpSocket option attributes
Tom Henderson <tomh@tomh.org>
parents: 3120
diff changeset
   134
  // Socket options (attributes)
fae57a467d54 undo SocketDefaults class; plumb in new UdpSocket option attributes
Tom Henderson <tomh@tomh.org>
parents: 3120
diff changeset
   135
  uint32_t m_rcvBufSize;
3104
24d9d9aa0977 Implement GetRxAvailable ()
Tom Henderson <tomh@tomh.org>
parents: 3097
diff changeset
   136
1188
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
};
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   138
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   139
}//namespace ns3
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   140
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   141
#endif /* PACKET_SOCKET_H */
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   142
34386185bc1f a packet socket
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   143