OLD | NEW |
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2007 Georgia Tech Research Corporation | 3 * Copyright (c) 2007 Georgia Tech Research Corporation |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 12 matching lines...) Expand all Loading... |
23 | 23 |
24 #include <stdint.h> | 24 #include <stdint.h> |
25 | 25 |
26 #include "ns3/packet.h" | 26 #include "ns3/packet.h" |
27 #include "ns3/ipv4-address.h" | 27 #include "ns3/ipv4-address.h" |
28 #include "ns3/ipv6-address.h" | 28 #include "ns3/ipv6-address.h" |
29 #include "ns3/ptr.h" | 29 #include "ns3/ptr.h" |
30 #include "ns3/object-factory.h" | 30 #include "ns3/object-factory.h" |
31 #include "ip-l4-protocol.h" | 31 #include "ip-l4-protocol.h" |
32 #include "ns3/net-device.h" | 32 #include "ns3/net-device.h" |
| 33 #include "ns3/ipv4-route.h" |
| 34 #include "ns3/ipv6-route.h" |
33 | 35 |
34 namespace ns3 { | 36 namespace ns3 { |
35 | 37 |
36 class Node; | 38 class Node; |
37 class Socket; | 39 class Socket; |
38 class TcpHeader; | 40 class TcpHeader; |
39 class Ipv4EndPointDemux; | 41 class Ipv4EndPointDemux; |
40 class Ipv6EndPointDemux; | 42 class Ipv6EndPointDemux; |
41 class Ipv4Interface; | 43 class Ipv4Interface; |
42 class TcpSocketBase; | 44 class TcpSocketBase; |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 virtual void NotifyNewAggregate (); | 230 virtual void NotifyNewAggregate (); |
229 private: | 231 private: |
230 Ptr<Node> m_node; //!< the node this stack is associated with | 232 Ptr<Node> m_node; //!< the node this stack is associated with |
231 Ipv4EndPointDemux *m_endPoints; //!< A list of IPv4 end points. | 233 Ipv4EndPointDemux *m_endPoints; //!< A list of IPv4 end points. |
232 Ipv6EndPointDemux *m_endPoints6; //!< A list of IPv6 end points. | 234 Ipv6EndPointDemux *m_endPoints6; //!< A list of IPv6 end points. |
233 TypeId m_rttTypeId; //!< The RTT Estimator TypeId | 235 TypeId m_rttTypeId; //!< The RTT Estimator TypeId |
234 TypeId m_socketTypeId; //!< The socket TypeId | 236 TypeId m_socketTypeId; //!< The socket TypeId |
235 private: | 237 private: |
236 friend class TcpSocketBase; | 238 friend class TcpSocketBase; |
237 void SendPacket (Ptr<Packet>, const TcpHeader &, | 239 void SendPacket (Ptr<Packet>, const TcpHeader &, |
238 Ipv4Address, Ipv4Address, Ptr<NetDevice> oif = 0); | 240 Ipv4Address, Ipv4Address, Ptr<NetDevice> oif = 0, Ptr<Ipv4Rou
te> route = 0); |
239 void SendPacket (Ptr<Packet>, const TcpHeader &, | 241 void SendPacket (Ptr<Packet>, const TcpHeader &, |
240 Ipv6Address, Ipv6Address, Ptr<NetDevice> oif = 0); | 242 Ipv6Address, Ipv6Address, Ptr<NetDevice> oif = 0, Ptr<Ipv6Rou
te> route = 0); |
241 | 243 |
242 /** | 244 /** |
243 * \brief Copy constructor | 245 * \brief Copy constructor |
244 * | 246 * |
245 * Defined and not implemented to avoid misuse | 247 * Defined and not implemented to avoid misuse |
246 */ | 248 */ |
247 TcpL4Protocol (const TcpL4Protocol &); | 249 TcpL4Protocol (const TcpL4Protocol &); |
248 /** | 250 /** |
249 * \brief Copy constructor | 251 * \brief Copy constructor |
250 * | 252 * |
251 * Defined and not implemented to avoid misuse | 253 * Defined and not implemented to avoid misuse |
252 * \returns | 254 * \returns |
253 */ | 255 */ |
254 TcpL4Protocol &operator = (const TcpL4Protocol &); | 256 TcpL4Protocol &operator = (const TcpL4Protocol &); |
255 | 257 |
256 std::vector<Ptr<TcpSocketBase> > m_sockets; //!< list of sockets | 258 std::vector<Ptr<TcpSocketBase> > m_sockets; //!< list of sockets |
257 IpL4Protocol::DownTargetCallback m_downTarget; //!< Callback to send packets
over IPv4 | 259 IpL4Protocol::DownTargetCallback m_downTarget; //!< Callback to send packets
over IPv4 |
258 IpL4Protocol::DownTargetCallback6 m_downTarget6; //!< Callback to send packets
over IPv6 | 260 IpL4Protocol::DownTargetCallback6 m_downTarget6; //!< Callback to send packets
over IPv6 |
259 }; | 261 }; |
260 | 262 |
261 } // namespace ns3 | 263 } // namespace ns3 |
262 | 264 |
263 #endif /* TCP_L4_PROTOCOL_H */ | 265 #endif /* TCP_L4_PROTOCOL_H */ |
OLD | NEW |