- Apr 29, 2016
-
-
Ryan Izard authored
Updated to Java 8, junit-4.12, easymock-3.4. Still having trouble having unit tests pass in Eclipse for DeviceManagerImplTest, but they work find in maven and ant. testPacketInBasic and testPacketInBasicIPv6 are the trouble makers (fail occasionally).
-
- Apr 28, 2016
-
-
Ryan Izard authored
Handle link and port down events in Forwarding. Remove flows ingress and egress a failed port or link to eliminate stale entries. This is done in Forwarding instead of the Link Discovery Manager, since some user modules might not want their flows removed and wish for them to persist until the link comes back up.
-
Ryan Izard authored
-
- Apr 26, 2016
-
-
Ryan Izard authored
-
Ryan Izard authored
-
Ryan Izard authored
-
- Mar 28, 2016
-
-
Tulio Ribeiro authored
Hello guys, I have changed the logic of simple.FT (Fault Tolerant) module. The basic idea is, the FT module register on SyncManager to receive RPC events (connect and disconect nodes). In connect events, the controller send its switch list to storage and the other controllers can sync this info. In disconnect events, the controller is informed about which controller crashed and get switch list from storage and send a role request message to swicthes. Regards.
-
- Mar 26, 2016
-
-
Tulio Ribeiro authored
and compare with initial cluster config defined in floodlightdefault.properties. Issues: do not treat the message ROLE_STATUS. In case a cluster goes down and goes up, there is a problem, the Controller does not change its own role to role slave. But works properly as Primary-Backup configuration. Under development...
-
- Mar 25, 2016
-
-
Randall Sharo authored
-
Tulio Ribeiro authored
[junit] Running net.floodlightcontroller.devicemanager.internal.DeviceManagerImplTest [junit] Tests run: 37, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0,503 sec [junit] TEST net.floodlightcontroller.devicemanager.internal.DeviceManagerImplTest FAILED
-
Tulio Ribeiro authored
ant tests result in some failures.
-
Tulio Ribeiro authored
SyncManager results: 13:08:12.696 ERROR [i.n.u.ResourceLeakDetector:main] LEAK: You are creating too many HashedWheelTimer instances. HashedWheelTimer is a shared resource that must be reused across the JVM,so that only a few instances are created.
-
- Jan 25, 2016
-
-
paaguti-work authored
Include the completion listener in the MockFloodlightProvider
-
- Jan 21, 2016
-
-
paaguti-work authored
-
- Dec 22, 2015
-
-
Ryan Izard authored
Added unit test for writing messages while in MASTER/SLAVE. Changed to a blacklist mechanism instead of a whitelist (to match how the spec describes invalid (write) SLAVE messages). Completed invalid SLAVE messages for each OF version.
-
Ryan Izard authored
Updated to properly handle IOFSwitch write()'s while in SLAVE role. TODO: make unit test for trapping invalid messages while in SLAVE. TODO: complete logic for handling valid SLAVE message types per OF version.
-
- Dec 18, 2015
-
-
Ryan Izard authored
-
Ryan Izard authored
OMG, it was a timeout that was too short. Good news is that the bootstrap unit test passes. Bad news is that there is a timeout somewhere in the sync module that is way too long and causes the unit tests for sync to take literally a few minutes. Will look into that next.
-
Ryan Izard authored
Fixed a blunder in OFSwitchManager and Controller to allow switches to connect if a server IP isn't explicitly given in floodlihgtdefault.properties. Still can't get sync's bootstrap test to pass. Feels like a race condition b/t update threads.
-
- Dec 15, 2015
-
-
Ryan Izard authored
Core ported to Netty 4 along with unit tests. Still need to do sync and some loxi-related compile errors in web.serializers.
-
- Dec 07, 2015
-
-
paaguti-work authored
-
- Dec 04, 2015
-
-
Ryan Izard authored
-
- Oct 08, 2015
-
-
Ryan Izard authored
Tidy up topology and get rid of some many redundant functions in ITopologyService. Also, fix a bug that prevents outgoing broadcast ports from being queried on single-switch islands.
-
- Oct 06, 2015
-
-
Ryan Izard authored
Implemented a rolling link latency history for switch links. Each link will contain a single latency value. When a link update occurs, the latency computed from the LLDP packet is added to the exisiting link's LinkInfo. LinkInfo maintains a latency history for link L. The 1-to-1 mapping between Link and LinkInfo still exists. LinkInfo will provide a new latency based on the rolling window size and update threshold -- configurable through floodlightdefault.properties but default to 5 latency data points and 30%, respectively. As an example, the 0th latency value is used as the intial latency for a particular (new) link. Each LLDP update for this link will contain a latency. This latency is added to the LinkInfo from updates 0 - 3. Update 4 will make 5 historical latency data points. This will cause an average to be computed of these 5 data points. If the average is +/-30% of the latency recorded in the 0th latency, the link latency will be updated. For exach, successive latency recorded, the same average will be computed. If the new average is not +/-30% of the old recorded value, an update will not occcur. Every latency 'replacement/update' will cause a new topology to be computed in the topology manager. Keeping a rolling average takes into account current network conditions, but also helps to average out outliers and keeps topology updates to a minimum.
-
- Oct 05, 2015
-
-
Ryan Izard authored
-
- Sep 21, 2015
-
-
Ryan Izard authored
-
Ryan Izard authored
We now take into account the one-way latency between each switch (src, dst) and the controller when determining data plane link latencies.
-
Ryan Izard authored
First round of support for primitive link latency detection. We do not presently account for the latency between the switches and the controller.
-
- Aug 31, 2015
-
-
moisesber authored
-
- Aug 20, 2015
-
-
Ryan Izard authored
Forwarding unit tests updated to test for IPv6 forwarding. Updated IPv6 and Ethernet to print known packets correctly and account for forgetting to set the IpProtocol, respectively.
-
Ryan Izard authored
Added some IPv6 tests and added the IPv6 secondary index to the device manager's init function (ooops).
-
Ryan Izard authored
A new and improved device manager (woohoo). We support IPv6 now and have fixed some bugs. Other changes have been made to prefer 'empty/zero' objects instead of null, which made using the device manger less type safe and more error prone. Unit tests for IPv6 packets will come next, so IPv6 support should be considered experimental for this commit (although in theory it should be fine if IPv4 is).
-
- Aug 15, 2015
-
-
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 :-).
-
- Aug 13, 2015
-
-
Ryan Izard authored
Patched the handshake so that on transition to master, we guarantee the order of flow table operations (e.g. clear, adding table-miss flows, and IOFSwitchListener module switchAdded/switchActivated listener operations). Barriers are used inbetween all such operations.
-
- Jun 27, 2015
-
-
Ryan Izard authored
Tweaked configuration of table-miss flows so that you can specify the number of tables rather than the max table ID. Both of these have their pros and cons, but we'll go with specifying the max total for now, which allows a '0' to indicate 'no tables' rather than 'up to and including table 0'.
-
- Jun 26, 2015
-
-
Jacob Chappell authored
-
Jacob Chappell authored
-
- Jun 22, 2015
-
-
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.
-
- Jun 08, 2015
-
-
Jacob Chappell authored
-
- Jun 03, 2015
-
-
Ryan Izard authored
Patched ARP class to use MacAddress, IPv4Address, and ArpOpcode, as it should. This makes it safer and avoids primitive data types.
-