Skip to content
Snippets Groups Projects
  1. Oct 05, 2015
  2. Sep 21, 2015
  3. Aug 31, 2015
  4. Aug 20, 2015
  5. Aug 15, 2015
    • Ryan Izard's avatar
      Lots of goodies here. Apologies for the largish commit. Most files are just... · 774b1ff0
      Ryan Izard authored
      Lots of goodies here. Apologies for the largish commit. Most files are just removing warnings that were introduced after updating JSON libraries a short time ago. IOFSwitch now can return specific list of tables supported. This is useful for the OFHandshakeHandler for one, which not inserts table miss flows up to the table ID indicated in floodlightdefault.properties, but only in the table IDs that actually exist. Up next, Forwarding has some preliminary, isolated support for IPv6. Still need to integrate support into the device service, which is more complex. Forwarding also supports routing through OF switches of multiple OFVersions. This was a very subtle bug that was fixed by modifying MatchUtils to create a Match clone to a specific OFVersion. This utility function is used to generate a Match compatible with the OpenFlow version of the switch. Believe it or not, Loxi actually allows you to insert a Match of OFVersion.OF_X into an OFFlowMod of OFVersion.OF_Y. The switch, of course, doesn't have a clue how to interpret it and either reports an error, or actually resets the OF channel, in the case of a couple hardware switches tested on. Good news is this is fixed now :-).
      774b1ff0
  6. Aug 13, 2015
  7. Jun 27, 2015
  8. Jun 26, 2015
  9. Jun 22, 2015
    • Ryan Izard's avatar
      First go at implementing OpenFlow version bitmaps. Also, made it a lot easier... · 10476046
      Ryan Izard authored
      First go at implementing OpenFlow version bitmaps. Also, made it a lot easier to change your default OpenFlow versions via floodlightdefault.properties's net.floodlightcontroller.OFSwitchManager.supportedOpenFlowVersions variable. The variable searches any string for 1.0, 1.1, 1.2, 1.3, and 1.4 and saves those versions as possible OpenFlow versions to use during a handshake and used in our controller's version bitmap. We don't presently account for future versions that might be e.g. 1.10 (which 1.1 would match). We need to use regexs to make the string parsing more robust. What I also noticed in working on this commit was that there are no utilies for parsing OpenFlow versions from wire (at least that are exposed by Loxi). TODO Create an OFVersion.ofWireValue(int wireVal) function in Loxi that efficiently tries to locate an OpenFlow version from the wire value. Right now, there are getters for each defined version, but not a utility to go the other way. Also, it might be useful to include an OFVersion.ofString(String laypersonString) that takes e.g. '1.1' and tries to get the OFVersion enum value. Last thing: NEED TO FIX CONNECT, DISCONNECT, and RECONNECT BUG that only occurs when OVS connects to Floodlight after Floodlight has been running first. I think it has to do with how OVS starts up and ***might*** be an OVS issue and not a Floodlight issue. Furthermore, need to allow OVS to send a PORT_STATUS message before we query for the PORT_CONFIG in the handshake. It's okay, we'll just get the port info again when we query for it shortly. This causes us to disconnect OVS even though the handshake is okay.
      10476046
  10. Jun 08, 2015
  11. Jun 03, 2015
  12. Jun 02, 2015
  13. May 29, 2015
    • Ryan Izard's avatar
      Fixed what was likely one of the dependency issues in the unit tests. There... · 91cbd8e4
      Ryan Izard authored
      Fixed what was likely one of the dependency issues in the unit tests. There were two @Before annotations on functions in the handshake handler tests. setUp() depends on setUpFeaturesReply(); but if they are both @Before, there's no guarantee the first @Before (features reply) will be executed before the second @Before (setup). Removed @Before annotation from setUpFeaturesReply() and manually invoke that function from within setUp() so that the featuresReply class variable is set when it's needed in setUp().
      91cbd8e4
  14. May 12, 2015
    • Ryan Izard's avatar
      Added ability to specify the tables to receive table-miss flows for OF1.3+... · da4a847a
      Ryan Izard authored
      Added ability to specify the tables to receive table-miss flows for OF1.3+ switches. What we did before was insert these table-miss flows in all tables, which for OVS is 254 flows and not only is a waste of resources if the tables aren't being used, but also serverly clutters the REST API and Web UI output when listing flows. By default, the first 4 tables will receive the forward-to-controller table-miss flow. The reason for 4 is to account for a small number of software tables present on many hardware switches. If the actual number of tables is less, the lesser value will be used. To modify these settings, there are two options: (1) change the default for all switches or (2) specify the max tables to insert the table-miss flow on a per-DPID basis. These options are exposed in the floodlightdefault.properties file. Toy, no-op examples are given setting the default to 4 and two switches to 4 (the internal default is 4, thus it's a no-op). The list of switches and max tables should be given as a list of JSON key:value objects to the net.floodlightcontroller.core.internal.OFSwitchManager.maxTableToReceiveTableMissFlowPerDpid config variable. The default can be specified as an integer to the net.floodlightcontroller.core.internal.OFSwitchManager.defaultMaxTableToReceiveTableMissFlow variable.
      da4a847a
  15. May 11, 2015
    • Ryan Izard's avatar
      Support for OFTableFeatures messages. OpenFlowJ-Loxi bindings have been... · 1c32664c
      Ryan Izard authored
      Support for OFTableFeatures messages. OpenFlowJ-Loxi bindings have been updated to support a variable pad (byte-aligned to 8 bytes) for each OFTableFeaturesProp list. Loxi has not been 'officially' updated yet though due to a lack of a C implementation. The handshake handler in Floodlight and the switch representations were also updated in order to support OFTableFeatures. By default, the features are requested for an OF1.3+ switch. They will be updated if they are reconfigured through a writeRequest() call IOFSwitch. To access table features, call getTableFeatures(TableId tableToGetFeaturesFor). They are exposed as a TableFeatures type, which more is more efficient than OFTableFeatures for frequent data accesses (especialy OFTableFeatureProp lists).
      1c32664c
  16. Apr 17, 2015
  17. Apr 16, 2015
    • Ryan Izard's avatar
      Added ability to switch OF roles per DPID or for all switches at once. This... · adb14342
      Ryan Izard authored
      Added ability to switch OF roles per DPID or for all switches at once. This includes a REST interface and integration with the handshake and channel handlers in order to keep the switch in the correct state. An IOFConnectionListener also has the ability to listen for messages that are written now instead of read from the wire. This allows modules to write role requests, have the underlying handshake/channel substrate tap in and listen to the request, and automatically update the role of the switch when the response comes back.
      adb14342
  18. Apr 13, 2015
  19. Apr 03, 2015
  20. Mar 19, 2015
  21. Mar 17, 2015
  22. Mar 15, 2015
  23. Feb 20, 2015
  24. Dec 21, 2014
  25. Dec 19, 2014
    • Ryan Izard's avatar
      Added insertion of default table-miss flow for OF1.3 switches. Also added... · df825121
      Ryan Izard authored
      Added insertion of default table-miss flow for OF1.3 switches. Also added clearing of switch tables when switch connects. Both of these only occur if the controller is in the MASTER role for the switch. It if is placed in SLAVE, the switch flow tables will not be modified. Also had to update the unit tests with new expectations for IOFSwitchBackend fuction calls (which was a real pain).
      df825121
  26. Dec 17, 2014
    • Ryan Izard's avatar
      Removed all deprecated FlowReconcileManager stuff from unit tests, which is... · 4ca163ce
      Ryan Izard authored
      Removed all deprecated FlowReconcileManager stuff from unit tests, which is just now showing up as a warning... Also clarified debug message in ActionUtils for actions that do not take the form 'key=value' e.g. 'pop_vlan'. It was phrased as if the action was bad, but it's okay for some that do not take a value.
      4ca163ce
  27. Dec 15, 2014
  28. Dec 01, 2014
    • Ryan Izard's avatar
      Added in NXMs for source and destination tunnel IPs, included in new Loxigen... · 777725d2
      Ryan Izard authored
      Added in NXMs for source and destination tunnel IPs, included in new Loxigen 0.9.0. Used Loxigen's OFFlowModFlags serializers for different OFVersions to fix compile error in StatsReplySerializer introduced upon Loxigen upgrade. Add new OF1.4 counters to DebugCounters to allow unit tests to compile (this is the first step in OF1.4 support =) ).
      777725d2
  29. Nov 21, 2014
  30. Nov 14, 2014
    • Ryan Izard's avatar
      Removed all deprecated flowcache references and marked all flowcache classes... · f7d14cd5
      Ryan Izard authored
      Removed all deprecated flowcache references and marked all flowcache classes as deprecated. Also TODOed the OFMessageDamper Forwarding module unit test. It will always fail until tthe OFMessageDamper is fixed to ignore the XIDs in OFMessages.
      f7d14cd5
    • Ryan Izard's avatar
      OF1.3 handshake unit tests updated. All unit tests can be run together and... · a422012a
      Ryan Izard authored
      OF1.3 handshake unit tests updated. All unit tests can be run together and have zero errors but one failure. The failure is in Forwarding and is expected for the time being until OFMessageDamper/Loxigen is fixed to ignore XIDs in OFMessages. In the previous commit, the unit tests for the flowcache package were completely removed due to the effort required to fix them. I don't know if completely removing the flowcache package though is the best idea. Even if it's not tested and not proven scalable, people might benefit from being able to look at the code. Thus, I've left the package in, at least for the time being.
      a422012a
Loading