#include <ipv4-l3-protocol.h>
Inherits ns3::Ipv4.
Public Member Functions | |
void | Insert (Ptr< Ipv4L4Protocol > protocol) |
Ptr< Ipv4L4Protocol > | GetProtocol (int protocolNumber) const |
void | Remove (Ptr< Ipv4L4Protocol > protocol) |
void | SetDefaultTtl (uint8_t ttl) |
void | Receive (Ptr< NetDevice > device, Ptr< const Packet > p, uint16_t protocol, const Address &from, const Address &to, NetDevice::PacketType packetType) |
void | Send (Ptr< Packet > packet, Ipv4Address source, Ipv4Address destination, uint8_t protocol, Ptr< Ipv4Route > route) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::Ipv4L3Protocol. | |
Protected Member Functions | |
virtual void | DoDispose (void) |
virtual void | NotifyNewAggregate () |
This is the actual implementation of IP. It contains APIs to send and receive packets at the IP layer, as well as APIs for IP routing.
virtual void ns3::Ipv4L3Protocol::DoDispose | ( | void | ) | [protected, virtual] |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
Reimplemented from ns3::Object.
Ptr<Ipv4L4Protocol> ns3::Ipv4L3Protocol::GetProtocol | ( | int | protocolNumber | ) | const |
protocolNumber | number of protocol to lookup in this L4 Demux |
static TypeId ns3::Ipv4L3Protocol::GetTypeId | ( | void | ) | [static] |
This method returns the TypeId associated to ns3::Ipv4L3Protocol.
This object is accessible through the following paths with Config::Set and Config::Connect:
Reimplemented from ns3::Object.
void ns3::Ipv4L3Protocol::Insert | ( | Ptr< Ipv4L4Protocol > | protocol | ) |
protocol | a template for the protocol to add to this L4 Demux. |
virtual void ns3::Ipv4L3Protocol::NotifyNewAggregate | ( | ) | [protected, virtual] |
This function will notify other components connected to the node that a new stack member is now connected This will be used to notify Layer 3 protocol of layer 4 protocol stack to connect them together.
Reimplemented from ns3::Object.
void ns3::Ipv4L3Protocol::Receive | ( | Ptr< NetDevice > | device, | |
Ptr< const Packet > | p, | |||
uint16_t | protocol, | |||
const Address & | from, | |||
const Address & | to, | |||
NetDevice::PacketType | packetType | |||
) |
Lower layer calls this method after calling L3Demux::Lookup The ARP subclass needs to know from which NetDevice this packet is coming to:
void ns3::Ipv4L3Protocol::Remove | ( | Ptr< Ipv4L4Protocol > | protocol | ) |
protocol | protocol to remove from this demux. |
void ns3::Ipv4L3Protocol::Send | ( | Ptr< Packet > | packet, | |
Ipv4Address | source, | |||
Ipv4Address | destination, | |||
uint8_t | protocol, | |||
Ptr< Ipv4Route > | route | |||
) |
packet | packet to send | |
source | source address of packet | |
destination | address of packet | |
protocol | number of packet | |
route | route entry |
void ns3::Ipv4L3Protocol::SetDefaultTtl | ( | uint8_t | ttl | ) |
ttl | default ttl to use |