00001 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ 00002 /* 00003 * Copyright (c) 2007 INESC Porto 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as 00007 * published by the Free Software Foundation; 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 * 00018 * Author: Gustavo J. A. M. Carneiro <gjc@inescporto.pt> 00019 */ 00020 00021 #ifndef OLSR_H 00022 #define OLSR_H 00023 00024 /** 00025 * \ingroup routing 00026 * \defgroup olsr OLSR 00027 * 00028 * \section model Model 00029 * 00030 * This model implements the base specification of the Optimized 00031 * Link State Routing (OLSR) protocol, which is a dynamic mobile ad hoc 00032 * unicast routing protocol. It has been developed at the 00033 * University of Murcia (Spain) by Francisco J. Ros for NS-2, and was 00034 * ported to NS-3 by Gustavo Carneiro at INESC Porto (Portugal). 00035 * 00036 * Here is a summary of software's main features: 00037 * - Mostly compliant with OLSR as documented in RFC 3626 (http://www.ietf.org/rfc/rfc3626.txt), with the following differences: 00038 * - The use of multiple interfaces was not supported by the NS-2 version, but is supported in NS-3; 00039 * - Unlike the NS-2 version, does not yet support MAC layer feedback as described in RFC 3626; 00040 * - HNA (Host/Network Association) messages are almost-but-not-quite supported in this version. 00041 * 00042 * \section api API and Usage 00043 * 00044 * A helper class for OLSR has been written. After an IPv4 topology 00045 * has been created and unique IP addresses assigned to each node, the 00046 * simulation script writer can call one of three overloaded functions 00047 * with different scope to enable OLSR: ns3::OlsrHelper::Install 00048 * (NodeContainer container); ns3::OlsrHelper::Install (Ptr<Node> 00049 * node); or ns3::OlsrHelper::InstallAll (void); 00050 * 00051 * In addition, the behavior of OLSR can be modified by changing certain 00052 * attributes. The method ns3::OlsrHelper::SetAgent () can be used 00053 * to set OLSR attributes. These include HelloInterval, TcInterval, 00054 * MidInterval, Willingness. Other parameters are defined as macros 00055 * in olsr-agent-impl.cc. 00056 */ 00057 00058 00059 #endif /* OLSR_H */