项目作者: DINGDAMU

项目描述 :
基于ONOS的毫米波应用
高级语言: Java
项目地址: git://github.com/DINGDAMU/millimeterwave-onos-app.git
创建时间: 2017-01-20T13:56:58Z
项目社区:https://github.com/DINGDAMU/millimeterwave-onos-app

开源协议:

下载


Millimeterwave_onos_app

A millimeterwave application based on onos

Prerequisites

  • Java 8 JDK (Oracle Java recommended; OpenJDK is not as thoroughly tested)
  • Apache Maven 3.3.9
  • git
  • bash (for packaging & testing)
  • Apache Karaf 3.0.5
  • ONOS (git clone https://gerrit.onosproject.org/onos)
    ——->More information you can find here

Installation

  1. git clone https://github.com/DINGDAMU/millimeterwave-onos-app.git
  2. cd millimeterwave-onos-app
  3. mvn clean install
  4. onos-app localhost reinstall! app/target/*.oar

Usage

This application can acquire the mininet’s topology from different subsystems via northbound APIs, such as HostService, LinkService and DeviceService.

Show all components by default

  1. onos>showcomponets

Show only devices

  1. onos>showcomponets -d
  1. onos>showcomponets -l

Show only hosts

  1. onos>showcomponets -h

Add additional annotations on devices

  1. onos>annotate-devices <deviceID> <key> <value>
  1. onos>annotate-links <source-connectPoint> <destination-connectPoint> <key> <value>

Add additional annotations on ports

  1. onos>annotate-ports <deviceID> <Port number> <Port state> <key> <value>
  1. onos>mmwave-devices-paths <source DeviceId> <destination DeviceId>
  2. onos>mmwave-hosts-path <source hostID> <source hostID>

In our case, the cost depends from the annotation value “probablity of success”.
total cost = fixed cost + dynamic cost
In Ethernet case, total cost = 100 + 1; (ps = 100)
In mm-wave case, total cost = 1 + 1/(ps/100);

Conditions before choosing the shortest path

All the switches are considered as indipendent, so the total packet loss = 1 - Ps1 Ps2 …. (All the switches in the path).
The total packet loss should be less than the constraint which is given via RESTful API.

  1. onos>mmwave-hosts-path -f <source hostID> <source hostID>

Filter the K shortest paths with the packet loss constraint.

Add mm-wave intents

  1. onos>mmwave-add-intents <hostId 1> <hostId 2>

Add the intent between host1 and host2, the path will be the shortest path which calculated by own cost instead of the default cost by add-host-intent command.

A JSON example

  1. {
  2. "apps" : {
  3. "org.onosproject.millimeterwavelink" : {
  4. "links" : [{
  5. "src":"of:000000000000000e/5",
  6. "dst":"of:000000000000000f/3",
  7. "length": "100",
  8. "capacity":"100",
  9. "technology":"mmwave",
  10. "ps":"86"
  11. }]
  12. },
  13. "org.onosproject.millimeterwaveport" : {
  14. "ports" : [{
  15. "technology":"mmwave",
  16. "deviceID": "of:000000000000000a",
  17. "portnumber":"1",
  18. "isEnabled":"true"
  19. }]
  20. },
  21. "org.onosproject.millimeterwaveport" : {
  22. "hosts" : [{
  23. "hostid":"mmwave",
  24. "packetlossconstraint": 0.2,
  25. "maxpaths": 10
  26. }]
  27. }
  28. }

Configuration

  1. onos>onos-netcfg <ONOS's address> <path to JSON>

MM-wave Topo overlay on WEB GUI

  • Start display mode: Highlight millimeter wave links in green color.
  • Cancel display mode: No more highlight millimeter wave links.
  • Show all related intents
  • Show previous related intent
  • Show next related intent
  • Monitor traffic of selected intent

In addition, the number of mm-wave and Ethernet links will be shown on the Summary panel.

License

Copyright -present Open Networking Laboratory

Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  1. http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.