author | Pavel Boyko <boyko@iitp.ru> |
Tue, 17 Mar 2009 10:56:45 +0300 | |
changeset 4817 | 1257e4b82e17 |
parent 4813 | e4e2c44d27cd |
child 4837 | 7887e457f6f0 |
permissions | -rw-r--r-- |
4793 | 1 |
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
2 |
/* |
|
3 |
* Copyright (c) 2008,2009 IITP RAS |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or modify |
|
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
4793 | 7 |
* published by the Free Software Foundation; |
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 |
* |
|
18 |
* Authors: Kirill Andreev <andreev@iitp.ru> |
|
19 |
* Aleksey Kovalenko <kovalenko@iitp.ru> |
|
4817
1257e4b82e17
L2RoutingProtocol refactored to MeshL2RoutingProtocol
Pavel Boyko <boyko@iitp.ru>
parents:
4813
diff
changeset
|
20 |
* Pavel Boyko <boyko@iitp.ru> |
4793 | 21 |
*/ |
22 |
||
23 |
||
24 |
#ifndef HWMP_H |
|
25 |
#define HWMP_H |
|
26 |
#include <map> |
|
27 |
#include <queue> |
|
28 |
#include "ns3/tag.h" |
|
29 |
#include "ns3/object.h" |
|
30 |
#include "ns3/mac48-address.h" |
|
4802
5e2ca849c9c1
Address comparator moved to separate file, remade constructors (closed ticket
Kirill Andreev <andreev@iitp.ru>
parents:
4793
diff
changeset
|
31 |
#include "ns3/mac48-address-comparator.h" |
4817
1257e4b82e17
L2RoutingProtocol refactored to MeshL2RoutingProtocol
Pavel Boyko <boyko@iitp.ru>
parents:
4813
diff
changeset
|
32 |
#include "ns3/mesh-l2-routing-protocol.h" |
4793 | 33 |
#include "ns3/packet.h" |
34 |
#include "ns3/ptr.h" |
|
4813
e4e2c44d27cd
All mesh related filed moved to devices/mesh. Let the refactoring begins!
Pavel Boyko <boyko@iitp.ru>
parents:
4812
diff
changeset
|
35 |
#include "ns3/hwmp-state.h" |
4793 | 36 |
namespace ns3 { |
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
37 |
class HwmpState; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
38 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
39 |
* \ingroup mesh |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
40 |
* |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
41 |
* \brief Hwmp tag implements interaction between HWMP |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
42 |
* protocol and MeshWifiMac |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
43 |
* |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
44 |
* \details Hwmp tag keeps the following: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
45 |
* 1. When packet is passed from Hwmp to 11sMAC: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
46 |
* - retransmitter address, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
47 |
* - TTL value, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
48 |
* 2. When packet is passed to Hwmp from 11sMAC: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
49 |
* - lasthop address, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
50 |
* - TTL value, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
51 |
* - metric value (metric of link is recalculated |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
52 |
* at each packet, but routing table stores metric |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
53 |
* obtained during path discovery procedure) |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
54 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
55 |
class HwmpTag : public Tag |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
56 |
{ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
57 |
public: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
58 |
HwmpTag(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
59 |
~HwmpTag(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
60 |
void SetAddress(Mac48Address retransmitter); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
61 |
Mac48Address GetAddress(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
62 |
void SetTtl(uint8_t ttl); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
63 |
uint8_t GetTtl(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
64 |
void SetMetric(uint32_t metric); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
65 |
uint32_t GetMetric(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
66 |
void SetSeqno(uint32_t seqno); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
67 |
uint32_t GetSeqno(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
68 |
void DecrementTtl(); |
4793 | 69 |
|
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
70 |
static TypeId GetTypeId (); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
71 |
virtual TypeId GetInstanceTypeId () const; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
72 |
virtual uint32_t GetSerializedSize () const; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
73 |
virtual void Serialize (TagBuffer i) const; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
74 |
virtual void Deserialize (TagBuffer i); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
75 |
virtual void Print (std::ostream &os) const; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
76 |
private: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
77 |
Mac48Address m_address; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
78 |
uint8_t m_ttl; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
79 |
uint32_t m_metric; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
80 |
uint32_t m_seqno; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
81 |
}; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
82 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
83 |
* \ingroup mesh |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
84 |
*/ |
4817
1257e4b82e17
L2RoutingProtocol refactored to MeshL2RoutingProtocol
Pavel Boyko <boyko@iitp.ru>
parents:
4813
diff
changeset
|
85 |
class Hwmp : public MeshL2RoutingProtocol |
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
86 |
{ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
87 |
public: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
88 |
static TypeId GetTypeId(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
89 |
Hwmp(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
90 |
~Hwmp(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
91 |
void DoDispose(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
92 |
//intheritedfrom L2RoutingProtocol |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
93 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
94 |
* \brief L2Routing protocol base class metod |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
95 |
* |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
96 |
* \details Route resolving procedure consits |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
97 |
* of the following steps: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
98 |
* 1. Find reactive route and send a packet. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
99 |
* 2. Find all ports which are operate in |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
100 |
* 'Proactive' mode and find a proper default |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
101 |
* routes. and send packet to all proactive |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
102 |
* 'ports'. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
103 |
* 3. If there are ports which are operate in |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
104 |
* reactive mode - queue packet and start |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
105 |
* route reactive path discovery |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
106 |
* |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
107 |
* \bug Now packet is sent to the 'best root' |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
108 |
* rather than to the best root at each port |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
109 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
110 |
bool RequestRoute( |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
111 |
uint32_t sourceIface, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
112 |
const Mac48Address source, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
113 |
const Mac48Address destination, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
114 |
Ptr<Packet> packet, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
115 |
uint16_t protocolType, |
4817
1257e4b82e17
L2RoutingProtocol refactored to MeshL2RoutingProtocol
Pavel Boyko <boyko@iitp.ru>
parents:
4813
diff
changeset
|
116 |
MeshL2RoutingProtocol::RouteReplyCallback routeReply |
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
117 |
); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
118 |
bool AttachPorts(std::vector<Ptr<NetDevice> >); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
119 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
120 |
* \brief Disables port by index. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
121 |
* \details Needed for external modules like |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
122 |
* clusterization. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
123 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
124 |
void DisablePort(uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
125 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
126 |
* \brief enables port |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
127 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
128 |
void EnablePort(uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
129 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
130 |
* \brief Setting proative mode. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
131 |
* \details To enable proactive mode you must |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
132 |
* set a root node. Choosing the route is made |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
133 |
* in accordance with the following: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
134 |
* 1. Find 'reactive' route. If route is |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
135 |
* found - send a packet using this |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
136 |
* information |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
137 |
* 2. If there is no reactive route - |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
138 |
* find proactive or 'default' route. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
139 |
* \attention Comparsion between proactive and |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
140 |
* reactive routes is incorrect, because we |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
141 |
* have metric to root MP in te first case and |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
142 |
* metric to the destination in the second |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
143 |
* case. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
144 |
* \param port is the port where proactive |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
145 |
* mode should be activated |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
146 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
147 |
void SetRoot(uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
148 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
149 |
* \brief Disable root functionality at a |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
150 |
* given port |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
151 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
152 |
void UnSetRoot(uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
153 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
154 |
* \brief HwmpState retrns to Hwmp class all |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
155 |
* routing information obtained from all HWMP |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
156 |
* action frames |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
157 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
158 |
void ObtainRoutingInformation( |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
159 |
HwmpState::INFO info |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
160 |
); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
161 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
162 |
* \brief Hwmp state noyifyes that neighbour |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
163 |
* is dissapeared. Hwmp state knows about peer |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
164 |
* failure from MAC |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
165 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
166 |
void PeerFailure(Mac48Address peerAddress); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
167 |
void SetMaxTtl(uint8_t ttl); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
168 |
uint8_t GetMaxTtl(); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
169 |
private: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
170 |
static const uint32_t MAX_SEQNO = 0xffffffff; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
171 |
//candidate queue is implemented inside the |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
172 |
//protocol: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
173 |
void SetMaxQueueSize(int maxPacketsPerDestination); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
174 |
int m_maxQueueSize; |
4817
1257e4b82e17
L2RoutingProtocol refactored to MeshL2RoutingProtocol
Pavel Boyko <boyko@iitp.ru>
parents:
4813
diff
changeset
|
175 |
bool QueuePacket(MeshL2RoutingProtocol::QueuedPacket packet); |
1257e4b82e17
L2RoutingProtocol refactored to MeshL2RoutingProtocol
Pavel Boyko <boyko@iitp.ru>
parents:
4813
diff
changeset
|
176 |
MeshL2RoutingProtocol::QueuedPacket DequeuePacket(Mac48Address dst); |
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
177 |
void SendAllPossiblePackets(Mac48Address dst); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
178 |
std::map<Mac48Address, std::queue<QueuedPacket> > m_rqueue; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
179 |
//devices and HWMP states: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
180 |
enum DeviceState { |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
181 |
ENABLED, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
182 |
DISABLED |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
183 |
}; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
184 |
enum DeviceMode { |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
185 |
REACTIVE, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
186 |
PROACTIVE, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
187 |
ROOT |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
188 |
}; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
189 |
std::vector<enum DeviceState> m_states; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
190 |
std::vector<enum DeviceMode> m_modes; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
191 |
std::vector<Ptr<HwmpState> > m_hwmpStates; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
192 |
//Routing table: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
193 |
Ptr<HwmpRtable> m_rtable; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
194 |
//Proactive routines: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
195 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
196 |
* \brief Set port state as proactive. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
197 |
* \details mode is supposed to be proactive |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
198 |
* when proatcive PREQ with a valid |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
199 |
* information was received. |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
200 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
201 |
void SetProactive(uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
202 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
203 |
* \brief Checks if the port is root, if true |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
204 |
* - no default routes must be used at this |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
205 |
* port |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
206 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
207 |
bool IsRoot(uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
208 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
209 |
* \brief Interaction with HwmpState class - |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
210 |
* request for starting routing discover |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
211 |
* procedure (reactive route discovery!) |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
212 |
* \param Mac48Address is destination to be |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
213 |
* resolved |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
214 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
215 |
std::vector< Callback<void, Mac48Address> > m_requestCallback; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
216 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
217 |
* \brief Callback that shall be executed when |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
218 |
* need to send Path error |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
219 |
* \param std::vector<Mac48Address> is the |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
220 |
* list of unreachable destinations |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
221 |
* \param std::vector<Mac48Address> is |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
222 |
* receivers of PERR |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
223 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
224 |
std::vector<Callback<void,std::vector<HwmpRtable::FailedDestination> > > |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
225 |
m_pathErrorCallback; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
226 |
void StartPathErrorProcedure( |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
227 |
std::vector<HwmpRtable::FailedDestination> destinations, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
228 |
uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
229 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
230 |
* \brief HwmpState need to know where to |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
231 |
* retransmit PERR, only HWMP knows how to |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
232 |
* retransmit it (broadcast/unicast) and only |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
233 |
* HWMP has accessto routing table |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
234 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
235 |
std::vector<Mac48Address> |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
236 |
GetRetransmittersForFailedDestinations( |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
237 |
std::vector<HwmpRtable::FailedDestination> failedDest, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
238 |
uint32_t port); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
239 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
240 |
* \brief Needed by HwmpState to find routes in case |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
241 |
* of intermediate reply and choosing the |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
242 |
* better route |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
243 |
* |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
244 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
245 |
HwmpRtable::LookupResult RequestRouteForAddress(const Mac48Address& destination); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
246 |
HwmpRtable::LookupResult RequestRootPathForPort(uint32_t port); |
4793 | 247 |
|
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
248 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
249 |
* \attention mesh seqno is processed at HWMP |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
250 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
251 |
uint32_t m_seqno; |
4813
e4e2c44d27cd
All mesh related filed moved to devices/mesh. Let the refactoring begins!
Pavel Boyko <boyko@iitp.ru>
parents:
4812
diff
changeset
|
252 |
std::map<Mac48Address, uint32_t/*, mac48addrComparator*/> |
4812
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
253 |
m_seqnoDatabase; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
254 |
//Timers: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
255 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
256 |
* /brief checks when last preq was initiated, returns |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
257 |
* false when retry has not expired |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
258 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
259 |
bool ShouldSendPreq(Mac48Address dst); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
260 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
261 |
* \brief Generates PREQ retry when route is |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
262 |
* still unresolved after first PREQ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
263 |
* If number of retries greater than |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
264 |
* dot11sParameters::dot11MeshHWMPmaxPREQretries, |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
265 |
* we return all packets to upper layers |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
266 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
267 |
void RetryPathDiscovery(Mac48Address dst, uint8_t numOfRetry); |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
268 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
269 |
* Keeps PREQ retry timers for every |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
270 |
* destination |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
271 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
272 |
std::map<Mac48Address, EventId, mac48addrComparator> |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
273 |
m_timeoutDatabase; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
274 |
/** |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
275 |
* Configurable parameters: |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
276 |
*/ |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
277 |
uint8_t m_maxTtl; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
278 |
bool m_broadcastPerr; |
adcb26652e1d
Coding style changes: indentation, spaces.
Andrey Mazo <mazo@iitp.ru>
parents:
4810
diff
changeset
|
279 |
}; |
4793 | 280 |
} //namespace ns3 |
281 |
#endif |