- Jul 15, 2016
-
-
Ryan Izard authored
-
Ryan Izard authored
compute() has been optimized and all old code is gone. We no longer need to compute trees for each cluster. Furthermore, the computation of broadcast ports has been streamlined. Other routing/topology refactoring has been done as well.
-
- Jul 14, 2016
-
-
Ryan Izard authored
Next round of refactoring. Attempting to normalize the terminology used. Fixed some bugs that have been around for a while too.
-
Ryan Izard authored
-
Ryan Izard authored
-
Ryan Izard authored
unit tests fixed by fixing an archipelago bug. A cluster is a *strongly connected* group of switches. A switch that is weakly connected to a cluster but not strongly connected to any other cluster will exist in its own cluster. This weak link, if not an external/BDDP-discovered link, will not be used to try and compute paths. Thus, while we compute clusters, any link that is not within a cluster and is not an external link is stored for reference when computing archipelagos. Essentially, the external links which typically are between clusters get merged into a new set with these weak links to allow for proper computation of archipelagos.
-
Ryan Izard authored
-
Ryan Izard authored
-
Ryan Izard authored
-
Ryan Izard authored
-
- Jul 13, 2016
-
-
Ryan Izard authored
Create wrapper class that takes an OFMessage and allows for direct use in other containers where we don't care about the XID of the message. For example, if we want to create a unit test with predictable results but the XIDs are different depending on unit test execution, we can use the wrapper class to guarantee consistency. In the main code, we can more easily compare OFMessages without care for the XID and create cool data structures like caches.
-
- Jul 07, 2016
-
-
Ryan Izard authored
Remove old makefile. Add round #1 of version support via REST API. The included code adds a /wm/core/version/json REST API. This will work in Eclipse and in situations where the jar is being run in the build environment with the pom.xml. It will not work when the jar has been compiled and relocated outside of the build environment. For this, we need to come up with a solution to build in the version at compile-time. This will either incorporate it as code or save it somewhere in the classpath.
-
- Jun 23, 2016
-
-
Ryan Izard authored
Add in old URIs for static entry pusher for backwards compatibility. Note this only addresses URI compatibility *not* JSON key:value compatibility. Clean up warnings in LoadBalancer unit test
-
- Jun 21, 2016
-
-
Ryan Izard authored
Finally! :-) OFMessageDamper works. Required creating a custom hashCode() (hashCodeIgnoreXid()) function for all OFMessages we would like to dampen.
-
- May 31, 2016
-
-
Ryan Izard authored
-
- May 18, 2016
-
-
Ryan Izard authored
-
- May 16, 2016
-
-
Ryan Izard authored
This is a huge commit. Lots of (good) stuff has been added and updated. First and foremost, OpenFlow 1.5 is now supported (yay) via a major update to OpenFlowJ-Loxi. This update necessitated the update of the Static Flow Pusher module and MatchUtils, ActionUtils, and InstructionUtils to support the newly-added features. This prompted me to explore the SFP to see if there was anything that could be improved. First thing that came to mind was adding support to push OpenFlow groups in addition to flows, thus group support has been added to the SFP via JSON, which is the format that should have been used in the first place. Action lists will be updated in the near future to be JSON instead of one massive ',', '=', and '->' delimited string. Thus, the Static Flow Pusher has been renamed the StaticEntryPusher, since it now encompasses groups. While groups were being added to the SFP (ahem...SEP), a number of optimizations were made to the SEP code, greatly reducing its complexity (IMHO). The support for OpenFlow meters can now be added rather trivially in the future, if desired. Last thing to note about the SEP is the work-in-progress addition of a 'schema' API to allow northbound applications to get information about SEP syntax. This is not complete yet, but the skeleton code is in place. Next thing in this pull request is miscellaneous changes throughout the controller, primarily in (de)serializers and REST APIs to support OpenFlow 1.5. Next item of business is the removal of the DebugEventService. This is an artifact of days past and need not clutter the controller anymore. Same goes for the TestModule; now that we have better tutorials and documentation on the wiki, an example isn't necessary. And, last but not least, some old libraries that weren't being used have now been removed.
-
- 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 25, 2016
-
-
Randall Sharo authored
-
- 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
-
- 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.
-