1 #ifndef ICMPV4_L4_PROTOCOL_H
2 #define ICMPV4_L4_PROTOCOL_H
6 #include "ns3/ipv4-address.h"
64 uint8_t code, uint16_t nextHopMtu);
69 const uint8_t payload[8]);
virtual ~Icmpv4L4Protocol()
virtual void SetDownTarget6(IpL4Protocol::DownTargetCallback6 cb)
void SetNode(Ptr< Node > node)
void Forward(Ipv4Address source, Icmpv4Header icmp, uint32_t info, Ipv4Header ipHeader, const uint8_t payload[8])
void SendDestUnreachFragNeeded(Ipv4Header header, Ptr< const Packet > orgData, uint16_t nextHopMtu)
void SendTimeExceededTtl(Ipv4Header header, Ptr< const Packet > orgData)
virtual IpL4Protocol::DownTargetCallback GetDownTarget(void) const
virtual int GetProtocolNumber(void) const
L4 Protocol abstract base class.
static TypeId GetTypeId(void)
void SendDestUnreachPort(Ipv4Header header, Ptr< const Packet > orgData)
virtual void NotifyNewAggregate()
IpL4Protocol::DownTargetCallback m_downTarget
virtual enum IpL4Protocol::RxStatus Receive(Ptr< Packet > p, Ipv4Header const &header, Ptr< Ipv4Interface > incomingInterface)
Ipv4 addresses are stored in host order in this class.
virtual void DoDispose(void)
static uint16_t GetStaticProtocolNumber(void)
void SendDestUnreach(Ipv4Header header, Ptr< const Packet > orgData, uint8_t code, uint16_t nextHopMtu)
virtual IpL4Protocol::DownTargetCallback6 GetDownTarget6(void) const
void HandleTimeExceeded(Ptr< Packet > p, Icmpv4Header icmp, Ipv4Address source, Ipv4Address destination)
a unique identifier for an interface.
virtual void SetDownTarget(IpL4Protocol::DownTargetCallback cb)
void SendMessage(Ptr< Packet > packet, Ipv4Address dest, uint8_t type, uint8_t code)
void HandleEcho(Ptr< Packet > p, Icmpv4Header header, Ipv4Address source, Ipv4Address destination)
static const uint8_t PROT_NUMBER
void HandleDestUnreach(Ptr< Packet > p, Icmpv4Header header, Ipv4Address source, Ipv4Address destination)