基于ONOS的毫米波应用
A millimeterwave application based on onos
git clone https://github.com/DINGDAMU/millimeterwave-onos-app.git
cd millimeterwave-onos-app
mvn clean install
onos-app localhost reinstall! app/target/*.oar
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>
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.