| 173 | |
| 174 | ==== (6/20):[Flowvisor !FlowMap Overview] ==== #fv-1 |
| 175 | The !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... |
| 176 | |
| 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. |
| 182 | |
| 183 | |
| 184 | |