Changes between Version 3 and Version 4 of AAG/aag_2nd_year_report
- Timestamp:
- 07/31/15 14:26:45 (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AAG/aag_2nd_year_report
v3 v4 1 1 [[PageOutline]] 2 2 3 = Adopt-a-GENI Project Status Report = 3 = Adopt-a-GENI Project Status Report = 4 4 5 Period: Second Year 5 Period: Second Year 6 6 7 7 == I. Major accomplishments == 8 8 9 The following highlights our accomplishments during the second year of the project. 9 The following highlights our accomplishments during the second year of the project. 10 10 11 11 === A. Milestones achieved === … … 17 17 * Develop monitoring capability to verify correct connectivity and functioning of user-defined SDN-controlled path. 18 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. 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 20 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. 23 22 24 23 === B. Deliverables made === … … 26 25 * We developed a module in the GENI Desktop for integrating the AAG path selection function into the GENI Desktop. 27 26 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. 30 28 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. 33 30 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. 36 32 37 33 == II. Description of work performed during the reporting period == … … 43 39 Our activities and findings can be described in the following five aspects. 44 40 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. ==== 46 42 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 43 The GENI Desktop was designed to be extensible in the sense that new 44 modules can be written to include new functionalities. We took advantage 45 of this property of the GENI Desktop and write a module for the AAG function. 46 While creating a module is straightforward, the major task is to modify 47 the exiting AAG code to handle the interactions between the GENI Desktop 52 48 and the AAG module. There are two aspects. 53 49 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. 50 One aspect is how to get the information about a slice. In order to 51 verify and set up the user-selected path, the AAG module needs information 52 about the slice, such as the topology, IP addresses, MAC addresses, etc. 53 The original AAG code obtained this information from the manifest, which 54 was provided as a textual file in XML format. As a part of the GENI Desktop, 55 the AAG module get the slice information from the parser of the GENI Desktop. 56 The parser obtains the slice information from aggregates and provides the 57 manifest as a JSON object. The AAG code was modified to accommodate this change. 62 58 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. 59 The other aspect is how the user selects the path. The GENI Desktop provides 60 a graphical user interface (GUI) showing the topology of the slice. 61 Instead of providing a list of desired nodes, the user can pick the nodes 62 via the GUI of the GENI Desktop. There is a mechanism in the GENI Desktop 63 to pass this information from GUI to an associated module. The AAG module 64 processes this information and installs the flows to the switches. 69 65 70 66 [[Image(gec21_aag_demo.png, 600)]] … … 74 70 Jacks provided the function to allocate both OVS nodes and other compute 75 71 resources. 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 72 Jacks with the GENI Desktop. We customized Jacks to create special icons, 73 including the AAG controller node and the AAG OVS node. Users can drag 78 74 the AAG controller into the experiment. The AAG OVS node includes the AAG 79 75 initialization script and related code. It can initialize and configure 80 the OVS node and point the OVS node to the AAG controller. 76 the OVS node and point the OVS node to the AAG controller. 81 77 82 Currently we are developing code to automate the initialization step. 78 Currently we are developing code to automate the initialization step. 83 79 The 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. 80 the script on the OVS nodes will be run by the GENI desktop to specify 81 the information about the AAG controller. 86 82 87 83 ==== 3. Developing monitoring capability for SDN-controlled paths. ==== … … 89 85 We designed a Flow Monitoring Module (FMM) in the GENI Desktop to verify that 90 86 a flow is correctly installed and monitor 91 the traffic that is part of the flow. 87 the traffic that is part of the flow. 92 88 We can get the statistics about the number of packets (bytes) 93 89 matching a flow entry from the controller. However, they … … 95 91 Therefore, it does not show the changes or trends of the 96 92 interested flow. It will be hard and time-consuming for an 97 experimenter to figure out the changes manually. 93 experimenter to figure out the changes manually. 98 94 99 95 The FMM … … 106 102 The plot is updated in real time as more data are collected from 107 103 the controller. Therefore, it provides a live monitoring of the 108 behavior of the flow. 104 behavior of the flow. 109 105 110 106 The following figure shows an example output where … … 113 109 [[Image(15mins.png, 600)]] 114 110 115 ==== 4. Developing an approach for plugging a user-specified controller module. == +=111 ==== 4. Developing an approach for plugging a user-specified controller module. ==== 116 112 117 113 The 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. 114 controller module to the AAG controller for controlling traffic flowing with a 115 AAG-controlled user slice, we can use the Web GUI or the OSGi console of the OpenDaylight 116 controller to install the user-specified module as a bundle. 121 117 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. 118 As the first step, the user needs to use tools like maven for compilation 119 and dependencies, java as programming language and (optionally) eclipse to 120 ease syntax completion. Once the module is written and successfully compiled, 121 a .jar file representing the bundle will be created. 126 122 The final step is to use Web GUI or OSGi console to install the bundle and start 127 it. 123 it. 128 124 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. 125 We developed a sample module for port forwarding and demonstrated the approach. 126 The module checks if the destination port is within the (user-defined) range 5000-6000. 131 127 If 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 128 133 129 ==== 5. Demos and Tutorial ==== 134 130 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. 131 We demonstrated the AAG path selection funciton at GEC 21, the monitoring 132 of flow traffic at GEC 22, and user-specified sub-controller at GEC 23. 137 133 We also give a tutorial of the Adopt-A-GENI project at the 2015 summer 138 camp held in the University of Connecticut. 134 camp held in the University of Connecticut. 139 135 140 136 === B. Project participants === … … 152 148 === C. Publications (individual and organizational) === 153 149 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. 155 151 156 152 === D. Outreach activities === 157 153 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. 160 155 161 156 === E. Collaborations === 162 157 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. 167 159 168 160 === F. Other Contributions ===