Skip to content

Commit b638ac8

Browse files
Refactor PROT_NUMBER to use iana numbers instead (fixes #1047)
1 parent 81dc38a commit b638ac8

66 files changed

Lines changed: 383 additions & 298 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

examples/tutorial/seventh.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ main(int argc, char* argv[])
169169

170170
PcapHelper pcapHelper;
171171
Ptr<PcapFileWrapper> file =
172-
pcapHelper.CreateFile("seventh.pcap", std::ios::out, iana::LinkType::PPP);
172+
pcapHelper.CreateFile("seventh.pcap", std::ios::out, iana::linktype::PPP);
173173
devices.Get(1)->TraceConnectWithoutContext("PhyRxDrop", MakeBoundCallback(&RxDrop, file));
174174

175175
// Use GnuplotHelper to plot the packet byte count over time

examples/tutorial/sixth.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ main(int argc, char* argv[])
134134

135135
PcapHelper pcapHelper;
136136
Ptr<PcapFileWrapper> file =
137-
pcapHelper.CreateFile("sixth.pcap", std::ios::out, iana::LinkType::PPP);
137+
pcapHelper.CreateFile("sixth.pcap", std::ios::out, iana::linktype::PPP);
138138
devices.Get(1)->TraceConnectWithoutContext("PhyRxDrop", MakeBoundCallback(&RxDrop, file));
139139

140140
Simulator::Stop(Seconds(20));

src/aodv/model/aodv-routing-protocol.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818

1919
#include "ns3/adhoc-wifi-mac.h"
2020
#include "ns3/boolean.h"
21+
#include "ns3/iana-internet-protocol-numbers.h"
2122
#include "ns3/inet-socket-address.h"
2223
#include "ns3/log.h"
2324
#include "ns3/pointer.h"
2425
#include "ns3/random-variable-stream.h"
2526
#include "ns3/string.h"
2627
#include "ns3/trace-source-accessor.h"
2728
#include "ns3/udp-header.h"
28-
#include "ns3/udp-l4-protocol.h"
2929
#include "ns3/udp-socket-factory.h"
3030
#include "ns3/wifi-mpdu.h"
3131
#include "ns3/wifi-net-device.h"
@@ -560,7 +560,7 @@ RoutingProtocol::RouteInput(Ptr<const Packet> p,
560560
{
561561
return true;
562562
}
563-
if (header.GetProtocol() == UdpL4Protocol::PROT_NUMBER)
563+
if (header.GetProtocol() == iana::internetprotocolnumbers::UDP)
564564
{
565565
UdpHeader udpHeader;
566566
p->PeekHeader(udpHeader);

src/click/model/ipv4-l3-click-protocol.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ Ipv4L3ClickProtocol::SetupLoopback()
326326
uint32_t index = AddIpv4Interface(interface);
327327
Ptr<Node> node = GetObject<Node>();
328328
node->RegisterProtocolHandler(MakeCallback(&Ipv4L3ClickProtocol::Receive, this),
329-
iana::ieee802::IPV4,
329+
iana::Ieee802Numbers::IPV4,
330330
device);
331331
interface->SetUp();
332332
if (m_routingProtocol)
@@ -620,7 +620,7 @@ Ipv4L3ClickProtocol::AddInterface(Ptr<NetDevice> device)
620620
NS_LOG_FUNCTION(this << &device);
621621
Ptr<Node> node = GetObject<Node>();
622622
node->RegisterProtocolHandler(MakeCallback(&Ipv4L3ClickProtocol::Receive, this),
623-
iana::ieee802::IPV4,
623+
iana::Ieee802Numbers::IPV4,
624624
device);
625625
node->RegisterProtocolHandler(MakeCallback(&Ipv4L3ClickProtocol::Receive, this),
626626
iana::Ieee802Numbers::ARP,
@@ -770,7 +770,7 @@ Ipv4L3ClickProtocol::Receive(Ptr<NetDevice> device,
770770
NS_LOG_LOGIC("Packet from " << from << " received on node " << m_node->GetId());
771771

772772
// Forward packet to raw sockets, if any
773-
if (protocol == iana::ieee802::IPV4 && !m_sockets.empty())
773+
if (protocol == iana::Ieee802Numbers::IPV4 && !m_sockets.empty())
774774
{
775775
Ptr<Packet> packetForRawSocket = p->Copy();
776776
int32_t interface = GetInterfaceForDevice(device);

src/click/model/ipv4-l3-click-protocol.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class Ipv4L3ClickProtocol : public Ipv4
6363
* Protocol number for Ipv4 L3
6464
*/
6565
NS_DEPRECATED_3_49("Use the numbers defined in iana-ieee802-numbers.h")
66-
static constexpr uint16_t PROT_NUMBER = iana::ieee802::IPV4;
66+
static constexpr uint16_t PROT_NUMBER = iana::Ieee802Numbers::IPV4;
6767

6868
Ipv4L3ClickProtocol();
6969
~Ipv4L3ClickProtocol() override;

src/csma/helper/csma-helper.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ CsmaHelper::EnablePcapInternal(std::string prefix,
8686
}
8787

8888
Ptr<PcapFileWrapper> file =
89-
pcapHelper.CreateFile(filename, std::ios::out, iana::LinkType::ETHERNET);
89+
pcapHelper.CreateFile(filename, std::ios::out, iana::linktype::ETHERNET);
9090
if (promiscuous)
9191
{
9292
pcapHelper.HookDefaultSink<CsmaNetDevice>(device, "PromiscSniffer", file);

src/dsr/model/dsr-options.cc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
#include "ns3/assert.h"
2929
#include "ns3/fatal-error.h"
30+
#include "ns3/iana-internet-protocol-numbers.h"
3031
#include "ns3/icmpv4-l4-protocol.h"
3132
#include "ns3/ip-l4-protocol.h"
3233
#include "ns3/ipv4-address.h"
@@ -639,7 +640,7 @@ DsrOptionRreq::Process(Ptr<Packet> packet,
639640
* This part add dsr header to the packet and send route reply packet
640641
*/
641642
DsrRoutingHeader dsrRoutingHeader;
642-
dsrRoutingHeader.SetNextHeader(DsrRouting::NO_NEXT_HEADER);
643+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
643644
// Set the route for route reply
644645
SetRoute(nextHop, ipv4Address);
645646

@@ -826,7 +827,7 @@ DsrOptionRreq::Process(Ptr<Packet> packet,
826827
* This part add dsr header to the packet and send route reply packet
827828
*/
828829
DsrRoutingHeader dsrRoutingHeader;
829-
dsrRoutingHeader.SetNextHeader(DsrRouting::NO_NEXT_HEADER);
830+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
830831

831832
dsrRoutingHeader.AddDsrOption(rrep);
832833

@@ -887,7 +888,7 @@ DsrOptionRreq::Process(Ptr<Packet> packet,
887888
{
888889
NS_LOG_DEBUG("The RREQ header length " << rreq.GetLength());
889890

890-
dsrRoutingHeader.SetNextHeader(DsrRouting::NO_NEXT_HEADER);
891+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
891892
dsrRoutingHeader.AddDsrOption(rreq);
892893
}
893894
// Get the TTL value
@@ -1108,7 +1109,7 @@ DsrOptionRrep::Process(Ptr<Packet> packet,
11081109
* This part add dsr routing header to the packet and send reply
11091110
*/
11101111
DsrRoutingHeader dsrRoutingHeader;
1111-
dsrRoutingHeader.SetNextHeader(DsrRouting::NO_NEXT_HEADER);
1112+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
11121113

11131114
NS_LOG_DEBUG("The reply header length " << (uint32_t)rrep.GetLength());
11141115
dsrRoutingHeader.AddDsrOption(rrep);

src/dsr/model/dsr-routing-header.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
#include "ns3/assert.h"
2828
#include "ns3/header.h"
29+
#include "ns3/iana-internet-protocol-numbers.h"
2930
#include "ns3/log.h"
3031

3132
#include <vector>
@@ -58,7 +59,7 @@ DsrRoutingHeader::GetInstanceTypeId() const
5859

5960
DsrRoutingHeader::DsrRoutingHeader()
6061
: m_optionData(0),
61-
m_nextHeader(DsrRouting::NO_NEXT_HEADER)
62+
m_nextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER)
6263
{
6364
}
6465

src/dsr/model/dsr-routing.cc

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
#include "ns3/double.h"
3535
#include "ns3/enum.h"
3636
#include "ns3/iana-ieee802-numbers.h"
37+
#include "ns3/iana-internet-protocol-numbers.h"
3738
#include "ns3/icmpv4-l4-protocol.h"
3839
#include "ns3/inet-socket-address.h"
3940
#include "ns3/ipv4-address.h"
4041
#include "ns3/ipv4-header.h"
41-
#include "ns3/ipv4-l3-protocol.h"
4242
#include "ns3/ipv4-route.h"
4343
#include "ns3/ipv6-interface.h"
4444
#include "ns3/llc-snap-header.h"
@@ -784,7 +784,7 @@ int
784784
DsrRouting::GetProtocolNumber() const
785785
{
786786
// / This is the protocol number for DSR which is 48
787-
return PROT_NUMBER;
787+
return iana::internetprotocolnumbers::DSR;
788788
}
789789

790790
uint32_t
@@ -895,7 +895,7 @@ DsrRouting::CheckSendBuffer()
895895
dsrRoutingHeader.AddDsrOption(newUnreach);
896896
dsrRoutingHeader.AddDsrOption(sourceRoute);
897897

898-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
898+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
899899

900900
Ptr<Packet> newPacket = Create<Packet>();
901901
newPacket->AddHeader(dsrRoutingHeader); // Add the routing header with rerr and
@@ -952,8 +952,9 @@ DsrRouting::CheckSendBuffer()
952952
}
953953
dsrRoutingHeader.AddDsrOption(sourceRoute);
954954

955-
cleanP->GetSize() == 0 ? dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER)
956-
: dsrRoutingHeader.SetNextHeader(protocol);
955+
cleanP->GetSize() == 0
956+
? dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER)
957+
: dsrRoutingHeader.SetNextHeader(protocol);
957958

958959
cleanP->AddHeader(dsrRoutingHeader);
959960
Ptr<const Packet> mtP = cleanP->Copy();
@@ -1028,7 +1029,7 @@ DsrRouting::PromiscReceive(Ptr<NetDevice> device,
10281029
const Address& to,
10291030
NetDevice::PacketType packetType)
10301031
{
1031-
if (protocol != iana::Ieee802Numbers::IPV4)
1032+
if (protocol != iana::ieee802numbers::IPV4)
10321033
{
10331034
return false;
10341035
}
@@ -1037,7 +1038,7 @@ DsrRouting::PromiscReceive(Ptr<NetDevice> device,
10371038
Ipv4Header ipv4Header;
10381039
pktMinusIpHdr->RemoveHeader(ipv4Header);
10391040

1040-
if (ipv4Header.GetProtocol() != DsrRouting::PROT_NUMBER)
1041+
if (ipv4Header.GetProtocol() != iana::internetprotocolnumbers::DSR)
10411042
{
10421043
return false;
10431044
}
@@ -1054,7 +1055,8 @@ DsrRouting::PromiscReceive(Ptr<NetDevice> device,
10541055
*/
10551056
Ipv4Address ourAddress = m_ipv4->GetAddress(1, 0).GetLocal();
10561057
// check if this is a data packet by inspecting options and if the ipv4 address matches
1057-
if (dsrRouting.GetNextHeader() != NO_NEXT_HEADER && ourAddress == m_mainAddress)
1058+
if (dsrRouting.GetNextHeader() != iana::internetprotocolnumbers::NO_NEXT_HEADER &&
1059+
ourAddress == m_mainAddress)
10581060
{
10591061
NS_LOG_DEBUG("data packet receives " << packet->GetUid());
10601062
Ipv4Address sourceIp = ipv4Header.GetSource();
@@ -1307,7 +1309,7 @@ DsrRouting::SendUnreachError(Ipv4Address unreachNode,
13071309

13081310
dsrRoutingHeader.AddDsrOption(rerrUnreachHeader);
13091311

1310-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
1312+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
13111313
newPacket->AddHeader(dsrRoutingHeader);
13121314
Ptr<Packet> p = newPacket->Copy();
13131315
// Save the error packet in the error buffer
@@ -1316,7 +1318,7 @@ DsrRouting::SendUnreachError(Ipv4Address unreachNode,
13161318
m_mainAddress,
13171319
unreachNode,
13181320
m_sendBufferTimeout,
1319-
NO_NEXT_HEADER);
1321+
iana::internetprotocolnumbers::NO_NEXT_HEADER);
13201322
bool result = m_errorBuffer.Enqueue(newEntry); // Enqueue the packet in send buffer
13211323
if (result)
13221324
{
@@ -1359,7 +1361,7 @@ DsrRouting::SendUnreachError(Ipv4Address unreachNode,
13591361
dsrRoutingHeader.AddDsrOption(rerrUnreachHeader);
13601362
dsrRoutingHeader.AddDsrOption(sourceRoute);
13611363

1362-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
1364+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
13631365
newPacket->AddHeader(dsrRoutingHeader);
13641366

13651367
SetRoute(nextHop, m_mainAddress);
@@ -1407,7 +1409,7 @@ DsrRouting::ForwardErrPacket(DsrOptionRerrUnreachHeader& rerr,
14071409
dsrRoutingHeader.AddDsrOption(rerr);
14081410
dsrRoutingHeader.AddDsrOption(sourceRoute);
14091411

1410-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
1412+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
14111413
Ptr<Packet> packet = Create<Packet>();
14121414
packet->AddHeader(dsrRoutingHeader);
14131415
Ptr<NetDevice> dev = m_ip->GetNetDevice(m_ip->GetInterfaceForAddress(m_mainAddress));
@@ -1763,7 +1765,8 @@ DsrRouting::SendRealDown(DsrNetworkQueueEntry& newEntry)
17631765
DsrRoutingHeader dsrHdr;
17641766
Ptr<Packet> copy = packet->Copy();
17651767
copy->RemoveHeader(dsrHdr);
1766-
if (dsrHdr.GetNextHeader() != NO_NEXT_HEADER && copy->GetSize() == 0)
1768+
if (dsrHdr.GetNextHeader() != iana::internetprotocolnumbers::NO_NEXT_HEADER &&
1769+
copy->GetSize() == 0)
17671770
{
17681771
NS_LOG_UNCOND("Warning: found a packet with a valid protocol but no content");
17691772
}
@@ -1933,7 +1936,7 @@ DsrRouting::SendPacketFromBuffer(const DsrOptionSRHeader& sourceRoute,
19331936
DsrRoutingHeader newRoutingHeader;
19341937
newRoutingHeader.AddDsrOption(newUnreach);
19351938
newRoutingHeader.AddDsrOption(sourceRoute);
1936-
newRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
1939+
newRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
19371940
// When found a route and use it, UseExtends to the link cache
19381941
if (m_routeCache->IsLinkCache())
19391942
{
@@ -2740,7 +2743,7 @@ DsrRouting::SendInitialRequest(Ipv4Address source, Ipv4Address destination)
27402743

27412744
dsrRoutingHeader.AddDsrOption(rreqHeader); // Add the rreqHeader to the dsr extension header
27422745

2743-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
2746+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
27442747
packet->AddHeader(dsrRoutingHeader);
27452748

27462749
// Schedule the route requests retry with non-propagation set true
@@ -2759,7 +2762,11 @@ DsrRouting::SendInitialRequest(Ipv4Address source, Ipv4Address destination)
27592762
m_rreqTable->FindAndUpdate(destination);
27602763
SendRequest(nonPropPacket, source);
27612764
// Schedule the next route request
2762-
ScheduleRreqRetry(packet, address, nonProp, m_requestId, NO_NEXT_HEADER);
2765+
ScheduleRreqRetry(packet,
2766+
address,
2767+
nonProp,
2768+
m_requestId,
2769+
iana::internetprotocolnumbers::NO_NEXT_HEADER);
27632770
}
27642771

27652772
void
@@ -2795,7 +2802,10 @@ DsrRouting::SendErrorRequest(DsrOptionRerrUnreachHeader& rerr, uint8_t protocol)
27952802
{
27962803
NS_LOG_DEBUG("Error next hop address");
27972804
Ptr<Packet> packet = Create<Packet>();
2798-
PacketNewRoute(packet, m_mainAddress, dst, NO_NEXT_HEADER);
2805+
PacketNewRoute(packet,
2806+
m_mainAddress,
2807+
dst,
2808+
iana::internetprotocolnumbers::NO_NEXT_HEADER);
27992809
return;
28002810
}
28012811
SetRoute(nextHop, m_mainAddress);
@@ -2829,7 +2839,7 @@ DsrRouting::SendErrorRequest(DsrOptionRerrUnreachHeader& rerr, uint8_t protocol)
28292839
dsrRoutingHeader.AddDsrOption(rreqHeader); // Add the rreqHeader to the dsr extension header
28302840
dsrRoutingHeader.AddDsrOption(rerr);
28312841

2832-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
2842+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
28332843
dstP->AddHeader(dsrRoutingHeader);
28342844
// Schedule the route requests retry, propagate the route request message as it contains
28352845
// error
@@ -2851,7 +2861,11 @@ DsrRouting::SendErrorRequest(DsrOptionRerrUnreachHeader& rerr, uint8_t protocol)
28512861
NS_LOG_INFO("Only when there is no existing route request time when the initial route "
28522862
"request is scheduled");
28532863
SendRequest(propPacket, m_mainAddress);
2854-
ScheduleRreqRetry(dstP, address, nonProp, m_requestId, NO_NEXT_HEADER);
2864+
ScheduleRreqRetry(dstP,
2865+
address,
2866+
nonProp,
2867+
m_requestId,
2868+
iana::internetprotocolnumbers::NO_NEXT_HEADER);
28552869
}
28562870
else
28572871
{
@@ -2862,7 +2876,11 @@ DsrRouting::SendErrorRequest(DsrOptionRerrUnreachHeader& rerr, uint8_t protocol)
28622876
* is false
28632877
*/
28642878
CancelRreqTimer(originalDst, false);
2865-
ScheduleRreqRetry(dstP, address, nonProp, m_requestId, NO_NEXT_HEADER);
2879+
ScheduleRreqRetry(dstP,
2880+
address,
2881+
nonProp,
2882+
m_requestId,
2883+
iana::internetprotocolnumbers::NO_NEXT_HEADER);
28662884
}
28672885
}
28682886
}
@@ -3157,7 +3175,7 @@ DsrRouting::SendGratuitousReply(Ipv4Address source,
31573175

31583176
dsrRoutingHeader.AddDsrOption(rrep);
31593177

3160-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
3178+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
31613179
Ptr<Packet> newPacket = Create<Packet>();
31623180
newPacket->AddHeader(dsrRoutingHeader);
31633181
/*
@@ -3253,7 +3271,7 @@ DsrRouting::SendAck(uint16_t ackId,
32533271

32543272
dsrRoutingHeader.AddDsrOption(ack);
32553273

3256-
dsrRoutingHeader.SetNextHeader(NO_NEXT_HEADER);
3274+
dsrRoutingHeader.SetNextHeader(iana::internetprotocolnumbers::NO_NEXT_HEADER);
32573275

32583276
Ptr<Packet> packet = Create<Packet>();
32593277
packet->AddHeader(dsrRoutingHeader);
@@ -3411,7 +3429,7 @@ DsrRouting::Receive(Ptr<Packet> p, const Ipv4Header& ip, Ptr<Ipv4Interface> inco
34113429
// / Get the next header
34123430
uint8_t nextHeader = dsrRoutingHeader.GetNextHeader();
34133431
// If NextHeader indicates NO_NEXT_HEADER, do not attempt L4 lookup
3414-
if (nextHeader == NO_NEXT_HEADER)
3432+
if (nextHeader == iana::internetprotocolnumbers::NO_NEXT_HEADER)
34153433
{
34163434
NS_LOG_INFO("NextHeader is NO_NEXT_HEADER; not delivering to L4");
34173435
return IpL4Protocol::RX_OK;

src/dsr/model/dsr-routing.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,12 @@ class DsrRouting : public IpL4Protocol
105105
/**
106106
* @brief Define the dsr protocol number.
107107
*/
108+
NS_DEPRECATED_3_49("Use the numbers in iana-intenernet-protocols-numbers.h instead")
108109
static constexpr uint8_t PROT_NUMBER = 48;
109110
/**
110111
* @brief Define the NO_NEXT_HEADER to set in control packets.
111112
*/
113+
NS_DEPRECATED_3_49("Use the numbers in iana-intenernet-protocols-numbers.h instead")
112114
static constexpr uint8_t NO_NEXT_HEADER = 59;
113115
/**
114116
* @brief Constructor.

0 commit comments

Comments
 (0)