Fix formatting of Doxygen verbatim blocks and add missing tags
Co-authored-by: Peter D. Barnes, Jr <barnes26@llnl.gov>
This commit is contained in:
committed by
Peter Barnes
parent
3044f437ad
commit
0e48e6ce28
@@ -33,132 +33,131 @@ using namespace ns3;
|
||||
* \brief AODV chain regression test
|
||||
*
|
||||
* This script creates 1-dimensional grid topology and then ping last node from the first one:
|
||||
*
|
||||
* [10.1.1.1] <-- step --> [10.1.1.2] <-- step --> [10.1.1.3] <-- step --> [10.1.1.4] <-- step -->
|
||||
[10.1.1.5]
|
||||
*
|
||||
* Each node can hear only his right and his left neighbor, if they exist. When one third of total
|
||||
time expired,
|
||||
* central node moves away. After this, node 3 doesn't hear any packets from other nodes and nobody
|
||||
hears his packets.
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* [10.1.1.1] <-- step --> [10.1.1.2] <-- step --> [10.1.1.3] <-- step --> [10.1.1.4] <-- step --> [10.1.1.5]
|
||||
*/
|
||||
// clang-format on
|
||||
/**
|
||||
* Each node can hear only his right and his left neighbor, if they exist.
|
||||
* When one third of total time expired, central node moves away.
|
||||
* After this, node 3 doesn't hear any packets from other nodes and nobody hears his packets.
|
||||
* We want to demonstrate in this script
|
||||
* 1) route establishing
|
||||
* 2) broken link detection both from layer 2 information and hello messages.
|
||||
*
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* \verbatim
|
||||
Expected packets time diagram.
|
||||
Expected packets time diagram.
|
||||
|
||||
1 2 3 4 5
|
||||
<------|------>| | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1,
|
||||
hop=0, ID=1, org_seqno=1) src = 10.1.1.1
|
||||
|<------|------>| | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1,
|
||||
hop=1, ID=1, org_seqno=1) src = 10.1.1.2 | |<------|------>| | RREQ
|
||||
(orig 10.1.1.1, dst 10.1.1.5, G=1, U=1, hop=2, ID=1, org_seqno=1) src = 10.1.1.3 | |
|
||||
|<------|------>| RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1, hop=3, ID=1, org_seqno=1) src
|
||||
= 10.1.1.4 | | | |<------|------> ARP request. Who has 10.1.1.4? Tell 10.1.1.5 |
|
||||
| | |======>| ARP reply | | | |<======| RREP
|
||||
(orig 10.1.1.1, dst 10.1.1.5, hop=0, dst_seqno=0) src=10.1.1.5 | | |<------|------>| ARP
|
||||
request. Who has 10.1.1.3? Tell 10.1.1.4 | | |======>| | ARP reply | |
|
||||
|<======| | RREP (orig 10.1.1.1, dst 10.1.1.5, hop=1, dst_seqno=0) src=10.1.1.4 |
|
||||
|<------|------>| | ARP request. Who has 10.1.1.2? Tell 10.1.1.3 | |======>| | |
|
||||
ARP reply | |<======| | | RREP (orig 10.1.1.1, dst 10.1.1.5, hop=2,
|
||||
dst_seqno=0) src=10.1.1.3
|
||||
<-------|------>| | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1, hop=0, ID=1, org_seqno=1) src = 10.1.1.1
|
||||
|<------|------>| | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1, hop=1, ID=1, org_seqno=1) src = 10.1.1.2
|
||||
| |<------|------>| | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1, hop=2, ID=1, org_seqno=1) src = 10.1.1.3
|
||||
| | |<------|------>| RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, U=1, hop=3, ID=1, org_seqno=1) src = 10.1.1.4
|
||||
| | | |<------|------> ARP request. Who has 10.1.1.4? Tell 10.1.1.5
|
||||
| | | |======>| ARP reply
|
||||
| | | |<======| RREP (orig 10.1.1.1, dst 10.1.1.5, hop=0, dst_seqno=0) src=10.1.1.5
|
||||
| | |<------|------>| ARP request. Who has 10.1.1.3? Tell 10.1.1.4
|
||||
| | |======>| | ARP reply
|
||||
| | |<======| | RREP (orig 10.1.1.1, dst 10.1.1.5, hop=1, dst_seqno=0) src=10.1.1.4
|
||||
| |<------|------>| | ARP request. Who has 10.1.1.2? Tell 10.1.1.3
|
||||
| |======>| | | ARP reply
|
||||
| |<======| | | RREP (orig 10.1.1.1, dst 10.1.1.5, hop=2, dst_seqno=0) src=10.1.1.3
|
||||
|<------|------>| | | ARP request. Who has 10.1.1.1? Tell 10.1.1.2
|
||||
|======>| | | | ARP reply
|
||||
|<======| | | | RREP (orig 10.1.1.1, dst 10.1.1.5, hop=3,
|
||||
dst_seqno=0) src=10.1.1.2
|
||||
|<======| | | | RREP (orig 10.1.1.1, dst 10.1.1.5, hop=3, dst_seqno=0) src=10.1.1.2
|
||||
<-------|------>| | | | ARP request. Who has 10.1.1.2? Tell 10.1.1.1
|
||||
|<======| | | |
|
||||
|======>| | | | ICMP (ping) request 0 from 10.1.1.1 to 10.1.1.5;
|
||||
src=10.1.1.1 next_hop=10.1.1.2
|
||||
|======>| | | | ICMP (ping) request 0 from 10.1.1.1 to 10.1.1.5; src=10.1.1.1 next_hop=10.1.1.2
|
||||
|<------|------>| | | ARP request. Who has 10.1.1.3? Tell 10.1.1.2
|
||||
| |<======| | | ARP reply
|
||||
| |======>| | | ICMP (ping) request 0 from 10.1.1.1 to 10.1.1.5;
|
||||
src=10.1.1.2 next_hop=10.1.1.3 | |<------|------>| | ARP request. Who
|
||||
has 10.1.1.4? Tell 10.1.1.3 | | |<======| | ARP reply | | |======>|
|
||||
| ICMP (ping) request 0 from 10.1.1.1 to 10.1.1.5; src=10.1.1.3 next_hop=10.1.1.4 | |
|
||||
|<------|------>| ARP request. Who has 10.1.1.5? Tell 10.1.1.4 | | | |<======|
|
||||
ARP reply | | | |======>| ICMP (ping) request 0; src=10.1.1.4
|
||||
next_hop=10.1.1.5 | | | |<======| ICMP (ping) reply 0; src=10.1.1.5
|
||||
next_hop=10.1.1.4 | | |<======| | ICMP (ping) reply 0; src=10.1.1.4
|
||||
next_hop=10.1.1.3 | |<======| | | ICMP (ping) reply 0; src=10.1.1.3
|
||||
next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 0; src=10.1.1.2
|
||||
next_hop=10.1.1.1 | | | |<------|------> Hello
|
||||
| |======>| | | ICMP (ping) request 0 from 10.1.1.1 to 10.1.1.5; src=10.1.1.2 next_hop=10.1.1.3
|
||||
| |<------|------>| | ARP request. Who has 10.1.1.4? Tell 10.1.1.3
|
||||
| | |<======| | ARP reply
|
||||
| | |======>| | ICMP (ping) request 0 from 10.1.1.1 to 10.1.1.5; src=10.1.1.3 next_hop=10.1.1.4
|
||||
| | |<------|------>| ARP request. Who has 10.1.1.5? Tell 10.1.1.4
|
||||
| | | |<======| ARP reply
|
||||
| | | |======>| ICMP (ping) request 0; src=10.1.1.4 next_hop=10.1.1.5
|
||||
| | | |<======| ICMP (ping) reply 0; src=10.1.1.5 next_hop=10.1.1.4
|
||||
| | |<======| | ICMP (ping) reply 0; src=10.1.1.4 next_hop=10.1.1.3
|
||||
| |<======| | | ICMP (ping) reply 0; src=10.1.1.3 next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 0; src=10.1.1.2 next_hop=10.1.1.1
|
||||
| | | |<------|------> Hello
|
||||
|<------|------>| | | Hello
|
||||
<------|------>| | | | Hello
|
||||
<-------|------>| | | | Hello
|
||||
| |<------|------>| | Hello
|
||||
|======>| | | | ICMP (ping) request 1; src=10.1.1.1
|
||||
next_hop=10.1.1.2 | | |<------|------>| Hello | |======>| | |
|
||||
ICMP (ping) request 1; src=10.1.1.2 next_hop=10.1.1.3 | | |======>| | ICMP
|
||||
(ping) request 1; src=10.1.1.3 next_hop=10.1.1.4 | | | |======>| ICMP
|
||||
(ping) request 1; src=10.1.1.4 next_hop=10.1.1.5 | | | |<======| ICMP
|
||||
(ping) reply 1; src=10.1.1.5 next_hop=10.1.1.4 | | |<======| | ICMP (ping)
|
||||
reply 1; src=10.1.1.4 next_hop=10.1.1.3 | |<======| | | ICMP (ping) reply
|
||||
11; src=10.1.1.3 next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 1; src=10.1.1.2
|
||||
next_hop=10.1.1.1 | | | |<------|------> Hello
|
||||
|======>| | | | ICMP (ping) request 1; src=10.1.1.1 next_hop=10.1.1.2
|
||||
| | |<------|------>| Hello
|
||||
| |======>| | | ICMP (ping) request 1; src=10.1.1.2 next_hop=10.1.1.3
|
||||
| | |======>| | ICMP (ping) request 1; src=10.1.1.3 next_hop=10.1.1.4
|
||||
| | | |======>| ICMP (ping) request 1; src=10.1.1.4 next_hop=10.1.1.5
|
||||
| | | |<======| ICMP (ping) reply 1; src=10.1.1.5 next_hop=10.1.1.4
|
||||
| | |<======| | ICMP (ping) reply 1; src=10.1.1.4 next_hop=10.1.1.3
|
||||
| |<======| | | ICMP (ping) reply 11; src=10.1.1.3 next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 1; src=10.1.1.2 next_hop=10.1.1.1
|
||||
| | | |<------|------> Hello
|
||||
|<------|------>| | | Hello
|
||||
<------|------>| | | | Hello
|
||||
<-------|------>| | | | Hello
|
||||
| | |<------|------>| Hello
|
||||
| |<------|------>| | Hello
|
||||
|======>| | | | ICMP (ping) request 2; src=10.1.1.1
|
||||
next_hop=10.1.1.2 | |======>| | | ICMP (ping) request 2; src=10.1.1.2
|
||||
next_hop=10.1.1.3 | | |======>| | ICMP (ping) request 2; src=10.1.1.3
|
||||
next_hop=10.1.1.4 | | | |======>| ICMP (ping) request 2; src=10.1.1.4
|
||||
next_hop=10.1.1.5 | | | |<======| ICMP (ping) reply 2; src=10.1.1.5
|
||||
next_hop=10.1.1.4 | | |<======| | ICMP (ping) reply 2; src=10.1.1.4
|
||||
next_hop=10.1.1.3 | |<======| | | ICMP (ping) reply 2; src=10.1.1.3
|
||||
next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 2; src=10.1.1.2
|
||||
next_hop=10.1.1.1 | | | |<------|------> Hello
|
||||
<------|------>| | | | Hello
|
||||
|======>| | | | ICMP (ping) request 2; src=10.1.1.1 next_hop=10.1.1.2
|
||||
| |======>| | | ICMP (ping) request 2; src=10.1.1.2 next_hop=10.1.1.3
|
||||
| | |======>| | ICMP (ping) request 2; src=10.1.1.3 next_hop=10.1.1.4
|
||||
| | | |======>| ICMP (ping) request 2; src=10.1.1.4 next_hop=10.1.1.5
|
||||
| | | |<======| ICMP (ping) reply 2; src=10.1.1.5 next_hop=10.1.1.4
|
||||
| | |<======| | ICMP (ping) reply 2; src=10.1.1.4 next_hop=10.1.1.3
|
||||
| |<======| | | ICMP (ping) reply 2; src=10.1.1.3 next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 2; src=10.1.1.2 next_hop=10.1.1.1
|
||||
| | | |<------|------> Hello
|
||||
<-------|------>| | | | Hello
|
||||
| |<------|------>| | Hello
|
||||
|<------|------>| | | Hello
|
||||
| | |<------|------>| Hello
|
||||
|======>| | | | ICMP (ping) request 3; src=10.1.1.1
|
||||
next_hop=10.1.1.2 | |======>| | | ICMP (ping) request 3; src=10.1.1.2
|
||||
next_hop=10.1.1.3 | | |======>| | ICMP (ping) request 3; src=10.1.1.3
|
||||
next_hop=10.1.1.4 | | | |======>| ICMP (ping) request 3; src=10.1.1.4
|
||||
next_hop=10.1.1.5 | | | |<======| ICMP (ping) reply 3; src=10.1.1.5
|
||||
next_hop=10.1.1.4 | | |<======| | ICMP (ping) reply 3; src=10.1.1.4
|
||||
next_hop=10.1.1.3 | |<======| | | ICMP (ping) reply 3; src=10.1.1.3
|
||||
next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 3; src=10.1.1.2
|
||||
next_hop=10.1.1.1 | | | |<------|------> Hello
|
||||
<------|------>| | | | Hello
|
||||
|======>| | | | ICMP (ping) request 3; src=10.1.1.1 next_hop=10.1.1.2
|
||||
| |======>| | | ICMP (ping) request 3; src=10.1.1.2 next_hop=10.1.1.3
|
||||
| | |======>| | ICMP (ping) request 3; src=10.1.1.3 next_hop=10.1.1.4
|
||||
| | | |======>| ICMP (ping) request 3; src=10.1.1.4 next_hop=10.1.1.5
|
||||
| | | |<======| ICMP (ping) reply 3; src=10.1.1.5 next_hop=10.1.1.4
|
||||
| | |<======| | ICMP (ping) reply 3; src=10.1.1.4 next_hop=10.1.1.3
|
||||
| |<======| | | ICMP (ping) reply 3; src=10.1.1.3 next_hop=10.1.1.2
|
||||
|<======| | | | ICMP (ping) reply 3; src=10.1.1.2 next_hop=10.1.1.1
|
||||
| | | |<------|------> Hello
|
||||
<-------|------>| | | | Hello
|
||||
|<------|--> | | | Hello |
|
||||
| | <--|--> | | Hello |Node 3 move away => nobody hear his
|
||||
packets and node 3 doesn't hear anything ! | | | <--|------>| Hello |
|
||||
|======>| | | | ICMP (ping) request 4; src=10.1.1.1
|
||||
next_hop=10.1.1.2 | |==> | | | ICMP (ping) request 4; src=10.1.1.2
|
||||
next_hop=10.1.1.3. 7 retries.
|
||||
|<======| | | | RERR (unreachable dst 10.1.1.3 & 10.1.1.5)
|
||||
src=10.1.1.2 | | | |<------|------> Hello
|
||||
<------|------>| | | | Hello
|
||||
| | <--|--> | | Hello |Node 3 move away => nobody hear his packets and node 3 doesn't hear anything !
|
||||
| | | <--|------>| Hello |
|
||||
|======>| | | | ICMP (ping) request 4; src=10.1.1.1 next_hop=10.1.1.2
|
||||
| |==> | | | ICMP (ping) request 4; src=10.1.1.2 next_hop=10.1.1.3. 7 retries.
|
||||
|<======| | | | RERR (unreachable dst 10.1.1.3 & 10.1.1.5) src=10.1.1.2
|
||||
| | | |<------|------> Hello
|
||||
<-------|------>| | | | Hello
|
||||
|<------|--> | | | Hello
|
||||
| | <--|--> | | Hello
|
||||
| | | <--|------>| Hello
|
||||
<------|------>| | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=0,
|
||||
ID=2, org_seqno=2) src = 10.1.1.1
|
||||
|<------|--> | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=1,
|
||||
ID=2, org_seqno=2) src = 10.1.1.2 | | | |<------|------> Hello | | |
|
||||
<--|------>| Hello | | <--|--> | | Hello
|
||||
|<------|--> | | | Hello
|
||||
<------|------>| | | | Hello
|
||||
| | | |======>| RERR (unreachable dst 10.1.1.1 & 10.1.1.3)
|
||||
src=10.1.1.4 | | | |<------|------> Hello | | | <--|------>| Hello
|
||||
<-------|------>| | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=0, ID=2, org_seqno=2) src = 10.1.1.1
|
||||
|<------|--> | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=1, ID=2, org_seqno=2) src = 10.1.1.2
|
||||
| | | |<------|------> Hello
|
||||
| | | <--|------>| Hello
|
||||
| | <--|--> | | Hello
|
||||
|<------|--> | | | Hello
|
||||
<------|------>| | | | Hello
|
||||
<-------|------>| | | | Hello
|
||||
| | | |======>| RERR (unreachable dst 10.1.1.1 & 10.1.1.3) src=10.1.1.4
|
||||
| | | |<------|------> Hello
|
||||
<------|------>| | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=0,
|
||||
ID=4, org_seqno=3) src = 10.1.1.1
|
||||
|<------|--> | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=1,
|
||||
ID=4, org_seqno=3) src = 10.1.1.2
|
||||
|
||||
..................................................................
|
||||
* \endverbatim
|
||||
| | | <--|------>| Hello
|
||||
| | <--|--> | | Hello
|
||||
|<------|--> | | | Hello
|
||||
<-------|------>| | | | Hello
|
||||
| | | |<------|------> Hello
|
||||
<-------|------>| | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=0, ID=4, org_seqno=3) src = 10.1.1.1
|
||||
|<------|--> | | | RREQ (orig 10.1.1.1, dst 10.1.1.5, G=1, hop=1, ID=4, org_seqno=3) src = 10.1.1.2
|
||||
.................................................
|
||||
\endverbatim
|
||||
*/
|
||||
//clang-format on
|
||||
class ChainRegressionTest : public TestCase
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -46,15 +46,15 @@ class Time;
|
||||
namespace dsr
|
||||
{
|
||||
/**
|
||||
* \class DsrOptionHeader
|
||||
* \brief Header for Dsr Options.
|
||||
* \ingroup dsr
|
||||
* \brief header for Dsr Options.
|
||||
*/
|
||||
class DsrOptionHeader : public Header
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \struct Alignment
|
||||
* \brief represents the alignment requirements of an option header
|
||||
* \brief Represents the alignment requirements of an option header
|
||||
*/
|
||||
struct Alignment
|
||||
{
|
||||
@@ -146,7 +146,7 @@ class DsrOptionHeader : public Header
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionPad1Header
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option Pad1
|
||||
*/
|
||||
class DsrOptionPad1Header : public DsrOptionHeader
|
||||
@@ -194,7 +194,7 @@ class DsrOptionPad1Header : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionPadnHeader
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option Padn
|
||||
*/
|
||||
class DsrOptionPadnHeader : public DsrOptionHeader
|
||||
@@ -243,18 +243,16 @@ class DsrOptionPadnHeader : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionRouteRequestHeader
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option Route Request
|
||||
*/
|
||||
*
|
||||
* \verbatim
|
||||
Route Request (RREQ) Message Format
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Route Request (RREQ) Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Option Type | Opt Data Len | Identification |
|
||||
| Option Type | Opt Data Len | Identification |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Target Address |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -266,9 +264,8 @@ class DsrOptionPadnHeader : public DsrOptionHeader
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Address[n] |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
class DsrOptionRreqHeader : public DsrOptionHeader
|
||||
{
|
||||
public:
|
||||
@@ -398,14 +395,12 @@ class DsrOptionRreqHeader : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionRrepHeader
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option Route Reply
|
||||
*/
|
||||
*
|
||||
* \verbatim
|
||||
Standard Route Reply (RREP) Message Format
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Route Reply (RREP) Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -419,14 +414,13 @@ class DsrOptionRreqHeader : public DsrOptionHeader
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Address[n] |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
\endverbatim
|
||||
*
|
||||
* The Route Reply header modified for ns-3 implementation:
|
||||
*
|
||||
* \verbatim
|
||||
ns-3 Route Reply (RREP) Message Format
|
||||
|
||||
// The Route Reply header modified for ns-3 implementation
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Route Reply (RREP) Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -440,9 +434,8 @@ class DsrOptionRreqHeader : public DsrOptionHeader
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Address[n] |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
class DsrOptionRrepHeader : public DsrOptionHeader
|
||||
{
|
||||
public:
|
||||
@@ -530,7 +523,7 @@ class DsrOptionRrepHeader : public DsrOptionHeader
|
||||
*/
|
||||
Ipv4Address m_address;
|
||||
/**
|
||||
* \brief type def A vector of IPv4 Address.
|
||||
* \brief typedef for a vector of IPv4 Addresses.
|
||||
*/
|
||||
typedef std::vector<Ipv4Address> VectorIpv4Address_t;
|
||||
/**
|
||||
@@ -540,14 +533,12 @@ class DsrOptionRrepHeader : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionSRHeader
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option Source Route
|
||||
*/
|
||||
*
|
||||
* \verbatim
|
||||
Source Route (SR) Message Format
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Source Route (SR) Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -561,9 +552,8 @@ class DsrOptionRrepHeader : public DsrOptionHeader
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Address[n] |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
class DsrOptionSRHeader : public DsrOptionHeader
|
||||
{
|
||||
public:
|
||||
@@ -695,14 +685,24 @@ class DsrOptionSRHeader : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionRerrHeader
|
||||
* \brief Header of Dsr Option Route Error
|
||||
* \ingroup dsr
|
||||
* \enum ErrorType
|
||||
* \brief Error type used in several DSR Option Headers
|
||||
*/
|
||||
enum ErrorType
|
||||
{
|
||||
NODE_UNREACHABLE = 1, // !< NODE_UNREACHABLE
|
||||
FLOW_STATE_NOT_SUPPORTED = 2, // !< FLOW_STATE_NOT_SUPPORTED
|
||||
OPTION_NOT_SUPPORTED = 3, // !< OPTION_NOT_SUPPORTED
|
||||
};
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Route Error (RERR) Message Format
|
||||
\verbatim
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option Route Error
|
||||
*
|
||||
* \verbatim
|
||||
Route Error (RERR) Message Format
|
||||
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -716,17 +716,11 @@ class DsrOptionSRHeader : public DsrOptionHeader
|
||||
. Type-Specific Information .
|
||||
. .
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
/// Error type
|
||||
enum ErrorType
|
||||
{
|
||||
NODE_UNREACHABLE = 1, // !< NODE_UNREACHABLE
|
||||
FLOW_STATE_NOT_SUPPORTED = 2, // !< FLOW_STATE_NOT_SUPPORTED
|
||||
OPTION_NOT_SUPPORTED = 3, // !< OPTION_NOT_SUPPORTED
|
||||
};
|
||||
|
||||
\endverbatim
|
||||
*
|
||||
* The type-specific information field varies by type of error,
|
||||
* as detailed in the derived classes.
|
||||
*/
|
||||
class DsrOptionRerrHeader : public DsrOptionHeader
|
||||
{
|
||||
public:
|
||||
@@ -843,27 +837,12 @@ class DsrOptionRerrHeader : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Route Error (RERR) Unreachable node address option Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Option Type | Opt Data Len | Error Type |Reservd| Salvage|
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Error Source Address |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Error Destination Address |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
. .
|
||||
. Type-Specific Information .
|
||||
. .
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
/**
|
||||
* \brief The type-specific info field
|
||||
* \ingroup dsr
|
||||
* \brief Route Error (RERR) Unreachable node address option Message Format
|
||||
*
|
||||
* \verbatim
|
||||
Route Error Unreachable type-specific info field
|
||||
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -871,7 +850,6 @@ class DsrOptionRerrHeader : public DsrOptionHeader
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
class DsrOptionRerrUnreachHeader : public DsrOptionRerrHeader
|
||||
{
|
||||
public:
|
||||
@@ -998,28 +976,14 @@ class DsrOptionRerrUnreachHeader : public DsrOptionRerrHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Route Error (RERR) Unsupported option Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Option Type | Opt Data Len | Error Type |Reservd| Salvage|
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Error Source Address |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Error Destination Address |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
. .
|
||||
. Type-Specific Information .
|
||||
. .
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
/**
|
||||
* \brief The type-specific info field
|
||||
* Unsupported option
|
||||
* \ingroup dsr
|
||||
* \brief Route Error (RERR) Unsupported option Message Format
|
||||
*
|
||||
* The type-specific info field of DsrOptionRerrHeader contains
|
||||
*
|
||||
* \verbatim
|
||||
Route Error Unsupported type-specific info field
|
||||
|
||||
| 0 |
|
||||
0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+
|
||||
@@ -1027,7 +991,6 @@ class DsrOptionRerrUnreachHeader : public DsrOptionRerrHeader
|
||||
+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
class DsrOptionRerrUnsupportedHeader : public DsrOptionRerrHeader
|
||||
{
|
||||
public:
|
||||
@@ -1140,22 +1103,19 @@ class DsrOptionRerrUnsupportedHeader : public DsrOptionRerrHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionAckReqHeader
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option ack request
|
||||
*/
|
||||
*
|
||||
* \verbatim
|
||||
Acknowledgement Request (ACK_RREQ) Message Format
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Acknowledgement Request (ACK_RREQ) Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Option Type | Opt Data Len | Identification |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
class DsrOptionAckReqHeader : public DsrOptionHeader
|
||||
{
|
||||
public:
|
||||
@@ -1222,14 +1182,12 @@ class DsrOptionAckReqHeader : public DsrOptionHeader
|
||||
};
|
||||
|
||||
/**
|
||||
* \class DsrOptionAckHeader
|
||||
* \ingroup dsr
|
||||
* \brief Header of Dsr Option ack
|
||||
*/
|
||||
*
|
||||
* \verbatim
|
||||
Acknowledgement (ACK) Message Format
|
||||
|
||||
/**
|
||||
* \ingroup dsr
|
||||
* \brief Acknowledgement (ACK) Message Format
|
||||
\verbatim
|
||||
| 0 | 1 | 2 | 3 |
|
||||
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -1239,9 +1197,8 @@ class DsrOptionAckReqHeader : public DsrOptionHeader
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| ACK Destination Address |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
\endverbatim
|
||||
*/
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
class DsrOptionAckHeader : public DsrOptionHeader
|
||||
{
|
||||
public:
|
||||
@@ -1322,15 +1279,15 @@ class DsrOptionAckHeader : public DsrOptionHeader
|
||||
|
||||
private:
|
||||
/**
|
||||
* \brief identification field
|
||||
* \brief Identification field
|
||||
*/
|
||||
uint16_t m_identification;
|
||||
/**
|
||||
* \brief ack source address
|
||||
* \brief Ack source address
|
||||
*/
|
||||
Ipv4Address m_realSrcAddress;
|
||||
/**
|
||||
* \brief ack destination address
|
||||
* \brief Ack destination address
|
||||
*/
|
||||
Ipv4Address m_realDstAddress;
|
||||
};
|
||||
|
||||
@@ -41,13 +41,13 @@ namespace ns3
|
||||
* \ingroup dhcp
|
||||
*
|
||||
* \class DhcpHeader
|
||||
* \brief BOOTP header with DHCP messages supports the following options:
|
||||
* \brief BOOTP header with DHCP messages. This supports the following options:
|
||||
* Subnet Mask (1), Address Request (50), Refresh Lease Time (51),
|
||||
* DHCP Message Type (53), DHCP Server ID (54), Renew Time (58),
|
||||
* Rebind Time (59) and End (255) of BOOTP
|
||||
|
||||
\verbatim
|
||||
0 1 2 3
|
||||
*
|
||||
* \verbatim
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| op (1) | htype (1) | hlen (1) | hops (1) |
|
||||
@@ -78,8 +78,7 @@ namespace ns3
|
||||
| |
|
||||
| options (variable) |
|
||||
+---------------------------------------------------------------+
|
||||
\endverbatim
|
||||
|
||||
\endverbatim
|
||||
*/
|
||||
class DhcpHeader : public Header
|
||||
{
|
||||
|
||||
@@ -18,6 +18,15 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Generating neighbor caches in various scopes
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
*
|
||||
* This example shows how to generate neighbor caches in various scopes.
|
||||
*
|
||||
* This example shows how to generate neighbor caches on the scope of
|
||||
* a channel, a NetDeviceContainer, an InterfaceContainer and globally.
|
||||
* The example also shows a scenario that auto-generated neighbor caches
|
||||
@@ -35,248 +44,233 @@
|
||||
*
|
||||
* IPv4 Network Topology
|
||||
* \verbatim
|
||||
|
||||
LAN 10.1.1.0/24
|
||||
n0 --------------- n1 n2 n3
|
||||
| | |
|
||||
===============
|
||||
LAN 10.1.2.0/24
|
||||
\endverbatim
|
||||
IPv4 Network Topology
|
||||
LAN 10.1.1.0/24
|
||||
n0 --------------- n1 n2 n3
|
||||
| | |
|
||||
===============
|
||||
LAN 10.1.2.0/24
|
||||
\endverbatim
|
||||
*
|
||||
*IPv6 Network Topology
|
||||
* \verbatim
|
||||
|
||||
LAN 2001:1::/64
|
||||
n0 --------------- n1 n2 n3
|
||||
| | |
|
||||
===============
|
||||
LAN 2001:2::/64
|
||||
\endverbatim
|
||||
IPv6 Network Topology
|
||||
LAN 2001:1::/64
|
||||
n0 --------------- n1 n2 n3
|
||||
| | |
|
||||
===============
|
||||
LAN 2001:2::/64
|
||||
\endverbatim
|
||||
*
|
||||
* Expected Outputs:
|
||||
* IPv4 (default):
|
||||
* Generate ARP caches for all devices (default) :
|
||||
* \verbatim
|
||||
ARP Cache of node 0 at time 0
|
||||
10.1.1.2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 1 at time 0
|
||||
10.1.1.1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 2 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 3 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 0 at time 0
|
||||
10.1.1.2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 1 at time 0
|
||||
10.1.1.1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 2 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 3 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
\endverbatim
|
||||
*
|
||||
* Generate ARP caches for the left channel (--useChannel):
|
||||
* \verbatim
|
||||
ARP Cache of node 0 at time 0
|
||||
10.1.1.2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 1 at time 0
|
||||
10.1.1.1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 2 at time 0
|
||||
ARP Cache of node 3 at time 0
|
||||
ARP Cache of node 0 at time 0
|
||||
10.1.1.2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 1 at time 0
|
||||
10.1.1.1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 2 at time 0
|
||||
ARP Cache of node 3 at time 0
|
||||
\endverbatim
|
||||
*
|
||||
* Generate ARP caches for devices on the right side (--useNetDeviceContainer):
|
||||
* \verbatim
|
||||
ARP Cache of node 0 at time 0
|
||||
ARP Cache of node 1 at time 0
|
||||
10.1.2.2 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 2 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 3 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 0 at time 0
|
||||
ARP Cache of node 1 at time 0
|
||||
10.1.2.2 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 2 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.3 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 3 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
\endverbatim
|
||||
*
|
||||
* Generate ARP caches for specific interfaces (--useInterfaceContainer):
|
||||
* \verbatim
|
||||
ARP Cache of node 0 at time 0
|
||||
10.1.1.2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 1 at time 0
|
||||
ARP Cache of node 2 at time 0
|
||||
ARP Cache of node 3 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 0 at time 0
|
||||
10.1.1.2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
ARP Cache of node 1 at time 0
|
||||
ARP Cache of node 2 at time 0
|
||||
ARP Cache of node 3 at time 0
|
||||
10.1.2.1 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
10.1.2.2 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
\endverbatim
|
||||
*
|
||||
* Do not generate neighbor cache (--noGenerate):
|
||||
* \verbatim
|
||||
ARP Cache of node 0 at time 0
|
||||
ARP Cache of node 1 at time 0
|
||||
ARP Cache of node 2 at time 0
|
||||
ARP Cache of node 3 at time 0
|
||||
ARP Cache of node 0 at time 0
|
||||
ARP Cache of node 1 at time 0
|
||||
ARP Cache of node 2 at time 0
|
||||
ARP Cache of node 3 at time 0
|
||||
\endverbatim
|
||||
*
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* sending packet with pre-generated neighbor caches(--sendTraffic)
|
||||
* \verbatim
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=0
|
||||
time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND
|
||||
(seq=1 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512)
|
||||
AND (seq=2 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 ->
|
||||
(size=512) AND (seq=3 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to
|
||||
03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=4 time=+1s) Rx pkt from
|
||||
03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=5 time=+1s) Rx pkt
|
||||
from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=6 time=+1s) Rx
|
||||
pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=7
|
||||
time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND
|
||||
(seq=8 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512)
|
||||
AND (seq=9 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 ->
|
||||
(size=512) AND (seq=10 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to
|
||||
03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=11 time=+1s) Rx pkt from
|
||||
03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=12 time=+1.00001s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=0 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=1 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=2 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=3 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=4 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=5 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=6 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=7 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=8 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=9 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=10 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=11 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=12 time=+1.00001s)
|
||||
\endverbatim
|
||||
*
|
||||
* sending packet without pre-generated neighbor caches(--sendTraffic --noGenerate)
|
||||
* \verbatim
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=0
|
||||
time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND
|
||||
(seq=1 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512)
|
||||
AND (seq=2 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 ->
|
||||
(size=512) AND (seq=8 time=+1s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to
|
||||
03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=9 time=+1s) Rx pkt from
|
||||
03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=10 time=+1s) Rx pkt
|
||||
from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=11 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=12
|
||||
time=+1.00001s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512)
|
||||
AND (seq=13 time=+1.00001s) Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 ->
|
||||
(size=512) AND (seq=14 time=+1.00001s) \endverbatim
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=0 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=1 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=2 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=8 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=9 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=10 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=11 time=+1s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=12 time=+1.00001s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=13 time=+1.00001s)
|
||||
Rx pkt from 03-07-0a:01:01:01:01:c0:00 to 03-07-0a:01:01:02:09:00:00 -> (size=512) AND (seq=14 time=+1.00001s)
|
||||
\endverbatim
|
||||
*
|
||||
*/
|
||||
// clang-format on
|
||||
/**
|
||||
* IPv6 (--useIPv6):
|
||||
* Generate NDISC caches for all devices (default) :
|
||||
* \verbatim
|
||||
NDISC Cache of node 0 at time +0s
|
||||
2001:1::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 1 at time +0s
|
||||
2001:1::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 2 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 3 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 0 at time +0s
|
||||
2001:1::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 1 at time +0s
|
||||
2001:1::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 2 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 3 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
\endverbatim
|
||||
*
|
||||
* Generate NDISC caches for the left channel (--useChannel):
|
||||
* \verbatim
|
||||
NDISC Cache of node 0 at time +0s
|
||||
2001:1::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 1 at time +0s
|
||||
2001:1::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 2 at time +0s
|
||||
NDISC Cache of node 3 at time +0s
|
||||
NDISC Cache of node 0 at time +0s
|
||||
2001:1::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 1 at time +0s
|
||||
2001:1::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:1 dev 0 lladdr 02-06-00:00:00:00:00:01 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 2 at time +0s
|
||||
NDISC Cache of node 3 at time +0s
|
||||
\endverbatim
|
||||
*
|
||||
* Generate NDISC caches for devices on the right side (--useNetDeviceContainer):
|
||||
* \verbatim
|
||||
NDISC Cache of node 0 at time +0s
|
||||
NDISC Cache of node 1 at time +0s
|
||||
2001:2::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 2 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 3 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 0 at time +0s
|
||||
NDISC Cache of node 1 at time +0s
|
||||
2001:2::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 1 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 1 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 2 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:5 dev 0 lladdr 02-06-00:00:00:00:00:05 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 3 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
\endverbatim
|
||||
*
|
||||
* Generate NDISC caches for specific interfaces (--useInterfaceContainer):
|
||||
* \verbatim
|
||||
NDISC Cache of node 0 at time +0s
|
||||
2001:1::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 1 at time +0s
|
||||
NDISC Cache of node 2 at time +0s
|
||||
NDISC Cache of node 3 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 0 at time +0s
|
||||
2001:1::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:2 dev 0 lladdr 02-06-00:00:00:00:00:02 STATIC_AUTOGENERATED
|
||||
NDISC Cache of node 1 at time +0s
|
||||
NDISC Cache of node 2 at time +0s
|
||||
NDISC Cache of node 3 at time +0s
|
||||
2001:2::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
2001:2::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:3 dev 0 lladdr 02-06-00:00:00:00:00:03 STATIC_AUTOGENERATED
|
||||
fe80::200:ff:fe00:4 dev 0 lladdr 02-06-00:00:00:00:00:04 STATIC_AUTOGENERATED
|
||||
\endverbatim
|
||||
*
|
||||
* Do not generate neighbor cache (--noGenerate):
|
||||
* \verbatim
|
||||
NDISC Cache of node 0 at time +0s
|
||||
NDISC Cache of node 1 at time +0s
|
||||
NDISC Cache of node 2 at time +0s
|
||||
NDISC Cache of node 3 at time +0s
|
||||
NDISC Cache of node 0 at time +0s
|
||||
NDISC Cache of node 1 at time +0s
|
||||
NDISC Cache of node 2 at time +0s
|
||||
NDISC Cache of node 3 at time +0s
|
||||
\endverbatim
|
||||
*
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* sending packet with pre-generated neighbor caches(--sendTraffic)
|
||||
* \verbatim
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=0 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=1 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=2 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=3 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=4 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=5 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=6 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=7 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=8 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=9 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=10 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=11 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=0 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=1 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=2 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=3 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=4 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=5 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=6 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=7 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=8 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=9 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=10 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=11 time=+1s)
|
||||
\endverbatim
|
||||
*
|
||||
* sending packet without pre-generated neighbor caches(--sendTraffic --noGenerate)
|
||||
* \verbatim
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=8 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=9 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=10 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=11 time=+1s) Rx
|
||||
pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=12
|
||||
time=+1.00001s) Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=13
|
||||
time=+1.00001s) Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=14
|
||||
time=+1.00001s) Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=15
|
||||
time=+1.00001s) Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to
|
||||
04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=16
|
||||
time=+1.00001s) \endverbatim
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=8 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=9 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=10 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=11 time=+1s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=12 time=+1.00001s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=13 time=+1.00001s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=14 time=+1.00001s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=15 time=+1.00001s)
|
||||
Rx pkt from 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:01:01:c0 to 04-12-20:01:00:01:00:00:00:00:02:00:00:ff:fe:00:00:02:09:00 -> (size=512) AND (seq=16 time=+1.00001s)
|
||||
\endverbatim
|
||||
*/
|
||||
// clang-format on
|
||||
|
||||
#include "ns3/applications-module.h"
|
||||
#include "ns3/core-module.h"
|
||||
|
||||
@@ -130,7 +130,7 @@ TcpNewReno::~TcpNewReno()
|
||||
* > SMSS bytes upon receipt of an ACK covering new data, we RECOMMEND
|
||||
* > that TCP implementations increase cwnd, per:
|
||||
* >
|
||||
* > cwnd += min (N, SMSS) (2)
|
||||
* > cwnd += min (N, SMSS) (2)
|
||||
* >
|
||||
* > where N is the number of previously unacknowledged bytes acknowledged
|
||||
* > in the incoming ACK.
|
||||
|
||||
@@ -30,41 +30,45 @@ using namespace ns3;
|
||||
*
|
||||
* \brief This is a test for intermediate reply and saving routing
|
||||
* information about neighbour. 4 stations and 3 UDP ping streams are initiated.
|
||||
* \verbatim
|
||||
* <-----------|-----------> Broadcast frame
|
||||
* |----------->| Unicast frame
|
||||
* (Node ID) 0 1 2 3
|
||||
* (MAC addr) 10 11 12 13
|
||||
* | |<-----------|----------->| ARP request (12 asks who has 10)
|
||||
* | | |<-----------|-----------> ARP request
|
||||
* |<-----------|----------->| | ARP request
|
||||
* <-----------|----------->| | | PREQ
|
||||
* |<-----------|----------->| | PREQ
|
||||
* | |<-----------| | PREP
|
||||
* |<-----------| | | PREP
|
||||
* |----------->| | | ARP reply
|
||||
* | |----------->| | ARP REPLY
|
||||
* | |<-----------| | Data
|
||||
* |............|............|............|
|
||||
* |<-----------|----------->| | ARP request (11 asks who has 10)
|
||||
* |............|............|............|
|
||||
* |----------->| | | ARP reply
|
||||
* ^ Note, that this arp reply goes without route
|
||||
* discovery procedure, because route is known from
|
||||
* previous PREQ/PREP exchange
|
||||
* |<-----------| | | DATA
|
||||
* |............|............|............|
|
||||
* <-----------|----------->| | | ARP request (10 asks who has 13)
|
||||
* |............|............|............|
|
||||
* | | |<-----------|-----------> PREQ (13 asks about 10) DO=0
|
||||
* RF=1 | | |----------->| PREP (intermediate reply - 12 knows
|
||||
* about 10) | |<-----------|----------->| PREQ DO=1 RF=0
|
||||
* |............|............|............|
|
||||
* |----------->| | | PREP
|
||||
* | |----------->| | PREP
|
||||
* | | |----------->| PREP
|
||||
* \endverbatim
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* \verbatim
|
||||
<-----------|-----------> Broadcast frame
|
||||
|----------->| Unicast frame
|
||||
(Node ID) 0 1 2 3
|
||||
(MAC addr) 10 11 12 13
|
||||
| |<-----------|----------->| ARP request (12 asks who has 10)
|
||||
| | |<-----------|-----------> ARP request
|
||||
|<-----------|----------->| | ARP request
|
||||
<-----------|----------->| | | PREQ
|
||||
|<-----------|----------->| | PREQ
|
||||
| |<-----------| | PREP
|
||||
|<-----------| | | PREP
|
||||
|----------->| | | ARP reply
|
||||
| |----------->| | ARP REPLY
|
||||
| |<-----------| | Data
|
||||
|............|............|............|
|
||||
|<-----------|----------->| | ARP request (11 asks who has 10)
|
||||
|............|............|............|
|
||||
|----------->| | | ARP reply
|
||||
^ Note, that this arp reply goes without route
|
||||
discovery procedure, because route is known from
|
||||
previous PREQ/PREP exchange
|
||||
|<-----------| | | DATA
|
||||
|............|............|............|
|
||||
<-----------|----------->| | | ARP request (10 asks who has 13)
|
||||
|............|............|............|
|
||||
| | |<-----------|-----------> PREQ (13 asks about 10) DO=0 RF=1
|
||||
| | |----------->| PREP (intermediate reply - 12 knows about 10)
|
||||
| |<-----------|----------->| PREQ DO=1 RF=0
|
||||
|............|............|............|
|
||||
|----------->| | | PREP
|
||||
| |----------->| | PREP
|
||||
| | |----------->| PREP
|
||||
\endverbatim
|
||||
*/
|
||||
// clang-format on
|
||||
class HwmpDoRfRegressionTest : public TestCase
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -40,59 +40,45 @@ namespace olsr
|
||||
* It is expected that only second station will send TC messages.
|
||||
*
|
||||
* Expected trace (20 seconds, note random b-cast jitter):
|
||||
\verbatim
|
||||
1 2 3
|
||||
|<------|------>| HELLO (empty) src = 10.1.1.2
|
||||
| |<------|------> HELLO (empty) src = 10.1.1.3
|
||||
<------|------>| | HELLO (empty) src = 10.1.1.1
|
||||
<------|------>| | HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Asymmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
|<------|------>| HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Asymmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: Symmetric, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: Symmetric, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
|<======|======>| TC (10.1.1.3; 10.1.1.1) + HELLO (Link Type: Symmetric,
|
||||
Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2 | |<------|------>
|
||||
HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
|<======|======>| TC (10.1.1.3; 10.1.1.1) src = 10.1.1.2
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.1 | |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src
|
||||
= 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type:
|
||||
Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2 \endverbatim
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* \verbatim
|
||||
1 2 3
|
||||
|<------|------>| HELLO (empty) src = 10.1.1.2
|
||||
| |<------|------> HELLO (empty) src = 10.1.1.3
|
||||
<------|------>| | HELLO (empty) src = 10.1.1.1
|
||||
<------|------>| | HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.3; Link Type: Asymmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
|<------|------>| HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.3; Link Type: Asymmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: Symmetric, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: Symmetric, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
|<======|======>| TC (10.1.1.3; 10.1.1.1) + HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
|<======|======>| TC (10.1.1.3; 10.1.1.1) src = 10.1.1.2
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
<------|------>| | HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
|
||||
| |<------|------> HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
|
||||
|<------|------>| HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
|
||||
\endverbatim
|
||||
*/
|
||||
// clang-format on
|
||||
class TcRegressionTest : public TestCase
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -35,21 +35,29 @@ class WifiMpdu;
|
||||
* Maintains the state and information about transmitted MPDUs with Ack Policy set to Block Ack
|
||||
* for an originator station. The state diagram is as follows:
|
||||
*
|
||||
\verbatim
|
||||
/------------\ send ADDBARequest ----------------
|
||||
| START |------------------>| PENDING |-------
|
||||
\------------/ ---------------- \
|
||||
^ receive / | \
|
||||
| ADDBAResponse / | \
|
||||
| (failure) v | \
|
||||
| --------------- | --------------------->
|
||||
---------------- | | REJECTED | | receive ADDBAResponse (success) |
|
||||
ESTABLISHED | | --------------- | no -------------------->
|
||||
---------------- | receive ^ | ADDBAResponse / | ADDBAResponse \
|
||||
| / | (failure) \ v / | ---------------- /
|
||||
|-------------------------| NO_REPLY |---------
|
||||
Reset after timeout ----------------
|
||||
*/
|
||||
// clang-format off
|
||||
/**
|
||||
* \verbatim
|
||||
/------------\ send ADDBARequest ----------------
|
||||
| START |------------------>| PENDING |-------
|
||||
\------------/ ---------------- \
|
||||
^ receive / | \
|
||||
| ADDBAResponse / | \
|
||||
| (failure) v | \
|
||||
| --------------- | ---------------------> ----------------
|
||||
| | REJECTED | | receive ADDBAResponse (success) | ESTABLISHED |
|
||||
| --------------- | no --------------------> ----------------
|
||||
| receive ^ | ADDBAResponse /
|
||||
| ADDBAResponse \ | /
|
||||
| (failure) \ v /
|
||||
| ---------------- /
|
||||
|-------------------------| NO_REPLY |---------
|
||||
Reset after timeout ----------------
|
||||
\endverbatim
|
||||
*/
|
||||
// clang-format on
|
||||
/**
|
||||
*
|
||||
* See also OriginatorBlockAckAgreement::State
|
||||
*/
|
||||
|
||||
@@ -476,15 +476,14 @@ namespace ns3
|
||||
* This class implements the DSA-RSP message described by "IEEE Standard for
|
||||
* Local and metropolitan area networks Part 16: Air Interface for Fixed Broadband Wireless Access
|
||||
* Systems" 6.3.2.3.11 DSA-RSP message, page 63
|
||||
*
|
||||
* \verbatim
|
||||
* 0 7 15 23
|
||||
* +-------------+-------------+-------------+
|
||||
* |Mngt msg type| Transaction ID |
|
||||
* +-------------+-------------+-------------+
|
||||
* | Conf Code | Service Flow TLV |
|
||||
* +~~~~~~~~~~~~~+~~~~~~~~~~~~~+~~~~~~~~~~~~~+
|
||||
* \endverbatim
|
||||
0 7 15 23
|
||||
+-------------+-------------+-------------+
|
||||
|Mngt msg type| Transaction ID |
|
||||
+-------------+-------------+-------------+
|
||||
| Conf Code | Service Flow TLV |
|
||||
+~~~~~~~~~~~~~+~~~~~~~~~~~~~+~~~~~~~~~~~~~+
|
||||
\endverbatim
|
||||
*/
|
||||
class DsaRsp : public Header
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user