ns-3
|
API to create IPv6 RAW socket instances. More...
#include <ipv6-raw-socket-factory.h>
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Get the type ID of this class. |
API to create IPv6 RAW socket instances.
This abstract class defines the API for IPv6 RAW socket factory.
A RAW Socket typically is used to access specific IP layers not usually available through L4 sockets, e.g., ICMP. The implementer should take particular care to define the Ipv6RawSocketImpl Attributes, and in particular the Protocol attribute. Not setting it will result in a zero protocol at IP level (corresponding to the HopByHop IPv6 Extension header, i.e., Ipv6ExtensionHopByHopHeader) when sending data through the socket, which is probably not the intended behavior.
A correct example is (from src/applications/model/radvd.cc):
if (!m_socket) { TypeId tid = TypeId::LookupByName ("ns3::Ipv6RawSocketFactory"); m_socket = Socket::CreateSocket (GetNode (), tid); NS_ASSERT (m_socket); m_socket->SetAttribute ("Protocol", UintegerValue(Ipv6Header::IPV6_ICMPV6)); m_socket->SetRecvCallback (MakeCallback (&Radvd::HandleRead, this)); }
TypeId ns3::Ipv6RawSocketFactory::GetTypeId | ( | void | ) | [static] |
Get the type ID of this class.
This method returns the TypeId associated to ns3::Ipv6RawSocketFactory.
This object is accessible through the following paths with Config::Set and Config::Connect:
No Attributes defined for this type.
No TraceSources defined for this type.
Reimplemented from ns3::SocketFactory.
References ns3::TypeId::SetParent().