Skip to content
This repository has been archived by the owner on May 29, 2021. It is now read-only.

medic0803/Ginkgo-RnD-Project-Floodlight

Repository files navigation

Table of Contents

  1. Ginkgo Floodlight OpenFlow Controller
    1. What is this Project?
    2. What is OpenFlow?
    3. Getting Started
      1. 1. Recommendation way
    4. Functional Modules
      1. Real-time video transmission module
      2. Non-real-time video transmission module
    5. Future works
    6. Authors

Ginkgo Floodlight OpenFlow Controller

What is this Project?

This is a research and development project, which is aims to implement an Application of Software Defined Network Technology in Campus Area Level Multimedia Service Guarantee, the controller is developed by team Ginkgo based on Floodlight.

What is OpenFlow?

OpenFlow is a open standard managed by Open Networking Foundation. It specifies a protocol by which a remote controller can modify the behavior of networking devices through a well-defined “forwarding instruction set”. Floodlight is designed to work with the growing number of switches, routers, virtual switches, and access points that support the OpenFlow standard.

Getting Started

Recommendation way

Recommended to use maven to manage the project. Clone this project to local and open with a Java IDE and let your IDE to help you to finish the rest of dirty works.There are serverl steps:

  1. Run the maven install if it is your first time open this project with you IDE. This is for install dependency in you local maven repository.
  2. After the maven install SUCESS, you can start and run the Main.java

Or more straightforwardly, go the file fold see here in your local and run our SDN controller using command:

java -jar floodlight_ginkgo.jar -cf floodlightdefault.properties

Note: in order to run the java, you need jre or jdk in your system environment; -cf means config file using the floodlightdefault.properties in the same fold; You may generate this .jar file using maven package command.

Functional Modules

Real-time video transmission module

  1. Module Dependencies

    1. MulticastManager
    2. ILinkDiscoveryService
    3. IFloodlightProviderService
    4. IRestApiService
    5. QosResourceMonitor
  2. Service Implementation

    1. IFetchMulticastGroupService

Non-real-time video transmission module

  1. Module & Service Dependencies

    1. StaticCacheManager
    2. IRoutingService
    3. IFloodlightProviderService
    4. IRestApiService
    5. QosResourceMonitor
    6. IDeviceService
    7. IOFSwitchService
  2. Service Implementation

    1. IStaticCacheService

Future works

We believe that the openflow especially the Floodlight controller may not be so popular in the future, but if you want to contribute to this project or have any difficulties while developing similar floodlight project, we are welcome to the questions via issues, E-mail, just because it is also a hard time for us with poor information support during the development.

We also list some functional features we do not complete:

  1. QoS routing monitor module
  2. Using algorithm to upgrade the precision and refine the Floodlight's cost of system resources.
  3. Figure out the way of measure the pack loss in the virtual enironment mininet.
  4. Change the Source-based tree to Shared tree.
  5. Web page controller controls the user groups
  6. Security policy module
  7. Implement multiple network segements and connect to the internet in the experimental topology
  8. Implement the controller to real campus network environment

Authors

Thanks for all the team members' contribution in last one year, sincerely hope that this could be a precious experience for you! https://github.com/medic0803/Ginkgo-RnD-Project-Floodlight/graphs/contributors