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