|
xorp
|
Helper class which encapsulates XRL socket service. More...
#include <xrl_port.hh>
Public Member Functions | |
| XrlPort (IO *io, EventLoop &eventloop, XrlRouter &xrl_router, const string &ssname, const string &ifname, const string &vifname, const IPv4 &local_addr, const uint16_t local_port, const IPv4 &all_nodes_addr) | |
| Begin creation of the broadcast/multicast socket. | |
| int | startup () |
| Start the port binding. | |
| int | shutdown () |
| Shutdown the port binding. | |
| bool | send_to (const IPv4 &dst_addr, const uint16_t dst_port, const vector< uint8_t > &payload) |
| Send packet. | |
| string | socket_server () const |
| string | ifname () const |
| string | vifname () const |
| IPv4 | local_address () const |
| uint16_t | local_port () const |
| string | sockid () const |
| IPv4 | all_nodes_address () const |
Private Member Functions | |
| bool | startup_socket () |
| bool | request_udp_open_bind_broadcast () |
| void | udp_open_bind_broadcast_cb (const XrlError &e, const string *psid) |
| bool | request_tos () |
| void | tos_cb (const XrlError &xrl_error) |
| void | socket_setup_complete () |
| bool | request_reuseport () |
| void | reuseport_cb (const XrlError &e) |
| bool | request_onesbcast (const bool enabled) |
| void | onesbcast_cb (const XrlError &e) |
| bool | request_close () |
| void | close_cb (const XrlError &xrl_error) |
| void | send_cb (const XrlError &xrl_error) |
Private Attributes | |
| IO * | _io |
| EventLoop & | _eventloop |
| XrlRouter & | _xrl_router |
| string | _ss |
| string | _ifname |
| string | _vifname |
| IPv4 | _local_addr |
| uint16_t | _local_port |
| IPv4 | _all_nodes_addr |
| bool | _pending |
| string | _sockid |
| bool | _is_undirected_broadcast |
Helper class which encapsulates XRL socket service.
Deals with setting the specific XRL socket options that OLSR needs to send/receive broadcast/multicast control traffic to the all-nodes address.
| XrlPort::XrlPort | ( | IO * | io, |
| EventLoop & | eventloop, | ||
| XrlRouter & | xrl_router, | ||
| const string & | ssname, | ||
| const string & | ifname, | ||
| const string & | vifname, | ||
| const IPv4 & | local_addr, | ||
| const uint16_t | local_port, | ||
| const IPv4 & | all_nodes_addr | ||
| ) |
Begin creation of the broadcast/multicast socket.
| io | pointer to parent object |
| eventloop | process-wide event loop |
| xrl_router | process-wide XRL router |
| ssname | name of XRL target containing socket server; usually this is the FEA. |
| ifname | interface to listen on |
| vifname | vif to listen on |
| local_addr | address to listen on |
| local_port | port to listen on |
| all_nodes_addr | address to send to |
| IPv4 XrlPort::all_nodes_address | ( | ) | const [inline] |
| string XrlPort::ifname | ( | ) | const [inline] |
| uint16_t XrlPort::local_port | ( | ) | const [inline] |
| bool XrlPort::send_to | ( | const IPv4 & | dst_addr, |
| const uint16_t | dst_port, | ||
| const vector< uint8_t > & | payload | ||
| ) |
Send packet.
Status of instance must be running, and should not be pending.
| dst_addr | address to send packet. |
| dst_port | port to send packet to. |
| payload | vector containing paylaod of packet to be sent. |
| int XrlPort::shutdown | ( | ) | [virtual] |
Sends request to close socket and transitions into SERVICE_SHUTTING_DOWN state. When socket is closed transition to SERVICE_SHUTDOWN occurs.
Implements ServiceBase.
| string XrlPort::sockid | ( | ) | const [inline] |
| int XrlPort::startup | ( | ) | [virtual] |
Start the port binding.
Sends request to FEA for socket server for address and then attempts to instantiate socket with socket server. If both operations are successful, instance status transitions to SERVICE_RUNNING. Otherwise, it transitions to failed.
Implements ServiceBase.
| string XrlPort::vifname | ( | ) | const [inline] |