A millimeterwave application based on onos
- 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
git clone https://github.com/DINGDAMU/millimeterwave-onos-app.git
cd millimeterwave-onos-app
mvn clean install
onos-app localhost reinstall! app/target/*.oar
This application can acquire the mininet's topology from different subsystems via northbound APIs, such as HostService, LinkService and DeviceService.
onos>showcomponets
onos>showcomponets -d
onos>showcomponets -l
onos>showcomponets -h
onos>annotate-devices <deviceID> <key> <value>
onos>annotate-links <source-connectPoint> <destination-connectPoint> <key> <value>
onos>annotate-ports <deviceID> <Port number> <Port state> <key> <value>
onos>mmwave-devices-paths <source DeviceId> <destination DeviceId>
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);
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.
onos>mmwave-hosts-path -f <source hostID> <source hostID>
Filter the K shortest paths with the packet loss constraint.
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.
{
"apps" : {
"org.onosproject.millimeterwavelink" : {
"links" : [{
"src":"of:000000000000000e/5",
"dst":"of:000000000000000f/3",
"length": "100",
"capacity":"100",
"technology":"mmwave",
"ps":"86"
}]
},
"org.onosproject.millimeterwaveport" : {
"ports" : [{
"technology":"mmwave",
"deviceID": "of:000000000000000a",
"portnumber":"1",
"isEnabled":"true"
}]
},
"org.onosproject.millimeterwaveport" : {
"hosts" : [{
"hostid":"mmwave",
"packetlossconstraint": 0.2,
"maxpaths": 10
}]
}
}
onos>onos-netcfg <ONOS's address> <path to JSON>
- 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.
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
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.