Merge branch 'master' of https://github.com/OPENNETWORKINGLAB/ONOS into RAMCloud
Conflicts:
src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoLinkServiceImpl.java
src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoSwitchServiceImpl.java
diff --git a/src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java b/src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java
index 6483121..33091b9 100644
--- a/src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java
+++ b/src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java
@@ -78,7 +78,7 @@
private IMap<String, byte[]> mapTopology = null;
private MapTopologyListener mapTopologyListener = null;
private String mapTopologyListenerId = null;
-
+
// State related to the ARP map
protected static final String arpMapName = "arpMap";
private IMap<ArpMessage, byte[]> arpMap = null;
@@ -98,8 +98,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryAdded(EntryEvent<Long, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -116,8 +117,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryRemoved(EntryEvent<Long, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -134,8 +136,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryUpdated(EntryEvent<Long, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -152,6 +155,7 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryEvicted(EntryEvent<Long, byte[]> event) {
// NOTE: We don't use eviction for this map
}
@@ -170,8 +174,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryAdded(EntryEvent<Long, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -188,8 +193,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryRemoved(EntryEvent<Long, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -206,8 +212,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryUpdated(EntryEvent<Long, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -224,6 +231,7 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryEvicted(EntryEvent<Long, byte[]> event) {
// NOTE: We don't use eviction for this map
}
@@ -242,8 +250,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryAdded(EntryEvent<String, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -261,8 +270,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryRemoved(EntryEvent<String, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -280,8 +290,9 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryUpdated(EntryEvent<String, byte[]> event) {
- byte[] valueBytes = (byte[])event.getValue();
+ byte[] valueBytes = event.getValue();
//
// Decode the value and deliver the notification
@@ -299,11 +310,12 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryEvicted(EntryEvent<String, byte[]> event) {
// NOTE: We don't use eviction for this map
}
}
-
+
/**
* Class for receiving notifications for ARP requests.
*
@@ -317,11 +329,12 @@
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryAdded(EntryEvent<ArpMessage, byte[]> event) {
for (IArpEventHandler arpEventHandler : arpEventHandlers) {
arpEventHandler.arpRequestNotification(event.getKey());
}
-
+
//
// Decode the value and deliver the notification
//
@@ -334,30 +347,33 @@
flowEventHandlerService.notificationRecvTopologyElementAdded(topologyElement);
*/
}
-
+
/**
* Receive a notification that an entry is removed.
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryRemoved(EntryEvent<ArpMessage, byte[]> event) {
// Not used
}
-
+
/**
* Receive a notification that an entry is updated.
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryUpdated(EntryEvent<ArpMessage, byte[]> event) {
// Not used
}
-
+
/**
* Receive a notification that an entry is evicted.
*
* @param event the notification event for the entry.
*/
+ @Override
public void entryEvicted(EntryEvent<ArpMessage, byte[]> event) {
// Not used
}
@@ -374,7 +390,7 @@
System.setProperty("hazelcast.socket.send.buffer.size", "32");
*/
// System.setProperty("hazelcast.heartbeat.interval.seconds", "100");
-
+
// Init from configuration file
try {
hazelcastConfig = new FileSystemXmlConfig(configFilename);
@@ -395,7 +411,8 @@
/**
* Shutdown the Hazelcast Datagrid operation.
*/
- public void finalize() {
+ @Override
+ protected void finalize() {
close();
}
@@ -413,7 +430,7 @@
*/
@Override
public Collection<Class<? extends IFloodlightService>> getModuleServices() {
- Collection<Class<? extends IFloodlightService>> l =
+ Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
l.add(IDatagridService.class);
return l;
@@ -425,10 +442,10 @@
* @return the collection of implemented services.
*/
@Override
- public Map<Class<? extends IFloodlightService>, IFloodlightService>
+ public Map<Class<? extends IFloodlightService>, IFloodlightService>
getServiceImpls() {
Map<Class<? extends IFloodlightService>,
- IFloodlightService> m =
+ IFloodlightService> m =
new HashMap<Class<? extends IFloodlightService>,
IFloodlightService>();
m.put(IDatagridService.class, this);
@@ -441,7 +458,7 @@
* @return the collection of modules this module depends on.
*/
@Override
- public Collection<Class<? extends IFloodlightService>>
+ public Collection<Class<? extends IFloodlightService>>
getModuleDependencies() {
Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
@@ -477,7 +494,7 @@
hazelcastInstance = Hazelcast.newHazelcastInstance(hazelcastConfig);
restApi.addRestletRoutable(new DatagridWebRoutable());
-
+
arpMap = hazelcastInstance.getMap(arpMapName);
arpMap.addEntryListener(new ArpMapListener(), true);
}
@@ -538,19 +555,19 @@
this.flowEventHandlerService = null;
}
-
+
@Override
public void registerArpEventHandler(IArpEventHandler arpEventHandler) {
if (arpEventHandler != null) {
arpEventHandlers.add(arpEventHandler);
}
}
-
+
@Override
public void deregisterArpEventHandler(IArpEventHandler arpEventHandler) {
arpEventHandlers.remove(arpEventHandler);
}
-
+
/**
* Get all Flows that are currently in the datagrid.
*
@@ -883,7 +900,7 @@
mapTopology.removeAsync(key);
}
}
-
+
@Override
public void sendArpRequest(ArpMessage arpMessage) {
//log.debug("ARP bytes: {}", HexString.toHexString(arpRequest));
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
index f469911..ddc7527 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
@@ -60,7 +60,7 @@
* It will close the DB connection. This is for Java garbage collection.
*/
@Override
- public void finalize() {
+ protected void finalize() {
close();
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
index b34a2fc..aa5f073 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
@@ -432,7 +432,7 @@
* Finalize the object.
*/
@Override
- public void finalize() {
+ protected void finalize() {
close();
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
index 7c474bd..0dcf4297 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/SwitchStorageImpl.java
@@ -48,7 +48,7 @@
* It will close the DB connection.
*/
@Override
- public void finalize() {
+ protected void finalize() {
close();
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoLinkServiceImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoLinkServiceImpl.java
index cf73c9c..3d5da10 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoLinkServiceImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoLinkServiceImpl.java
@@ -23,23 +23,31 @@
protected DBOperation dbop;
protected final static Logger log = LoggerFactory.getLogger(TopoLinkServiceImpl.class);
- public void finalize() {
+ @Override
+ protected void finalize() {
close();
}
-
+
@Override
public void close() {
dbop.close();
}
-
+
@Override
public List<Link> getActiveLinks() {
+<<<<<<< HEAD
// TODO Auto-generated method stub
dbop = GraphDBManager.getDBOperation("ramcloud", "/tmp/ramcloudconf");
//dbop = GraphDBManager.getDBOperation("", "");
//dbop.commit(); //Commit to ensure we see latest data
Iterable<ISwitchObject> switches = dbop.getActiveSwitches();
List<Link> links = new ArrayList<Link>();
+=======
+ op = new GraphDBOperation("");
+ op.commit(); //Commit to ensure we see latest data
+ Iterable<ISwitchObject> switches = op.getActiveSwitches();
+ List<Link> links = new ArrayList<Link>();
+>>>>>>> df6f52e87c8beeec9a50e4050634d70f124e9bc3
for (ISwitchObject sw : switches) {
GremlinPipeline<Vertex, Link> pipe = new GremlinPipeline<Vertex, Link>();
ExtractLink extractor = new ExtractLink();
@@ -47,12 +55,12 @@
pipe.start(sw.asVertex());
pipe.enablePath(true);
pipe.out("on").out("link").in("on").path().step(extractor);
-
+
while (pipe.hasNext() ) {
Link l = pipe.next();
links.add(l);
}
-
+
}
dbop.commit();
return links;
@@ -60,15 +68,20 @@
@Override
public List<Link> getLinksOnSwitch(String dpid) {
+<<<<<<< HEAD
List<Link> links = new ArrayList<Link>();
ISwitchObject sw = dbop.searchSwitch(dpid);
+=======
+ List<Link> links = new ArrayList<Link>();
+ ISwitchObject sw = op.searchSwitch(dpid);
+>>>>>>> df6f52e87c8beeec9a50e4050634d70f124e9bc3
GremlinPipeline<Vertex, Link> pipe = new GremlinPipeline<Vertex, Link>();
ExtractLink extractor = new ExtractLink();
pipe.start(sw.asVertex());
pipe.enablePath(true);
pipe.out("on").out("link").in("on").path().step(extractor);
-
+
while (pipe.hasNext() ) {
Link l = pipe.next();
links.add(l);
@@ -84,7 +97,7 @@
long d_dpid = 0;
short s_port = 0;
short d_port = 0;
-
+
List<?> V = pipe.next();
Vertex src_sw = (Vertex)V.get(0);
Vertex dest_sw = (Vertex)V.get(3);
@@ -94,9 +107,9 @@
d_dpid = HexString.toLong((String) dest_sw.getProperty("dpid"));
s_port = (Short) src_port.getProperty("number");
d_port = (Short) dest_port.getProperty("number");
-
+
Link l = new Link(s_dpid,s_port,d_dpid,d_port);
-
+
return l;
}
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoSwitchServiceImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoSwitchServiceImpl.java
index 3f7090b..b5feac9 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoSwitchServiceImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/TopoSwitchServiceImpl.java
@@ -22,16 +22,17 @@
public TopoSwitchServiceImpl() {
this("","");
}
-
- public void finalize() {
+
+ @Override
+ protected void finalize() {
close();
}
-
+
@Override
public void close() {
op.close();
}
-
+
@Override
public Iterable<ISwitchObject> getActiveSwitches() {
// TODO Auto-generated method stub
@@ -67,5 +68,5 @@
public IPortObject getPortOnSwitch(String dpid, short port_num) {
// TODO Auto-generated method stub
return null;
- }
+ }
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index 611b5c9..de84b8e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -98,7 +98,7 @@
* Shutdown the Flow Manager operation.
*/
@Override
- public void finalize() {
+ protected void finalize() {
close();
}
@@ -719,7 +719,7 @@
retry = true;
} catch (Exception e) {
log.error("Exception deleting Flow Path from Network MAP: {}", e);
- }
+ }
} while (retry);
continue;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index 1dbfdcb..3860e05 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -112,7 +112,7 @@
*/
@LogMessageCategory("Network Topology")
public class LinkDiscoveryManager
-implements IOFMessageListener, IOFSwitchListener,
+implements IOFMessageListener, IOFSwitchListener,
ILinkDiscoveryService, IFloodlightModule {
protected IFloodlightProviderService controller;
protected final static Logger log = LoggerFactory.getLogger(LinkDiscoveryManager.class);
@@ -125,7 +125,7 @@
// LLDP and BDDP fields
- private static final byte[] LLDP_STANDARD_DST_MAC_STRING =
+ private static final byte[] LLDP_STANDARD_DST_MAC_STRING =
HexString.fromHexString("01:80:c2:00:00:0e");
private static final long LINK_LOCAL_MASK = 0xfffffffffff0L;
private static final long LINK_LOCAL_VALUE = 0x0180c2000000L;
@@ -135,27 +135,27 @@
private static final String LLDP_BSN_DST_MAC_STRING = "ff:ff:ff:ff:ff:ff";
- // Direction TLVs are used to indicate if the LLDPs were sent
+ // Direction TLVs are used to indicate if the LLDPs were sent
// periodically or in response to a recieved LLDP
private static final byte TLV_DIRECTION_TYPE = 0x73;
private static final short TLV_DIRECTION_LENGTH = 1; // 1 byte
private static final byte TLV_DIRECTION_VALUE_FORWARD[] = {0x01};
private static final byte TLV_DIRECTION_VALUE_REVERSE[] = {0x02};
- private static final LLDPTLV forwardTLV
+ private static final LLDPTLV forwardTLV
= new LLDPTLV().
- setType((byte)TLV_DIRECTION_TYPE).
- setLength((short)TLV_DIRECTION_LENGTH).
+ setType(TLV_DIRECTION_TYPE).
+ setLength(TLV_DIRECTION_LENGTH).
setValue(TLV_DIRECTION_VALUE_FORWARD);
- private static final LLDPTLV reverseTLV
+ private static final LLDPTLV reverseTLV
= new LLDPTLV().
- setType((byte)TLV_DIRECTION_TYPE).
- setLength((short)TLV_DIRECTION_LENGTH).
+ setType(TLV_DIRECTION_TYPE).
+ setLength(TLV_DIRECTION_LENGTH).
setValue(TLV_DIRECTION_VALUE_REVERSE);
// Link discovery task details.
protected SingletonTask discoveryTask;
- protected final int DISCOVERY_TASK_INTERVAL = 1;
+ protected final int DISCOVERY_TASK_INTERVAL = 1;
protected final int LINK_TIMEOUT = 35; // original 35 secs, aggressive 5 secs
protected final int LLDP_TO_ALL_INTERVAL = 15 ; //original 15 seconds, aggressive 2 secs.
protected long lldpClock = 0;
@@ -206,7 +206,7 @@
/* topology aware components are called in the order they were added to the
* the array */
protected ArrayList<ILinkDiscoveryListener> linkDiscoveryAware;
-
+
protected class LinkUpdate extends LDUpdate {
public LinkUpdate(LDUpdate old) {
@@ -263,7 +263,7 @@
*/
protected Map<NodePortTuple, Long> broadcastDomainPortTimeMap;
- /**
+ /**
* Get the LLDP sending period in seconds.
* @return LLDP sending period in seconds.
*/
@@ -283,6 +283,7 @@
return portLinks;
}
+ @Override
public Set<NodePortTuple> getSuppressLLDPsInfo() {
return suppressLinkDiscovery;
}
@@ -291,6 +292,7 @@
* Add a switch port to the suppressed LLDP list.
* Remove any known links on the switch port.
*/
+ @Override
public void AddToSuppressLLDPs(long sw, short port)
{
NodePortTuple npt = new NodePortTuple(sw, port);
@@ -302,7 +304,8 @@
* Remove a switch port from the suppressed LLDP list.
* Discover links on that switchport.
*/
- public void RemoveFromSuppressLLDPs(long sw, short port)
+ @Override
+ public void RemoveFromSuppressLLDPs(long sw, short port)
{
NodePortTuple npt = new NodePortTuple(sw, port);
this.suppressLinkDiscovery.remove(npt);
@@ -317,6 +320,7 @@
return false;
}
+ @Override
public ILinkDiscovery.LinkType getLinkType(Link lt, LinkInfo info) {
if (info.getUnicastValidTime() != null) {
return ILinkDiscovery.LinkType.DIRECT_LINK;
@@ -326,7 +330,7 @@
return ILinkDiscovery.LinkType.INVALID_LINK;
}
-
+
private boolean isLinkDiscoverySuppressed(long sw, short portNumber) {
return this.suppressLinkDiscovery.contains(new NodePortTuple(sw, portNumber));
}
@@ -437,6 +441,7 @@
}
}
+ @Override
public Set<Short> getQuarantinedPorts(long sw) {
Set<Short> qPorts = new HashSet<Short>();
@@ -468,12 +473,12 @@
else operation = UpdateOperation.PORT_DOWN;
LinkUpdate update = new LinkUpdate(new LDUpdate(sw, port, operation));
-
-
+
+
controller.publishUpdate(update);
}
- /**
+ /**
* Send LLDP on known ports
*/
protected void discoverOnKnownLinkPorts() {
@@ -500,7 +505,7 @@
*/
protected IOFSwitch addRemoteSwitch(long sw, short port) {
IOnosRemoteSwitch remotesw = null;
-
+
// add a switch if we have not seen it before
remotesw = remoteSwitches.get(sw);
@@ -510,26 +515,26 @@
remoteSwitches.put(remotesw.getId(), remotesw);
log.debug("addRemoteSwitch(): added fake remote sw {}", remotesw);
}
-
+
// add the port if we have not seen it before
if (remotesw.getPort(port) == null) {
OFPhysicalPort remoteport = new OFPhysicalPort();
remoteport.setPortNumber(port);
remoteport.setName("fake_" + port);
- remoteport.setConfig(0);
+ remoteport.setConfig(0);
remoteport.setState(0);
remotesw.setPort(remoteport);
log.debug("addRemoteSwitch(): added fake remote port {} to sw {}", remoteport, remotesw.getId());
}
-
+
return remotesw;
}
-
+
/**
* Send link discovery message out of a given switch port.
* The discovery message may be a standard LLDP or a modified
- * LLDP, where the dst mac address is set to :ff.
- *
+ * LLDP, where the dst mac address is set to :ff.
+ *
* TODO: The modified LLDP will updated in the future and may
* use a different eth-type.
* @param sw
@@ -565,7 +570,7 @@
if (isLinkDiscoverySuppressed(sw, port)) {
/* Dont send LLDPs out of this port as suppressLLDPs set
- *
+ *
*/
return;
}
@@ -881,9 +886,9 @@
addOrUpdateLink(lt, newLinkInfo);
- // Check if reverse link exists.
- // If it doesn't exist and if the forward link was seen
- // first seen within a small interval, send probe on the
+ // Check if reverse link exists.
+ // If it doesn't exist and if the forward link was seen
+ // first seen within a small interval, send probe on the
// reverse link.
newLinkInfo = links.get(lt);
@@ -927,8 +932,8 @@
protected Command handlePacketIn(long sw, OFPacketIn pi,
FloodlightContext cntx) {
- Ethernet eth =
- IFloodlightProviderService.bcStore.get(cntx,
+ Ethernet eth =
+ IFloodlightProviderService.bcStore.get(cntx,
IFloodlightProviderService.CONTEXT_PI_PAYLOAD);
if(eth.getEtherType() == Ethernet.TYPE_BSN) {
@@ -999,8 +1004,8 @@
newInfo.setFirstSeenTime(oldInfo.getFirstSeenTime());
if (log.isTraceEnabled()) {
- log.trace("addOrUpdateLink: {} {}",
- lt,
+ log.trace("addOrUpdateLink: {} {}",
+ lt,
(newInfo.getMulticastValidTime()!=null) ? "multicast" : "unicast");
}
@@ -1033,7 +1038,7 @@
// Add to portNOFLinks if the unicast valid time is null
if (newInfo.getUnicastValidTime() == null)
addLinkToBroadcastDomain(lt);
-
+
// ONOS: Distinguish added event separately from updated event
updateOperation = UpdateOperation.LINK_ADDED;
linkChanged = true;
@@ -1119,6 +1124,7 @@
return linkChanged;
}
+ @Override
public Map<Long, Set<Link>> getSwitchLinks() {
return this.switchLinks;
}
@@ -1198,7 +1204,7 @@
// ONOS: If we do not control this switch, then we should not process its port status messages
if (!registryService.hasControl(iofSwitch.getId())) return Command.CONTINUE;
-
+
if (log.isTraceEnabled()) {
log.trace("handlePortStatus: Switch {} port #{} reason {}; " +
"config is {} state is {}",
@@ -1225,7 +1231,7 @@
LinkUpdate update = new LinkUpdate(new LDUpdate(sw, port, UpdateOperation.PORT_DOWN));
controller.publishUpdate(update);
linkDeleted = true;
- }
+ }
else if (ps.getReason() ==
(byte)OFPortReason.OFPPR_MODIFY.ordinal()) {
// If ps is a port modification and the port state has changed
@@ -1237,7 +1243,7 @@
assert(linkInfo != null);
Integer updatedSrcPortState = null;
Integer updatedDstPortState = null;
- if (lt.getSrc() == npt.getNodeId() &&
+ if (lt.getSrc() == npt.getNodeId() &&
lt.getSrcPort() == npt.getPortId() &&
(linkInfo.getSrcPortState() !=
ps.getDesc().getState())) {
@@ -1264,7 +1270,7 @@
getLinkType(lt, linkInfo),
operation));
controller.publishUpdate(update);
-
+
linkInfoChanged = true;
}
}
@@ -1378,9 +1384,9 @@
lock.writeLock().unlock();
}
}
-
+
/**
- * We don't react the port changed notifications here. we listen for
+ * We don't react the port changed notifications here. we listen for
* OFPortStatus messages directly. Might consider using this notifier
* instead
*/
@@ -1389,7 +1395,7 @@
// no-op
}
- /**
+ /**
* Delete links incident on a given switch port.
* @param npt
* @param reason
@@ -1409,7 +1415,7 @@
}
}
- /**
+ /**
* Iterates through the list of links and deletes if the
* last discovery message reception time exceeds timeout values.
*/
@@ -1430,7 +1436,7 @@
// Timeout the unicast and multicast LLDP valid times
// independently.
- if ((info.getUnicastValidTime() != null) &&
+ if ((info.getUnicastValidTime() != null) &&
(info.getUnicastValidTime() + (this.LINK_TIMEOUT * 1000) < curTime)){
info.setUnicastValidTime(null);
@@ -1440,7 +1446,7 @@
// the link would be deleted, which would trigger updateClusters().
linkChanged = true;
}
- if ((info.getMulticastValidTime()!= null) &&
+ if ((info.getMulticastValidTime()!= null) &&
(info.getMulticastValidTime()+ (this.LINK_TIMEOUT * 1000) < curTime)) {
info.setMulticastValidTime(null);
// if uTime is not null, then link will remain as openflow
@@ -1451,7 +1457,7 @@
}
// Add to the erase list only if the unicast
// time is null.
- if (info.getUnicastValidTime() == null &&
+ if (info.getUnicastValidTime() == null &&
info.getMulticastValidTime() == null){
eraseList.add(entry.getKey());
} else if (linkChanged) {
@@ -1510,11 +1516,11 @@
srcNpt = new NodePortTuple(lt.getSrc(), lt.getSrcPort());
dstNpt = new NodePortTuple(lt.getDst(), lt.getDstPort());
- if (!portBroadcastDomainLinks.containsKey(lt.getSrc()))
+ if (!portBroadcastDomainLinks.containsKey(srcNpt))
portBroadcastDomainLinks.put(srcNpt, new HashSet<Link>());
portBroadcastDomainLinks.get(srcNpt).add(lt);
- if (!portBroadcastDomainLinks.containsKey(lt.getDst()))
+ if (!portBroadcastDomainLinks.containsKey(dstNpt))
portBroadcastDomainLinks.put(dstNpt, new HashSet<Link>());
portBroadcastDomainLinks.get(dstNpt).add(lt);
}
@@ -1575,7 +1581,7 @@
@Override
public Collection<Class<? extends IFloodlightService>> getModuleServices() {
- Collection<Class<? extends IFloodlightService>> l =
+ Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
l.add(ILinkDiscoveryService.class);
//l.add(ITopologyService.class);
@@ -1586,7 +1592,7 @@
public Map<Class<? extends IFloodlightService>, IFloodlightService>
getServiceImpls() {
Map<Class<? extends IFloodlightService>,
- IFloodlightService> m =
+ IFloodlightService> m =
new HashMap<Class<? extends IFloodlightService>,
IFloodlightService>();
// We are the class that implements the service
@@ -1596,7 +1602,7 @@
@Override
public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
- Collection<Class<? extends IFloodlightService>> l =
+ Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
l.add(IFloodlightProviderService.class);
l.add(IThreadPoolService.class);
@@ -1679,7 +1685,7 @@
log.error("Exception in LLDP send timer.", e);
} finally {
if (!shuttingDown) {
- // Always reschedule link discovery if we're not
+ // Always reschedule link discovery if we're not
// shutting down (no chance of SLAVE role now)
log.trace("Rescheduling discovery task");
discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL,
@@ -1729,7 +1735,7 @@
if ((sw.getChannel() != null) &&
(SocketAddress.class.isInstance(
sw.getChannel().getRemoteAddress()))) {
- evTopoSwitch.ipv4Addr =
+ evTopoSwitch.ipv4Addr =
IPv4.toIPv4Address(((InetSocketAddress)(sw.getChannel().
getRemoteAddress())).getAddress().getAddress());
evTopoSwitch.l4Port =
@@ -1787,10 +1793,12 @@
evTopoCluster = evHistTopologyCluster.put(evTopoCluster, action);
}
+ @Override
public boolean isAutoPortFastFeature() {
return autoPortFastFeature;
}
+ @Override
public void setAutoPortFastFeature(boolean autoPortFastFeature) {
this.autoPortFastFeature = autoPortFastFeature;
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/topology/TopologyManager.java b/src/main/java/net/onrc/onos/ofcontroller/topology/TopologyManager.java
index cbc3224..a074d19 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/topology/TopologyManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/topology/TopologyManager.java
@@ -90,7 +90,8 @@
/**
* Shutdown the Topology Manager operation.
*/
- public void finalize() {
+ @Override
+ protected void finalize() {
close();
}
@@ -108,7 +109,7 @@
*/
@Override
public Collection<Class<? extends IFloodlightService>> getModuleServices() {
- Collection<Class<? extends IFloodlightService>> l =
+ Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
l.add(ITopologyNetService.class);
return l;
@@ -120,10 +121,10 @@
* @return the collection of implemented services.
*/
@Override
- public Map<Class<? extends IFloodlightService>, IFloodlightService>
+ public Map<Class<? extends IFloodlightService>, IFloodlightService>
getServiceImpls() {
Map<Class<? extends IFloodlightService>,
- IFloodlightService> m =
+ IFloodlightService> m =
new HashMap<Class<? extends IFloodlightService>,
IFloodlightService>();
m.put(ITopologyNetService.class, this);
@@ -136,7 +137,7 @@
* @return the collection of modules this module depends on.
*/
@Override
- public Collection<Class<? extends IFloodlightService>>
+ public Collection<Class<? extends IFloodlightService>>
getModuleDependencies() {
Collection<Class<? extends IFloodlightService>> l =
new ArrayList<Class<? extends IFloodlightService>>();
@@ -200,6 +201,7 @@
*
* @return the allocated topology handler.
*/
+ @Override
public Topology newDatabaseTopology() {
Topology topology = new Topology();
topology.readFromDatabase(dbHandler);
@@ -216,6 +218,7 @@
*
* @param topology the topology to release.
*/
+ @Override
public void dropTopology(Topology topology) {
topology = null;
}
@@ -312,6 +315,7 @@
* @return the data path with the computed shortest path if
* found, otherwise null.
*/
+ @Override
public DataPath getTopologyShortestPath(Topology topology,
SwitchPort src, SwitchPort dest) {
return ShortestPath.getTopologyShortestPath(topology, src, dest);
diff --git a/start-onos-embedded.sh b/start-onos-embedded.sh
index c967419..5202daf 100755
--- a/start-onos-embedded.sh
+++ b/start-onos-embedded.sh
@@ -73,7 +73,7 @@
# Create a logback file if required
cat <<EOF_LOGBACK >${ONOS_LOGBACK}
-<configuration scan="true" debug="true">
+<configuration scan="true" scanPeriod="1 minutes" debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%level [%logger:%thread] %msg%n</pattern>
@@ -84,6 +84,7 @@
<file>${ONOS_LOG}</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
+<immediateFlush>true</immediateFlush>
</encoder>
</appender>
diff --git a/start-onos.sh b/start-onos.sh
index f4ebc7b..a1eedcd 100755
--- a/start-onos.sh
+++ b/start-onos.sh
@@ -85,7 +85,7 @@
# Create a logback file if required
if [ ! -f ${ONOS_LOGBACK} ]; then
cat <<EOF_LOGBACK >${ONOS_LOGBACK}
-<configuration scan="true" debug="true">
+<configuration scan="true" scanPeriod="1 minutes" debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%level [%logger:%thread] %msg%n</pattern>
@@ -96,6 +96,7 @@
<file>${ONOS_LOG}</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
+<immediateFlush>true</immediateFlush>
</encoder>
</appender>