- Oct 06, 2015
-
-
Ryan Izard authored
-
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
Integrated new topology code and updated unit tests to a passing state. I'd be more comfortable adding more unit tests to the topology. Also made some changes to the link discovery manager's latency subsystem. We start with a baseline latency based on the switch's features reply turnaround time. This should be relatively quick -- just like an echo. Next step for latency is to keep a rolling list of past latencies for more defined topology updates based on latency updates. We don't want to update latencies too frequently, since tiny changes (or outliers) shouldn't require a complete topology recomputation.
-
- Sep 21, 2015
-
-
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.
-
- Jun 22, 2015
-
-
Controller authored
-
Controller authored
-
- Apr 16, 2015
-
-
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.
-
- Apr 13, 2015
-
-
Ryan Izard authored
-
- Apr 03, 2015
-
-
Ryan Izard authored
Reapplied the LinkDiscoveryManager's patch from earlier (issue #471). Updated Ethernet.java to use EthType instead of short for EthTypes. In conjunction, bitmasked the LSBs of the ethertype as it is casted from short to int. This preserves the MSB (sign) as a data bit --> unsigned integer.
-
- Mar 20, 2015
-
-
Ryan Izard authored
Undo LinkDiscoveryManager 'bug' fix from a while back. We'll test to see if it's what's causing some issues with invalid ethertypes. Also, includes a patch for OFChannelHandler that will accept the smallest of the OpenFlow versions during the initial handshake.
-
- Mar 14, 2015
-
-
Ryan Izard authored
Bug fix WRT closed issue #471. ethertype range check for valid LLC lengths expanded to include 17-1535 inclusive and <17 as invalid.
-
- Mar 09, 2015
-
-
Ryan Izard authored
Revert "Fixed a couple bugs in SFP. (1) Always check the switch we're pushing a new flow to to see if an old flow needs to be removed from another switch (Maxence's bug). (2) Check for empty string in action lists and only print/add actions if they are specified. This allows an empty string or null to mean 'drop.'" This reverts commit e2458ef3.
-
Ryan Izard authored
Fixed a couple bugs in SFP. (1) Always check the switch we're pushing a new flow to to see if an old flow needs to be removed from another switch (Maxence's bug). (2) Check for empty string in action lists and only print/add actions if they are specified. This allows an empty string or null to mean 'drop.'
-
- Dec 18, 2014
-
-
Ryan Izard authored
Changed log level to INFO for most packages. Set LLDP log level to INFO to see evidence the controller is alive every 10s.
-
- Nov 21, 2014
-
-
Ryan Izard authored
-
- Nov 13, 2014
-
-
Ryan Izard authored
This is a scattered commit, but it includes more unit test fixes, including Forwarding and the NotificationManager's interdependency issue the unit tests were having when being run together as a group. It also includes some typo repairs. The last major change is a bug fix in the LinkDiscoveryManager that fixes the long-time issue of LINK_ADDED and PORT_STATUS messages being inconsistent when a link is brought up. The issue was a race condition between the PORT_STATUS update timer to process the queues and the propagation of LLDP packets from one switch to another that cause the LINK_ADDED updates.
-
- Nov 07, 2014
-
-
Ryan Izard authored
Some Firewall unit test fixes. Went through all code and corrected pi.getInPort() to (pi.getVersion().compareTo(OFVersion.OF_12) < 0 ? pi.getInPort() : pi.getMatch().get(MatchField.IN_PORT)). OF1.2 and greater specifies the ingress port as an OXM in the Match.
-
- Aug 11, 2014
-
-
hwchiu authored
topologyInstance.
-
- Aug 08, 2014
-
-
Ryan Izard authored
Quick fix for OF1.0. Should find a way so that all modules don't have to worry about how to get Match from PI. OF1.0-1.2 use pi.getInPort(); OF1.3 uses pi.getMatch(MatchField.IN_PORT). Workaroud is: (pi.getVersion().compareTo(OFVersion.OF_13) < 0 ? pi.getInPort() : pi.getMatch().get(MatchField.IN_PORT))
-
Ryan Izard authored
VLAN matches added conditionally to Forwarding flows. Started moving sync code to the OFSwitchManager; not sure if SyncService needs to live there too.
-
- Aug 07, 2014
-
-
Ryan Izard authored
Ethernet fixed; proto = byte, not short. Fixed DeviceManager; toString() of Entity corrected and misc bugs. Fixed Forwarding; forgot to initialize OFSwitchService reference. Basic Forwarding works! Known issue: Forwarding only matches switch port numbers...
-
- Aug 06, 2014
-
-
Ryan Izard authored
Working on device manager. Currently devices aren't being saved, or cannot be located after they are stored...I'm searching incorrectly for devices and entities or am not saving them correctly or at all.
-
- Aug 05, 2014
-
-
Ryan Izard authored
-
- Jul 28, 2014
-
-
Ryan Izard authored
-
Ryan Izard authored
-
- Jun 24, 2013
-
-
Vishnu Emmadi authored
-
Vishnu Emmadi authored
-
- Jun 21, 2013
-
-
Saurav Das authored
-
- Jun 18, 2013
-
-
Saurav Das authored
-
- Jun 17, 2013
-
-
Gregor Maier authored
-
- Jun 13, 2013
-
-
Vishnu Emmadi authored
add null check for getLinkInfo return value
-
Vishnu Emmadi authored
-
- Jun 10, 2013
-
-
Saurav Das authored
-
- Jun 02, 2013
-
-
Saurav Das authored
moving counter registration to init() methods, and use of metadata constants
-
- May 31, 2013
-
-
Saurav Das authored
-
Saurav Das authored
- flushNow is a property of the update instead of the event - event timestamp is displayed in ISO8601 style - event registry returns an event updater object instead of the eventId - event update is done with a user defined object which is accessed via reflection and annotations - metadata is expressed using varargs and metadata string constants - changed unit tests
-
- May 28, 2013
-
-
Vishnu Emmadi authored
fix typo
-
Vishnu Emmadi authored
fix typo
-
Vishnu Emmadi authored
Implemented backend for the REST API to retrieve the flow path between a pair of hosts
-