Skip to content
alshabib edited this page Oct 1, 2012 · 5 revisions

API Changes

We are transitioning the API to JSON from XMLRPC. The API syntax may change in some areas and therefore this document is intended to details these changes.

JSON-RPC API

Wire protocol is given below.

Command Name Description
getSliceList Fetches the list of slices configured at the FlowVisor
createSlice Creates the specified slice
updateSlice Modifies the slice with the supplied information.
removeSlice Removes a slice
getSliceInfo Fetches slice attributes such as controller url, email, etc
getSliceStats Obtains the per slice counter for drop, send and receive packets.
updatePasswd Changes a slice password
updateAdminPasswd Changes the admin (ie. fvadmin) password
getDatapathStats Returns number of packets received, send to and drop by the classifier associated to this switch
getDatapathFlowDB Returns the flow rules that have been pushed to a dpid
getFlowSpace Returns the flowspace (potentially per slice) defined at the FlowVisor
removeFlowSpace Given a FlowVisor flowentry id, remove it.
addFlowSpace Create a FlowVisor flowentry given a dpid, priority, match parameters and slice permission (action list)
updateFlowSpace Given a dpid, priority, match, action list, replace flowentry at id id.
getDatapaths returns a list of dpids seen by the FlowVisor
getDatapathInfo Given a dpid, returns the features advertised by the switch
getLinks Returns the set of switch connections discovered by FlowVisor
ping Returns a pong with the original message msg
registerCallback Registers a callback, which will be called if the topology changes
unregisterCallback removes all or a specific callback set by this user
setFloodPerm Sets the flood permission for a slice forslice. If no dpid is passed then this slice has flood permission for all dpids.
getFloodPerm Get the flood permission for a given dpid. If no dpid return the flood permission for the default case.
setLoggingFacility Sets the logging facility
getLoggingFacility Gets the logging facility.
setLoggingIdent Sets the logging identifier.
getLoggingIdent Gets the logging identifier.
setFlowTracking Enables/Disables flow tracking
getFlowTracking Returns the status of flow tracking.
setStatsDescription Enables/Disables statistics description field translation to a human readable format
getStatsDescription Returns the status of stats description switch.
setDropPolicy Sets the drop policy to policy ('exact' or 'rule') for slice slicename
getDropPolicy Get the drop policy for slice *slicename
setRecvLLDP Sets whether slice slicename receives all lldp messages.
getRecvLLDP Get the lldp spam status for slice slicename

Wire Protocol

Basic Notation

The descriptions below use the following shorthand notations for JSON values. Additional notation is presented later.

<string>

A JSON string.

<id>

A JSON string matching [a-zA-Z_][a-zA-Z0-9_]*.

<boolean>

A JSON true or false value.

<number>

A JSON number.

<integer>

A JSON number with an integer value, within a certain range (currently -263...+263-1).

<method>

A method from the table given above

<args>

An object of key/value JSON types that serve as arguments to a method.

<result>

Any valid combination of JSON types.

DOCUMENT IN CONSTRUCTION