'''Execute Experiment:''' After your slice is ready, you will be able to interact with your nodes. Even though your OVS nodes are now visible to the controller, their tables are empty and therefore they will not forward any packet. 1. '''Login to hosts''' To start our experiment we need to ssh our hosts, '''h1''' and '''h2''', you may use any SSH client or the GENI Dekstop's [wiki:GeniDesktop/Manual/gdfeatures/ssh SSH module] to access the hosts from the browser. In the terminal of '''h1''', ping '''h2'''. This should timeout, since there are no rules installed at the switches. {{{ user@h1:~$ ping h2 PING h2-link-4 (10.10.5.2) 56(84) bytes of data. From h1-link-0 (10.10.1.1) icmp_seq=1 Destination Host Unreachable From h1-link-0 (10.10.1.1) icmp_seq=2 Destination Host Unreachable From h1-link-0 (10.10.1.1) icmp_seq=3 Destination Host Unreachable }}} 2. '''Setup Shortest Path Flows''' Now we want to make '''h1''' and '''h2''' able to communicate using shortest paths. To do so, you have to load the '''Flow Install''' module from the list of modules on the left hand side of your screen. [[Image(finstall.png)]] The first section, '''Controller Information''', tells you the public IP address where the controller is running, and which controller you chose when creating the slice. The second section, '''System-wide SDN Rules''', allows you to automatically set system wide paths. It can compute shortest paths between all hosts and automatically install the corresponding flow entries at every switch in the path. It can also send ARP Traffic to the controller. We need to handle ARP processing as well in order to be able to communicate between hosts. The controller images loaded in the AAG features include ARP processing modules. Therefore, by checking the ARP processing box we will let the controller handle all ARP requests/responses. Check '''Send ARP Traffic to Controller''' and '''Shortest Path Rules'''. Then, click on the '''Initialize''' button once. After a short wait the results will be shown in the '''Output''' box. The output message should be: {{{ ARP flow entries successfully installed. Shortest paths successfully installed. }}} Now, if we try to ping '''h2''' from '''h1''' we can see that communication is successful. {{{ user@h1:~$ ping h2 PING h2-link-4 (10.10.5.2) 56(84) bytes of data. 64 bytes from h2-link-4 (10.10.5.2): icmp_seq=1 ttl=64 time=7.40 ms 64 bytes from h2-link-4 (10.10.5.2): icmp_seq=2 ttl=64 time=1.74 ms 64 bytes from h2-link-4 (10.10.5.2): icmp_seq=3 ttl=64 time=1.69 ms }}} 3. '''Install Alternate Paths''' The third section of the '''Flow Install''' module shows a '''List of Existing Flows''' and provides buttons to delete them. Click the '''Refresh List''' button to retrieve a list of existing end-to-end flows you have added using the GENI Desktop as well as individual flow entries possibly installed using other tools that interact with the controller REST API. [[Image(refreshed_flows.png)]] Note that end-to-end flows display the path a flow follows from one host to another instead of displaying low-level details. For individual flow entries, information about the match fields is shown (e.g. ARP flows). The format is [''match field'']>>[''action'']@''switch_name'' With the flows listed, it is straightforward to remove an existing path. For this tutorial we will leave the communication from '''h1''' to '''h2''' intact (i.e. shortest path), but you will select and remove the flow that goes from '''h2''' to '''h1'''. Choose the radio button beside the flow from '''h2''' to '''h1'''. Then press the '''Delete Single Flow''' button. After a short wait, the list will update with the new set of flows listed. Define an alternate path. Using the topology view, you will select all the elements (links and nodes) across an alternate path that communicate '''h2''' with '''h1'''. [[Image(selected_path.png)]] '''Tip''': Select multiple elements by holding the CTRL key and clicking on the desired element. In the '''New Flow Definition''' section, select '''h2''' as source node and define the path as a one-way flow. Leave the information about ports blank and click the '''Install Flow''' button once. [[Image(install_flow_definition.png)]] In a few seconds the '''Output''' should say: {{{ End-to-End flow(s) installed successfully. }}} Click '''Refresh List''' button to confirm the new flow has been installed. With the new path installed, you should be able to ping again from '''h1''' to '''h2'''. {{{ user@h1:~$ ping h2 PING h2-link-4 (10.10.5.2) 56(84) bytes of data. 64 bytes from h2-link-4 (10.10.5.2): icmp_seq=1 ttl=64 time=2.64 ms 64 bytes from h2-link-4 (10.10.5.2): icmp_seq=2 ttl=64 time=2.16 ms }}} Notice the extra delay added to the communication because we are using a longer path. Navigation: [wiki:GENIExperimenter/Tutorials/GENIDesktop/aag Back To Tutorial]