Changes between Version 13 and Version 14 of Internal/OpenFlow/FloodlightFVModule


Ignore:
Timestamp:
Jun 21, 2012, 4:07:20 PM (12 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/FloodlightFVModule

    v13 v14  
    175175The !FlowMap is one of Flowvisor's central components that must be ported. The first step, as always, is to understand how its components fit together. Hopefully there will be time for a clear re-write of the banter to follow...   
    176176
    177 A !FlowMap provides a uniform interface for the !FlowSpace. It can be thought of as a structure to hold the !FlowSpace, and to map it to proper slices. The two kinds of !FlowMaps supported by Flowvisor as of now (v.0.8.3) are the Linear and Federated !FlowMaps, both implementations of the Java interface, !FlowMap.java. A !FlowSpace, is represented by flow rules, which map actions to !OpenFlow pattern matches. The enum !MatchType defines how each header field of a (Flowvisor-defined) rule pattern and the received rule patterns relate. !FlowEntry.java implements the !FlowSpace.
    178 
    179 ''Intersections'' take two !FlowEntries and describe how they relate (via a !MatchType), and, if they overlap, a representation of the intersection in the form of a !FlowEntry built by choosing the more heavily constrained pattern for each header field and DPID(s). !FlowIntersect.java implements the representation of the intersection, and !FlowEntry defines matches(), which compares two !FlowEntries to produce the intersection. Comparisons are implemented in !FlowTestOp.java. 
    180 
    181 The "traditional" OFMatch construct doesn't so matching on DPID, so it is extended by FVMatch to do so.         
     177First up, some terms:
     178 * Flow rule : Mappings of Packet header pattern to actions (DROP, FLOOD, FORWARD, etc.)
     179 * !FlowSpace : A collection of flow rules
     180 * !FlowMap : A uniform interface and structure for manipulating and holding a !FlowSpace. A !FlowMap also maps a !FlowSpace to the proper slices.
     181
     182A flow rule is defined by a matching criteria (FVMatch.java -> OFMatch.java) and an action (OFAction.java derivative). The "traditional" OFMatch construct doesn't do matching on DPID, so it is extended by FVMatch to do so. Flowvisor v0.8.3 supports two types of !FlowMaps, Linear and Federated. !FlowMaps are implementations of the Java Interface !FlowMap.java.     
     183 
     184The enum !MatchType defines how each header pattern of a (Flowvisor-defined) rule and the received rule patterns relate, in semi-set theoretic terms:
     185{{{
     186public enum MatchType {
     187        UNKNOWN, // not yet calculated
     188        NONE, // no overlap between A and B
     189        SUBSET, // match A is a subset of B
     190        SUPERSET, // match A is a superset of match B
     191        INTERSECT, // match A and B overlap, but neither subsumes the other
     192        EQUAL; // match A and B are exactly the same
     193}
     194}}}
     195
     196The !Matchtype is used to describe ''Intersections'', descriptions of how two !FlowEntries relate. An intersection takes the form of a !FlowEntry built by choosing the more heavily constrained pattern for each header field and DPID(s). !FlowIntersect.java implements the representation of the intersection, and !FlowEntry defines matches(), which compares two !FlowEntries to produce the intersection. Comparisons are implemented in !FlowTestOp.java. 
     197
    182198
    183199