diff --git a/src/aodv/test/aodv-regression.h b/src/aodv/test/aodv-regression.h index f94582fc1..df3ec7625 100644 --- a/src/aodv/test/aodv-regression.h +++ b/src/aodv/test/aodv-regression.h @@ -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: diff --git a/src/dsr/model/dsr-option-header.h b/src/dsr/model/dsr-option-header.h index 8f2131291..5f79b8567 100644 --- a/src/dsr/model/dsr-option-header.h +++ b/src/dsr/model/dsr-option-header.h @@ -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 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; }; diff --git a/src/internet-apps/model/dhcp-header.h b/src/internet-apps/model/dhcp-header.h index 2e6e80be5..b2fab6113 100644 --- a/src/internet-apps/model/dhcp-header.h +++ b/src/internet-apps/model/dhcp-header.h @@ -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 { diff --git a/src/internet/examples/neighbor-cache-example.cc b/src/internet/examples/neighbor-cache-example.cc index 50b332ba2..657bfafee 100644 --- a/src/internet/examples/neighbor-cache-example.cc +++ b/src/internet/examples/neighbor-cache-example.cc @@ -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" diff --git a/src/internet/model/tcp-congestion-ops.cc b/src/internet/model/tcp-congestion-ops.cc index 7e3bc0963..e7c5e11d5 100644 --- a/src/internet/model/tcp-congestion-ops.cc +++ b/src/internet/model/tcp-congestion-ops.cc @@ -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. diff --git a/src/mesh/test/dot11s/hwmp-target-flags-regression.h b/src/mesh/test/dot11s/hwmp-target-flags-regression.h index bc21345ae..715a6583c 100644 --- a/src/mesh/test/dot11s/hwmp-target-flags-regression.h +++ b/src/mesh/test/dot11s/hwmp-target-flags-regression.h @@ -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: diff --git a/src/olsr/test/tc-regression-test.h b/src/olsr/test/tc-regression-test.h index 9f0f57df4..fe526d60d 100644 --- a/src/olsr/test/tc-regression-test.h +++ b/src/olsr/test/tc-regression-test.h @@ -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: diff --git a/src/wifi/model/originator-block-ack-agreement.h b/src/wifi/model/originator-block-ack-agreement.h index e80faff4b..74ba98749 100644 --- a/src/wifi/model/originator-block-ack-agreement.h +++ b/src/wifi/model/originator-block-ack-agreement.h @@ -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 */ diff --git a/src/wimax/model/mac-messages.h b/src/wimax/model/mac-messages.h index 21dfee8f1..37accd78a 100644 --- a/src/wimax/model/mac-messages.h +++ b/src/wimax/model/mac-messages.h @@ -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 {