Index: /etc/pingpong/settings_node2.cnf
===================================================================
--- /etc/pingpong/settings_node2.cnf	(revision 12351)
+++ /etc/pingpong/settings_node2.cnf	(revision 12438)
@@ -12,8 +12,4 @@
                 {"category": "TCPIP", "addr": "127.0.0.1", "port": 5003 }
             ],
-            
-            "broadcast": false,
-            "mdns": false,
-            "sdp": false
         }
     }
Index: /source/ariba/NodeListener.cpp
===================================================================
--- /source/ariba/NodeListener.cpp	(revision 12351)
+++ /source/ariba/NodeListener.cpp	(revision 12438)
@@ -60,3 +60,9 @@
 }
 
+void NodeListener::onOverlayConnected(const SpoVNetID& vid) {
+}
+
+void NodeListener::onOverlayDisconnected(const SpoVNetID& vid){
+}
+
 } // namespace ariba
Index: /source/ariba/NodeListener.h
===================================================================
--- /source/ariba/NodeListener.h	(revision 12351)
+++ /source/ariba/NodeListener.h	(revision 12438)
@@ -57,4 +57,5 @@
  * @author Sebastian Mies <mies@tm.uka.de>
  * @author Christoph Mayer <mayer@tm.uka.de>
+ * @author Mario Hock <mario.hock@student.kit.edu>
  */
 class NodeListener {
@@ -97,4 +98,30 @@
 	 */
 	virtual void onLeaveFailed( const SpoVNetID& vid );
+    
+    /**
+     * This event method is called, when the number of neighbours gets above one.
+     * 
+     * Usually this means, the node is now connected to an existing spovnet, or
+     * another node connected to this node and a "two-elemnt" spovnet just formed up.
+     * 
+     * NOTE: This method can be called again, after Â»onOverlayDisconnectedÂ« has
+     * been called.
+     *
+     * @param vid The spovnet id
+     */
+    virtual void onOverlayConnected( const SpoVNetID& vid );
+    
+    /**
+     * This event method is called, when the number of neighbours drops to zero.
+     * 
+     * Usually this means, the note has lost connection to the spovnet, or the 
+     * spovnet ceased to exist, since all other nodes are gone.
+     * 
+     * NOTE: This method will only be called after Â»onOverlayConnectedÂ« has been
+     * called.
+     * 
+     * @param vid The spovnet id
+     */
+    virtual void onOverlayDisconnected( const SpoVNetID& vid );
 };
 
Index: /source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- /source/ariba/overlay/BaseOverlay.cpp	(revision 12351)
+++ /source/ariba/overlay/BaseOverlay.cpp	(revision 12438)
@@ -795,5 +795,7 @@
 
 BaseOverlay::BaseOverlay() :
-			started(false),state(BaseOverlayStateInvalid),
+			started(false),
+			connected(false),
+			state(BaseOverlayStateInvalid),
 			bc(NULL),
 			nodeId(NodeID::UNSPECIFIED), spovnetId(SpoVNetID::UNSPECIFIED),
@@ -1245,5 +1247,6 @@
 	}
 	
-	// TODO AKTUELL: sequence numbers
+	// TODO XXX ----> coordinate with QUIC-efforts !!
+	// TODO aktuell: sequence numbers
 	// TODO seqnum on fast path ?
 	ld->last_sent_seqnum.increment();
@@ -1620,4 +1623,30 @@
 	// erase mapping
 	eraseDescriptor(ld->overlayId);
+    
+    
+    // notify the application if this is the last link to a different node
+    if ( connected )
+    {
+        bool active_links = false;
+        
+        // look for links that are still active
+        foreach( LinkDescriptor* ld, links )
+        {
+            if ( isLinkDirectVital(ld) )
+            {
+                active_links = true;
+                break;
+            }
+        }
+
+        if ( ! active_links )
+        {
+            connected = false;
+            
+            foreach( NodeListener* i, nodeListeners )
+                i->onOverlayDisconnected( spovnetId );
+        }
+    }
+
 }
 
@@ -2093,4 +2122,14 @@
 	sideport->onLinkUp( ld->overlayId, nodeId, ld->remoteNode, this->spovnetId );
 
+    
+    // notify the application if this is the first link to a different node
+    if ( not connected )
+    {
+        connected = true;
+        
+        foreach( NodeListener* i, nodeListeners )
+            i->onOverlayConnected( spovnetId );
+    }
+    
 	return true;
 }
Index: /source/ariba/overlay/BaseOverlay.h
===================================================================
--- /source/ariba/overlay/BaseOverlay.h	(revision 12351)
+++ /source/ariba/overlay/BaseOverlay.h	(revision 12438)
@@ -425,4 +425,7 @@
 	/// is the base overlay started yet
 	bool started;
+    
+    /// Â»trueÂ« if we have neighbours, Â»falseÂ« otherwise
+    bool connected;
 
 	/// The state of the BaseOverlay
