Base class for revised OpenFlow library. More...
#include <crofbase.h>
Public Member Functions | |
crofbase (const rofl::openflow::cofhello_elem_versionbitmap &versionbitmap=rofl::openflow::cofhello_elem_versionbitmap()) | |
crofbase constructor More... | |
virtual | ~crofbase () |
crofbase destructor More... | |
Methods for listening sockets accepting connections from datapath elements | |
void | close_dpt_listening () |
Closes all listening csocket instances. | |
rofl::csocket & | add_dpt_listening (unsigned int sockid, enum rofl::csocket::socket_type_t socket_type, const rofl::cparams ¶ms) |
Creates a new listening rofl::csocket instance for accepting incoming OpenFlow connections. More... | |
rofl::csocket & | set_dpt_listening (unsigned int sockid, enum rofl::csocket::socket_type_t socket_type, const rofl::cparams ¶ms) |
Returns a reference to the listening csocket object specified by identifier sockid. More... | |
const rofl::csocket & | get_dpt_listening (unsigned int sockid) const |
Returns a const reference to the listening csocket object specified by identifier sockid. More... | |
void | drop_dpt_listening (unsigned int sockid) |
Removes a listening socket identified by sockid. More... | |
bool | has_dpt_listening (unsigned int sockid) |
Checks for existence of a listening socket identified by sockid. More... | |
Methods for listening sockets accepting connections from controller entities | |
void | close_ctl_listening () |
Closes all listening csocket instances. | |
rofl::csocket & | add_ctl_listening (unsigned int sockid, enum rofl::csocket::socket_type_t socket_type, const rofl::cparams ¶ms) |
Creates a new listening rofl::csocket instance for accepting incoming OpenFlow connections. More... | |
rofl::csocket & | set_ctl_listening (unsigned int sockid, enum rofl::csocket::socket_type_t socket_type, const rofl::cparams ¶ms) |
Returns a reference to the listening csocket object specified by identifier sockid. More... | |
const rofl::csocket & | get_ctl_listening (unsigned int sockid) const |
Returns a const reference to the listening csocket object specified by identifier sockid. More... | |
void | drop_ctl_listening (unsigned int sockid) |
Removes a listening socket identified by sockid. More... | |
bool | has_ctl_listening (unsigned int sockid) |
Checks for existence of a listening socket identified by sockid. More... | |
Methods for managing peer entities acting in datapath role | |
rofl::cdptid | get_idle_dptid () const |
Returns the next idle identifier for a new rofl::crofdpt instance. More... | |
void | drop_dpts () |
Deletes all existing rofl::crofdpt instances. | |
rofl::crofdpt & | add_dpt (const rofl::cdptid &dptid, const rofl::openflow::cofhello_elem_versionbitmap &versionbitmap, bool remove_on_channel_close=false, const rofl::cdpid &dpid=rofl::cdpid(0)) |
Creates new rofl::crofdpt instance for given identifier. More... | |
rofl::crofdpt & | set_dpt (const rofl::cdptid &dptid, const rofl::openflow::cofhello_elem_versionbitmap &versionbitmap, bool remove_on_channel_close=false, const rofl::cdpid &dpid=rofl::cdpid(0)) |
Returns existing or creates new rofl::crofdpt instance for given identifier. More... | |
rofl::crofdpt & | set_dpt (const rofl::cdptid &dptid) |
Returns reference to existing rofl::crofdpt instance. More... | |
const rofl::crofdpt & | get_dpt (const rofl::cdptid &dptid) const |
Returns const reference to existing rofl::crofdpt instance. More... | |
void | drop_dpt (rofl::cdptid dptid) |
Deletes a rofl::crofdpt instance given by identifier. More... | |
bool | has_dpt (const rofl::cdptid &dptid) const |
Checks for existence of rofl::crofdpt instance with given identifier. More... | |
Methods for managing peer entities acting in controller role | |
rofl::cctlid | get_idle_ctlid () const |
Returns the next idle identifier for a new rofl::crofctl instance. More... | |
void | drop_ctls () |
Deletes all existing rofl::crofctl instances. | |
rofl::crofctl & | add_ctl (const rofl::cctlid &ctlid, const rofl::openflow::cofhello_elem_versionbitmap &versionbitmap, bool remove_on_channel_close=false) |
Creates new rofl::crofctl instance for given identifier. More... | |
rofl::crofctl & | set_ctl (const rofl::cctlid &ctlid, const rofl::openflow::cofhello_elem_versionbitmap &versionbitmap, bool remove_on_channel_close=false) |
Returns existing or creates new rofl::crofctl instance for given identifier. More... | |
rofl::crofctl & | set_ctl (const rofl::cctlid &ctlid) |
Returns reference to existing rofl::crofctl instance. More... | |
const rofl::crofctl & | get_ctl (const rofl::cctlid &ctlid) const |
Returns const reference to existing rofl::crofctl instance. More... | |
void | drop_ctl (rofl::cctlid ctlid) |
Deletes a rofl::crofctl instance given by identifier. More... | |
bool | has_ctl (const rofl::cctlid &ctlid) const |
Checks for existence of rofl::crofctl instance with given identifier. More... | |
![]() | |
ciosrv (pthread_t tid=0) | |
Initializes all structures for this ciosrv object. | |
virtual | ~ciosrv () |
Deallocates resources for this ciosrv object. | |
ciosrv (const ciosrv &iosrv) | |
Initializes all structures for this ciosrv object. | |
ciosrv & | operator= (const ciosrv &iosrv) |
void | notify (const cevent &event) |
Sends a notification to this ciosrv instance. More... | |
pthread_t | get_thread_id () const |
Returns thread-id of local thread. More... | |
![]() | |
virtual | ~csocket_env () |
Destructor. | |
![]() | |
crofctl_env () | |
rofl::crofctl_env constructor | |
virtual | ~crofctl_env () |
rofl::crofctl_env destructor | |
![]() | |
crofdpt_env () | |
rofl::crofdpt_env constructor | |
virtual | ~crofdpt_env () |
rofl::crofdpt_env destructor | |
Protected Member Functions | |
Event handlers for management notifications for datapath elements | |
Overwrite any of these methods for receiving datapath related event notifications. | |
virtual void | handle_dpt_open (rofl::crofdpt &dpt) |
Called after establishing the associated OpenFlow control channel. More... | |
virtual void | handle_dpt_close (rofl::crofdpt &dpt) |
Called after termination of associated OpenFlow control channel. More... | |
virtual void | handle_conn_established (rofl::crofdpt &dpt, const rofl::cauxid &auxid) |
Called when a control connection (main or auxiliary) has been established. More... | |
virtual void | handle_conn_terminated (rofl::crofdpt &dpt, const rofl::cauxid &auxid) |
Called when a control connection (main or auxiliary) has been terminated by the peer entity. More... | |
virtual void | handle_conn_refused (rofl::crofdpt &dpt, const rofl::cauxid &auxid) |
Called when an attempt to establish a control connection has been refused. More... | |
virtual void | handle_conn_failed (rofl::crofdpt &dpt, const rofl::cauxid &auxid) |
Called when an attempt to establish a control connection has been failed. More... | |
virtual void | handle_conn_writable (rofl::crofdpt &dpt, const rofl::cauxid &auxid) |
Called when a congestion situation on the control connection has been solved. More... | |
Event handlers for management notifications for controller entities | |
Overwrite any of these methods for receiving controller related event notifications. | |
virtual void | handle_ctl_open (rofl::crofctl &ctl) |
Called after establishing the associated OpenFlow control channel. More... | |
virtual void | handle_ctl_close (rofl::crofctl &ctl) |
Called after termination of associated OpenFlow control channel. More... | |
virtual void | handle_conn_established (rofl::crofctl &ctl, const rofl::cauxid &auxid) |
Called when a control connection (main or auxiliary) has been established. More... | |
virtual void | handle_conn_terminated (rofl::crofctl &ctl, const rofl::cauxid &auxid) |
Called when a control connection (main or auxiliary) has been terminated by the peer entity. More... | |
virtual void | handle_conn_refused (rofl::crofctl &ctl, const rofl::cauxid &auxid) |
Called when an attempt to establish a control connection has been refused. More... | |
virtual void | handle_conn_failed (rofl::crofctl &ctl, const rofl::cauxid &auxid) |
Called when an attempt to establish a control connection has been failed. More... | |
virtual void | handle_conn_writable (rofl::crofctl &ctl, const rofl::cauxid &auxid) |
Called when a congestion situation on the control connection has been solved. More... | |
Event handlers for OpenFlow message notifications received from datapath elements | |
Overwrite any of these methods for receiving messages from the attached datapath element. Once this method terminates, rofl will destroy the message object. If you want to save a message or parts of it, you must create a local copy. All messages are internally allocated on the heap and both allocation and deallocation is handled by rofl-common. Do not delete any of these messages or its internals. | |
virtual void | handle_features_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_features_reply &msg) |
OpenFlow Features-Reply message received. More... | |
virtual void | handle_features_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Features-Reply message. More... | |
virtual void | handle_get_config_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_get_config_reply &msg) |
OpenFlow Get-Config-Reply message received. More... | |
virtual void | handle_get_config_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Get-Config-Reply message. More... | |
virtual void | handle_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_stats_reply &msg) |
OpenFlow Stats-Reply message received. More... | |
virtual void | handle_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid, uint8_t stats_type) |
Timer expired while waiting for OpenFlow Stats-Reply message. More... | |
virtual void | handle_desc_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_desc_stats_reply &msg) |
OpenFlow Desc-Stats-Reply message received. More... | |
virtual void | handle_desc_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Desc-Stats-Reply message. More... | |
virtual void | handle_table_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_table_stats_reply &msg) |
OpenFlow Table-Stats-Reply message received. More... | |
virtual void | handle_table_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Table-Stats-Reply message. More... | |
virtual void | handle_port_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_port_stats_reply &msg) |
OpenFlow Port-Stats-Reply message received. More... | |
virtual void | handle_port_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Port-Stats-Reply message. More... | |
virtual void | handle_flow_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_flow_stats_reply &msg) |
OpenFlow Flow-Stats-Reply message received. More... | |
virtual void | handle_flow_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Flow-Stats-Reply message. More... | |
virtual void | handle_aggregate_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_aggr_stats_reply &msg) |
OpenFlow Aggregate-Stats-Reply message received. More... | |
virtual void | handle_aggregate_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Aggregate-Stats-Reply message. More... | |
virtual void | handle_queue_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_queue_stats_reply &msg) |
OpenFlow Queue-Stats-Reply message received. More... | |
virtual void | handle_queue_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Queue-Stats-Reply message. More... | |
virtual void | handle_group_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_stats_reply &msg) |
OpenFlow Group-Stats-Reply message received. More... | |
virtual void | handle_group_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Group-Stats-Reply message. More... | |
virtual void | handle_group_desc_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_desc_stats_reply &msg) |
OpenFlow Group-Desc-Stats-Reply message received. More... | |
virtual void | handle_group_desc_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Group-Desc-Stats-Reply message. More... | |
virtual void | handle_group_features_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_features_stats_reply &msg) |
OpenFlow Group-Features-Stats-Reply message received. More... | |
virtual void | handle_group_features_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Group-Features-Stats-Reply message. More... | |
virtual void | handle_meter_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_stats_reply &msg) |
OpenFlow Meter-Stats-Reply message received. More... | |
virtual void | handle_meter_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Meter-Stats-Reply message. More... | |
virtual void | handle_meter_config_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_config_stats_reply &msg) |
OpenFlow Meter-Config-Stats-Reply message received. More... | |
virtual void | handle_meter_config_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Meter-Config-Stats-Reply message. More... | |
virtual void | handle_meter_features_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_features_stats_reply &msg) |
OpenFlow Meter-Features-Stats-Reply message received. More... | |
virtual void | handle_meter_features_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Meter-Features-Stats-Reply message. More... | |
virtual void | handle_table_features_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_table_features_stats_reply &msg) |
OpenFlow Table-Features-Stats-Reply message received. More... | |
virtual void | handle_table_features_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Table-Features-Stats-Reply message. More... | |
virtual void | handle_port_desc_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_port_desc_stats_reply &msg) |
OpenFlow Port-Desc-Stats-Reply message received. More... | |
virtual void | handle_port_desc_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Port-Desc-Stats-Reply message. More... | |
virtual void | handle_experimenter_stats_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_experimenter_stats_reply &msg) |
OpenFlow Experimenter-Stats-Reply message received. More... | |
virtual void | handle_experimenter_stats_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Experimenter-Stats-Reply message. More... | |
virtual void | handle_packet_in (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_packet_in &msg) |
OpenFlow Packet-In message received. More... | |
virtual void | handle_barrier_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_barrier_reply &msg) |
OpenFlow Barrier-Reply message received. More... | |
virtual void | handle_barrier_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Barrier-Reply message. More... | |
virtual void | handle_flow_removed (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_flow_removed &msg) |
OpenFlow Flow-Removed message received. More... | |
virtual void | handle_port_status (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_port_status &msg) |
OpenFlow Port-Status-Reply message received. More... | |
virtual void | handle_queue_get_config_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_queue_get_config_reply &msg) |
OpenFlow Queue-Get-Config-Reply message received. More... | |
virtual void | handle_queue_get_config_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Table-Stats-Reply message. More... | |
virtual void | handle_error_message (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_error &msg) |
OpenFlow Error message received. More... | |
virtual void | handle_experimenter_message (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_experimenter &msg) |
OpenFlow Experimenter message received. More... | |
virtual void | handle_experimenter_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Experimenter message. More... | |
virtual void | handle_role_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_role_reply &msg) |
OpenFlow Role-Reply message received. More... | |
virtual void | handle_role_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Role-Reply message. More... | |
virtual void | handle_get_async_config_reply (rofl::crofdpt &dpt, const rofl::cauxid &auxid, rofl::openflow::cofmsg_get_async_config_reply &msg) |
OpenFlow Get-Async-Config-Reply message received. More... | |
virtual void | handle_get_async_config_reply_timeout (rofl::crofdpt &dpt, uint32_t xid) |
Timer expired while waiting for OpenFlow Get-Async-Config-Reply message. More... | |
Event handlers for OpenFlow message notifications received from controller entities | |
Overwrite any of these methods for receiving messages from the attached controller entity. Once this method terminates, rofl will destroy the message object. If you want to save a message or parts of it, you must create a local copy. All messages are internally allocated on the heap and both allocation and deallocation is handled by rofl-common. Do not delete any of these messages or its internals. Higher logic implemented on top of crofbase and acting in datapath role should handle incoming requests, e.g., sending back a reply to the controller entity. rofl-common does not generate reply messages automatically. You may throw any of the OpenFlow related exceptions defined by rofl-common within these handler methods. rofl-common will detect such exceptions and generate appropriate error messages for transmission to the peer entity. | |
virtual void | handle_features_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_features_request &msg) |
OpenFlow Features-Request message received. More... | |
virtual void | handle_get_config_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_get_config_request &msg) |
OpenFlow Get-Config-Request message received. More... | |
virtual void | handle_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_stats_request &msg) |
OpenFlow Stats-Request message received. More... | |
virtual void | handle_desc_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_desc_stats_request &msg) |
OpenFlow Desc-Stats-Request message received. More... | |
virtual void | handle_table_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_table_stats_request &msg) |
OpenFlow Table-Stats-Request message received. More... | |
virtual void | handle_port_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_port_stats_request &msg) |
OpenFlow Port-Stats-Request message received. More... | |
virtual void | handle_flow_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_flow_stats_request &msg) |
OpenFlow Flow-Stats-Request message received. More... | |
virtual void | handle_aggregate_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_aggr_stats_request &msg) |
OpenFlow Aggregate-Stats-Request message received. More... | |
virtual void | handle_queue_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_queue_stats_request &msg) |
OpenFlow Queue-Stats-Request message received. More... | |
virtual void | handle_group_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_stats_request &msg) |
OpenFlow Group-Stats-Request message received. More... | |
virtual void | handle_group_desc_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_desc_stats_request &msg) |
OpenFlow Group-Desc-Stats-Request message received. More... | |
virtual void | handle_group_features_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_features_stats_request &msg) |
OpenFlow Group-Features-Stats-Request message received. More... | |
virtual void | handle_meter_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_stats_request &msg) |
OpenFlow Meter-Stats-Request message received. More... | |
virtual void | handle_meter_config_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_config_stats_request &msg) |
OpenFlow Meter-Config-Stats-Request message received. More... | |
virtual void | handle_meter_features_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_features_stats_request &msg) |
OpenFlow Meter-Features-Stats-Request message received. More... | |
virtual void | handle_table_features_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_table_features_stats_request &msg) |
OpenFlow Table-Features-Stats-Request message received. More... | |
virtual void | handle_port_desc_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_port_desc_stats_request &msg) |
OpenFlow Port-Desc-Stats-Request message received. More... | |
virtual void | handle_experimenter_stats_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_experimenter_stats_request &msg) |
OpenFlow Experimenter-Stats-Request message received. More... | |
virtual void | handle_packet_out (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_packet_out &msg) |
OpenFlow Packet-Out message received. More... | |
virtual void | handle_barrier_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_barrier_request &msg) |
OpenFlow Barrier-Request message received. More... | |
virtual void | handle_flow_mod (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_flow_mod &msg) |
OpenFlow Flow-Mod message received. More... | |
virtual void | handle_group_mod (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_group_mod &msg) |
OpenFlow Group-Mod message received. More... | |
virtual void | handle_table_mod (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_table_mod &msg) |
OpenFlow Table-Mod message received. More... | |
virtual void | handle_port_mod (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_port_mod &msg) |
OpenFlow Port-Mod message received. More... | |
virtual void | handle_queue_get_config_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_queue_get_config_request &msg) |
OpenFlow Queue-Get-Config-Request message received. More... | |
virtual void | handle_set_config (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_set_config &msg) |
OpenFlow Set-Config message received. More... | |
virtual void | handle_experimenter_message (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_experimenter &msg) |
OpenFlow Experimenter message received. More... | |
virtual void | handle_error_message (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_error &msg) |
OpenFlow error message received. More... | |
virtual void | handle_role_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_role_request &msg) |
OpenFlow Role-Request message received. More... | |
virtual void | handle_get_async_config_request (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_get_async_config_request &msg) |
OpenFlow Get-Async-Config-Request message received. More... | |
virtual void | handle_set_async_config (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_set_async_config &msg) |
OpenFlow Set-Async-Config message received. More... | |
virtual void | handle_meter_mod (rofl::crofctl &ctl, const rofl::cauxid &auxid, rofl::openflow::cofmsg_meter_mod &msg) |
OpenFlow Meter-Mod message received. More... | |
Methods for sending asynchronous messages towards a controller entity. | |
This group of methods allows an entity acting in datapath role to send asynchronous OpenFlow messages towards a group of controller entities based on their roles as defined in OpenFlow. This includes message transmission based on individual controller modes like master, slave and equal and the asynchronous configuration defining the set of messages sent towards each controller. rofl-common maintains these roles automatically within rofl::crofctl instances based on OpenFlow Role-Request message received from the control plane. | |
void | send_packet_in_message (const rofl::cauxid &auxid, uint32_t buffer_id, uint16_t total_len, uint8_t reason, uint8_t table_id, uint64_t cookie, uint16_t in_port, rofl::openflow::cofmatch &match, uint8_t *data, size_t datalen) |
Sends OpenFlow Packet-In message to controller entity. More... | |
void | send_flow_removed_message (const rofl::cauxid &auxid, rofl::openflow::cofmatch &match, uint64_t cookie, uint16_t priority, uint8_t reason, uint8_t table_id, uint32_t duration_sec, uint32_t duration_nsec, uint16_t idle_timeout, uint16_t hard_timeout, uint64_t packet_count, uint64_t byte_count) |
Sends OpenFlow Flow-Removed message to controller entity. More... | |
void | send_port_status_message (const rofl::cauxid &auxid, uint8_t reason, const rofl::openflow::cofport &port) |
Sends OpenFlow Port-Status message to controller entity. More... | |
![]() | |
ctimer | get_next_timer () |
virtual void | handle_event (const rofl::cevent &event) |
Handler for event notifications using cevent instances. More... | |
virtual void | handle_revent (int fd) |
Handler for read events on file descriptors. More... | |
virtual void | handle_wevent (int fd) |
Handler for write events on file descriptors. More... | |
virtual void | handle_xevent (int fd) |
Handler for exceptions on file descriptors. More... | |
void | register_filedesc_r (int fd) |
Registers a file descriptor for read events. More... | |
void | deregister_filedesc_r (int fd) |
Deregisters a file descriptor from read events. More... | |
void | register_filedesc_w (int fd) |
Registers a file descriptor for write events. More... | |
void | deregister_filedesc_w (int fd) |
Deregisters a file descriptor from write events. More... | |
const rofl::ctimerid & | register_timer (int opaque, const rofl::ctimespec ×pec) |
Installs a new timer to fire in t seconds. More... | |
const rofl::ctimerid & | reset_timer (const rofl::ctimerid &timer_id, const rofl::ctimespec ×pec) |
Resets a running timer of type opaque. More... | |
ctimerid & | restart_timer (rofl::ctimerid &timer_id, int opaque, const rofl::ctimespec ×pec) |
Resets an existing or creates a new timer. More... | |
bool | pending_timer (const rofl::ctimerid &timer_id) |
Checks for a pending timer of type opaque. More... | |
void | cancel_timer (const rofl::ctimerid &timer_id) |
Cancels a pending timer. More... | |
void | cancel_all_timers () |
Cancels all pending timers of this instance. | |
void | cancel_all_events () |
Cancels all pending events of this instance. | |
Event handlers for management notifications for controller entities | |
Overwrite any of these methods for receiving controller related event notifications. | |
Event handlers for OpenFlow message notifications received from controller entities | |
Overwrite any of these methods for receiving messages from the attached controller entity. Once this method terminates, rofl will destroy the message object. If you want to save a message or parts of it, you must create a local copy. All messages are internally allocated on the heap and both allocation and deallocation is handled by rofl-common. Do not delete any of these messages or its internals. Higher logic implemented on top of crofbase and acting in datapath role should handle incoming requests, e.g., sending back a reply to the controller entity. rofl-common does not generate reply messages automatically. You may throw any of the OpenFlow related exceptions defined by rofl-common within these handler methods. rofl-common will detect such exceptions and generate appropriate error messages for transmission to the peer entity. | |
Event handlers for receiving datapath related event notifications. | |
Event handlers for OpenFlow message notifications received from datapath elements | |
Overwrite any of these methods for receiving messages from the attached datapath element. Once this method terminates, rofl will destroy the message object. If you want to save a message or parts of it, you must create a local copy. All messages are internally allocated on the heap and both allocation and deallocation is handled by rofl-common. Do not delete any of these messages or its internals. |
Friends | |
std::ostream & | operator<< (std::ostream &os, crofbase const &rofbase) |
Auxiliary methods | |
rofl::openflow::cofhello_elem_versionbitmap & | set_versionbitmap () |
Returns reference to OpenFlow version bitmap used for incoming connections. | |
const rofl::openflow::cofhello_elem_versionbitmap & | get_versionbitmap () const |
Returns const reference to OpenFlow version bitmap used for incoming connections. | |
uint8_t | get_highest_supported_ofp_version () const |
Returns highest OpenFlow version supported for incoming connections. | |
bool | is_ofp_version_supported (uint8_t ofp_version) const |
Returns true, when the given OpenFlow version is supported by this crofbase instance. | |
static uint32_t | get_ofp_no_buffer (uint8_t ofp_version) |
Returns OpenFlow's NO_BUFFER constant for various OpenFlow versions. | |
static uint32_t | get_ofp_controller_port (uint8_t ofp_version) |
Returns OpenFlow's OFPP_CONTROLLER constant for various OpenFlow versions. | |
static uint32_t | get_ofp_flood_port (uint8_t ofp_version) |
Returns OpenFlow's OFPP_FLOOD constant for various OpenFlow versions. | |
static uint8_t | get_ofp_command (uint8_t ofp_version, const enum openflow::ofp_flow_mod_command &cmd) |
Returns OpenFlow's OFPFC constants for various OpenFlow versions. | |
Additional Inherited Members | |
![]() | |
static crofconn_env & | set_env (crofconn_env *env) |
static bool | has_env (crofconn_env *env) |
Base class for revised OpenFlow library.
Derive from this class in order to use ROFL's functionality. crofbase supports communication to peer entities acting in either controller or datapath role using the OpenFlow protocol in various versions. Each peer entity is represented by an instance of class crofdpt (handle for a remote datapath) or an instance of class crofctl (handle for a remote controller). These classes provide a rich API for managing the OpenFlow control channel, e.g., establishing of main and auxiliary control connections. Furthermore, they include a protocol parser mapping OpenFlow messages from their wire (TCP) representation into a correspondent C++ representation. crofbase provides three groups of functionality:
Furthermore, crofbase manages all active transactions when acting in controller role. crofctl and crofdpt instances support an arbitrary number of auxiliary connections as defined by OpenFlow 1.3. See class descriptions for crofctl and crofdpt for details.
crofbase acts as environment surrounding instances of crofctl and crofdpt and receives information notifications and messages generated during operation. A deriving class may overwrite any of the handler methods defined within crofbase to receive a specific event. Overwriting handler methods is optional and crofbase defines a reasonable default handler for each event.
crofbase::crofbase | ( | const rofl::openflow::cofhello_elem_versionbitmap & | versionbitmap = rofl::openflow::cofhello_elem_versionbitmap() | ) |
crofbase constructor
Constructor takes a single argument defining the OpenFlow versions allowed for passively created OpenFlow sockets. You may specify multiple OpenFlow versions as needed.
versionbitmap | OpenFlow version bitmap |
|
virtual |
crofbase destructor
Destructor shuts down all active connections and listening sockets and deallocates all instance of classes crofctl and crofdpt.
|
inline |
Creates new rofl::crofctl instance for given identifier.
Creates a new rofl::crofctl instance identified by the identifier specified in rofl::cctlid parameter. If an instance with this identifier already exists, it is destroyed first (this includes termination of all OpenFlow connections established in its associated OpenFlow control channel) before a new, empty instance is created. You must add OpenFlow connections to actually bind the rofl::crofctl instance to a controller peer entity.
ctlid | internal controller handle |
versionbitmap | version bitmap defining all acceptable OpenFlow versions |
remove_on_channel_close | when true, automatically remove this rofl::crofctl instance, when all OpenFlow control channel connections have been terminated |
|
inline |
Creates a new listening rofl::csocket instance for accepting incoming OpenFlow connections.
sockid | socket identifier |
socket_type | one of the constants defined in csocket.h, e.g. SOCKET_TYPE_PLAIN |
params | set of parameters used for creating a listening socket |
|
inline |
Creates new rofl::crofdpt instance for given identifier.
Creates a new rofl::crofdpt instance identified by the identifier specified in rofl::cdptid parameter. If an instance with this identifier already exists, it is destroyed first (this includes termination of all OpenFlow connections established in its associated OpenFlow control channel) before a new, empty instance is created. You must add OpenFlow connections to actually bind the rofl::crofdpt instance to a datapath peer entity.
dptid | internal datapath handle (not DPID) |
versionbitmap | version bitmap defining all acceptable OpenFlow versions |
remove_on_channel_close | when true, automatically remove this rofl::crofdpt instance, when all OpenFlow control channel connections have been terminated |
dpid | OpenFlow datapath identifier (optional) |
|
inline |
Creates a new listening rofl::csocket instance for accepting incoming OpenFlow connections.
sockid | socket identifier |
socket_type | one of the constants defined in csocket.h, e.g. SOCKET_TYPE_PLAIN |
params | set of parameters used for creating a listening socket |
|
inline |
Deletes a rofl::crofctl instance given by identifier.
If the identifier is non-existing, the method does nothing and returns.
|
inline |
Removes a listening socket identified by sockid.
sockid | socket identifier |
|
inline |
Deletes a rofl::crofdpt instance given by identifier.
If the identifier is non-existing, the method does nothing and returns.
|
inline |
Removes a listening socket identified by sockid.
sockid | socket identifier |
|
inline |
Returns const reference to existing rofl::crofctl instance.
Returns existing rofl::crofctl instance specified by identifier ctlid. If the identifier does not exist, throws an exception eRofBaseNotFound.
ctlid | internal controller handle |
eRofBaseNotFound |
|
inline |
Returns a const reference to the listening csocket object specified by identifier sockid.
sockid | socket identifier |
|
inline |
Returns const reference to existing rofl::crofdpt instance.
Returns existing rofl::crofdpt instance specified by identifier dptid. If the identifier does not exist, throws an exception eRofBaseNotFound.
dptid | internal datapath handle (not DPID) |
eRofBaseNotFound |
|
inline |
Returns a const reference to the listening csocket object specified by identifier sockid.
sockid | socket identifier |
|
inline |
Returns the next idle identifier for a new rofl::crofctl instance.
|
inline |
Returns the next idle identifier for a new rofl::crofdpt instance.
|
inlineprotectedvirtual |
OpenFlow Aggregate-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Aggregate-Stats-Reply message.
No Aggregate-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Aggregate-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Barrier-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Barrier-Reply message.
No Barrier-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Barrier-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called when a control connection (main or auxiliary) has been established.
dpt | datapath instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Called when a control connection (main or auxiliary) has been established.
ctl | controller instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called when an attempt to establish a control connection has been failed.
This event occurs when some failure occures while calling the underlying C-library connect() system call, e.g., no route to destination, etc. This may indicate a local configuration problem inside or outside of the application.
dpt | datapath instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Called when an attempt to establish a control connection has been failed.
This event occurs when some failure occures while calling the underlying C-library connect() system call, e.g., no route to destination, etc. This may indicate a local configuration problem inside or outside of the application.
ctl | controller instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called when an attempt to establish a control connection has been refused.
This event occurs when the C-library's connect() system call fails with the ECONNREFUSED error code. This indicates typically a problem on the remote site.
dpt | datapath instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Called when an attempt to establish a control connection has been refused.
This event occurs when the C-library's connect() system call fails with the ECONNREFUSED error code. This indicates typically a problem on the remote site.
ctl | controller instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called when a control connection (main or auxiliary) has been terminated by the peer entity.
dpt | datapath instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Called when a control connection (main or auxiliary) has been terminated by the peer entity.
ctl | controller instance |
auxid | connection identifier (main: 0) |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called when a congestion situation on the control connection has been solved.
A control channel may face congestion situations when insufficient bandwidth on the underlying IP path or some backpressuring by the remote site requires to throttle the overall message transmission rate on a control connection. A congestion situation is indicated by the return values obtained from the various send-methods defined within rofl::crofdpt. A solved congestion situation is indicated by calling this method. Note that ROFL will store OpenFlow messages even under congestion, thus filling up its internal buffers until no further memory is available for doing so. It is up to the application designer to throttle transmission of further messages according to the channel capacity.
dpt | datapath instance |
auxid | control connection identifier (main: 0) |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Called when a congestion situation on the control connection has been solved.
A control channel may face congestion situations when insufficient bandwidth on the underlying IP path or some backpressuring by the remote site requires to throttle the overall message transmission rate on a control connection. A congestion situation is indicated by the return values obtained from the various send-methods defined within rofl::crofctl. A solved congestion situation is indicated by calling this method. Note that ROFL will store OpenFlow messages even under congestion, thus filling up its internal buffers until no further memory is available for doing so. It is up to the application designer to throttle transmission of further messages according to the channel capacity.
ctl | controller instance |
auxid | control connection identifier (main: 0) |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called after termination of associated OpenFlow control channel.
This method is called once the associated OpenFlow control channel has been terminated, i.e., its main connection has been closed from the remote site. The rofl::crofctl instance itself is not destroyed, unless its 'remove_on_channel_close' flag has been set to true during its construction.
ctl | controller instance |
|
inlineprotectedvirtual |
Called after establishing the associated OpenFlow control channel.
This method is called once the associated OpenFlow control channel has been established, i.e., its main connection has been accepted by the remote site.
ctl | controller instance |
|
inlineprotectedvirtual |
OpenFlow Desc-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Desc-Stats-Reply message.
No Desc-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Desc-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Called after termination of associated OpenFlow control channel.
This method is called once the associated OpenFlow control channel has been terminated, i.e., its main connection has been closed from the remote site. The rofl::crofdpt instance itself is not destroyed, unless its 'remove_on_channel_close' flag has been set to true during its construction.
dpt | datapath instance |
|
inlineprotectedvirtual |
Called after establishing the associated OpenFlow control channel.
This method is called once the associated OpenFlow control channel has been established, i.e., its main connection has been accepted by the remote site.
dpt | datapath instance |
|
inlineprotectedvirtual |
OpenFlow Error message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow error message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Experimenter message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Experimenter message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Experimenter-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Experimenter-Stats-Reply message.
No Experimenter-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Experimenter-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Experimenter message.
No Experimenter message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Features-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Features-Reply message.
No Features-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Features-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Flow-Mod message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Flow-Removed message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Flow-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Flow-Stats-Reply message.
No Flow-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Flow-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Get-Async-Config-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Get-Async-Config-Reply message.
No Get-Async-Config-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Get-Async-Config-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Get-Config-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Get-Config-Reply message.
No Get-Config-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Get-Config-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Group-Desc-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Group-Desc-Stats-Reply message.
No Group-Desc-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Group-Desc-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Group-Features-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Group-Features-Stats-Reply message.
No Group-Features-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Group-Features-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Group-Mod message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Group-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Group-Stats-Reply message.
No Group-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Group-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Config-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Meter-Config-Stats-Reply message.
No Meter-Config-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Config-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Features-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Meter-Features-Stats-Reply message.
No Meter-Features-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Features-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Mod message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Meter-Stats-Reply message.
No Meter-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Meter-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Packet-In message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Packet-Out message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Port-Desc-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Port-Desc-Stats-Reply message.
No Port-Desc-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Port-Desc-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Port-Mod message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Port-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Port-Stats-Reply message.
No Port-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Port-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Port-Status-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Queue-Get-Config-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Table-Stats-Reply message.
No Table-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Queue-Get-Config-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Queue-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Queue-Stats-Reply message.
No Queue-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Queue-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Role-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Role-Reply message.
No Role-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Role-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Set-Async-Config message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Set-Config message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Stats-Reply message.
No Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
stats_type | statistics message subtype |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Table-Features-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Table-Features-Stats-Reply message.
No Table-Features-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Table-Features-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Table-Mod message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inlineprotectedvirtual |
OpenFlow Table-Stats-Reply message received.
dpt | datapath instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
Timer expired while waiting for OpenFlow Table-Stats-Reply message.
No Table-Stats-Reply message was received in the specified time interval for the given OpenFlow transaction identifier.
dpt | datapath instance |
xid | OpenFlow transaction identifier |
Implements rofl::crofdpt_env.
|
inlineprotectedvirtual |
OpenFlow Table-Stats-Request message received.
ctl | controller instance |
auxid | control connection identifier |
msg | OpenFlow message instance |
Implements rofl::crofctl_env.
|
inline |
Checks for existence of rofl::crofctl instance with given identifier.
ctlid | internal controller handle |
|
inline |
Checks for existence of a listening socket identified by sockid.
sockid | socket identifier |
|
inline |
Checks for existence of rofl::crofdpt instance with given identifier.
dptid | internal datapath handle (not DPID) |
|
inline |
Checks for existence of a listening socket identified by sockid.
sockid | socket identifier |
|
protected |
Sends OpenFlow Flow-Removed message to controller entity.
auxid | controller connection identifier |
match | set of OpenFlow matches generated by the datapath element's packet parser |
cookie | cookie of flow-table entry emitting the flow-removed event |
priority | priority of flow-table entry emitting the flow-removed event |
reason | one of OpenFlow's OFPRR constants specifying the reason for sending a flow-removed |
table_id | identifier of OpenFlow table emitting the flow-removed event |
duration_sec | overall lifetime of this flow-table entry (seconds) |
duration_nsec | overall lifetime of this flow-table entry (nseconds) |
idle_timeout | idle_timeout of flow-table entry emitting the flow-removed event |
hard_timeout | hard_timeout of flow-table entry emitting the flow-removed event |
packet_count | number of packets that traversed this flow-table entry emitting the flow-removed event |
byte_count | number of bytes that traversed this flow-table entry emitting the flow-removed event |
|
protected |
Sends OpenFlow Packet-In message to controller entity.
auxid | controller connection identifier |
buffer_id | OpenFlow buffer identifier where this packet is stored in |
total_len | total length of buffer stored on datapath element |
reason | one of OpenFlow's OFPR constants specifying the reason for sending a packet-in |
table_id | identifier of OpenFlow table emitting the packet-in event |
cookie | cookie of flow-table entry emitting the packet-in event |
in_port | port where packet causing this packet-in event was received (OpenFlow 1.0 only) |
match | set of OpenFlow matches generated by the datapath element's packet parser |
data | pointer to start of data buffer containing the packet |
datalen | length of data buffer containing the packet |
eRofBaseNotConnected |
|
protected |
Sends OpenFlow Port-Status message to controller entity.
auxid | controller connection identifier |
reason | one of OpenFlow's OFPPR constants specifying the reason for sending a port-status |
port | cofport instance definine the port's properties |
|
inline |
Returns existing or creates new rofl::crofctl instance for given identifier.
Returns rofl::crofctl instance specified by identifier ctlid. If none exists, a new empty instance is created. You must add OpenFlow connections to actually bind the rofl::crofctl instance to a controller peer entity.
ctlid | internal controller handle |
versionbitmap | version bitmap defining all acceptable OpenFlow versions |
remove_on_channel_close | when true, automatically remove this rofl::crofctl instance, when all OpenFlow control channel connections have been terminated |
|
inline |
Returns reference to existing rofl::crofctl instance.
Returns existing rofl::crofctl instance specified by identifier ctlid. If the identifier does not exist, throws an exception eRofBaseNotFound.
ctlid | internal controller handle |
eRofBaseNotFound |
|
inline |
Returns a reference to the listening csocket object specified by identifier sockid.
sockid | socket identifier |
socket_type | one of the constants defined in csocket.h, e.g. SOCKET_TYPE_PLAIN |
params | set of parameters used for creating a listening socket |
|
inline |
Returns existing or creates new rofl::crofdpt instance for given identifier.
Returns rofl::crofdpt instance specified by identifier dptid. If none exists, a new empty instance is created. You must add OpenFlow connections to actually bind the rofl::crofdpt instance to a datapath peer entity.
dptid | internal datapath handle (not DPID) |
versionbitmap | version bitmap defining all acceptable OpenFlow versions |
remove_on_channel_close | when true, automatically remove this rofl::crofdpt instance, when all OpenFlow control channel connections have been terminated |
dpid | OpenFlow datapath identifier (optional) |
|
inline |
Returns reference to existing rofl::crofdpt instance.
Returns existing rofl::crofdpt instance specified by identifier dptid. If the identifier does not exist, throws an exception eRofBaseNotFound.
dptid | internal datapath handle (not DPID) |
eRofBaseNotFound |
|
inline |
Returns a reference to the listening csocket object specified by identifier sockid.
sockid | socket identifier |
socket_type | one of the constants defined in csocket.h, e.g. SOCKET_TYPE_PLAIN |
params | set of parameters used for creating a listening socket |