Move uan module description out of doxygen

This commit is contained in:
Tom Henderson
2011-05-25 00:12:59 -07:00
parent f0eeb738ad
commit 8febaeb6cc
5 changed files with 87 additions and 70 deletions

View File

@@ -39,6 +39,7 @@ SOURCES = \
$(SRC)/internet/doc/ipv6.rst \
$(SRC)/internet/doc/routing-overview.rst \
$(SRC)/internet/doc/tcp.rst \
$(SRC)/olsr/doc/olsr.rst \
$(SRC)/openflow/doc/openflow-switch.rst \
$(SRC)/point-to-point/doc/point-to-point.rst \
$(SRC)/wifi/doc/wifi.rst \

View File

@@ -34,6 +34,7 @@ This document is written in `reStructuredText <http://docutils.sourceforge.net/r
mesh
distributed
network
olsr
openflow-switch
point-to-point
propagation

View File

@@ -1,70 +0,0 @@
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
/*
* Copyright (c) 2007 INESC Porto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Author: Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
*/
#ifndef OLSR_H
#define OLSR_H
/**
* \defgroup olsr OLSR Routing
*
* \section model Model
*
* This model implements the base specification of the Optimized
* Link State Routing (OLSR) protocol, which is a dynamic mobile ad hoc
* unicast routing protocol. It has been developed at the
* University of Murcia (Spain) by Francisco J. Ros for NS-2, and was
* ported to NS-3 by Gustavo Carneiro at INESC Porto (Portugal).
*
* Here is a summary of software's main features:
* - Mostly compliant with OLSR as documented in RFC 3626 (http://www.ietf.org/rfc/rfc3626.txt), with the following differences:
* - The use of multiple interfaces was not supported by the NS-2 version, but is supported in NS-3;
*
* \section api API and Usage
*
* A helper class for OLSR has been written. After an IPv4 topology
* has been created and unique IP addresses assigned to each node, the
* simulation script writer can call one of three overloaded functions
* with different scope to enable OLSR: ns3::OlsrHelper::Install
* (NodeContainer container); ns3::OlsrHelper::Install (Ptr<Node>
* node); or ns3::OlsrHelper::InstallAll (void);
*
* In addition, the behavior of OLSR can be modified by changing certain
* attributes. The method ns3::OlsrHelper::Set () can be used
* to set OLSR attributes. These include HelloInterval, TcInterval,
* MidInterval, Willingness. Other parameters are defined as macros
* in olsr-routing-protocol.cc.
*
* Host Network Association (HNA) is supported in this implementation
* of OLSR. Refer to examples/routing/olsr-hna.cc to see how the API
* is used.
*
* \section list Open Issues
*
* - OLSR does not respond to the routing event notifications corresponding
* to dynamic interface up and down (RoutingProtocol::NotifyInterfaceUp and
* RoutingProtocol::NotifyInterfaceDown) or address insertion/removal
* (RoutingProtocol::NotifyAddAddress and
* RoutingProtocol::NotifyRemoveAddress).
* - Unlike the NS-2 version, does not yet support MAC layer feedback as described in RFC 3626;
*
*/
#endif /* OLSR_H */

81
src/olsr/doc/olsr.rst Normal file
View File

@@ -0,0 +1,81 @@
.. include:: replace.txt
Optimized Link State Routing (OLSR)
-----------------------------------
This model implements the base specification of the Optimized
Link State Routing (OLSR) protocol, which is a dynamic mobile ad hoc
unicast routing protocol. It has been developed at the
University of Murcia (Spain) by Francisco J. Ros for NS-2, and was
ported to NS-3 by Gustavo Carneiro at INESC Porto (Portugal).
Model Description
*****************
The source code for the OLSR model lives in the directory `src/olsr`.
Design
++++++
Scope and Limitations
+++++++++++++++++++++
The model is for IPv4 only.
* Mostly compliant with OLSR as documented in [rfc3626]_,
* The use of multiple interfaces was not supported by the NS-2 version, but is supported in NS-3;
* OLSR does not respond to the routing event notifications corresponding to dynamic interface up and down (``ns3::RoutingProtocol::NotifyInterfaceUp`` and ``ns3::RoutingProtocol::NotifyInterfaceDown``) or address insertion/removal ``ns3::RoutingProtocol::NotifyAddAddress`` and ``ns3::RoutingProtocol::NotifyRemoveAddress``).
* Unlike the NS-2 version, does not yet support MAC layer feedback as described in RFC 3626;
Host Network Association (HNA) is supported in this implementation
of OLSR. Refer to ``examples/olsr-hna.cc`` to see how the API
is used.
References
++++++++++
.. [rfc3626] RFC 3626 *Optimized Link State Routing*
Usage
*****
Examples
++++++++
Helpers
+++++++
A helper class for OLSR has been written. After an IPv4 topology
has been created and unique IP addresses assigned to each node, the
simulation script writer can call one of three overloaded functions
with different scope to enable OLSR: ``ns3::OlsrHelper::Install
(NodeContainer container)``; ``ns3::OlsrHelper::Install (Ptr<Node>
node)``; or ``ns3::OlsrHelper::InstallAll (void)``
Attributes
++++++++++
In addition, the behavior of OLSR can be modified by changing certain
attributes. The method ``ns3::OlsrHelper::Set ()`` can be used
to set OLSR attributes. These include HelloInterval, TcInterval,
MidInterval, Willingness. Other parameters are defined as macros
in ``olsr-routing-protocol.cc``.
Tracing
+++++++
Logging
+++++++
Caveats
+++++++
Validation
**********
Unit tests
++++++++++
Larger-scale performance tests
++++++++++++++++++++++++++++++

View File

@@ -47,6 +47,10 @@
namespace ns3 {
namespace olsr {
///
/// \defgroup olsr OLSR Routing
/// This section documents the API of the ns-3 OLSR module. For a generic
/// functional description, please refer to the ns-3 manual.
/// An %OLSR's routing table entry.
struct RoutingTableEntry