ns-3
ns3::Ipv6RawSocketFactory Class Reference

API to create IPv6 RAW socket instances. More...

#include <ipv6-raw-socket-factory.h>

Inheritance diagram for ns3::Ipv6RawSocketFactory:
Collaboration diagram for ns3::Ipv6RawSocketFactory:

List of all members.

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID of this class.

Detailed Description

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));
     }

Member Function Documentation

Get the type ID of this class.

This method returns the TypeId associated to ns3::Ipv6RawSocketFactory.

Returns:
type ID

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::Ipv6RawSocketFactory
  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::SocketFactory/$ns3::Ipv6RawSocketFactory
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::Ipv6RawSocketFactory
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::SocketFactory/$ns3::Ipv6RawSocketFactory

No Attributes defined for this type.
No TraceSources defined for this type.

Reimplemented from ns3::SocketFactory.

References ns3::TypeId::SetParent().


The documentation for this class was generated from the following files: