nettle-frp-0.1: FRP for controlling networks of OpenFlow switches.



Module defining an abstract data type describing the connectivity among a collection of OpenFlow switches.



type Port = (SwitchID, PortID)Source

Port definition that references a specific port on a specific switch

type Link = Set PortSource

A set of two Ports (as defined above) that represents a connection from the PortID of a switch with a certain DataPathID to the PortID of another switch with a different DataPathID

type Topology = Set LinkSource

Definition of Topology, that is, a set of two-member sets of ports It's constructors are not made available in other modules; Topologies can only be manipulated by the functions defined in this module. This is done so that certain properties can be assumed of any Topology, namely that all Links contain two members

unTopology :: Topology -> Set LinkSource

Deconstructor for Topology constructor

merge :: Topology -> Topology -> TopologySource

Merge two topologies

empty :: TopologySource

Provides a Topology with no links

link :: (Port, Port) -> LinkSource

Construct a link

addLink :: Port -> Port -> Topology -> TopologySource

Add a link into an existing topology. Use with empty to make a new Topology.

removeSwitch :: SwitchID -> Topology -> TopologySource

Removes all links that include a certain switch's DataPathID from the Topology.

combine :: Topology -> Topology -> TopologySource

Given two topologies, merge them into one

subset :: SwitchID -> Topology -> TopologySource

Find the subset of Links in a Topology that all include a certain switch's DataPathID