A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
aodv-neighbor.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009 IITP RAS
4
*
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
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
* Based on
19
* NS-2 AODV model developed by the CMU/MONARCH group and optimized and
20
* tuned by Samir Das and Mahesh Marina, University of Cincinnati;
21
*
22
* AODV-UU implementation by Erik Nordström of Uppsala University
23
* http://core.it.uu.se/core/index.php/AODV-UU
24
*
25
* Authors: Elena Buchatskaia <borovkovaes@iitp.ru>
26
* Pavel Boyko <boyko@iitp.ru>
27
*/
28
29
#ifndef AODVNEIGHBOR_H
30
#define AODVNEIGHBOR_H
31
32
#include "ns3/simulator.h"
33
#include "ns3/timer.h"
34
#include "ns3/ipv4-address.h"
35
#include "ns3/callback.h"
36
#include "ns3/wifi-mac-header.h"
37
#include "ns3/arp-cache.h"
38
#include <vector>
39
40
namespace
ns3
41
{
42
namespace
aodv
43
{
44
class
RoutingProtocol;
49
class
Neighbors
50
{
51
public
:
53
Neighbors
(
Time
delay);
55
struct
Neighbor
56
{
57
Ipv4Address
m_neighborAddress
;
58
Mac48Address
m_hardwareAddress
;
59
Time
m_expireTime
;
60
bool
close
;
61
62
Neighbor
(
Ipv4Address
ip,
Mac48Address
mac,
Time
t) :
63
m_neighborAddress
(ip),
m_hardwareAddress
(mac),
m_expireTime
(t),
64
close
(false)
65
{
66
}
67
};
69
Time
GetExpireTime
(
Ipv4Address
addr);
71
bool
IsNeighbor
(
Ipv4Address
addr);
73
void
Update
(
Ipv4Address
addr,
Time
expire);
75
void
Purge
();
77
void
ScheduleTimer
();
79
void
Clear
() {
m_nb
.clear (); }
80
82
void
AddArpCache
(
Ptr<ArpCache>
);
84
void
DelArpCache
(
Ptr<ArpCache>
);
86
Callback<void, WifiMacHeader const &>
GetTxErrorCallback
()
const
{
return
m_txErrorCallback
; }
87
89
//\{
90
void
SetCallback
(
Callback<void, Ipv4Address>
cb) {
m_handleLinkFailure
= cb; }
91
Callback<void, Ipv4Address>
GetCallback
()
const
{
return
m_handleLinkFailure
; }
92
//\}
93
private
:
95
Callback<void, Ipv4Address>
m_handleLinkFailure
;
97
Callback<void, WifiMacHeader const &>
m_txErrorCallback
;
99
Timer
m_ntimer
;
101
std::vector<Neighbor>
m_nb
;
103
std::vector<Ptr<ArpCache> >
m_arp
;
104
106
Mac48Address
LookupMacAddress
(
Ipv4Address
);
108
void
ProcessTxError
(
WifiMacHeader
const
&);
109
};
110
111
}
112
}
113
114
#endif
/* AODVNEIGHBOR_H */
ns3::aodv::Neighbors
maintain list of active neighbors
Definition:
aodv-neighbor.h:49
ns3::aodv::Neighbors::m_txErrorCallback
Callback< void, WifiMacHeader const & > m_txErrorCallback
TX error callback.
Definition:
aodv-neighbor.h:97
ns3::Time
keep track of time values and allow control of global simulation resolution
Definition:
nstime.h:81
ns3::Ptr< ArpCache >
ns3::aodv::Neighbors::Neighbor::m_hardwareAddress
Mac48Address m_hardwareAddress
Definition:
aodv-neighbor.h:58
ns3::aodv::Neighbors::m_ntimer
Timer m_ntimer
Timer for neighbor's list. Schedule Purge().
Definition:
aodv-neighbor.h:99
ns3::Callback
Callback template class.
Definition:
callback.h:920
ns3::Timer
a simple Timer class
Definition:
timer.h:45
ns3::aodv::Neighbors::GetCallback
Callback< void, Ipv4Address > GetCallback() const
Definition:
aodv-neighbor.h:91
ns3::aodv::Neighbors::DelArpCache
void DelArpCache(Ptr< ArpCache >)
Don't use given ARP cache any more (interface is down)
Definition:
aodv-neighbor.cc:137
ns3::aodv::Neighbors::Neighbors
Neighbors(Time delay)
c-tor
Definition:
aodv-neighbor.cc:39
ns3::aodv::Neighbors::Purge
void Purge()
Remove all expired entries.
Definition:
aodv-neighbor.cc:101
ns3::aodv::Neighbors::m_arp
std::vector< Ptr< ArpCache > > m_arp
list of ARP cached to be used for layer 2 notifications processing
Definition:
aodv-neighbor.h:103
ns3::aodv::Neighbors::IsNeighbor
bool IsNeighbor(Ipv4Address addr)
Check that node with address addr is neighbor.
Definition:
aodv-neighbor.cc:48
ns3::aodv::Neighbors::Neighbor::close
bool close
Definition:
aodv-neighbor.h:60
ns3::aodv::Neighbors::AddArpCache
void AddArpCache(Ptr< ArpCache >)
Add ARP cache to be used to allow layer 2 notifications processing.
Definition:
aodv-neighbor.cc:131
ns3::aodv::Neighbors::GetTxErrorCallback
Callback< void, WifiMacHeader const & > GetTxErrorCallback() const
Get callback to ProcessTxError.
Definition:
aodv-neighbor.h:86
ns3::aodv::Neighbors::Clear
void Clear()
Remove all entries.
Definition:
aodv-neighbor.h:79
ns3::aodv::Neighbors::m_nb
std::vector< Neighbor > m_nb
vector of entries
Definition:
aodv-neighbor.h:101
ns3::Mac48Address
an EUI-48 address
Definition:
mac48-address.h:41
ns3::aodv::Neighbors::Neighbor
Neighbor description.
Definition:
aodv-neighbor.h:55
ns3::aodv::Neighbors::Update
void Update(Ipv4Address addr, Time expire)
Update expire time for entry with address addr, if it exists, else add new entry. ...
Definition:
aodv-neighbor.cc:74
ns3::aodv::Neighbors::m_handleLinkFailure
Callback< void, Ipv4Address > m_handleLinkFailure
link failure callback
Definition:
aodv-neighbor.h:95
ns3::aodv::Neighbors::GetExpireTime
Time GetExpireTime(Ipv4Address addr)
Return expire time for neighbor node with address addr, if exists, else return 0. ...
Definition:
aodv-neighbor.cc:61
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition:
ipv4-address.h:38
ns3::aodv::Neighbors::ProcessTxError
void ProcessTxError(WifiMacHeader const &)
Process layer 2 TX error notification.
Definition:
aodv-neighbor.cc:160
ns3::aodv::Neighbors::LookupMacAddress
Mac48Address LookupMacAddress(Ipv4Address)
Find MAC address by IP using list of ARP caches.
Definition:
aodv-neighbor.cc:143
ns3::aodv::Neighbors::Neighbor::Neighbor
Neighbor(Ipv4Address ip, Mac48Address mac, Time t)
Definition:
aodv-neighbor.h:62
ns3::aodv::Neighbors::SetCallback
void SetCallback(Callback< void, Ipv4Address > cb)
Definition:
aodv-neighbor.h:90
ns3::aodv::Neighbors::Neighbor::m_expireTime
Time m_expireTime
Definition:
aodv-neighbor.h:59
ns3::aodv::Neighbors::Neighbor::m_neighborAddress
Ipv4Address m_neighborAddress
Definition:
aodv-neighbor.h:57
ns3::WifiMacHeader
Implements the IEEE 802.11 MAC header.
Definition:
wifi-mac-header.h:80
ns3::aodv::Neighbors::ScheduleTimer
void ScheduleTimer()
Schedule m_ntimer.
Definition:
aodv-neighbor.cc:124
src
aodv
model
aodv-neighbor.h
Generated on Sat Apr 19 2014 14:06:49 for ns-3 by
1.8.6