Chapter 3 SDN Control Plane for Converged Architecture
3.2 Messages
3.2.1 Control Plane Messages
Table 7 show the messages type implemented by the SDN controllers and orchestrator. The D-CPI messages shown in Table 7 are those between the OF agent and the physical device. The ‘Patch_Connect’ and ‘Patch_Disconnect’ messages are those that invoke connection between optical switch ports. These are translated over the interface to the TL1 ‘ENT-PATCH::inport,outport:;’ and ‘DLT-PATCH::inport,outport:;’ messages. Also the D-CPI messages from the Network Controller to the OF agent for the optical switch and OLT follow the OF v1.4 standard. The only extension to the standard OF protocol is that at the OLT for the wavelength selection at the OLT.
# Initialise variables. stream_id = 1 -> up, 0->down c=3; fl=2000; gs=3000; tx=50; frq= 1500;stream_id=1; # Set Feature Mask
mask = (ofp.OFPPC_PORT_DOWN | ofp.OFPPC_NO_RECV | ofp.OFPPC_NO_FWD | ofp.OFPPC_NO_PACKET_IN)
# Set Properties
properties = [ofp_parser.OFPPortModPropOptical(1, configure=c, freq_lmda=frq, fl_offset=fl, grid_span=gs, tx_pwr=tx, stream_id=stream_id)]
# Mod Port
req = ofp_parser.OFPPortMod(datapath, port_no, hw_addr, config, mask, properties)
Figure 12 - OFPPortModPropOptical stream_id
The ‘ofp_port_mod_prop_optical’ data structure and the ‘OFPOPF Configure’ method which are defined in the OF v1.4 standard haves been enhanced to include an FGPA stream identifier (stream_id in Figure 12) used to differentiate between the upstream and downstream directions of the port considered.
These are then mapped to the parameters of the ‘Set_US_lambda’ and ‘Set_DS_lambda’ D-CPI functions (Table 8) from the OF agent to the FGPA Microblaze controller interface in the OLT.
Messages
56
Interfac
e Type Command Type Source Destination Use Case Main Parameters
D-CPI Patch_Connect Network
Controller Optical Swtich Protect, DWA Input-output ports
D-CPI Patch_Disconnect Network
Controller Optical Switch Protect DWA Input-output ports
D-CPI Status_report OLT Network
Controller
Protect, DWA
Status Values
D-CPI Failure_Detect OLT Network
Controller
Protect ID of pre- set failure event
D-CPI Create_Flow Network
Controller OLT Protect, DWA MAX, xgem_port, mpls_tag
D-CPI Delete_Flow Network
Controller OLT Protect,DWA Flow_ID
D-CPI Set_DS_lambda Network
Controller OLT DWA ONU_ID, channel
D-CPI Set_US_lambda Network
Controller OLT DWA ONU_ID, channel
I-CPI Failure_Detected Network
Controller Network Orchestrato r
Protect
I-CPI Invoke_Failover Network
Orchestrator NC, CNC Protect
I-CPI Client Failure
Recovery Network Orchestrator Network Controller Protect
I-CPI Create_Path Network
Orchestrator Network Controller, Core Network Controller DWA Source, Destination , QoS params
A-CPI Resource_Request Portal Network
Orchestrato r DWA Source, Destination , QoS params A-CPI Resource_Confirmat
ion Network Orchestrator Portal DWA Request_ID
Table 7 - List of Main Control Plane Messages
The ‘Status_Report’ is a general message to report the status of a given parameter. The ‘Failure_Detected’ message indicates that the OLT has identified a failure and it triggers the protection action at the Network Controller. The ‘Create_Flow’ creates an entry on the OLT flow table, providing flow association between the device MAC address, the ONU XG- PON encapsulation method (XGEM) port and the Multiprotocol Label Switching (MPLS) label (this isused to identify a Pseudo-Wire in this part of the network). The Network Controller uses the ‘Set_DS_lambda’ and ‘Set_US_lambda’ for indicating the downstream
57
downstream and upstream upstream transmission wavelengths to the ONU. Once the ONU has received the corresponding XG-PON physical layer operation, administration and maintenance (PLOAM) message, it sends a ‘write WL<lambda>’ over the UART interface to change the centre wavelength of its tunable filter. This last command is sent to the OLT, which then generates a PLOAM message to communicate with the ONU.
While our implementation of the Network Controller to OLT is proprietary, the Broadband forum has initiated an effort to standardise define a D-CPI OF interface for PONs [109]. The I-CPI layer takes charge of the messaging between the Network Orchestrator and node controller NCs. The messages used in our case are: “Failure_Detected” reporting from the Network Controller to the network orchestrator that one of the OLT connections has failed; ‘Invoke_Failback’, used by the network orchestrator to activate the pre-configured protection path on the NCs; “Client_Failure_Recovery”, is used by the network orchestrator to inform the Network Controller that the protection was successfully established. Alternatively, the DWA use case employs instead a ‘Create_Path” message with source, destination and quality of service (QoS) parameters (triggered by the ‘Resource_Request’ message described below). In the protection experiments [107, 110, 111], we have used a proprietary interface for the I-CPI, although in [112] we have demonstrated the interoperability of our controller NC with the Control Orchestration Protocol (COP) [113].
The A-CPI interface operates between a user portal and the network orchestrator. In the DWA use case, a “Resource_Request” is sent by the portal to the network orchestrator indicating the source and destination points as well as the relevant QoS parameters (e.g., CIR and PIR) such as committed information rate (CIR) and peak information rate (PIR).The demonstrated architecture also integrates an SDN control plane for the access and core network elements, showing a fast protection mechanism, in the case of primary backhaul link failure, with service restoration and the dynamic reassignment of an ONU wavelength in response to increased traffic demand.
3.2.2 Openflow Messages
All Openflow messages follow a common format, however, the format has grown from a simple one format in the 0x01 wire standards to the more complex formats of wire standards 0x04 and later. The increase in complexity of the messages reflects the complexity of the type of functions and controls which more recent type of Openflow switches are required to exercise. Switches are required to be stateful, and have wider varieties of port attributes. An example of complex messaging introduced is the Barrier Message, which must be interpreted by Openflow Agent. When the controller wants to ensure message dependencies have been met or wants to receive notifications for completed operations by Openflow Agent, it uses an OFPT_BARRIER_REQUEST message. This message has no
Messages
58
body. Upon receipt, the Openflow Agent must finish processing all previously-received messages, including sending corresponding reply or error messages, before executing any messages beyond the Barrier Request. When such processing is complete, the Openflow Agent must send an OFPT_BARRIER_REPLY message with the transaction id of the original request.
Messages are characterised as either synchronous or asynchronous. Asynchronous messages can be sent by either the Openflow Agent or the Controller, and elicit a response from the other party. Example of asynchronous messages are Hello and EchoRequest. Hello elicits Hello in return, and is used to initiate the relationship between the Openflow Agent and the Controller, however in practice, this usually is initiated by the Openflow controller. EchoRequest elicits EchoReply in response and is typically used as a health check or keep-alive message. Synchronous messages generally are initiated by the controller, once the relationship has been created. Synchronous messages are used to elicit information from the Openflow Agent by the Controller. Examples of Synchronous
messages are OFPT_FEATURES_REQUEST, OFPT_PORT_MOD and
OFPT_FLOW_MOD. OFPT_FEATURES_REQUEST is the request for the characteristics of the switch as well as the capabilities of all ports.
3.2.3 PON wrapper methods
Software-wise, communication with the OLT’s and ONU’s is accomplished through a single Class FPGA, through which a number of methods are defined. Instantiation of the class opens a TTY serial interface port to the particular device. The sendcmd() method is the base method to issue a string to the interface and receive back a response. sendcmd() is used by almost all other FGPA methods to issue commands and gather responses. The raw FPGA interface presents a menu structure, which is invoked by the FPGA class. The following table outlines the range of based methods which may be issued on the PON devices.
59
Method Explanation
device.reset() Resets Device
device.enable_mpls() Enables MPLS tagging interpretation on the device. This command is issued at the head-end OLT. device.disable_mpls() Disables MPLGS tagging interpretation on the
device. This command is issued at the head-end OLT.
device.set_ds_laser(fpga_channel) Sets downstream laser to channel designated by fpga_channel (Skylane mapping). This command is issued at the head-end OLT.
device.set_us_laser(onu_id, fpga_channel)
Sets downstream laser to channel designated by fpga_channel (Skylane mapping) on the ONU onu_id. This command is issued at the head-end OLT.
device.set_alloc_id(onu_id, alloc_id)
Sets the alloc id / XGEM port on the ONU onu_id
device.create_flow(mac, xgem, mpls_tag, cam)
Creates a flow denoted by mac mac address, XGEM port xgem, MPLS tag mpls_tag on cam cam. This command is issued at the head-end OLT. device.delete_flow(cam) Deletes flow in cam cam_id
device.dwa_set() Completes the set up of the DWA mapping on the PON. This command is issued at the head-end OLT. device.dwa_reset() Resets the DWA mapping on the PON. This
command is issued at the head-end OLT.
device.getstatus() Returns the status of the device. This may be on any deivce
device.readreg() Returns the register value. This may be on any device
Table 8 - PON Methods
3.2.4 Event Plane Messages
The message format is composed of a major category (called a ZeroMQ topic); a global timestamp which is synchronized to Dublin time; a minor category which is used for a command or message payload. The four messages types are as follows:
i. unsolicited events of large significance such as the failure of major nodes and links: an example of a primary PON failure event showing the major category, timestamp and minor category is NetEvent 1422736912.30 OLT_P_Failure,
Sample Configuration
60
ii. reactive control messages, which are generated in response to unsolicited events, for example, messages that trigger takeover of service by a standby piece of equipment or Service. An example of an Optical Switch control message showing the major category, timestamp and minor category is GlimEvent 1422737623.07 upSdownP.
iii. proactive configuration of elements or sub-systems within the testbed. An example of a sub-system restart event showing the major category, timestamp and minor category is SysControl 1422737623.07 Restart.
iv. The control of or alerting within test routines. These messages serve to co-ordinate the actions of a number of agents involved in a test cycle which are located across the wide area testbed.