A Discrete-Event Network Simulator
API
arp-queue-disc-item.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018 Universita' degli Studi di Napoli Federico II
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  */
18 
19 #ifndef ARP_QUEUE_DISC_ITEM_H
20 #define ARP_QUEUE_DISC_ITEM_H
21 
22 #include "ns3/packet.h"
23 #include "ns3/queue-item.h"
24 #include "arp-header.h"
25 
26 namespace ns3 {
27 
37 public:
45  ArpQueueDiscItem (Ptr<Packet> p, const Address & addr, uint16_t protocol, const ArpHeader & header);
46 
47  virtual ~ArpQueueDiscItem ();
48 
52  virtual uint32_t GetSize (void) const;
53 
57  const ArpHeader & GetHeader (void) const;
58 
62  virtual void AddHeader (void);
63 
68  virtual void Print (std::ostream &os) const;
69 
74  virtual bool Mark (void);
75 
82  virtual uint32_t Hash (uint32_t perturbation) const;
83 
84 private:
104 
107 };
108 
109 } // namespace ns3
110 
111 #endif /* ARP_QUEUE_DISC_ITEM_H */
a polymophic address class
Definition: address.h:91
The packet header for an ARP packet.
Definition: arp-header.h:35
ArpQueueDiscItem is a subclass of QueueDiscItem which stores ARP packets.
ArpQueueDiscItem()
Default constructor.
virtual uint32_t Hash(uint32_t perturbation) const
Computes the hash of the packet's 5-tuple.
ArpHeader m_header
The ARP header.
bool m_headerAdded
True if the header has already been added to the packet.
virtual bool Mark(void)
Inherited from the base class, but we cannot mark ARP packets.
virtual void AddHeader(void)
Add the header to the packet.
ArpQueueDiscItem(const ArpQueueDiscItem &)
Copy constructor.
const ArpHeader & GetHeader(void) const
ArpQueueDiscItem & operator=(const ArpQueueDiscItem &)
Assignment operator.
virtual void Print(std::ostream &os) const
Print the item contents.
virtual uint32_t GetSize(void) const
QueueDiscItem is the abstract base class for items that are stored in a queue disc.
Definition: queue-item.h:148
Every class exported by the ns3 library is enclosed in the ns3 namespace.