+++ /dev/null
-src/emuvim/examples
\ No newline at end of file
--- /dev/null
+# 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()
--- /dev/null
+# 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()
--- /dev/null
+# 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()
--- /dev/null
+---
+# 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
+
--- /dev/null
+---
+# 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
+
--- /dev/null
+---
+# 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: <update, optional>
+
+ # 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: <update>
+ # # provider-network:
+ # # overlay-type: VLAN
+ # # segmentation_id: <update>
+ # 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: <update>
+ # # provider-network:
+ # # overlay-type: VLAN
+ # # segmentation_id: <update>
+ # 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
--- /dev/null
+---
+# 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
+
--- /dev/null
+---
+# 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
+
--- /dev/null
+---
+# 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
+
+
+
+
--- /dev/null
+---
+# 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
+
+
+
+
+++ /dev/null
-# 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()
+++ /dev/null
-# 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()
+++ /dev/null
-# 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()
+++ /dev/null
----
-# 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
-
+++ /dev/null
----
-# 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
-
+++ /dev/null
----
-# 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: <update, optional>
-
- # 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: <update>
- # # provider-network:
- # # overlay-type: VLAN
- # # segmentation_id: <update>
- # 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: <update>
- # # provider-network:
- # # overlay-type: VLAN
- # # segmentation_id: <update>
- # 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
+++ /dev/null
----
-# 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
-
+++ /dev/null
----
-# 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
-
+++ /dev/null
----
-# 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
-
-
-
-
+++ /dev/null
----
-# 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
-
-
-
-