21 #ifndef IPV6_RAW_SOCKET_IMPL_H
22 #define IPV6_RAW_SOCKET_IMPL_H
26 #include "ns3/socket.h"
27 #include "ns3/ipv6-address.h"
28 #include "ns3/ipv6-header.h"
93 virtual enum Socket::SocketErrno
GetErrno ()
const;
119 virtual int Bind6 ();
132 virtual int Close ();
322 uint32_t icmpv6Filt[8];
void SetNode(Ptr< Node > node)
Set the node.
virtual void DoDispose()
Dispose object.
virtual int Connect(const Address &address)
Connect to address.
Ipv6Address m_src
Source address.
Ptr< Packet > Recv(void)
Read a single packet from the socket.
bool m_shutdownSend
Flag to shutdown send capability.
virtual int ShutdownSend()
Shutdown send capability.
static TypeId GetTypeId()
Get the type ID of this class.
bool ForwardUp(Ptr< const Packet > p, Ipv6Header hdr, Ptr< NetDevice > device)
Forward up to receive method.
virtual enum Socket::SocketType GetSocketType() const
Get socket type (NS3_SOCK_RAW)
virtual enum Socket::SocketErrno GetErrno() const
Get last error number.
virtual int Send(Ptr< Packet > p, uint32_t flags)
Send a packet.
a polymophic address class
virtual int Bind()
Bind socket.
bool m_shutdownRecv
Flag to shutdown receive capability.
A low-level Socket API based loosely on the BSD Socket API.A few things to keep in mind about this ty...
std::list< struct Data > m_data
Packet waiting to be processed.
virtual int GetSockName(Address &address) const
Get socket address.
Ipv6RawSocketImpl()
Constructor.
void Icmpv6FilterSetBlock(uint8_t type)
Set the filter to block one ICMPv6 type.
virtual int Bind6()
Allocate a local IPv6 endpoint for this socket.
virtual Ptr< Node > GetNode() const
Get node.
IPv6 raw data and additional information.
Struct to hold the ICMPv6 filter.
virtual int Listen()
Listen.
bool Icmpv6FilterWillBlock(uint8_t type)
Ask the filter about the status of one ICMPv6 type.
void Icmpv6FilterSetPass(uint8_t type)
Set the filter to pass one ICMPv6 type.
virtual ~Ipv6RawSocketImpl()
Destructor.
icmpv6Filter m_icmpFilter
ICMPv6 filter.
virtual Ptr< Packet > RecvFrom(uint32_t maxSize, uint32_t flags, Address &fromAddress)
Receive packet.
virtual bool SetAllowBroadcast(bool allowBroadcast)
Configure whether broadcast datagram transmissions are allowed.
virtual uint32_t GetRxAvailable() const
Get RX size available.
void SetProtocol(uint16_t protocol)
Set protocol field.
Describes an IPv6 address.
virtual uint32_t GetTxAvailable() const
Get TX size available.
enum Socket::SocketErrno m_err
Last error number.
virtual int SendTo(Ptr< Packet > p, uint32_t flags, const Address &toAddress)
Send a packet.
virtual int Close()
Close the socket.
Ipv6Address m_dst
Destination address.
bool Icmpv6FilterWillPass(uint8_t type)
Ask the filter about the status of one ICMPv6 type.
void Icmpv6FilterSetPassAll()
Clean the ICMPv6 filter structure.
virtual int ShutdownRecv()
Shutdown receive capability.
virtual bool GetAllowBroadcast() const
Query whether broadcast datagram transmissions are allowed.
a unique identifier for an interface.
uint16_t m_protocol
Protocol.
void Icmpv6FilterSetBlockAll()
Set the filter to block all the ICMPv6 types.