Changes between Version 3 and Version 4 of AAG/aag_2nd_year_report


Ignore:
Timestamp:
07/31/15 14:26:45 (4 years ago)
Author:
fei@netlab.uky.edu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AAG/aag_2nd_year_report

    v3 v4  
    11[[PageOutline]]
    22
    3 = Adopt-a-GENI Project Status Report =
     3= Adopt-a-GENI Project Status Report = 
    44
    5 Period: Second Year
     5Period: Second Year 
    66
    77== I. Major accomplishments ==
    88
    9 The following highlights our accomplishments during the second year of the project.
     9The following highlights our accomplishments during the second year of the project. 
    1010
    1111=== A. Milestones achieved ===
     
    1717 * Develop monitoring capability to verify correct connectivity and functioning of user-defined SDN-controlled path.
    1818
    19  * Develop an approach for plugging a user-specified controller module into the AAG controller for controlling traffic flowing within an SDN-controlled slice.
     19 * Develop an approach for plugging a user-specified controller module into the AAG controller for controlling traffic flowing within an SDN-controlled slice. 
    2020
    21  * Demonstrate the implemented functions at GEC21, GEC22 and GEC23. Prepare and present
    22 the Aodopt-A-GENI tutorial at the summer camp 2015 held at University of Connecticut.
     21 * Demonstrate the implemented functions at GEC21, GEC22 and GEC23. Prepare and present the Aodopt-A-GENI tutorial at the summer camp 2015 held at University of Connecticut.
    2322
    2423=== B. Deliverables made ===
     
    2625 * We developed a module in the GENI Desktop for integrating the AAG path selection function into the GENI Desktop.
    2726
    28  * We integrated Jacks with the GENI Desktop so that users can allocate OVS nodes, together with other
    29 compute resources through the GENI Desktop.
     27 * We integrated Jacks with the GENI Desktop so that users can allocate OVS nodes, together with other compute resources through the GENI Desktop.
    3028
    31  * We developed a flow monitoring module in the GENI Desktop that can monitor the user-defined path to
    32 verify its correctness.
     29 * We developed a flow monitoring module in the GENI Desktop that can monitor the user-defined path to verify its correctness.
    3330
    34  * We developed a sample module for port forwarding and demonstrated the approach
    35 of plugging the module into the AAG controller.
     31 * We developed a sample module for port forwarding and demonstrated the approach of plugging the module into the AAG controller.
    3632
    3733== II. Description of work performed during the reporting period ==
     
    4339Our activities and findings can be described in the following five aspects.
    4440
    45 ==== 1. developing a module for integrating the AAG path selection function into the GENI Desktop. ====
     41==== 1. developing a module for integrating the AAG path selection function into the GENI Desktop. ==== 
    4642
    47 The GENI Desktop was designed to be extensible in the sense that new
    48 modules can be written to include new functionalities. We took advantage
    49 of this property of the GENI Desktop and write a module for the AAG function.
    50 While creating a module is straightforward, the major task is to modify
    51 the exiting AAG code to handle the interactions between the GENI Desktop
     43The GENI Desktop was designed to be extensible in the sense that new 
     44modules can be written to include new functionalities. We took advantage 
     45of this property of the GENI Desktop and write a module for the AAG function. 
     46While creating a module is straightforward, the major task is to modify 
     47the exiting AAG code to handle the interactions between the GENI Desktop 
    5248and the AAG module. There are two aspects.
    5349
    54 One aspect is how to get the information about a slice. In order to
    55 verify and set up the user-selected path, the AAG module needs information
    56 about the slice, such as the topology, IP addresses, MAC addresses, etc.
    57 The original AAG code obtained this information from the manifest, which
    58 was provided as a textual file in XML format. As a part of the GENI Desktop,
    59 the AAG module get the slice information from the parser of the GENI Desktop.
    60 The parser obtains the slice information from aggregates and provides the
    61 manifest as a JSON object. The AAG code was modified to accommodate this change.
     50One aspect is how to get the information about a slice. In order to 
     51verify and set up the user-selected path, the AAG module needs information 
     52about the slice, such as the topology, IP addresses, MAC addresses, etc. 
     53The original AAG code obtained this information from the manifest, which 
     54was provided as a textual file in XML format. As a part of the GENI Desktop, 
     55the AAG module get the slice information from the parser of the GENI Desktop. 
     56The parser obtains the slice information from aggregates and provides the 
     57manifest as a JSON object. The AAG code was modified to accommodate this change. 
    6258
    63 The other aspect is how the user selects the path. The GENI Desktop provides
    64 a graphical user interface (GUI) showing the topology of the slice.
    65 Instead of providing a list of desired nodes, the user can pick the nodes
    66 via the GUI of the GENI Desktop. There is a mechanism in the GENI Desktop
    67 to pass this information from GUI to an associated module. The AAG module
    68 processes this information and installs the flows to the switches.
     59The other aspect is how the user selects the path. The GENI Desktop provides 
     60a graphical user interface (GUI) showing the topology of the slice. 
     61Instead of providing a list of desired nodes, the user can pick the nodes 
     62via the GUI of the GENI Desktop. There is a mechanism in the GENI Desktop 
     63to pass this information from GUI to an associated module. The AAG module 
     64processes this information and installs the flows to the switches. 
    6965
    7066[[Image(gec21_aag_demo.png, 600)]]
     
    7470Jacks provided the function to allocate both OVS nodes and other compute
    7571resources. As a joint effort with the GENI Desktop project, we integrated
    76 Jacks with the GENI Desktop. We customized Jacks to create special icons,
    77 including the AAG controller node and the AAG OVS node. Users can drag
     72Jacks with the GENI Desktop. We customized Jacks to create special icons, 
     73including the AAG controller node and the AAG OVS node. Users can drag 
    7874the AAG controller into the experiment. The AAG OVS node includes the AAG
    7975initialization script and related code. It can initialize and configure
    80 the OVS node and point the OVS node to the AAG controller.
     76the OVS node and point the OVS node to the AAG controller. 
    8177
    82 Currently we are developing code to automate the initialization step.
     78Currently we are developing code to automate the initialization step. 
    8379The AAG controller can be added automatically to the user experiment and
    84 the script on the OVS nodes will be run by the GENI desktop to specify
    85 the information about the AAG controller.
     80the script on the OVS nodes will be run by the GENI desktop to specify 
     81the information about the AAG controller. 
    8682
    8783==== 3. Developing monitoring capability for SDN-controlled paths. ====
     
    8985We designed a Flow Monitoring Module (FMM) in the GENI Desktop to verify that
    9086a flow is correctly installed and monitor
    91 the traffic that is part of the flow.
     87the traffic that is part of the flow. 
    9288We can get the statistics about the number of packets (bytes)
    9389matching a flow entry from the controller. However, they
     
    9591Therefore, it does not show the changes or trends of the
    9692interested flow. It will be hard and time-consuming for an
    97 experimenter to figure out the changes manually.
     93experimenter to figure out the changes manually. 
    9894
    9995The FMM
     
    106102The plot is updated in real time as more data are collected from
    107103the controller. Therefore, it provides a live monitoring of the
    108 behavior of the flow.
     104behavior of the flow. 
    109105
    110106The following figure shows an example output where
     
    113109[[Image(15mins.png, 600)]]
    114110
    115 ==== 4. Developing an approach for plugging a user-specified controller module. ==+=
     111==== 4. Developing an approach for plugging a user-specified controller module. ====
    116112
    117113The AAG controller is based on the OpenDaylight controller. To plug the user-specified
    118 controller module to the AAG controller for controlling traffic flowing with a
    119 AAG-controlled user slice, we can use the Web GUI or the OSGi console of the OpenDaylight
    120 controller to install the user-specified module as a bundle.
     114controller module to the AAG controller for controlling traffic flowing with a 
     115AAG-controlled user slice, we can use the Web GUI or the OSGi console of the OpenDaylight 
     116controller to install the user-specified module as a bundle. 
    121117
    122 As the first step, the user needs to use tools like maven for compilation
    123 and dependencies, java as programming language and (optionally) eclipse to
    124 ease syntax completion. Once the module is written and successfully compiled,
    125 a .jar file representing the bundle will be created.
     118As the first step, the user needs to use tools like maven for compilation 
     119and dependencies, java as programming language and (optionally) eclipse to 
     120ease syntax completion. Once the module is written and successfully compiled, 
     121a .jar file representing the bundle will be created. 
    126122The final step is to use Web GUI or OSGi console to install the bundle and start
    127 it.
     123it. 
    128124
    129 We developed a sample module for port forwarding and demonstrated the approach.
    130 The module checks if the destination port is within the (user-defined) range 5000-6000.
     125We developed a sample module for port forwarding and demonstrated the approach. 
     126The module checks if the destination port is within the (user-defined) range 5000-6000. 
    131127If 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.
    132128
    133129==== 5. Demos and Tutorial ====
    134130
    135 We demonstrated the AAG path selection funciton at GEC 21, the monitoring
    136 of flow traffic at GEC 22, and user-specified sub-controller at GEC 23.
     131We demonstrated the AAG path selection funciton at GEC 21, the monitoring 
     132of flow traffic at GEC 22, and user-specified sub-controller at GEC 23. 
    137133We also give a tutorial of the Adopt-A-GENI project at the 2015 summer
    138 camp held in the University of Connecticut.
     134camp held in the University of Connecticut. 
    139135
    140136=== B. Project participants ===
     
    152148=== C. Publications (individual and organizational) ===
    153149
    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.
     150 * 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. 
    155151
    156152=== D. Outreach activities ===
    157153
    158  * We gave demos at GEC 21, GEC 22, and GEC 23. We also gave
    159 a tutorial at the GENI summer camp.
     154 * We gave demos at GEC 21, GEC 22, and GEC 23. We also gave a tutorial at the GENI summer camp.
    160155
    161156=== E. Collaborations ===
    162157
    163  * Most of our collaborations have been between the Kentucky team and the
    164 Utah team. We continued our discussion on what functions need to be
    165 provided in Jacks for the AAG project and how to better integrate Jacks
    166 with the GENI Desktop.
     158 * Most of our collaborations have been between the Kentucky team and the Utah team. We continued our discussion on what functions need to be provided in Jacks for the AAG project and how to better integrate Jacks with the GENI Desktop.
    167159
    168160=== F. Other Contributions ===