Merge pull request #49 from opennetworkinglab/devl/note_dependencies

Devl/note dependencies
diff --git a/README.md b/README.md
index b29c092..5986719 100644
--- a/README.md
+++ b/README.md
@@ -26,13 +26,47 @@
 ------------
 1. ONOS
 
-2. Mininet
+2. Mininet - Some driver functions rely on a modified version of Mininet. These functions are noted in the mininet driver file. To checkout this branch from your Mininet folder:
 
-3. Install python packages configObj and pexpect. they can be installed as :
+    $ git remote add jhall11 https://github.com/jhall11/mininet.git
 
-     $ sudo pip install configObj
+    $ git fetch jhall11
 
-     $ sudo easy_install pexpect 
+    $ git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
+
+    $ git pull
+
+    Note that you may need to run 'sudo make develop' if your mnexec.c file changed when switching branches.
+
+3. Install python packages configObj and pexpect (Note: pexpect 3.3 has a known bug. We recommend using version 3.2 for now). They can be installed as :
+
+    $ sudo pip install configObj
+
+    $ sudo pip install pexpect==3.2
+
+    $ sudo pip install numpy
+
+4. STS  - This can be installed by:
+
+    $ git clone https://github.com/jhall11/sts.git
+
+5. Linc-OE - Some testcases use this to emulate optical devices
+
+    Requirements:
+
+    1. Erlang R15B, R16B, R17 - if possible please use R17
+
+    2. libpcap-dev package if eth interfaces will be used
+
+    Building and Running:
+
+    $ git clone https://github.com/shivarammysore/LINC-Switch.git linc-oe
+
+    $ cd linc-oe
+
+    $ git checkout tags/oe-0.3
+
+    $ make rel
 
 Configuration
 ------------
@@ -58,7 +92,7 @@
 
 3. Run the test 
 
-    teston> run MininetTest 
+    teston> run PingallExample
 
 The Tests
 -----------------------------------------------
@@ -68,7 +102,7 @@
 
 1. .ospk file
 
-    - This is written in Openspeak, an word based language developed by Paxterra.
+    - This is written in Openspeak, a word based language developed by Paxterra.
 
     - It defines the cases and sequence of events for the test 
 
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index c125fca..10e46a7 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -2,7 +2,7 @@
 """
 Created on 26-Oct-2012
 
-author:: Anil Kumar ( anilkumar.s@paxterrasolutions.com )
+author: Anil Kumar ( anilkumar.s@paxterrasolutions.com )
 
 
 TestON is free software: you can redistribute it and/or modify
@@ -19,7 +19,22 @@
 along with TestON.  If not, see <http://www.gnu.org/licenses/>.
 
 
-MininetCliDriver is the basic driver which will handle the Mininet functions"""
+MininetCliDriver is the basic driver which will handle the Mininet functions
+
+Some functions rely on STS module. To install this,
+    git clone https://github.com/jhall11/sts.git
+
+Some functions rely on a modified version of Mininet. These functions
+should all be noted in the comments. To get this MN version run these commands
+from within your Mininet folder:
+    git remote add jhall11 https://github.com/jhall11/mininet.git
+    git fetch jhall11
+    git checkout -b dynamic_topo remotes/jhall11/dynamic_topo
+    git pull
+
+
+    Note that you may need to run 'sudo make develop' if your mnexec.c file
+changed when switching branches."""
 import traceback
 import pexpect
 import re
@@ -892,7 +907,8 @@
     def add_switch( self, sw, **kwargs ):
         """
         adds a switch to the mininet topology
-        NOTE: this uses a custom mn function
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
         NOTE: cannot currently specify what type of switch
         required params:
             switchname = name of the new switch as a string
@@ -926,11 +942,12 @@
 
     def del_switch( self, sw ):
         """
-           delete a switch from the mininet topology
-           NOTE: this uses a custom mn function
-           required params:
+        delete a switch from the mininet topology
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
+        required params:
             switchname = name of the switch as a string
-           returns: main.FASLE on an error, else main.TRUE"""
+        returns: main.FASLE on an error, else main.TRUE"""
         command = "delswitch " + str( sw )
         try:
             response = self.execute(
@@ -957,7 +974,8 @@
     def add_link( self, node1, node2 ):
         """
            add a link to the mininet topology
-           NOTE: this uses a custom mn function
+           NOTE: This uses a custom mn function. MN repo should be on
+                dynamic_topo branch
            NOTE: cannot currently specify what type of link
            required params:
            node1 = the string node name of the first endpoint of the link
@@ -989,7 +1007,8 @@
     def del_link( self, node1, node2 ):
         """
            delete a link from the mininet topology
-           NOTE: this uses a custom mn function
+           NOTE: This uses a custom mn function. MN repo should be on
+                dynamic_topo branch
            required params:
            node1 = the string node name of the first endpoint of the link
            node2 = the string node name of the second endpoint of the link
@@ -1020,7 +1039,8 @@
     def add_host( self, hostname, **kwargs ):
         """
         Add a host to the mininet topology
-        NOTE: this uses a custom mn function
+        NOTE: This uses a custom mn function. MN repo should be on
+            dynamic_topo branch
         NOTE: cannot currently specify what type of host
         required params:
             hostname = the string hostname
@@ -1058,6 +1078,8 @@
     def del_host( self, hostname ):
         """
            delete a host from the mininet topology
+           NOTE: This uses a custom mn function. MN repo should be on
+               dynamic_topo branch
            NOTE: this uses a custom mn function
            required params:
            hostname = the string hostname