L4 Protocol abstract base class. More...
#include <ip-l4-protocol.h>
Public Types | |
typedef Callback< void, Ptr < Packet >, Ipv4Address, Ipv4Address, uint8_t, Ptr < Ipv4Route > > | DownTargetCallback |
typedef Callback< void, Ptr < Packet >, Ipv6Address, Ipv6Address, uint8_t, Ptr < Ipv6Route > > | DownTargetCallback6 |
enum | RxStatus { RX_OK, RX_CSUM_FAILED, RX_ENDPOINT_CLOSED, RX_ENDPOINT_UNREACH } |
Public Member Functions | |
virtual | ~IpL4Protocol () |
virtual DownTargetCallback | GetDownTarget (void) const =0 |
virtual DownTargetCallback6 | GetDownTarget6 (void) const =0 |
virtual int | GetProtocolNumber (void) const =0 |
virtual enum RxStatus | Receive (Ptr< Packet > p, Ipv6Header const &header, Ptr< Ipv6Interface > incomingInterface)=0 |
virtual enum RxStatus | Receive (Ptr< Packet > p, Ipv4Header const &header, Ptr< Ipv4Interface > incomingInterface)=0 |
virtual void | ReceiveIcmp (Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv4Address payloadSource, Ipv4Address payloadDestination, const uint8_t payload[8]) |
virtual void | ReceiveIcmp (Ipv6Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv6Address payloadSource, Ipv6Address payloadDestination, const uint8_t payload[8]) |
virtual void | SetDownTarget (DownTargetCallback cb)=0 |
virtual void | SetDownTarget6 (DownTargetCallback6 cb)=0 |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static void | Cleanup (void) |
![]() | |
static TypeId | GetTypeId (void) |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
L4 Protocol abstract base class.
This is an abstract base class for layer four protocols which use IP as the network layer.
Doxygen introspection did not find any typical Config paths.
No TraceSources are defined for this type.
Definition at line 47 of file ip-l4-protocol.h.
typedef Callback<void,Ptr<Packet>, Ipv4Address, Ipv4Address, uint8_t, Ptr<Ipv4Route> > ns3::IpL4Protocol::DownTargetCallback |
Definition at line 104 of file ip-l4-protocol.h.
typedef Callback<void,Ptr<Packet>, Ipv6Address, Ipv6Address, uint8_t, Ptr<Ipv6Route> > ns3::IpL4Protocol::DownTargetCallback6 |
Definition at line 105 of file ip-l4-protocol.h.
Enumerator | |
---|---|
RX_OK | |
RX_CSUM_FAILED | |
RX_ENDPOINT_CLOSED | |
RX_ENDPOINT_UNREACH |
Definition at line 50 of file ip-l4-protocol.h.
|
virtual |
Definition at line 47 of file ip-l4-protocol.cc.
References NS_LOG_FUNCTION.
|
pure virtual |
This method allows a caller to get the current down target callback set for this L4 protocol, for
Implemented in ns3::Icmpv6L4Protocol, ns3::dsr::DsrRouting, ns3::TcpL4Protocol, ns3::UdpL4Protocol, ns3::NscTcpL4Protocol, and ns3::Icmpv4L4Protocol.
|
pure virtual |
Implemented in ns3::Icmpv6L4Protocol, ns3::dsr::DsrRouting, ns3::TcpL4Protocol, ns3::UdpL4Protocol, ns3::NscTcpL4Protocol, and ns3::Icmpv4L4Protocol.
|
pure virtual |
Implemented in ns3::dsr::DsrRouting, ns3::Icmpv6L4Protocol, ns3::TcpL4Protocol, ns3::NscTcpL4Protocol, ns3::UdpL4Protocol, and ns3::Icmpv4L4Protocol.
Referenced by GetTypeId().
|
static |
Definition at line 35 of file ip-l4-protocol.cc.
References GetProtocolNumber(), and ns3::TypeId::SetParent().
|
pure virtual |
Implemented in ns3::dsr::DsrRouting, ns3::Icmpv6L4Protocol, ns3::TcpL4Protocol, ns3::UdpL4Protocol, ns3::NscTcpL4Protocol, and ns3::Icmpv4L4Protocol.
|
pure virtual |
p | packet to forward up |
header | IPv4 Header information |
incomingInterface | the Ipv4Interface on which the packet arrived |
Called from lower-level layers to send the packet up in the stack.
Implemented in ns3::dsr::DsrRouting, ns3::Icmpv6L4Protocol, ns3::TcpL4Protocol, ns3::UdpL4Protocol, ns3::NscTcpL4Protocol, and ns3::Icmpv4L4Protocol.
Referenced by ns3::Ipv4L3Protocol::LocalDeliver(), and ns3::Ipv6L3Protocol::LocalDeliver().
|
virtual |
icmpSource | the source address of the icmp message |
icmpTtl | the ttl of the icmp message |
icmpType | the 'type' field of the icmp message |
icmpCode | the 'code' field of the icmp message |
icmpInfo | extra information dependent on the icmp message generated by Icmpv4L4Protocol |
payloadSource | the source address of the packet which triggered the icmp message |
payloadDestination | the destination address of the packet which triggered the icmp message. |
payload | the first 8 bytes of the udp header of the packet which triggered the icmp message. |
Reimplemented in ns3::TcpL4Protocol, and ns3::UdpL4Protocol.
Definition at line 53 of file ip-l4-protocol.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Forward().
|
virtual |
Reimplemented in ns3::TcpL4Protocol, and ns3::UdpL4Protocol.
Definition at line 61 of file ip-l4-protocol.cc.
References NS_LOG_FUNCTION.
|
pure virtual |
This method allows a caller to set the current down target callback set for this L4 protocol
cb | current Callback for the L4 protocol |
Implemented in ns3::Icmpv6L4Protocol, ns3::dsr::DsrRouting, ns3::TcpL4Protocol, ns3::UdpL4Protocol, ns3::NscTcpL4Protocol, and ns3::Icmpv4L4Protocol.
|
pure virtual |
Implemented in ns3::Icmpv6L4Protocol, ns3::dsr::DsrRouting, ns3::TcpL4Protocol, ns3::UdpL4Protocol, ns3::NscTcpL4Protocol, and ns3::Icmpv4L4Protocol.