View | Details | Raw Unified | Return to bug 1099
Collapse All | Expand All

(-)a/src/aodv/model/aodv-routing-protocol.cc (-5 / +24 lines)
 Lines 105-111    Link Here 
105
  MyRouteTimeout (Time (2 * std::max (PathDiscoveryTime, ActiveRouteTimeout))),
105
  MyRouteTimeout (Time (2 * std::max (PathDiscoveryTime, ActiveRouteTimeout))),
106
  HelloInterval (Seconds (1)),
106
  HelloInterval (Seconds (1)),
107
  AllowedHelloLoss (2),
107
  AllowedHelloLoss (2),
108
  DeletePeriod (Time (5 * std::max (ActiveRouteTimeout, HelloInterval))),
108
  // The current implementation using hello messages to maintain connectivity
109
  // Per RFC 3561
110
  // DELETE_PERIOD must be at least ALLOWED_HELLO_LOSS * HELLO_INTERVAL
111
  // TODO : Implement the case when EnableHello is set to False
112
  DeletePeriod (2 * 1),
109
  NextHopWait (NodeTraversalTime + MilliSeconds (10)),
113
  NextHopWait (NodeTraversalTime + MilliSeconds (10)),
110
  TimeoutBuffer (2),
114
  TimeoutBuffer (2),
111
  BlackListTimeout (Time (RreqRetries * NetTraversalTime)),
115
  BlackListTimeout (Time (RreqRetries * NetTraversalTime)),
 Lines 182-187    Link Here 
182
                   TimeValue (Seconds (15)),
186
                   TimeValue (Seconds (15)),
183
                   MakeTimeAccessor (&RoutingProtocol::DeletePeriod),
187
                   MakeTimeAccessor (&RoutingProtocol::DeletePeriod),
184
                   MakeTimeChecker ())
188
                   MakeTimeChecker ())
189
    .AddAttribute (" DeletePeriod", "DeletePeriod is intended to provide an upper bound on the time for which an upstream node A "
190
                   "can have a neighbor B as an active next hop for destination D, while B has invalidated the route to D."
191
		   "WARNING: must be overridden for the case when EnableHello is set to False. To be implemented"
192
// The current implementation using hello messages to maintain connectivity. Per RFC 3561 DELETE_PERIOD must be at least ALLOWED_HELLO_LOSS * HELLO_INTERVAL"
193
//                    "can have a neighbor B as an active next hop for destination D, while B has invalidated the route to D."
194
                   " = 2 * 1",
195
                   TimeValue (Seconds (2)),
196
                   MakeTimeAccessor (&RoutingProtocol::DeletePeriod),
197
                   MakeTimeChecker ())
185
    .AddAttribute ("TimeoutBuffer", "Its purpose is to provide a buffer for the timeout so that if the RREP is delayed"
198
    .AddAttribute ("TimeoutBuffer", "Its purpose is to provide a buffer for the timeout so that if the RREP is delayed"
186
                   " due to congestion, a timeout is less likely to occur while the RREP is still en route back to the source.",
199
                   " due to congestion, a timeout is less likely to occur while the RREP is still en route back to the source.",
187
                   UintegerValue (2),
200
                   UintegerValue (2),
 Lines 873-880    Link Here 
873
  ScheduleRreqRetry (dst);
886
  ScheduleRreqRetry (dst);
874
  if (EnableHello)
887
  if (EnableHello)
875
    {
888
    {
876
      m_htimer.Cancel ();
889
      if(!m_htimer.IsRunning ()) 
877
      m_htimer.Schedule (HelloInterval - Time (0.01 * MilliSeconds (UniformVariable ().GetInteger (0, 10))));
890
        {
891
          m_htimer.Cancel ();
892
          m_htimer.Schedule (HelloInterval - Time (0.01 * MilliSeconds (UniformVariable ().GetInteger (0, 10))));
893
        }
878
    }
894
    }
879
}
895
}
880
896
 Lines 1137-1144    Link Here 
1137
1153
1138
  if (EnableHello)
1154
  if (EnableHello)
1139
    {
1155
    {
1140
      m_htimer.Cancel ();
1156
      if (!m_htimer.IsRunning ())
1141
      m_htimer.Schedule (HelloInterval - Time (0.1 * MilliSeconds (UniformVariable ().GetInteger (0, 10))));
1157
        {
1158
          m_htimer.Cancel ();
1159
          m_htimer.Schedule (HelloInterval - Time (0.1 * MilliSeconds (UniformVariable ().GetInteger (0, 10))));
1160
        }
1142
    }
1161
    }
1143
}
1162
}
1144
1163

Return to bug 1099