Changes between Initial Version and Version 1 of AAG/aag_2nd_year_report


Ignore:
Timestamp:
07/31/15 14:17:29 (9 years ago)
Author:
fei@netlab.uky.edu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AAG/aag_2nd_year_report

    v1 v1  
     1[[PageOutline]]
     2
     3= Adopt-a-GENI Project Status Report =
     4
     5Period: Second Year
     6
     7== I. Major accomplishments ==
     8
     9The following highlights our accomplishments during the second year of the project.
     10
     11=== A. Milestones achieved ===
     12
     13 * Integrate the AAG path selection function with the GENI Desktop.
     14
     15 * Incorporate SDN resource allocation functions with Jacks, including whatever compute resources are available through Jacks.
     16
     17 * Develop monitoring capability to verify correct connectivity and functioning of user-defined SDN-controlled path.
     18
     19 * Develop an approach for plugging a user-specified controller module into the AAG controller for controlling traffic flowing within an SDN-controlled slice.
     20
     21 * Demonstrate the implemented functions at GEC21, GEC22 and GEC23. Prepare and present
     22the Aodopt-A-GENI tutorial at the summer camp 2015 held at University of Connecticut.
     23
     24=== B. Deliverables made ===
     25
     26 * We developed a module in the GENI Desktop for integrating the AAG path selection function into the GENI Desktop.
     27
     28 * We integrated Jacks with the GENI Desktop so that users can allocate OVS nodes, together with other
     29compute resources through the GENI Desktop.
     30
     31 * We developed a flow monitoring module in the GENI Desktop that can monitor the user-defined path to
     32verify its correctness.
     33
     34 * We developed a sample module for port forwarding and demonstrated the approach
     35of plugging the module into the AAG controller.
     36
     37== II. Description of work performed during the reporting period ==
     38
     39The following provides a description of the progress made during the last reporting period.
     40
     41=== A. Activities and findings ===
     42
     43Our activities and findings can be described in the following five aspects.
     44
     45==== 1. developing a module for integrating the AAG path selection function into the GENI Desktop. ====
     46
     47The GENI Desktop was designed to be extensible in the sense that new
     48modules can be written to include new functionalities. We took advantage
     49of this property of the GENI Desktop and write a module for the AAG function.
     50While creating a module is straightforward, the major task is to modify
     51the exiting AAG code to handle the interactions between the GENI Desktop
     52and the AAG module. There are two aspects.
     53
     54One aspect is how to get the information about a slice. In order to
     55verify and set up the user-selected path, the AAG module needs information
     56about the slice, such as the topology, IP addresses, MAC addresses, etc.
     57The original AAG code obtained this information from the manifest, which
     58was provided as a textual file in XML format. As a part of the GENI Desktop,
     59the AAG module get the slice information from the parser of the GENI Desktop.
     60The parser obtains the slice information from aggregates and provides the
     61manifest as a JSON object. The AAG code was modified to accommodate this change.
     62
     63The other aspect is how the user selects the path. The GENI Desktop provides
     64a graphical user interface (GUI) showing the topology of the slice.
     65Instead of providing a list of desired nodes, the user can pick the nodes
     66via the GUI of the GENI Desktop. There is a mechanism in the GENI Desktop
     67to pass this information from GUI to an associated module. The AAG module
     68processes this information and installs the flows to the switches.
     69
     70[[Image(aag_gec21_demo.png, 600)]]
     71
     72==== 2. Integrating Jacks with the GENI Desktop for allocating SDN resource. ====
     73
     74Jacks provided the function to allocate both OVS nodes and other compute
     75resources. As a joint effort with the GENI Desktop project, we integrated
     76Jacks with the GENI Desktop. We customized Jacks to create special icons,
     77including the AAG controller node and the AAG OVS node. Users can drag
     78the AAG controller into the experiment. The AAG OVS node includes the AAG
     79initialization script and related code. It can initialize and configure
     80the OVS node and point the OVS node to the AAG controller.
     81
     82Currently we are developing code to automate the initialization step.
     83The AAG controller can be added automatically to the user experiment and
     84the script on the OVS nodes will be run by the GENI desktop to specify
     85the information about the AAG controller.
     86
     87==== 3. Developing monitoring capability for SDN-controlled paths. ====
     88
     89We designed a Flow Monitoring Module (FMM) in the GENI Desktop to verify that
     90a flow is correctly installed and monitor
     91the traffic that is part of the flow.
     92We can get the statistics about the number of packets (bytes)
     93matching a flow entry from the controller. However, they
     94are the cumulative counts since the flow entry is installed.
     95Therefore, it does not show the changes or trends of the
     96interested flow. It will be hard and time-consuming for an
     97experimenter to figure out the changes manually.
     98
     99The FMM
     100provides a live monitoring functionality by periodically querying
     101the controller to get these statistics over a period of time.
     102Luckily, the controller does not restrict the frequency with
     103which we can query statistics from it. The FMM transforms the
     104collected data into a dynamic time series plot that depicts the
     105flow’s performance over time since the data collection began.
     106The plot is updated in real time as more data are collected from
     107the controller. Therefore, it provides a live monitoring of the
     108behavior of the flow.
     109
     110The following figure shows an example output where
     111peaks can be easily identified by the experimenter.
     112
     113[[Image(15mins.png, 600)]]
     114
     115==== 4. Developing an approach for plugging a user-specified controller module. ===
     116
     117The AAG controller is based on the OpenDaylight controller. To plug the user-specified
     118controller module to the AAG controller for controlling traffic flowing with a
     119AAG-controlled user slice, we can use the Web GUI or the OSGi console of the OpenDaylight
     120controller to install the user-specified module as a bundle.
     121
     122As the first step, the user needs to use tools like maven for compilation
     123and dependencies, java as programming language and (optionally) eclipse to
     124ease syntax completion. Once the module is written and successfully compiled,
     125a .jar file representing the bundle will be created.
     126The final step is to use Web GUI or OSGi console to install the bundle and start
     127it.
     128
     129We developed a sample module for port forwarding and demonstrated the approach.
     130The module checks if the destination port is within the (user-defined) range 5000-6000.
     131If so, flow entries are installed that forward such traffic to port 5050 and handle packets sent back to the client. Otherwise, a "DROP" rule is installed preventing further connections to the target destination port.
     132
     133==== 5. Demos and Tutorial ====
     134
     135We demonstrated the AAG path selection funciton at GEC 21, the monitoring
     136of flow traffic at GEC 22, and user-specified sub-controller at GEC 23.
     137We also give a tutorial of the Adopt-A-GENI project at the 2015 summer
     138camp held in the University of Connecticut.
     139
     140=== B. Project participants ===
     141
     142The following individuals are involved with the project in one way or another:
     143 * Zongming Fei - Project PI (Kentucky)
     144 * Jim Griffioen - Project Co-PI (Kentucky)
     145 * Kobus van der Merwe - Project Co-PI (Utah)
     146 * Rob Ricci - Project Co-PI (Utah)
     147 * Hussamuddin Nasir - Technician/Programmer (Kentucky)
     148 * Charles Carpenter - Technician/Programmer (Kentucky)
     149 * Jonathon Duerig - Research Associate (Utah)
     150 * Sergio Rivera Polanco - Ph.D. Student (Kentucky)
     151
     152=== C. Publications (individual and organizational) ===
     153
     154 * Sergio Rivera P., Zongming Fei, and James Griffioen, "Providing a High Level Abstraction for SDN Networks in GENI", in Proc. of the 2nd International Workshop on Computer and Networking Experimental Research Using Testbeds (CNERT 2015), Columbus, OH, June 29, 2015.
     155
     156=== D. Outreach activities ===
     157
     158 * We gave demos at GEC 21, GEC 22, and GEC 23. We also gave
     159a tutorial at the GENI summer camp.
     160
     161=== E. Collaborations ===
     162
     163 * Most of our collaborations have been between the Kentucky team and the
     164Utah team. We continued our discussion on what functions need to be
     165provided in Jacks for the AAG project and how to better integrate Jacks
     166with the GENI Desktop.
     167
     168=== F. Other Contributions ===