From: peusterm Date: Wed, 16 May 2018 14:37:02 +0000 (+0200) Subject: Moved examples folder to project root. X-Git-Tag: v4.0.1^0 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=commitdiff_plain;h=4fbbe5964bf0954b9dd7d79669d3cbc45517e4c0 Moved examples folder to project root. Change-Id: I1ba8b7e753f0e1454555ecff18914bb977d224dd Signed-off-by: peusterm --- diff --git a/examples b/examples deleted file mode 120000 index 0253dc6..0000000 --- a/examples +++ /dev/null @@ -1 +0,0 @@ -src/emuvim/examples \ No newline at end of file diff --git a/examples/default_single_dc_topology.py b/examples/default_single_dc_topology.py new file mode 100644 index 0000000..6ae0ae2 --- /dev/null +++ b/examples/default_single_dc_topology.py @@ -0,0 +1,72 @@ +# Copyright (c) 2015 SONATA-NFV and Paderborn University +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the SONATA-NFV, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# This work has been performed in the framework of the SONATA project, +# funded by the European Commission under Grant number 671517 through +# the Horizon 2020 and 5G-PPP programmes. The authors would like to +# acknowledge the contributions of their colleagues of the SONATA +# partner consortium (www.sonata-nfv.eu). +import logging +from mininet.log import setLogLevel +from emuvim.dcemulator.net import DCNetwork +from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint +from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint + +logging.basicConfig(level=logging.INFO) +setLogLevel('info') # set Mininet loglevel +logging.getLogger('werkzeug').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.base').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG) + + +def create_topology(): + net = DCNetwork(monitor=False, enable_learning=True) + + dc1 = net.addDatacenter("dc1") + # add OpenStack-like APIs to the emulated DC + api1 = OpenstackApiEndpoint("0.0.0.0", 6001) + api1.connect_datacenter(dc1) + api1.start() + api1.connect_dc_network(net) + # add the command line interface endpoint to the emulated DC (REST API) + rapi1 = RestApiEndpoint("0.0.0.0", 5001) + rapi1.connectDCNetwork(net) + rapi1.connectDatacenter(dc1) + rapi1.start() + + net.start() + net.CLI() + # when the user types exit in the CLI, we stop the emulator + net.stop() + + +def main(): + create_topology() + + +if __name__ == '__main__': + main() diff --git a/examples/openstack_single_dc.py b/examples/openstack_single_dc.py new file mode 100644 index 0000000..7070cda --- /dev/null +++ b/examples/openstack_single_dc.py @@ -0,0 +1,72 @@ +# Copyright (c) 2015 SONATA-NFV and Paderborn University +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the SONATA-NFV, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# This work has been performed in the framework of the SONATA project, +# funded by the European Commission under Grant number 671517 through +# the Horizon 2020 and 5G-PPP programmes. The authors would like to +# acknowledge the contributions of their colleagues of the SONATA +# partner consortium (www.sonata-nfv.eu). +import logging +from mininet.log import setLogLevel +from emuvim.dcemulator.net import DCNetwork +from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint +from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint + +logging.basicConfig(level=logging.INFO) +setLogLevel('info') # set Mininet loglevel +logging.getLogger('werkzeug').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.base').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG) + + +def create_topology(): + net = DCNetwork(monitor=False, enable_learning=False) + + dc1 = net.addDatacenter("dc1") + # add OpenStack-like APIs to the emulated DC + api1 = OpenstackApiEndpoint("0.0.0.0", 6001) + api1.connect_datacenter(dc1) + api1.start() + api1.connect_dc_network(net) + # add the command line interface endpoint to the emulated DC (REST API) + rapi1 = RestApiEndpoint("0.0.0.0", 5001) + rapi1.connectDCNetwork(net) + rapi1.connectDatacenter(dc1) + rapi1.start() + + net.start() + net.CLI() + # when the user types exit in the CLI, we stop the emulator + net.stop() + + +def main(): + create_topology() + + +if __name__ == '__main__': + main() diff --git a/examples/osm_default_daemon_topology_2_pop.py b/examples/osm_default_daemon_topology_2_pop.py new file mode 100644 index 0000000..164ecb4 --- /dev/null +++ b/examples/osm_default_daemon_topology_2_pop.py @@ -0,0 +1,111 @@ +# Copyright (c) 2015 SONATA-NFV and Paderborn University +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the SONATA-NFV, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# This work has been performed in the framework of the SONATA project, +# funded by the European Commission under Grant number 671517 through +# the Horizon 2020 and 5G-PPP programmes. The authors would like to +# acknowledge the contributions of their colleagues of the SONATA +# partner consortium (www.sonata-nfv.eu). +import logging +import time +import signal +from mininet.log import setLogLevel +from emuvim.dcemulator.net import DCNetwork +from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint +from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint +from mininet.link import TCLink + +logging.basicConfig(level=logging.INFO) +setLogLevel('info') # set Mininet loglevel +logging.getLogger('werkzeug').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.base').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG) +logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG) + + +class DaemonTopology(object): + """ + Topology with two datacenters: + + dc1 <-- 50ms --> dc2 + """ + + def __init__(self): + self.running = True + signal.signal(signal.SIGINT, self._stop_by_signal) + signal.signal(signal.SIGTERM, self._stop_by_signal) + # create and start topology + self.create_topology() + self.start_topology() + self.daemonize() + self.stop_topology() + + def create_topology(self): + self.net = DCNetwork(monitor=False, enable_learning=True) + self.dc1 = self.net.addDatacenter("dc1") + self.dc2 = self.net.addDatacenter("dc2") + self.net.addLink(self.dc1, self.dc2, cls=TCLink, delay="50ms") + # add OpenStack-like APIs to the emulated DC + self.api1 = OpenstackApiEndpoint("0.0.0.0", 6001) + self.api1.connect_datacenter(self.dc1) + self.api1.connect_dc_network(self.net) + self.api2 = OpenstackApiEndpoint("0.0.0.0", 6002) + self.api2.connect_datacenter(self.dc2) + self.api2.connect_dc_network(self.net) + # add the command line interface endpoint to the emulated DC (REST API) + self.rapi1 = RestApiEndpoint("0.0.0.0", 5001) + self.rapi1.connectDCNetwork(self.net) + self.rapi1.connectDatacenter(self.dc1) + self.rapi1.connectDatacenter(self.dc2) + + def start_topology(self): + self.api1.start() + self.api2.start() + self.rapi1.start() + self.net.start() + + def daemonize(self): + print("Daemonizing vim-emu. Send SIGTERM or SIGKILL to stop.") + while self.running: + time.sleep(1) + + def _stop_by_signal(self, signum, frame): + print("Received SIGNAL {}. Stopping.".format(signum)) + self.running = False + + def stop_topology(self): + self.api1.stop() + self.api2.stop() + self.rapi1.stop() + self.net.stop() + + +def main(): + DaemonTopology() + + +if __name__ == '__main__': + main() diff --git a/examples/services/hackfest_1_nsd.tar.gz b/examples/services/hackfest_1_nsd.tar.gz new file mode 100644 index 0000000..ca13889 Binary files /dev/null and b/examples/services/hackfest_1_nsd.tar.gz differ diff --git a/examples/services/hackfest_1_nsd/hackfest_1_nsd.yaml b/examples/services/hackfest_1_nsd/hackfest_1_nsd.yaml new file mode 100644 index 0000000..457475f --- /dev/null +++ b/examples/services/hackfest_1_nsd/hackfest_1_nsd.yaml @@ -0,0 +1,44 @@ +--- +# Copyright (c) 2018 by Paderborn University +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the OSM, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +nsd:nsd-catalog: + nsd: + - id: hackfest1-ns + name: hackfest1-ns + short-name: hackfest1-ns + description: Simple NS with a single VNF and a single VL + version: '1.0' + logo: osm.png + constituent-vnfd: + - vnfd-id-ref: hackfest1-vnf + member-vnf-index: '1' + vld: + - id: mgmtnet + name: mgmtnet + short-name: mgmtnet + type: ELAN + mgmt-network: 'true' + vnfd-connection-point-ref: + - vnfd-id-ref: hackfest1-vnf + member-vnf-index-ref: '1' + vnfd-connection-point-ref: vnf-cp0 + diff --git a/examples/services/hackfest_1_nsd/icons/osm.png b/examples/services/hackfest_1_nsd/icons/osm.png new file mode 100644 index 0000000..62012d2 Binary files /dev/null and b/examples/services/hackfest_1_nsd/icons/osm.png differ diff --git a/examples/services/hackfest_2_nsd.tar.gz b/examples/services/hackfest_2_nsd.tar.gz new file mode 100644 index 0000000..9170de9 Binary files /dev/null and b/examples/services/hackfest_2_nsd.tar.gz differ diff --git a/examples/services/hackfest_2_nsd/hackfest_2_nsd.yaml b/examples/services/hackfest_2_nsd/hackfest_2_nsd.yaml new file mode 100755 index 0000000..868dc53 --- /dev/null +++ b/examples/services/hackfest_2_nsd/hackfest_2_nsd.yaml @@ -0,0 +1,61 @@ +--- +# Copyright (c) 2018 by Paderborn University +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the OSM, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +nsd:nsd-catalog: + nsd: + - id: hackfest2-ns + name: hackfest2-ns + short-name: hackfest2-ns + description: NS with 2 VNFs connected by datanet and mgmtnet VLs + version: '1.0' + logo: osm.png + constituent-vnfd: + - vnfd-id-ref: hackfest2-vnf + member-vnf-index: '1' + - vnfd-id-ref: hackfest2-vnf + member-vnf-index: '2' + vld: + - id: mgmtnet + name: mgmtnet + short-name: mgmtnet + type: ELAN + mgmt-network: 'true' + vim-network-name: mgmt + vnfd-connection-point-ref: + - vnfd-id-ref: hackfest2-vnf + member-vnf-index-ref: '1' + vnfd-connection-point-ref: vnf-mgmt + - vnfd-id-ref: hackfest2-vnf + member-vnf-index-ref: '2' + vnfd-connection-point-ref: vnf-mgmt + - id: datanet + name: datanet + short-name: datanet + type: ELAN + vnfd-connection-point-ref: + - vnfd-id-ref: hackfest2-vnf + member-vnf-index-ref: '1' + vnfd-connection-point-ref: vnf-data + - vnfd-id-ref: hackfest2-vnf + member-vnf-index-ref: '2' + vnfd-connection-point-ref: vnf-data + diff --git a/examples/services/hackfest_2_nsd/icons/osm.png b/examples/services/hackfest_2_nsd/icons/osm.png new file mode 100644 index 0000000..62012d2 Binary files /dev/null and b/examples/services/hackfest_2_nsd/icons/osm.png differ diff --git a/examples/services/pingpong_ns/pingpong_nsd.yaml b/examples/services/pingpong_ns/pingpong_nsd.yaml new file mode 100644 index 0000000..79ed457 --- /dev/null +++ b/examples/services/pingpong_ns/pingpong_nsd.yaml @@ -0,0 +1,98 @@ +--- +# Copyright (c) 2018 by Paderborn University and Manuel Peuster +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +nsd-catalog: + nsd: + - id: pingpong + name: pingpong + short-name: pingpong + description: Ping-pong example nentwork scenario with two VNFs. + vendor: "Paderborn University" + version: '1.1' + + # Place the logo as png in icons directory and provide the name here + # logo: + + # Specify the VNFDs that are part of this NSD + constituent-vnfd: + # The member-vnf-index needs to be unique, starting from 1 + # vnfd-id-ref is the id of the VNFD + # Multiple constituent VNFDs can be specified + - member-vnf-index: '1' + vnfd-id-ref: ping + - member-vnf-index: '2' + vnfd-id-ref: pong + + vld: + - id: mgmt_vl + description: Management VL + name: mgmt_vl + short-name: mgmt_vl + vim-network-name: default # important for emulator! + type: ELAN + vendor: "Paderborn University" + version: '1.0' + mgmt-network: 'true' + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: ping/cp0 + vnfd-id-ref: ping + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: pong/cp0 + vnfd-id-ref: pong + #vld: + # Networks for the VNFs + # - id: demo_nsd_vld0 + # name: management + # short-name: management + # type: ELAN + # mgmt-network: 'true' + # # vim-network-name: + # # provider-network: + # # overlay-type: VLAN + # # segmentation_id: + # vnfd-connection-point-ref: + # # Specify the constituent VNFs + # # member-vnf-index-ref - entry from constituent vnf + # # vnfd-id-ref - VNFD id + # # vnfd-connection-point-ref - connection point name in the VNFD + # - nsd:member-vnf-index-ref: 1 + # nsd:vnfd-id-ref: http_vnfd + # # NOTE: Validate the entry below + # nsd:vnfd-connection-point-ref: eth0 + # - id: http_nsd_vld1 + # name: http_nsd_vld1 + # short-name: http_nsd_vld1 + # type: ELAN + # # vim-network-name: + # # provider-network: + # # overlay-type: VLAN + # # segmentation_id: + # vnfd-connection-point-ref: + # # Specify the constituent VNFs + # # member-vnf-index-ref - entry from constituent vnf + # # vnfd-id-ref - VNFD id + # # vnfd-connection-point-ref - connection point name in the VNFD + # - nsd:member-vnf-index-ref: 1 + # nsd:vnfd-id-ref: http_vnfd + # # NOTE: Validate the entry below + # nsd:vnfd-connection-point-ref: eth1 diff --git a/examples/services/pingpong_nsd.tar.gz b/examples/services/pingpong_nsd.tar.gz new file mode 100644 index 0000000..e5d9202 Binary files /dev/null and b/examples/services/pingpong_nsd.tar.gz differ diff --git a/examples/vnfs/hackfest_1_vnfd.tar.gz b/examples/vnfs/hackfest_1_vnfd.tar.gz new file mode 100644 index 0000000..622634e Binary files /dev/null and b/examples/vnfs/hackfest_1_vnfd.tar.gz differ diff --git a/examples/vnfs/hackfest_1_vnfd/hackfest_1_vnfd.yaml b/examples/vnfs/hackfest_1_vnfd/hackfest_1_vnfd.yaml new file mode 100644 index 0000000..98db0dc --- /dev/null +++ b/examples/vnfs/hackfest_1_vnfd/hackfest_1_vnfd.yaml @@ -0,0 +1,51 @@ +--- +# Copyright (c) 2018 by Paderborn University +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the OSM, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +vnfd:vnfd-catalog: + vnfd: + - id: hackfest1-vnf + name: hackfest1-vnf + short-name: hackfest1-vnf + version: '1.0' + description: A simple VNF descriptor w/ one VDU + logo: osm.png + connection-point: + - name: vnf-cp0 + type: VPORT + vdu: + - id: hackfest1VM + name: hackfest1VM + image: "ubuntu:trusty" + count: '1' + vm-flavor: + vcpu-count: '1' + memory-mb: '1024' + storage-gb: '10' + interface: + - name: vdu-eth0 + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: vnf-cp0 + mgmt-interface: + cp: vnf-cp0 + diff --git a/examples/vnfs/hackfest_1_vnfd/icons/osm.png b/examples/vnfs/hackfest_1_vnfd/icons/osm.png new file mode 100644 index 0000000..62012d2 Binary files /dev/null and b/examples/vnfs/hackfest_1_vnfd/icons/osm.png differ diff --git a/examples/vnfs/hackfest_2_vnfd.tar.gz b/examples/vnfs/hackfest_2_vnfd.tar.gz new file mode 100644 index 0000000..c4d5037 Binary files /dev/null and b/examples/vnfs/hackfest_2_vnfd.tar.gz differ diff --git a/examples/vnfs/hackfest_2_vnfd/hackfest_2_vnfd.yaml b/examples/vnfs/hackfest_2_vnfd/hackfest_2_vnfd.yaml new file mode 100644 index 0000000..fe4d08b --- /dev/null +++ b/examples/vnfs/hackfest_2_vnfd/hackfest_2_vnfd.yaml @@ -0,0 +1,103 @@ +--- +# Copyright (c) 2018 by Paderborn University +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the OSM, Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +vnfd:vnfd-catalog: + vnfd: + - id: hackfest2-vnf + name: hackfest2-vnf + short-name: hackfest2-vnf + version: '1.0' + description: A VNF consisting of 2 VDUs connected to an internal VL + logo: osm.png + connection-point: + - id: vnf-mgmt + name: vnf-mgmt + short-name: vnf-mgmt + type: VPORT + - id: vnf-data + name: vnf-data + short-name: vnf-data + type: VPORT + mgmt-interface: + cp: vnf-mgmt + internal-vld: + - id: internal + name: internal + short-name: internal + type: ELAN + internal-connection-point: + - id-ref: mgmtVM-internal + - id-ref: dataVM-internal + vdu: + - id: mgmtVM + name: mgmtVM + image: "ubuntu:trusty" + count: '1' + vm-flavor: + vcpu-count: '1' + memory-mb: '1024' + storage-gb: '10' + interface: + - name: mgmtVM-eth0 + position: '1' + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: vnf-mgmt + - name: mgmtVM-eth1 + position: '2' + type: INTERNAL + virtual-interface: + type: VIRTIO + internal-connection-point-ref: mgmtVM-internal + internal-connection-point: + - id: mgmtVM-internal + name: mgmtVM-internal + short-name: mgmtVM-internal + type: VPORT + - id: dataVM + name: dataVM + image: "ubuntu:trusty" + count: '1' + vm-flavor: + vcpu-count: '1' + memory-mb: '1024' + storage-gb: '10' + interface: + - name: dataVM-eth0 + position: '1' + type: INTERNAL + virtual-interface: + type: VIRTIO + internal-connection-point-ref: dataVM-internal + - name: dataVM-xe0 + position: '2' + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: vnf-data + internal-connection-point: + - id: dataVM-internal + name: dataVM-internal + short-name: dataVM-internal + type: VPORT + diff --git a/examples/vnfs/hackfest_2_vnfd/icons/osm.png b/examples/vnfs/hackfest_2_vnfd/icons/osm.png new file mode 100644 index 0000000..62012d2 Binary files /dev/null and b/examples/vnfs/hackfest_2_vnfd/icons/osm.png differ diff --git a/examples/vnfs/ping.tar.gz b/examples/vnfs/ping.tar.gz new file mode 100644 index 0000000..c19270b Binary files /dev/null and b/examples/vnfs/ping.tar.gz differ diff --git a/examples/vnfs/ping_vnf/ping_vnfd.yaml b/examples/vnfs/ping_vnf/ping_vnfd.yaml new file mode 100644 index 0000000..e114f3e --- /dev/null +++ b/examples/vnfs/ping_vnf/ping_vnfd.yaml @@ -0,0 +1,77 @@ +--- +# Copyright (c) 2018 by Paderborn University and Manuel Peuster +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +vnfd-catalog: + vnfd: + - id: ping + name: ping + short-name: ping + description: "Empty example container VNF" + vendor: "Paderborn University" + version: '1.1' + + # Place the logo as png in icons directory and provide the name here + # logo: sonata.png + connection-point: + - name: ping/cp0 + type: VPORT + - name: ping/cp1 + type: VPORT + # Management interface + mgmt-interface: + cp: ping/cp0 + + # Atleast one VDU need to be specified + vdu: + # Additional VDUs can be created by copying the + # VDU descriptor below + - id: ubuntu + name: ubuntu + description: "Ubuntu Trusty default Docker container" + count: "1" + + # Flavour of the VM to be instantiated for the VDU + vm-flavor: + vcpu-count: 1 + memory-mb: 512 + storage-gb: 10 + + # Image including the full path + image: "ubuntu:trusty" + #image: cirros034 + interface: + - name: ping0 + position: 0 + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: ping/cp0 + - name: ping1 + position: 1 + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: ping/cp1 + + + + diff --git a/examples/vnfs/pong.tar.gz b/examples/vnfs/pong.tar.gz new file mode 100644 index 0000000..085c00a Binary files /dev/null and b/examples/vnfs/pong.tar.gz differ diff --git a/examples/vnfs/pong_vnf/pong_vnfd.yaml b/examples/vnfs/pong_vnf/pong_vnfd.yaml new file mode 100644 index 0000000..3e80700 --- /dev/null +++ b/examples/vnfs/pong_vnf/pong_vnfd.yaml @@ -0,0 +1,77 @@ +--- +# Copyright (c) 2018 by Paderborn University and Manuel Peuster +# (manuel@peuster.de) +# ALL RIGHTS RESERVED. +# +# 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. +# +# Neither the name of the Paderborn University +# nor the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. + +vnfd-catalog: + vnfd: + - id: pong + name: pong + short-name: pong + description: Empty Container VNF + vendor: "Paderborn University" + version: '1.1' + + # Place the logo as png in icons directory and provide the name here + # logo: sonata.png + connection-point: + - name: pong/cp0 + type: VPORT + - name: pong/cp1 + type: VPORT + # Management interface + mgmt-interface: + cp: pong/cp0 + + # Atleast one VDU need to be specified + vdu: + # Additional VDUs can be created by copying the + # VDU descriptor below + - id: ubuntu + name: ubuntu + description: "Ubuntu Trusty default Docker container" + count: "1" + + # Flavour of the VM to be instantiated for the VDU + vm-flavor: + vcpu-count: 1 + memory-mb: 512 + storage-gb: 10 + + # Image including the full path + image: "ubuntu:trusty" + #image: cirros034 + interface: + - name: pong0 # attention, no two VNFs should have same if names in emulator + position: 0 + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: pong/cp0 + - name: pong1 + position: 1 + type: EXTERNAL + virtual-interface: + type: VIRTIO + external-connection-point-ref: pong/cp1 + + + + diff --git a/src/emuvim/examples/default_single_dc_topology.py b/src/emuvim/examples/default_single_dc_topology.py deleted file mode 100644 index 6ae0ae2..0000000 --- a/src/emuvim/examples/default_single_dc_topology.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2015 SONATA-NFV and Paderborn University -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the SONATA-NFV, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# This work has been performed in the framework of the SONATA project, -# funded by the European Commission under Grant number 671517 through -# the Horizon 2020 and 5G-PPP programmes. The authors would like to -# acknowledge the contributions of their colleagues of the SONATA -# partner consortium (www.sonata-nfv.eu). -import logging -from mininet.log import setLogLevel -from emuvim.dcemulator.net import DCNetwork -from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint -from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint - -logging.basicConfig(level=logging.INFO) -setLogLevel('info') # set Mininet loglevel -logging.getLogger('werkzeug').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.base').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG) - - -def create_topology(): - net = DCNetwork(monitor=False, enable_learning=True) - - dc1 = net.addDatacenter("dc1") - # add OpenStack-like APIs to the emulated DC - api1 = OpenstackApiEndpoint("0.0.0.0", 6001) - api1.connect_datacenter(dc1) - api1.start() - api1.connect_dc_network(net) - # add the command line interface endpoint to the emulated DC (REST API) - rapi1 = RestApiEndpoint("0.0.0.0", 5001) - rapi1.connectDCNetwork(net) - rapi1.connectDatacenter(dc1) - rapi1.start() - - net.start() - net.CLI() - # when the user types exit in the CLI, we stop the emulator - net.stop() - - -def main(): - create_topology() - - -if __name__ == '__main__': - main() diff --git a/src/emuvim/examples/openstack_single_dc.py b/src/emuvim/examples/openstack_single_dc.py deleted file mode 100644 index 7070cda..0000000 --- a/src/emuvim/examples/openstack_single_dc.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2015 SONATA-NFV and Paderborn University -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the SONATA-NFV, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# This work has been performed in the framework of the SONATA project, -# funded by the European Commission under Grant number 671517 through -# the Horizon 2020 and 5G-PPP programmes. The authors would like to -# acknowledge the contributions of their colleagues of the SONATA -# partner consortium (www.sonata-nfv.eu). -import logging -from mininet.log import setLogLevel -from emuvim.dcemulator.net import DCNetwork -from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint -from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint - -logging.basicConfig(level=logging.INFO) -setLogLevel('info') # set Mininet loglevel -logging.getLogger('werkzeug').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.base').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG) - - -def create_topology(): - net = DCNetwork(monitor=False, enable_learning=False) - - dc1 = net.addDatacenter("dc1") - # add OpenStack-like APIs to the emulated DC - api1 = OpenstackApiEndpoint("0.0.0.0", 6001) - api1.connect_datacenter(dc1) - api1.start() - api1.connect_dc_network(net) - # add the command line interface endpoint to the emulated DC (REST API) - rapi1 = RestApiEndpoint("0.0.0.0", 5001) - rapi1.connectDCNetwork(net) - rapi1.connectDatacenter(dc1) - rapi1.start() - - net.start() - net.CLI() - # when the user types exit in the CLI, we stop the emulator - net.stop() - - -def main(): - create_topology() - - -if __name__ == '__main__': - main() diff --git a/src/emuvim/examples/osm_default_daemon_topology_2_pop.py b/src/emuvim/examples/osm_default_daemon_topology_2_pop.py deleted file mode 100644 index 164ecb4..0000000 --- a/src/emuvim/examples/osm_default_daemon_topology_2_pop.py +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright (c) 2015 SONATA-NFV and Paderborn University -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the SONATA-NFV, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# This work has been performed in the framework of the SONATA project, -# funded by the European Commission under Grant number 671517 through -# the Horizon 2020 and 5G-PPP programmes. The authors would like to -# acknowledge the contributions of their colleagues of the SONATA -# partner consortium (www.sonata-nfv.eu). -import logging -import time -import signal -from mininet.log import setLogLevel -from emuvim.dcemulator.net import DCNetwork -from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint -from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint -from mininet.link import TCLink - -logging.basicConfig(level=logging.INFO) -setLogLevel('info') # set Mininet loglevel -logging.getLogger('werkzeug').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.base').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG) -logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG) - - -class DaemonTopology(object): - """ - Topology with two datacenters: - - dc1 <-- 50ms --> dc2 - """ - - def __init__(self): - self.running = True - signal.signal(signal.SIGINT, self._stop_by_signal) - signal.signal(signal.SIGTERM, self._stop_by_signal) - # create and start topology - self.create_topology() - self.start_topology() - self.daemonize() - self.stop_topology() - - def create_topology(self): - self.net = DCNetwork(monitor=False, enable_learning=True) - self.dc1 = self.net.addDatacenter("dc1") - self.dc2 = self.net.addDatacenter("dc2") - self.net.addLink(self.dc1, self.dc2, cls=TCLink, delay="50ms") - # add OpenStack-like APIs to the emulated DC - self.api1 = OpenstackApiEndpoint("0.0.0.0", 6001) - self.api1.connect_datacenter(self.dc1) - self.api1.connect_dc_network(self.net) - self.api2 = OpenstackApiEndpoint("0.0.0.0", 6002) - self.api2.connect_datacenter(self.dc2) - self.api2.connect_dc_network(self.net) - # add the command line interface endpoint to the emulated DC (REST API) - self.rapi1 = RestApiEndpoint("0.0.0.0", 5001) - self.rapi1.connectDCNetwork(self.net) - self.rapi1.connectDatacenter(self.dc1) - self.rapi1.connectDatacenter(self.dc2) - - def start_topology(self): - self.api1.start() - self.api2.start() - self.rapi1.start() - self.net.start() - - def daemonize(self): - print("Daemonizing vim-emu. Send SIGTERM or SIGKILL to stop.") - while self.running: - time.sleep(1) - - def _stop_by_signal(self, signum, frame): - print("Received SIGNAL {}. Stopping.".format(signum)) - self.running = False - - def stop_topology(self): - self.api1.stop() - self.api2.stop() - self.rapi1.stop() - self.net.stop() - - -def main(): - DaemonTopology() - - -if __name__ == '__main__': - main() diff --git a/src/emuvim/examples/services/hackfest_1_nsd.tar.gz b/src/emuvim/examples/services/hackfest_1_nsd.tar.gz deleted file mode 100644 index ca13889..0000000 Binary files a/src/emuvim/examples/services/hackfest_1_nsd.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/services/hackfest_1_nsd/hackfest_1_nsd.yaml b/src/emuvim/examples/services/hackfest_1_nsd/hackfest_1_nsd.yaml deleted file mode 100644 index 457475f..0000000 --- a/src/emuvim/examples/services/hackfest_1_nsd/hackfest_1_nsd.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the OSM, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -nsd:nsd-catalog: - nsd: - - id: hackfest1-ns - name: hackfest1-ns - short-name: hackfest1-ns - description: Simple NS with a single VNF and a single VL - version: '1.0' - logo: osm.png - constituent-vnfd: - - vnfd-id-ref: hackfest1-vnf - member-vnf-index: '1' - vld: - - id: mgmtnet - name: mgmtnet - short-name: mgmtnet - type: ELAN - mgmt-network: 'true' - vnfd-connection-point-ref: - - vnfd-id-ref: hackfest1-vnf - member-vnf-index-ref: '1' - vnfd-connection-point-ref: vnf-cp0 - diff --git a/src/emuvim/examples/services/hackfest_1_nsd/icons/osm.png b/src/emuvim/examples/services/hackfest_1_nsd/icons/osm.png deleted file mode 100644 index 62012d2..0000000 Binary files a/src/emuvim/examples/services/hackfest_1_nsd/icons/osm.png and /dev/null differ diff --git a/src/emuvim/examples/services/hackfest_2_nsd.tar.gz b/src/emuvim/examples/services/hackfest_2_nsd.tar.gz deleted file mode 100644 index 9170de9..0000000 Binary files a/src/emuvim/examples/services/hackfest_2_nsd.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/services/hackfest_2_nsd/hackfest_2_nsd.yaml b/src/emuvim/examples/services/hackfest_2_nsd/hackfest_2_nsd.yaml deleted file mode 100755 index 868dc53..0000000 --- a/src/emuvim/examples/services/hackfest_2_nsd/hackfest_2_nsd.yaml +++ /dev/null @@ -1,61 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the OSM, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -nsd:nsd-catalog: - nsd: - - id: hackfest2-ns - name: hackfest2-ns - short-name: hackfest2-ns - description: NS with 2 VNFs connected by datanet and mgmtnet VLs - version: '1.0' - logo: osm.png - constituent-vnfd: - - vnfd-id-ref: hackfest2-vnf - member-vnf-index: '1' - - vnfd-id-ref: hackfest2-vnf - member-vnf-index: '2' - vld: - - id: mgmtnet - name: mgmtnet - short-name: mgmtnet - type: ELAN - mgmt-network: 'true' - vim-network-name: mgmt - vnfd-connection-point-ref: - - vnfd-id-ref: hackfest2-vnf - member-vnf-index-ref: '1' - vnfd-connection-point-ref: vnf-mgmt - - vnfd-id-ref: hackfest2-vnf - member-vnf-index-ref: '2' - vnfd-connection-point-ref: vnf-mgmt - - id: datanet - name: datanet - short-name: datanet - type: ELAN - vnfd-connection-point-ref: - - vnfd-id-ref: hackfest2-vnf - member-vnf-index-ref: '1' - vnfd-connection-point-ref: vnf-data - - vnfd-id-ref: hackfest2-vnf - member-vnf-index-ref: '2' - vnfd-connection-point-ref: vnf-data - diff --git a/src/emuvim/examples/services/hackfest_2_nsd/icons/osm.png b/src/emuvim/examples/services/hackfest_2_nsd/icons/osm.png deleted file mode 100644 index 62012d2..0000000 Binary files a/src/emuvim/examples/services/hackfest_2_nsd/icons/osm.png and /dev/null differ diff --git a/src/emuvim/examples/services/pingpong_ns/pingpong_nsd.yaml b/src/emuvim/examples/services/pingpong_ns/pingpong_nsd.yaml deleted file mode 100644 index 79ed457..0000000 --- a/src/emuvim/examples/services/pingpong_ns/pingpong_nsd.yaml +++ /dev/null @@ -1,98 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University and Manuel Peuster -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -nsd-catalog: - nsd: - - id: pingpong - name: pingpong - short-name: pingpong - description: Ping-pong example nentwork scenario with two VNFs. - vendor: "Paderborn University" - version: '1.1' - - # Place the logo as png in icons directory and provide the name here - # logo: - - # Specify the VNFDs that are part of this NSD - constituent-vnfd: - # The member-vnf-index needs to be unique, starting from 1 - # vnfd-id-ref is the id of the VNFD - # Multiple constituent VNFDs can be specified - - member-vnf-index: '1' - vnfd-id-ref: ping - - member-vnf-index: '2' - vnfd-id-ref: pong - - vld: - - id: mgmt_vl - description: Management VL - name: mgmt_vl - short-name: mgmt_vl - vim-network-name: default # important for emulator! - type: ELAN - vendor: "Paderborn University" - version: '1.0' - mgmt-network: 'true' - vnfd-connection-point-ref: - - member-vnf-index-ref: '1' - vnfd-connection-point-ref: ping/cp0 - vnfd-id-ref: ping - - member-vnf-index-ref: '2' - vnfd-connection-point-ref: pong/cp0 - vnfd-id-ref: pong - #vld: - # Networks for the VNFs - # - id: demo_nsd_vld0 - # name: management - # short-name: management - # type: ELAN - # mgmt-network: 'true' - # # vim-network-name: - # # provider-network: - # # overlay-type: VLAN - # # segmentation_id: - # vnfd-connection-point-ref: - # # Specify the constituent VNFs - # # member-vnf-index-ref - entry from constituent vnf - # # vnfd-id-ref - VNFD id - # # vnfd-connection-point-ref - connection point name in the VNFD - # - nsd:member-vnf-index-ref: 1 - # nsd:vnfd-id-ref: http_vnfd - # # NOTE: Validate the entry below - # nsd:vnfd-connection-point-ref: eth0 - # - id: http_nsd_vld1 - # name: http_nsd_vld1 - # short-name: http_nsd_vld1 - # type: ELAN - # # vim-network-name: - # # provider-network: - # # overlay-type: VLAN - # # segmentation_id: - # vnfd-connection-point-ref: - # # Specify the constituent VNFs - # # member-vnf-index-ref - entry from constituent vnf - # # vnfd-id-ref - VNFD id - # # vnfd-connection-point-ref - connection point name in the VNFD - # - nsd:member-vnf-index-ref: 1 - # nsd:vnfd-id-ref: http_vnfd - # # NOTE: Validate the entry below - # nsd:vnfd-connection-point-ref: eth1 diff --git a/src/emuvim/examples/services/pingpong_nsd.tar.gz b/src/emuvim/examples/services/pingpong_nsd.tar.gz deleted file mode 100644 index e5d9202..0000000 Binary files a/src/emuvim/examples/services/pingpong_nsd.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/vnfs/hackfest_1_vnfd.tar.gz b/src/emuvim/examples/vnfs/hackfest_1_vnfd.tar.gz deleted file mode 100644 index 622634e..0000000 Binary files a/src/emuvim/examples/vnfs/hackfest_1_vnfd.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/vnfs/hackfest_1_vnfd/hackfest_1_vnfd.yaml b/src/emuvim/examples/vnfs/hackfest_1_vnfd/hackfest_1_vnfd.yaml deleted file mode 100644 index 98db0dc..0000000 --- a/src/emuvim/examples/vnfs/hackfest_1_vnfd/hackfest_1_vnfd.yaml +++ /dev/null @@ -1,51 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the OSM, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -vnfd:vnfd-catalog: - vnfd: - - id: hackfest1-vnf - name: hackfest1-vnf - short-name: hackfest1-vnf - version: '1.0' - description: A simple VNF descriptor w/ one VDU - logo: osm.png - connection-point: - - name: vnf-cp0 - type: VPORT - vdu: - - id: hackfest1VM - name: hackfest1VM - image: "ubuntu:trusty" - count: '1' - vm-flavor: - vcpu-count: '1' - memory-mb: '1024' - storage-gb: '10' - interface: - - name: vdu-eth0 - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: vnf-cp0 - mgmt-interface: - cp: vnf-cp0 - diff --git a/src/emuvim/examples/vnfs/hackfest_1_vnfd/icons/osm.png b/src/emuvim/examples/vnfs/hackfest_1_vnfd/icons/osm.png deleted file mode 100644 index 62012d2..0000000 Binary files a/src/emuvim/examples/vnfs/hackfest_1_vnfd/icons/osm.png and /dev/null differ diff --git a/src/emuvim/examples/vnfs/hackfest_2_vnfd.tar.gz b/src/emuvim/examples/vnfs/hackfest_2_vnfd.tar.gz deleted file mode 100644 index c4d5037..0000000 Binary files a/src/emuvim/examples/vnfs/hackfest_2_vnfd.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/vnfs/hackfest_2_vnfd/hackfest_2_vnfd.yaml b/src/emuvim/examples/vnfs/hackfest_2_vnfd/hackfest_2_vnfd.yaml deleted file mode 100644 index fe4d08b..0000000 --- a/src/emuvim/examples/vnfs/hackfest_2_vnfd/hackfest_2_vnfd.yaml +++ /dev/null @@ -1,103 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the OSM, Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -vnfd:vnfd-catalog: - vnfd: - - id: hackfest2-vnf - name: hackfest2-vnf - short-name: hackfest2-vnf - version: '1.0' - description: A VNF consisting of 2 VDUs connected to an internal VL - logo: osm.png - connection-point: - - id: vnf-mgmt - name: vnf-mgmt - short-name: vnf-mgmt - type: VPORT - - id: vnf-data - name: vnf-data - short-name: vnf-data - type: VPORT - mgmt-interface: - cp: vnf-mgmt - internal-vld: - - id: internal - name: internal - short-name: internal - type: ELAN - internal-connection-point: - - id-ref: mgmtVM-internal - - id-ref: dataVM-internal - vdu: - - id: mgmtVM - name: mgmtVM - image: "ubuntu:trusty" - count: '1' - vm-flavor: - vcpu-count: '1' - memory-mb: '1024' - storage-gb: '10' - interface: - - name: mgmtVM-eth0 - position: '1' - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: vnf-mgmt - - name: mgmtVM-eth1 - position: '2' - type: INTERNAL - virtual-interface: - type: VIRTIO - internal-connection-point-ref: mgmtVM-internal - internal-connection-point: - - id: mgmtVM-internal - name: mgmtVM-internal - short-name: mgmtVM-internal - type: VPORT - - id: dataVM - name: dataVM - image: "ubuntu:trusty" - count: '1' - vm-flavor: - vcpu-count: '1' - memory-mb: '1024' - storage-gb: '10' - interface: - - name: dataVM-eth0 - position: '1' - type: INTERNAL - virtual-interface: - type: VIRTIO - internal-connection-point-ref: dataVM-internal - - name: dataVM-xe0 - position: '2' - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: vnf-data - internal-connection-point: - - id: dataVM-internal - name: dataVM-internal - short-name: dataVM-internal - type: VPORT - diff --git a/src/emuvim/examples/vnfs/hackfest_2_vnfd/icons/osm.png b/src/emuvim/examples/vnfs/hackfest_2_vnfd/icons/osm.png deleted file mode 100644 index 62012d2..0000000 Binary files a/src/emuvim/examples/vnfs/hackfest_2_vnfd/icons/osm.png and /dev/null differ diff --git a/src/emuvim/examples/vnfs/ping.tar.gz b/src/emuvim/examples/vnfs/ping.tar.gz deleted file mode 100644 index c19270b..0000000 Binary files a/src/emuvim/examples/vnfs/ping.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/vnfs/ping_vnf/ping_vnfd.yaml b/src/emuvim/examples/vnfs/ping_vnf/ping_vnfd.yaml deleted file mode 100644 index e114f3e..0000000 --- a/src/emuvim/examples/vnfs/ping_vnf/ping_vnfd.yaml +++ /dev/null @@ -1,77 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University and Manuel Peuster -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -vnfd-catalog: - vnfd: - - id: ping - name: ping - short-name: ping - description: "Empty example container VNF" - vendor: "Paderborn University" - version: '1.1' - - # Place the logo as png in icons directory and provide the name here - # logo: sonata.png - connection-point: - - name: ping/cp0 - type: VPORT - - name: ping/cp1 - type: VPORT - # Management interface - mgmt-interface: - cp: ping/cp0 - - # Atleast one VDU need to be specified - vdu: - # Additional VDUs can be created by copying the - # VDU descriptor below - - id: ubuntu - name: ubuntu - description: "Ubuntu Trusty default Docker container" - count: "1" - - # Flavour of the VM to be instantiated for the VDU - vm-flavor: - vcpu-count: 1 - memory-mb: 512 - storage-gb: 10 - - # Image including the full path - image: "ubuntu:trusty" - #image: cirros034 - interface: - - name: ping0 - position: 0 - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: ping/cp0 - - name: ping1 - position: 1 - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: ping/cp1 - - - - diff --git a/src/emuvim/examples/vnfs/pong.tar.gz b/src/emuvim/examples/vnfs/pong.tar.gz deleted file mode 100644 index 085c00a..0000000 Binary files a/src/emuvim/examples/vnfs/pong.tar.gz and /dev/null differ diff --git a/src/emuvim/examples/vnfs/pong_vnf/pong_vnfd.yaml b/src/emuvim/examples/vnfs/pong_vnf/pong_vnfd.yaml deleted file mode 100644 index 3e80700..0000000 --- a/src/emuvim/examples/vnfs/pong_vnf/pong_vnfd.yaml +++ /dev/null @@ -1,77 +0,0 @@ ---- -# Copyright (c) 2018 by Paderborn University and Manuel Peuster -# (manuel@peuster.de) -# ALL RIGHTS RESERVED. -# -# 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. -# -# Neither the name of the Paderborn University -# nor the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. - -vnfd-catalog: - vnfd: - - id: pong - name: pong - short-name: pong - description: Empty Container VNF - vendor: "Paderborn University" - version: '1.1' - - # Place the logo as png in icons directory and provide the name here - # logo: sonata.png - connection-point: - - name: pong/cp0 - type: VPORT - - name: pong/cp1 - type: VPORT - # Management interface - mgmt-interface: - cp: pong/cp0 - - # Atleast one VDU need to be specified - vdu: - # Additional VDUs can be created by copying the - # VDU descriptor below - - id: ubuntu - name: ubuntu - description: "Ubuntu Trusty default Docker container" - count: "1" - - # Flavour of the VM to be instantiated for the VDU - vm-flavor: - vcpu-count: 1 - memory-mb: 512 - storage-gb: 10 - - # Image including the full path - image: "ubuntu:trusty" - #image: cirros034 - interface: - - name: pong0 # attention, no two VNFs should have same if names in emulator - position: 0 - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: pong/cp0 - - name: pong1 - position: 1 - type: EXTERNAL - virtual-interface: - type: VIRTIO - external-connection-point-ref: pong/cp1 - - - -