|
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)), |
|
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), |
|
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 |
|
|
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 |
|