Class representing a remote controller entity. More...
#include <crofctl.h>
Classes | |
class | crofctl_find_by_ctlid |
Public Member Functions | |
crofctl (crofctl_env *env, const cctlid &ctlid, bool remove_on_channel_close, const rofl::openflow::cofhello_elem_versionbitmap &versionbitmap) | |
crofctl constructor More... | |
virtual | ~crofctl () |
crofctl destructor More... | |
const rofl::cctlid & | get_ctlid () const |
Returns rofl-common's internal rofl::cctlid identifier for this instance. More... | |
std::string | str () const |
Methods for connection management | |
This is a group of methods for typical CRUD like operations on control connections for the OpenFlow control channel. You may create an arbitrary number of control connections to a controller entity. Control connections may be closed or reconnected. | |
std::list< rofl::cauxid > | get_conn_index () const |
Returns a list of connection identifiers of all existing control connections. More... | |
void | connect (const rofl::cauxid &auxid, enum rofl::csocket::socket_type_t socket_type, const rofl::cparams &socket_params) |
Establishes a new control connection to a remote controller entity with the given control connection identifier. More... | |
void | disconnect (const rofl::cauxid &auxid) |
Terminates an existing control connection with given identifier. More... | |
void | add_connection (crofconn *conn) |
Add an existing rofl::crofconn instance created on heap to this object. More... | |
Methods related to control channel state | |
bool | is_established () const |
Returns true, when the control handshake (HELLO) has been completed. | |
uint8_t | get_version_negotiated () const |
Returns the OpenFlow protocol version used for this control connection. More... | |
const rofl::openflow::cofhello_elem_versionbitmap & | get_versions_available () const |
Returns the defined OpenFlow version bitmap for this instance. More... | |
bool | remove_on_channel_termination () const |
Returns true, when this instance should be destroyed when its crofchan has closed. | |
rofl::caddress | get_peer_addr (const rofl::cauxid &auxid) const |
Returns caddress of connected remote entity for given connection identifier. More... | |
Methods granting access to the controller entity's basic properties | |
rofl::openflow::cofrole & | set_role () |
Returns a reference to the current role object of this controller entity. | |
const rofl::openflow::cofrole & | get_role () const |
Returns a const reference to the current role object of this controller entity. | |
bool | is_slave () const |
Returns true, when the control entity is in role -slave-. | |
rofl::openflow::cofasync_config & | set_async_config () |
Returns a reference to the current asynchronous event configuration of this controller entity. | |
const rofl::openflow::cofasync_config & | get_async_config () const |
Returns a const reference to the current asynchronous event configuration of this controller entity. | |
const rofl::openflow::cofasync_config & | get_async_config_role_default_template () const |
Returns a const reference to the default asynchronous event configuration for controller entities defined by OpenFlow. | |
Methods for sending OpenFlow messages | |
These methods may be called by a derived class for sending a specific OpenFlow message. | |
void | send_features_reply (const rofl::cauxid &auxid, uint32_t xid, uint64_t dpid, uint32_t n_buffers, uint8_t n_tables, uint32_t capabilities, uint8_t of13_auxiliary_id=0, uint32_t of10_actions_bitmap=0, const rofl::openflow::cofports &ports=rofl::openflow::cofports()) |
Sends OpenFlow Features-Reply message to attached controller entity. More... | |
void | send_get_config_reply (const rofl::cauxid &auxid, uint32_t xid, uint16_t flags, uint16_t miss_send_len) |
Sends OpenFlow Get-Config-Reply message to attached controller entity. More... | |
void | send_stats_reply (const rofl::cauxid &auxid, uint32_t xid, uint16_t stats_type, uint16_t stats_flags, uint8_t *body=NULL, size_t bodylen=0) |
Sends OpenFlow Stats-Reply message to attached controller entity. More... | |
void | send_desc_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofdesc_stats_reply &desc_stats, uint16_t stats_flags=0) |
Sends OpenFlow Desc-Stats-Reply message to attached controller entity. More... | |
void | send_flow_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofflowstatsarray &flow_stats, uint16_t stats_flags=0) |
Sends OpenFlow Flow-Stats-Reply message to attached controller entity. More... | |
void | send_aggr_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofaggr_stats_reply &aggr_stats, uint16_t stats_flags=0) |
Sends OpenFlow Aggregate-Stats-Reply message to attached controller entity. More... | |
void | send_table_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::coftablestatsarray &tablestatsarray, uint16_t stats_flags=0) |
Sends OpenFlow Table-Stats-Reply message to attached controller entity. More... | |
void | send_port_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofportstatsarray &portstatsarray, uint16_t stats_flags=0) |
Sends OpenFlow Port-Stats-Reply message to attached controller entity. More... | |
void | send_queue_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofqueuestatsarray &queuestatsarray, uint16_t stats_flags=0) |
Sends OpenFlow Queue-Stats-Reply message to attached controller entity. More... | |
void | send_group_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofgroupstatsarray &groupstatsarray, uint16_t stats_flags=0) |
Sends OpenFlow Group-Stats-Reply message to attached controller entity. More... | |
void | send_group_desc_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofgroupdescstatsarray &groupdescs, uint16_t stats_flags=0) |
Sends OpenFlow Group-Desc-Stats-Reply message to attached controller entity. More... | |
void | send_group_features_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofgroup_features_stats_reply &group_features_stats, uint16_t stats_flags=0) |
Sends OpenFlow Group-Features-Stats-Reply message to attached controller entity. More... | |
void | send_table_features_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::coftables &tables, uint16_t stats_flags=0) |
Sends OpenFlow Table-Features-Stats-Reply message to attached controller entity. More... | |
void | send_port_desc_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofports &ports, uint16_t stats_flags=0) |
Sends OpenFlow Port-Desc-Stats-Reply message to attached controller entity. More... | |
void | send_experimenter_stats_reply (const rofl::cauxid &auxid, uint32_t xid, uint32_t exp_id, uint32_t exp_type, const cmemory &body, uint16_t stats_flags=0) |
Sends OpenFlow Experimenter-Stats-Reply message to attached controller entity. More... | |
void | send_meter_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofmeterstatsarray &meter_stats_array, uint16_t stats_flags=0) |
Sends OpenFlow Meter-Stats-Reply message to attached controller entity. More... | |
void | send_meter_config_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofmeterconfigarray &meter_config_array, uint16_t stats_flags=0) |
Sends OpenFlow Meter-Config-Stats-Reply message to attached controller entity. More... | |
void | send_meter_features_stats_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofmeter_features &meter_features, uint16_t stats_flags=0) |
Sends OpenFlow Meter-Features-Stats-Reply message to attached controller entity. More... | |
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, const rofl::openflow::cofmatch &match, uint8_t *data, size_t datalen) |
Sends OpenFlow Packet-In message to attached controller entity. More... | |
void | send_barrier_reply (const rofl::cauxid &auxid, uint32_t xid) |
Sends OpenFlow Barrier-Reply message to attached controller entity. More... | |
void | send_error_message (const rofl::cauxid &auxid, uint32_t xid, uint16_t type, uint16_t code, uint8_t *data=NULL, size_t datalen=0) |
Sends OpenFlow Error message to attached controller entity. More... | |
void | send_experimenter_message (const rofl::cauxid &auxid, uint32_t xid, uint32_t experimenter_id, uint32_t exp_type, uint8_t *body=NULL, size_t bodylen=0) |
Sends OpenFlow Experimenter message to attached controller entity. More... | |
void | send_flow_removed_message (const rofl::cauxid &auxid, const 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 attached 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 attached controller entity. More... | |
void | send_queue_get_config_reply (const rofl::cauxid &auxid, uint32_t xid, uint32_t portno, const rofl::openflow::cofpacket_queues &queues) |
Sends OpenFlow Queue-Get-Config-Reply message to attached controller entity. More... | |
void | send_role_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofrole &role) |
Sends OpenFlow Role-Reply message to attached controller entity. More... | |
void | send_get_async_config_reply (const rofl::cauxid &auxid, uint32_t xid, const rofl::openflow::cofasync_config &async_config) |
Sends OpenFlow Get-Async-Config-Reply message to attached controller entity. More... | |
![]() | |
crofchan_env () | |
crofchan_env constructor | |
virtual | ~crofchan_env () |
crofchan_env destructor | |
![]() | |
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... | |
Static Public Member Functions | |
static rofl::crofctl & | get_ctl (const rofl::cctlid &ctlid) |
Returns reference to rofl::crofctl instance identified by rofl-common's internal identifier. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const crofctl &ctl) |
Additional Inherited Members | |
![]() | |
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. | |
Class representing a remote controller entity.
This class encapsulates properties of a single remote controller entity including the OpenFlow control channel, its role and the set of asynchronous event notifications to be sent to this controller. Its public API offers methods to manage the OpenFlow control channel, i.e. CRUD methods for individual control connections.
rofl::crofctl expects an instance of class rofl::crofctl_env as surrounding environment and sends various notifications via this interface. Class rofl::crofbase implements this interface and may be used as base class for advanced applications. However, you may implement rofl::crofctl_env directly as well.
|
inline |
crofctl constructor
env | pointer to rofl::crofctl_env instance defining the environment for this object |
ctlid | rofl-common's internal identifier for this instance |
remove_on_channel_close | when set to true, this indicates to remove this object after the control channel has been terminated |
versionbitmap | OpenFlow version bitmap |
|
inlinevirtual |
crofctl destructor
Closes all control connections and does a general clean-up.
|
inline |
Add an existing rofl::crofconn instance created on heap to this object.
This method is used for attaching an already existing rofl::crofconn instance to this rofl::crofctl instance. Do not call this method, unless you know what you are doing.
conn | pointer to rofl::crofconn instance allocated on heap |
|
inline |
Establishes a new control connection to a remote controller entity with the given control connection identifier.
An already existing control connection with the specified control connection identifier is replaced by this new control connection instance. You may select any arbitrary control connection identifier. However, care must be taken for the main connection (auxid: 0): (Re-)Connecting the main connection leads to an implicit termination of all existing control connections in OpenFlow.
auxid | control connection identifier |
socket_type | one of the socket types defined in rofl::csocket |
socket_params | a set of parameters for the selected socket type |
|
inline |
Terminates an existing control connection with given identifier.
When the main control connection (auxid: 0) is closed, this also terminates all other existing control connections.
auxid | control connection identifier |
|
inline |
Returns a list of connection identifiers of all existing control connections.
The list contains all connections independent from their current status.
|
static |
Returns reference to rofl::crofctl instance identified by rofl-common's internal identifier.
ctlid | rofl-common's internal datapath identifier |
eRofCtlNotFound | when no object matches the controller identifier |
|
inline |
Returns rofl-common's internal rofl::cctlid identifier for this instance.
|
inline |
Returns caddress of connected remote entity for given connection identifier.
|
inline |
Returns the OpenFlow protocol version used for this control connection.
|
inline |
Returns the defined OpenFlow version bitmap for this instance.
void crofctl::send_aggr_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofaggr_stats_reply & | aggr_stats, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Aggregate-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
aggr_stats | aggr_stats body |
more | flag if multiple STATS replies will be sent |
void crofctl::send_barrier_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid | ||
) |
Sends OpenFlow Barrier-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
void crofctl::send_desc_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofdesc_stats_reply & | desc_stats, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Desc-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
desc_stats | body of DESC-STATS.reply |
more | flag if multiple STATS replies will be sent |
void crofctl::send_error_message | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint16_t | type, | ||
uint16_t | code, | ||
uint8_t * | data = NULL , |
||
size_t | datalen = 0 |
||
) |
Sends OpenFlow Error message to attached controller entity.
xid | OpenFlow transaction identifier |
type | one of OpenFlow's OFPET_* flags |
code | one of OpenFlow's error codes |
data | first (at least 64) bytes of failed request |
datalen | length of failed request appended to error message |
void crofctl::send_experimenter_message | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint32_t | experimenter_id, | ||
uint32_t | exp_type, | ||
uint8_t * | body = NULL , |
||
size_t | bodylen = 0 |
||
) |
Sends OpenFlow Experimenter message to attached controller entity.
xid | OpenFlow transaction identifier |
experimenter_id | exp_id as assigned by ONF |
exp_type | exp_type as defined by the ONF member |
body | pointer to opaque experimenter message body (optional) |
bodylen | length of body (optional) |
void crofctl::send_experimenter_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint32_t | exp_id, | ||
uint32_t | exp_type, | ||
const cmemory & | body, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Experimenter-Stats-Reply message to attached controller entity.
auxid | auxiliary connection id |
xid | OpenFlow transaction identifier |
exp_id | experimenter ID |
exp_type | user defined type |
body | start of user defined body |
bodylen | length of user defined body |
more | flag if multiple STATS replies will be sent |
void crofctl::send_features_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint64_t | dpid, | ||
uint32_t | n_buffers, | ||
uint8_t | n_tables, | ||
uint32_t | capabilities, | ||
uint8_t | of13_auxiliary_id = 0 , |
||
uint32_t | of10_actions_bitmap = 0 , |
||
const rofl::openflow::cofports & | ports = rofl::openflow::cofports() |
||
) |
Sends OpenFlow Features-Reply message to attached controller entity.
auxid | controller connection identifier |
xid | OpenFlow transaction identifier |
dpid | OpenFlow datapath identifier |
n_buffers | number of buffers available in this datapath element's I/O subsystem |
n_tables | number of tables available in this datapath element's pipeline |
capabilities | OpenFlow capabilities |
of13_auxiliary_id | control connection identifier since OpenFlow 1.3 |
of10_actions_bitmap | set of available actions for OpenFlow 1.0 only |
ports | OpenFlow list of ports |
void crofctl::send_flow_removed_message | ( | const rofl::cauxid & | auxid, |
const 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 attached controller entity.
match | match structure defined in FlowMod entry |
cookie | cookie defined in FlowMod entry |
priority | priority level defined in FlowMOd entry |
reason | one of OpenFlow's OFPRR_* constants |
table_id | ID of table from which the FlowMod entry was removed |
duration_sec | time flow was alive in seconds |
duration_nsec | time flow was alive in nanoseconds beyond duration_sec |
idle_timeout | idle timeout from original flow mod |
idle_timeout | hard timeout from original flow mod |
packet_count | number of packets handled by this flow mod |
byte_count | number of bytes handled by this flow mod |
void crofctl::send_flow_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofflowstatsarray & | flow_stats, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Flow-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
flow_stats | array of flow_stats bodies |
more | flag if multiple STATS replies will be sent |
void crofctl::send_get_async_config_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofasync_config & | async_config | ||
) |
Sends OpenFlow Get-Async-Config-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
void crofctl::send_get_config_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint16_t | flags, | ||
uint16_t | miss_send_len | ||
) |
Sends OpenFlow Get-Config-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
flags | datapath element flags |
miss_send_len | default miss_send_len value |
void crofctl::send_group_desc_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofgroupdescstatsarray & | groupdescs, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Group-Desc-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
group_desc_stats | array of group_desc_stats bodies |
more | flag if multiple STATS replies will be sent |
void crofctl::send_group_features_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofgroup_features_stats_reply & | group_features_stats, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Group-Features-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
group_features_stats | group_features_stats body |
more | flag if multiple STATS replies will be sent |
void crofctl::send_group_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofgroupstatsarray & | groupstatsarray, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Group-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
group_stats | array of group_stats bodies |
more | flag if multiple STATS replies will be sent |
void crofctl::send_meter_config_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofmeterconfigarray & | meter_config_array, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Meter-Config-Stats-Reply message to attached controller entity.
auxid | auxiliary connection id |
xid | OpenFlow transaction identifier |
meter_config_array | instance of type cofmeterconfigarray |
stats_flags | flags for OpenFlow statistics messages, if any (default: 0) |
void crofctl::send_meter_features_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofmeter_features & | meter_features, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Meter-Features-Stats-Reply message to attached controller entity.
auxid | auxiliary connection id |
xid | OpenFlow transaction identifier |
meter_config_array | instance of type cofmeterfeatures |
stats_flags | flags for OpenFlow statistics messages, if any (default: 0) |
void crofctl::send_meter_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofmeterstatsarray & | meter_stats_array, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Meter-Stats-Reply message to attached controller entity.
auxid | auxiliary connection id |
xid | OpenFlow transaction identifier |
meter_stats_array | instance of type cofmeterstatsarray |
stats_flags | flags for OpenFlow statistics messages, if any (default: 0) |
void crofctl::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, | ||
const rofl::openflow::cofmatch & | match, | ||
uint8_t * | data, | ||
size_t | datalen | ||
) |
Sends OpenFlow Packet-In message to attached controller entity.
buffer_id | buffer ID assigned by data path |
total_len | Full length of frame |
reason | reason packet is being sent (one of OFPR_* flags) |
table_id | ID of table that generated the PACKET-IN event |
cookie | cookie of FlowMod entry that generated the PACKET-IN event |
in_port | port on which frame was received |
match | match structure generated by data path element for data packet |
data | data packet |
datalen | length of data packet |
void crofctl::send_port_desc_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofports & | ports, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Port-Desc-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
ports | ports body |
more | flag if multiple STATS replies will be sent |
void crofctl::send_port_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofportstatsarray & | portstatsarray, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Port-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
port_stats | array of port_stats bodies |
more | flag if multiple STATS replies will be sent |
void crofctl::send_port_status_message | ( | const rofl::cauxid & | auxid, |
uint8_t | reason, | ||
const rofl::openflow::cofport & | port | ||
) |
Sends OpenFlow Port-Status message to attached controller entity.
reason | one of OpenFlow's OFPPR_* constants |
port | rofl::openflow::cofport instance that changed its status |
void crofctl::send_queue_get_config_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint32_t | portno, | ||
const rofl::openflow::cofpacket_queues & | queues | ||
) |
Sends OpenFlow Queue-Get-Config-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
portno | OpenFlow number assigned to port |
void crofctl::send_queue_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofqueuestatsarray & | queuestatsarray, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Queue-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
port_stats | array of port_stats bodies |
more | flag if multiple STATS replies will be sent |
void crofctl::send_role_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::cofrole & | role | ||
) |
Sends OpenFlow Role-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
role | defined role from data path |
generation_id | gen_id as defined by OpenFlow |
void crofctl::send_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
uint16_t | stats_type, | ||
uint16_t | stats_flags, | ||
uint8_t * | body = NULL , |
||
size_t | bodylen = 0 |
||
) |
Sends OpenFlow Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
stats_type | one of the OFPST_* constants |
body | body of a STATS.reply |
bodylen | length of STATS.reply body |
more | flag if multiple STATS.reply messages will be sent |
void crofctl::send_table_features_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::coftables & | tables, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Table-Features-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
tables | tables body |
more | flag if multiple STATS replies will be sent |
void crofctl::send_table_stats_reply | ( | const rofl::cauxid & | auxid, |
uint32_t | xid, | ||
const rofl::openflow::coftablestatsarray & | tablestatsarray, | ||
uint16_t | stats_flags = 0 |
||
) |
Sends OpenFlow Table-Stats-Reply message to attached controller entity.
xid | OpenFlow transaction identifier |
table_stats | array of table_stats bodies |
more | flag if multiple STATS replies will be sent |