author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Mon, 04 Jun 2007 17:42:37 +0200 | |
changeset 746 | a037131de577 |
parent 738 | 2c105723d191 |
permissions | -rw-r--r-- |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
/* |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
* Copyright (c) 2007 INRIA |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
* All rights reserved. |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
* |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
* This program is free software; you can redistribute it and/or modify |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
* it under the terms of the GNU General Public License version 2 as |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
* published by the Free Software Foundation; |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
* |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
* This program is distributed in the hope that it will be useful, |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
* GNU General Public License for more details. |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
* |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
* along with this program; if not, write to the Free Software |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
* |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
*/ |
738
2c105723d191
i-ipv4-private.h ipv4-private.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
734
diff
changeset
|
21 |
#include "ipv4-private.h" |
733
fb1882e7d785
rename ipv4.h to ipv4-l3-protocol.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
710
diff
changeset
|
22 |
#include "ipv4-l3-protocol.h" |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
#include "ns3/assert.h" |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
551
diff
changeset
|
24 |
#include "ns3/net-device.h" |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
|
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
namespace ns3 { |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
|
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
28 |
const InterfaceId Ipv4Private::iid = MakeInterfaceId ("Ipv4Private", Object::iid); |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
|
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
30 |
Ipv4Private::Ipv4Private (Ptr<Ipv4L3Protocol> ipv4) |
710
2a9c061219a7
port code from Interface to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
580
diff
changeset
|
31 |
: m_ipv4 (ipv4) |
2a9c061219a7
port code from Interface to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
580
diff
changeset
|
32 |
{ |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
33 |
SetInterfaceId (Ipv4Private::iid); |
710
2a9c061219a7
port code from Interface to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
580
diff
changeset
|
34 |
} |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
35 |
Ipv4Private::~Ipv4Private () |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
36 |
{ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
37 |
NS_ASSERT (m_ipv4 == 0); |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
38 |
} |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
39 |
TraceResolver * |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
40 |
Ipv4Private::CreateTraceResolver (TraceContext const &context) |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
41 |
{ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
42 |
return m_ipv4->CreateTraceResolver (context); |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
43 |
} |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
44 |
void |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
45 |
Ipv4Private::Send (Packet const &packet, Ipv4Address source, |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
46 |
Ipv4Address destination, uint8_t protocol) |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
47 |
{ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
48 |
m_ipv4->Send (packet, source, destination, protocol); |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
49 |
} |
551
12ed30c77cab
revert Ipv4Interface * -> Ptr<Ipv4Interface>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
548
diff
changeset
|
50 |
Ipv4Interface * |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
51 |
Ipv4Private::FindInterfaceForDevice (Ptr<const NetDevice>device) |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
52 |
{ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
53 |
return m_ipv4->FindInterfaceForDevice (device); |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
54 |
} |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
55 |
void |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
56 |
Ipv4Private::Receive(Packet& p, Ptr<NetDevice> device) |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
57 |
{ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
58 |
m_ipv4->Receive (p, device); |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
59 |
} |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
60 |
void |
746
a037131de577
IIpv4Private -> Ipv4Private
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
738
diff
changeset
|
61 |
Ipv4Private::DoDispose (void) |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
62 |
{ |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
63 |
m_ipv4 = 0; |
710
2a9c061219a7
port code from Interface to Object
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
580
diff
changeset
|
64 |
Object::DoDispose (); |
522
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
65 |
} |
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
66 |
|
d5039448597a
remove Node::GetIpv4
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
67 |
} // namespace ns3 |