IPv6 RAW Socket Protocol, connected. More...

#include <senf/Socket/Protocols/INet/ConnectedRawINetSocketHandle.hh>

Inheritance diagram for senf::ConnectedRawV6SocketProtocol:

Constructors

void init_client () const
 Create unconnected client socket for IPPROTO_RAW. More...
 
void init_client (int const &protocol) const
 Create unconnected client socket for protocol. More...
 
void init_client (int const &protocol, INet6SocketAddress const &address) const
 Create client socket and connect. More...
 

Additional Inherited Members

- Public Types inherited from senf::ConcreteSocketProtocol< ConnectedRawV6Socket_Policy, ConnectedRawV6SocketProtocol >
typedef ConnectedRawV6Socket_Policy Policy
 The protocols policy. More...
 
- Public Member Functions inherited from senf::ConcreteSocketProtocol< ConnectedRawV6Socket_Policy, ConnectedRawV6SocketProtocol >
Policy const & policy () const
 Access the policy instance. More...
 
 ~ConcreteSocketProtocol ()=0
 
- Public Member Functions inherited from senf::SocketProtocol
virtual void close ()
 Close socket. More...
 
virtual void terminate () const
 Forcibly close socket. More...
 
virtual void state (SocketStateMap &map, unsigned lod) const
 Return socket state information. More...
 
int fd () const
 Get file descriptor. More...
 
 SocketProtocol ()
 
virtual ~SocketProtocol ()=0
 
- Public Member Functions inherited from senf::RawINetSocketProtocol
unsigned available () const
 Return (maximum) number of bytes available for reading without < blocking. More...
 
bool eof () const
 Check for end-of-file condition. More...
 
- Public Member Functions inherited from senf::INetSocketProtocol
void bindInterface (std::string const &iface) const
 Bind socket to specific interface. More...
 
std::string bindInterface ()
 Get bound interface. More...
 
- Public Member Functions inherited from senf::BSDSocketProtocol
std::pair< bool, unsigned > linger () const
 Return current linger status. More...
 
void linger (bool enable, unsigned timeout=0) const
 Change linger status. More...
 
boost::uint8_t priority () const
 Get packet priority assigned to outgoing packets. More...
 
void priority (boost::uint8_t value) const
 Set packet priority (e.g. TOS) More...
 
int error () const
 Get and clear pending socket error. More...
 
unsigned rcvbuf () const
 Check receive buffer size. More...
 
void rcvbuf (unsigned size) const
 Change receive buffer size. More...
 
unsigned sndbuf () const
 Check send buffer size. More...
 
void sndbuf (unsigned size) const
 Change size of send buffer. More...
 
template<unsigned short N>
void attachSocketFilter (::sock_filter(&filter)[N])
 
void detachSocketFilter ()
 
void mtuDiscovery (int mode) const
 
void rcvLowat (unsigned lowWat) const
 
void sndLowat (unsigned lowWat) const
 
- Public Member Functions inherited from senf::DatagramSocketProtocol
void timestamp (struct timespec *spec) const
 Return packet timestamp of last packet. More...
 
ClockService::clock_type timestamp () const
 Return packet timestamp of last packet. More...
 
- Public Member Functions inherited from senf::AddressableBSDSocketProtocol
bool reuseaddr () const
 Return current reuseaddr state. More...
 
void reuseaddr (bool value) const
 Set reuseraddr state. More...
 
- Protected Member Functions inherited from senf::ConcreteSocketProtocol< ConnectedRawV6Socket_Policy, ConnectedRawV6SocketProtocol >
ClientSocketHandle< PolicyclientHandle () const
 Get client handle for associated socket. More...
 
ServerSocketHandle< PolicyserverHandle () const
 Get server handle for associated socket. More...
 
- Protected Member Functions inherited from senf::SocketProtocol
FileHandle fh () const
 Get a FileHandle for this instance. More...
 
void fd (int) const
 Initialize file descriptor. More...
 

Detailed Description

IPv6 RAW Socket Protocol, connected.

Socket Handle typedefs:
ConnectedRawV6ClientSocketHandle (ProtocolClientSocketHandle)
Policy Interface:
ClientSocketHandle::read(), ClientSocketHandle::write(), ClientSocketHandle::bind(), ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer()
Address Type:
INet6Address

ConnectedRawV6SocketProtocol provides an internet protocol raw socket based on IPv6 addressing which is connected to certain peer. This socket will put data written to it onto the IPv6 layer: if you call writeto don't include the header! On the other hand read will return the packet data on top of the IPv6 layer, excluding the IP header. Note: This behaviour is differs from the behaviour of IPv4 RAW sockets.

This class is utilized as the protocol class of the ProtocolClientSocketHandle via the Socket Handle typedefs above.

Attention
If socket handle with ConnectedRawV6SocketProtocol is connected via INet6SocketAddress, the port number is interpreted as protocol number for IPv6 layer. Please refer manpage: "man 7 ipv6".
See also
ConnectedRawV4SocketProtocol
RawV4SocketProtocol
RawV6SocketProtocol

Definition at line 150 of file ConnectedRawINetSocketHandle.hh.

Member Function Documentation

◆ init_client() [1/3]

void senf::ConnectedRawV6SocketProtocol::init_client ( ) const

Create unconnected client socket for IPPROTO_RAW.

Note
This member is implicitly called from the ProtocolClientSocketHandle::ProtocolClientSocketHandle() constructor

Definition at line 57 of file ConnectedRawINetSocketHandle.cc.

◆ init_client() [2/3]

void senf::ConnectedRawV6SocketProtocol::init_client ( int const &  protocol) const

Create unconnected client socket for protocol.

Definition at line 63 of file ConnectedRawINetSocketHandle.cc.

◆ init_client() [3/3]

void senf::ConnectedRawV6SocketProtocol::init_client ( int const &  protocol,
INet6SocketAddress const &  address 
) const

Create client socket and connect.

Creates a new client socket for the given protocol and connects to the given address.

Parameters
[in]protocolLayer 4 protocol to filter for / to send
[in]addresslocal address to connect to
Note
This member is implicitly called from the // ProtocolClientSocketHandle::ProtocolClientSocketHandle() constructor (??)

Definition at line 73 of file ConnectedRawINetSocketHandle.cc.


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