Documentation‎ > ‎

RouteFlow Protocol Messages

RouteFlow defines a simple wire protocol for the the communication between the RF-Server and the RFController and the RF-Server and RF-Slave components. The RouteFlow protocol is based on a set of IPC messages, as defined on the directory "include".

There is a base RouteFlow Message, defining the header of  every other type of messages.
  • The header contains the IP destination, IP source, ID of the Virtual Machine (VM), the message's type and the total message's length.

There is a base message, with a set of header fields and a generic payload. The header fields are group, type and pay_size (total size of the payload). The group may be command or event, and for each there is a set of possible types.
  • Command messages may be send_packet, usually in response to packet_in_events from NOX to forward packets to the correct datapath, or flow, for flow modification messages;
  • Event Messages may be of every relevant event types generated on RFController, such as packet_in, datapath_join, datapath_leave, link_event (generated by discovery) or map_event (mapping VMs to ports on the OVS).
For the communications between the RF-Server and the RF-Slaves, one message class is defined that extends the Base Message: The VM Message. Its puspose is mainly for configuration actions such as:
  • Accept / Reject connection between  RF-Server and the RF-Slave;
  • Configure a RF-Slaves to represent a specific Switch;
  • Send route updates to be translated into OpenFlow install / remove messages.