internet: (fixes #2890) Icmpv4 "ECHO" is defined in system-wide headers
This commit is contained in:
@@ -75,6 +75,7 @@ Bugs fixed
|
||||
- Bug 2876 - tcp: Do not shrink adv window after we send the FIN
|
||||
- Bug 2877 - wifi: Wrong data types for CWmin and CWmax
|
||||
- Bug 2885 - lte: Tests fail for CQA and PSS testsuites
|
||||
- Bug 2890 - internet: Icmpv4 "ECHO" is defined in system-wide headers
|
||||
|
||||
Known issues
|
||||
------------
|
||||
|
||||
@@ -105,7 +105,7 @@ ChainRegressionTest::SendPing ()
|
||||
echo.SetData (dataPacket);
|
||||
p->AddHeader (echo);
|
||||
Icmpv4Header header;
|
||||
header.SetType (Icmpv4Header::ECHO);
|
||||
header.SetType (Icmpv4Header::ICMPV4_ECHO);
|
||||
header.SetCode (0);
|
||||
if (Node::ChecksumEnabled ())
|
||||
{
|
||||
|
||||
@@ -128,7 +128,7 @@ V4Ping::Receive (Ptr<Socket> socket)
|
||||
NS_ASSERT (ipv4.GetProtocol () == 1); // protocol should be icmp.
|
||||
Icmpv4Header icmp;
|
||||
p->RemoveHeader (icmp);
|
||||
if (icmp.GetType () == Icmpv4Header::ECHO_REPLY)
|
||||
if (icmp.GetType () == Icmpv4Header::ICMPV4_ECHO_REPLY)
|
||||
{
|
||||
Icmpv4Echo echo;
|
||||
p->RemoveHeader (echo);
|
||||
@@ -225,7 +225,7 @@ V4Ping::Send ()
|
||||
echo.SetData (dataPacket);
|
||||
p->AddHeader (echo);
|
||||
Icmpv4Header header;
|
||||
header.SetType (Icmpv4Header::ECHO);
|
||||
header.SetType (Icmpv4Header::ICMPV4_ECHO);
|
||||
header.SetCode (0);
|
||||
if (Node::ChecksumEnabled ())
|
||||
{
|
||||
|
||||
6
src/internet/bindings/modulegen__gcc_ILP32.py
generated
6
src/internet/bindings/modulegen__gcc_ILP32.py
generated
@@ -311,17 +311,17 @@ def register_types(module):
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4DestinationUnreachable [class]
|
||||
module.add_class('Icmpv4DestinationUnreachable', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4DestinationUnreachable::ErrorDestinationUnreachable_e [enumeration]
|
||||
module.add_enum('ErrorDestinationUnreachable_e', ['NET_UNREACHABLE', 'HOST_UNREACHABLE', 'PROTOCOL_UNREACHABLE', 'PORT_UNREACHABLE', 'FRAG_NEEDED', 'SOURCE_ROUTE_FAILED'], outer_class=root_module['ns3::Icmpv4DestinationUnreachable'])
|
||||
module.add_enum('ErrorDestinationUnreachable_e', ['ICMPV4_NET_UNREACHABLE', 'ICMPV4_HOST_UNREACHABLE', 'ICMPV4_PROTOCOL_UNREACHABLE', 'ICMPV4_PORT_UNREACHABLE', 'ICMPV4_FRAG_NEEDED', 'ICMPV4_SOURCE_ROUTE_FAILED'], outer_class=root_module['ns3::Icmpv4DestinationUnreachable'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4Echo [class]
|
||||
module.add_class('Icmpv4Echo', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4Header [class]
|
||||
module.add_class('Icmpv4Header', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4Header::Type_e [enumeration]
|
||||
module.add_enum('Type_e', ['ECHO_REPLY', 'DEST_UNREACH', 'ECHO', 'TIME_EXCEEDED'], outer_class=root_module['ns3::Icmpv4Header'])
|
||||
module.add_enum('Type_e', ['ICMPV4_ECHO_REPLY', 'ICMPV4_DEST_UNREACH', 'ICMPV4_ECHO', 'ICMPV4_TIME_EXCEEDED'], outer_class=root_module['ns3::Icmpv4Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4TimeExceeded [class]
|
||||
module.add_class('Icmpv4TimeExceeded', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4TimeExceeded::ErrorTimeExceeded_e [enumeration]
|
||||
module.add_enum('ErrorTimeExceeded_e', ['TIME_TO_LIVE', 'FRAGMENT_REASSEMBLY'], outer_class=root_module['ns3::Icmpv4TimeExceeded'])
|
||||
module.add_enum('ErrorTimeExceeded_e', ['ICMPV4_TIME_TO_LIVE', 'ICMPV4_FRAGMENT_REASSEMBLY'], outer_class=root_module['ns3::Icmpv4TimeExceeded'])
|
||||
## icmpv6-header.h (module 'internet'): ns3::Icmpv6Header [class]
|
||||
module.add_class('Icmpv6Header', parent=root_module['ns3::Header'])
|
||||
## icmpv6-header.h (module 'internet'): ns3::Icmpv6Header::Type_e [enumeration]
|
||||
|
||||
6
src/internet/bindings/modulegen__gcc_LP64.py
generated
6
src/internet/bindings/modulegen__gcc_LP64.py
generated
@@ -311,17 +311,17 @@ def register_types(module):
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4DestinationUnreachable [class]
|
||||
module.add_class('Icmpv4DestinationUnreachable', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4DestinationUnreachable::ErrorDestinationUnreachable_e [enumeration]
|
||||
module.add_enum('ErrorDestinationUnreachable_e', ['NET_UNREACHABLE', 'HOST_UNREACHABLE', 'PROTOCOL_UNREACHABLE', 'PORT_UNREACHABLE', 'FRAG_NEEDED', 'SOURCE_ROUTE_FAILED'], outer_class=root_module['ns3::Icmpv4DestinationUnreachable'])
|
||||
module.add_enum('ErrorDestinationUnreachable_e', ['ICMPV4_NET_UNREACHABLE', 'ICMPV4_HOST_UNREACHABLE', 'ICMPV4_PROTOCOL_UNREACHABLE', 'ICMPV4_PORT_UNREACHABLE', 'ICMPV4_FRAG_NEEDED', 'ICMPV4_SOURCE_ROUTE_FAILED'], outer_class=root_module['ns3::Icmpv4DestinationUnreachable'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4Echo [class]
|
||||
module.add_class('Icmpv4Echo', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4Header [class]
|
||||
module.add_class('Icmpv4Header', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4Header::Type_e [enumeration]
|
||||
module.add_enum('Type_e', ['ECHO_REPLY', 'DEST_UNREACH', 'ECHO', 'TIME_EXCEEDED'], outer_class=root_module['ns3::Icmpv4Header'])
|
||||
module.add_enum('Type_e', ['ICMPV4_ECHO_REPLY', 'ICMPV4_DEST_UNREACH', 'ICMPV4_ECHO', 'ICMPV4_TIME_EXCEEDED'], outer_class=root_module['ns3::Icmpv4Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4TimeExceeded [class]
|
||||
module.add_class('Icmpv4TimeExceeded', parent=root_module['ns3::Header'])
|
||||
## icmpv4.h (module 'internet'): ns3::Icmpv4TimeExceeded::ErrorTimeExceeded_e [enumeration]
|
||||
module.add_enum('ErrorTimeExceeded_e', ['TIME_TO_LIVE', 'FRAGMENT_REASSEMBLY'], outer_class=root_module['ns3::Icmpv4TimeExceeded'])
|
||||
module.add_enum('ErrorTimeExceeded_e', ['ICMPV4_TIME_TO_LIVE', 'ICMPV4_FRAGMENT_REASSEMBLY'], outer_class=root_module['ns3::Icmpv4TimeExceeded'])
|
||||
## icmpv6-header.h (module 'internet'): ns3::Icmpv6Header [class]
|
||||
module.add_class('Icmpv6Header', parent=root_module['ns3::Header'])
|
||||
## icmpv6-header.h (module 'internet'): ns3::Icmpv6Header::Type_e [enumeration]
|
||||
|
||||
@@ -155,14 +155,14 @@ Icmpv4L4Protocol::SendDestUnreachFragNeeded (Ipv4Header header,
|
||||
uint16_t nextHopMtu)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << header << *orgData << nextHopMtu);
|
||||
SendDestUnreach (header, orgData, Icmpv4DestinationUnreachable::FRAG_NEEDED, nextHopMtu);
|
||||
SendDestUnreach (header, orgData, Icmpv4DestinationUnreachable::ICMPV4_FRAG_NEEDED, nextHopMtu);
|
||||
}
|
||||
void
|
||||
Icmpv4L4Protocol::SendDestUnreachPort (Ipv4Header header,
|
||||
Ptr<const Packet> orgData)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << header << *orgData);
|
||||
SendDestUnreach (header, orgData, Icmpv4DestinationUnreachable::PORT_UNREACHABLE, 0);
|
||||
SendDestUnreach (header, orgData, Icmpv4DestinationUnreachable::ICMPV4_PORT_UNREACHABLE, 0);
|
||||
}
|
||||
void
|
||||
Icmpv4L4Protocol::SendDestUnreach (Ipv4Header header, Ptr<const Packet> orgData,
|
||||
@@ -175,7 +175,7 @@ Icmpv4L4Protocol::SendDestUnreach (Ipv4Header header, Ptr<const Packet> orgData,
|
||||
unreach.SetHeader (header);
|
||||
unreach.SetData (orgData);
|
||||
p->AddHeader (unreach);
|
||||
SendMessage (p, header.GetSource (), Icmpv4Header::DEST_UNREACH, code);
|
||||
SendMessage (p, header.GetSource (), Icmpv4Header::ICMPV4_DEST_UNREACH, code);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -189,11 +189,11 @@ Icmpv4L4Protocol::SendTimeExceededTtl (Ipv4Header header, Ptr<const Packet> orgD
|
||||
p->AddHeader (time);
|
||||
if (!isFragment)
|
||||
{
|
||||
SendMessage (p, header.GetSource (), Icmpv4Header::TIME_EXCEEDED, Icmpv4TimeExceeded::TIME_TO_LIVE);
|
||||
SendMessage (p, header.GetSource (), Icmpv4Header::ICMPV4_TIME_EXCEEDED, Icmpv4TimeExceeded::ICMPV4_TIME_TO_LIVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessage (p, header.GetSource (), Icmpv4Header::TIME_EXCEEDED, Icmpv4TimeExceeded::FRAGMENT_REASSEMBLY);
|
||||
SendMessage (p, header.GetSource (), Icmpv4Header::ICMPV4_TIME_EXCEEDED, Icmpv4TimeExceeded::ICMPV4_FRAGMENT_REASSEMBLY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ Icmpv4L4Protocol::HandleEcho (Ptr<Packet> p,
|
||||
Icmpv4Echo echo;
|
||||
p->RemoveHeader (echo);
|
||||
reply->AddHeader (echo);
|
||||
SendMessage (reply, destination, source, Icmpv4Header::ECHO_REPLY, 0, 0);
|
||||
SendMessage (reply, destination, source, Icmpv4Header::ICMPV4_ECHO_REPLY, 0, 0);
|
||||
}
|
||||
void
|
||||
Icmpv4L4Protocol::Forward (Ipv4Address source, Icmpv4Header icmp,
|
||||
@@ -268,13 +268,13 @@ Icmpv4L4Protocol::Receive (Ptr<Packet> p,
|
||||
Icmpv4Header icmp;
|
||||
p->RemoveHeader (icmp);
|
||||
switch (icmp.GetType ()) {
|
||||
case Icmpv4Header::ECHO:
|
||||
case Icmpv4Header::ICMPV4_ECHO:
|
||||
HandleEcho (p, icmp, header.GetSource (), header.GetDestination ());
|
||||
break;
|
||||
case Icmpv4Header::DEST_UNREACH:
|
||||
case Icmpv4Header::ICMPV4_DEST_UNREACH:
|
||||
HandleDestUnreach (p, icmp, header.GetSource (), header.GetDestination ());
|
||||
break;
|
||||
case Icmpv4Header::TIME_EXCEEDED:
|
||||
case Icmpv4Header::ICMPV4_TIME_EXCEEDED:
|
||||
HandleTimeExceeded (p, icmp, header.GetSource (), header.GetDestination ());
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -45,10 +45,10 @@ public:
|
||||
* ICMP type code.
|
||||
*/
|
||||
enum Type_e {
|
||||
ECHO_REPLY = 0,
|
||||
DEST_UNREACH = 3,
|
||||
ECHO = 8,
|
||||
TIME_EXCEEDED = 11
|
||||
ICMPV4_ECHO_REPLY = 0,
|
||||
ICMPV4_DEST_UNREACH = 3,
|
||||
ICMPV4_ECHO = 8,
|
||||
ICMPV4_TIME_EXCEEDED = 11
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -176,12 +176,12 @@ public:
|
||||
* ICMP error code : Destination Unreachable
|
||||
*/
|
||||
enum ErrorDestinationUnreachable_e {
|
||||
NET_UNREACHABLE = 0,
|
||||
HOST_UNREACHABLE = 1,
|
||||
PROTOCOL_UNREACHABLE = 2,
|
||||
PORT_UNREACHABLE = 3,
|
||||
FRAG_NEEDED = 4,
|
||||
SOURCE_ROUTE_FAILED = 5
|
||||
ICMPV4_NET_UNREACHABLE = 0,
|
||||
ICMPV4_HOST_UNREACHABLE = 1,
|
||||
ICMPV4_PROTOCOL_UNREACHABLE = 2,
|
||||
ICMPV4_PORT_UNREACHABLE = 3,
|
||||
ICMPV4_FRAG_NEEDED = 4,
|
||||
ICMPV4_SOURCE_ROUTE_FAILED = 5
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -251,8 +251,8 @@ public:
|
||||
*/
|
||||
enum ErrorTimeExceeded_e
|
||||
{
|
||||
TIME_TO_LIVE = 0,
|
||||
FRAGMENT_REASSEMBLY = 1
|
||||
ICMPV4_TIME_TO_LIVE = 0,
|
||||
ICMPV4_FRAGMENT_REASSEMBLY = 1
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -131,7 +131,7 @@ Bug780Test::SendPing ()
|
||||
echo.SetData (dataPacket);
|
||||
p->AddHeader (echo);
|
||||
Icmpv4Header header;
|
||||
header.SetType (Icmpv4Header::ECHO);
|
||||
header.SetType (Icmpv4Header::ICMPV4_ECHO);
|
||||
header.SetCode (0);
|
||||
if (Node::ChecksumEnabled ())
|
||||
{
|
||||
@@ -158,7 +158,7 @@ Bug780Test::Receive (Ptr<Socket> socket)
|
||||
NS_ASSERT (ipv4.GetProtocol () == 1); // protocol should be icmp.
|
||||
Icmpv4Header icmp;
|
||||
p->RemoveHeader (icmp);
|
||||
if (icmp.GetType () == Icmpv4Header::ECHO_REPLY)
|
||||
if (icmp.GetType () == Icmpv4Header::ICMPV4_ECHO_REPLY)
|
||||
{
|
||||
m_recvCount++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user