Examples from OSM Hackfests: Difference between revisions
From OSM Public Wiki
Garciadeblas (talk | contribs) |
Candelpreste (talk | contribs) No edit summary |
||
| Line 18: | Line 18: | ||
===VNF diagram=== | ===VNF diagram=== | ||
[[File:Hackfest_simple_vnf.JPG|400px]] | [[File:Hackfest_simple_vnf.JPG|400px]] | ||
===VNF descriptor=== | ===VNF descriptor=== | ||
vnfd:vnfd-catalog: | vnfd:vnfd-catalog: | ||
vnfd: | vnfd: | ||
| Line 49: | Line 47: | ||
mgmt-interface: | mgmt-interface: | ||
cp: vnf-cp0 | cp: vnf-cp0 | ||
===NS diagram=== | ===NS diagram=== | ||
[[File: | [[File:Hackfest simple ns.jpg|400px]] | ||
===NS descriptor=== | ===NS descriptor=== | ||
nsd:nsd-catalog: | nsd:nsd-catalog: | ||
| Line 77: | Line 71: | ||
member-vnf-index-ref: '1' | member-vnf-index-ref: '1' | ||
vnfd-connection-point-ref: vnf-cp0 | vnfd-connection-point-ref: vnf-cp0 | ||
===Testing with OSM client=== | ===Testing with OSM client=== | ||
*Onboard VNF packages | *Onboard VNF packages | ||
| Line 97: | Line 90: | ||
*Check VNF instances to see the instance and get the mgmt IP address of the VNF | *Check VNF instances to see the instance and get the mgmt IP address of the VNF | ||
osm vnf-list | osm vnf-list | ||
osm vnf-show | osm vnf-show <VNF ID> | ||
*Connect to the VNF | *Connect to the VNF | ||
ssh -i <priv_key> ubuntu@<IP> | ssh -i <priv_key> ubuntu@<IP> | ||
===Testing with OSM UI=== | ===Testing with OSM UI=== | ||
* Onboard VNF package | * Onboard VNF package | ||
Go to VNF packages | |||
Drag and drop the VNF package to the ... | |||
* Onboard NS package | * Onboard NS package | ||
Drag and drop the NS package to the ... | |||
* Instantiate NS | * Instantiate NS | ||
Go to NS packages | |||
In hackfest1-ns, click in “Actions: Instantiate NS” | |||
Complete the form: | |||
-Add a name to the NS instance | |||
-Select the Datacenter where the NS will be deployed | |||
-Specify in the config section a default VIM network name to map “mgmtnet”: | |||
-Paste your public SSH key to get access to the VNF (VMs need to have cloud-init enabled, in this case the hackfest1 example has cloud-init) | |||
*Connect to the VNF: | *Connect to the VNF: | ||
ssh -i <priv_key> ubuntu@<IP> | ssh -i <priv_key> ubuntu@<IP> | ||
| Line 126: | Line 118: | ||
===VNF diagram=== | ===VNF diagram=== | ||
[[File:Hackfest multivdu vnf. | [[File:Hackfest multivdu vnf.jpg|500px]] | ||
===VNF descriptor=== | ===VNF descriptor=== | ||
vnfd:vnfd-catalog: | vnfd:vnfd-catalog: | ||
| Line 209: | Line 200: | ||
short-name: dataVM-internal | short-name: dataVM-internal | ||
type: VPORT | type: VPORT | ||
===NS diagram=== | ===NS diagram=== | ||
[[File:Hackfest multivdu ns. | [[File:Hackfest multivdu ns.jpg|500px]] | ||
===NS descriptor=== | ===NS descriptor=== | ||
nsd:nsd-catalog: | nsd:nsd-catalog: | ||
| Line 252: | Line 241: | ||
member-vnf-index-ref: '2' | member-vnf-index-ref: '2' | ||
vnfd-connection-point-ref: vnf-data | vnfd-connection-point-ref: vnf-data | ||
===Testing with OSM client=== | |||
*Onboard VNF packages | |||
osm vnfd-create hackfest2_vnfd.tar.gz | |||
osm vnfd-list | |||
osm vnfd-show hackfest2-vnf | |||
*Onboard NS packages | |||
osm nsd-create hackfest2_nsd.tar.gz | |||
osm nsd-list | |||
osm nsd-show hackfest2-ns | |||
*Instantiate | |||
osm ns-create --ns_name hf2 --nsd_name hackfest2-ns \ | |||
--vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> | |||
*Check NS status | |||
osm ns-list | |||
osm ns-show hf2 | |||
*Check VNF instances to see the instance and get the mgmt IP address of the VNF | |||
osm vnf-list | |||
osm vnf-show <VNF ID> | |||
*Connect to the VNF | |||
ssh osm@<IP> (pwd:osm4u) | |||
===Testing with OSM UI=== | ===Testing with OSM UI=== | ||
* Onboard VNF package | *Onboard VNF package | ||
Go to VNF packages | |||
Drag and drop the VNF package to the ... | |||
* Onboard NS package | *Onboard NS package | ||
Drag and drop the NS package to the ... | |||
* Instantiate NS | *Instantiate NS | ||
Go to NS packages | |||
In hackfest2-ns, click in “Actions: Instantiate NS” | |||
-Complete the form | |||
-Add a name to the NS instance | |||
-Select the Datacenter where the NS will be deployed | |||
-Specify in the config section a default VIM network name to map “MGMTNET”: | |||
-Click the info button to see the mgmt IP address | |||
*Connect to each VNF: | *Connect to each VNF: | ||
ssh osm@ < | ssh osm@<IP> (pwd:osm4u) | ||
== VNF with Day-0 configuration == | == VNF with Day-0 configuration == | ||
| Line 276: | Line 282: | ||
* '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_3_vnfd.tar.gz hackfest3-vnf] | * '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_3_vnfd.tar.gz hackfest3-vnf] | ||
* '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_3_nsd.tar.gz hackfest3-ns] | * '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_3_nsd.tar.gz hackfest3-ns] | ||
* '''Image hackfest3-mgmt:''' [https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/hackfest3-mgmt.qcow2] | * '''Image hackfest3-mgmt:''' [https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/hackfest3-mgmt.qcow2 hackfest3-mgmt] | ||
* '''Reference material:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180624%20OSM%20Hackfest%20-%20Session%204%20-%20Adding%20day-0%20configuration%20to%20VNFs.pdf Adding day-0 configuration to VNFs] | * '''Reference material:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180624%20OSM%20Hackfest%20-%20Session%204%20-%20Adding%20day-0%20configuration%20to%20VNFs.pdf Adding day-0 configuration to VNFs] | ||
===VNF diagram=== | ===VNF diagram=== | ||
[[File:Hackfest cloudinit | [[File:Hackfest cloudinit vnf.jpg|500px]] | ||
===VNF descriptor=== | ===VNF descriptor=== | ||
vnfd:vnfd-catalog: | vnfd:vnfd-catalog: | ||
| Line 365: | Line 370: | ||
type: VPORT | type: VPORT | ||
===NS diagram=== | ===NS diagram=== | ||
[[File:Hackfest cloudinit ns. | [[File:Hackfest cloudinit ns.jpg|500px]] | ||
===NS descriptor=== | ===NS descriptor=== | ||
nsd:nsd-catalog: | nsd:nsd-catalog: | ||
| Line 406: | Line 410: | ||
member-vnf-index-ref: '2' | member-vnf-index-ref: '2' | ||
vnfd-connection-point-ref: vnf-data | vnfd-connection-point-ref: vnf-data | ||
===Testing with OSM client=== | |||
*Onboard VNF packages | |||
osm vnfd-create hackfest3_vnfd.tar.gz | |||
osm vnfd-list | |||
osm vnfd-show hackfest3-vnf | |||
*Onboard NS packages | |||
osm nsd-create hackfest3_nsd.tar.gz | |||
osm nsd-list | |||
osm nsd-show hackfest3-ns | |||
*Instantiate | |||
osm ns-create --ns_name hf3 --nsd_name hackfest3-ns \ | |||
--vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> | |||
*Check NS status | |||
osm ns-list | |||
osm ns-show hf3 | |||
*Check VNF instances to see the instance and get the mgmt IP address of the VNF | |||
osm vnf-list | |||
osm vnf-show <VNF ID> | |||
*Connect to the VNF | |||
ssh osm@<IP> (pwd:osm4u) #The password to the default user was injected via cloud-init | |||
Check that Cloud init worked: | |||
sudo ls /root/helloworld.txt | |||
sudo cat /root/helloworld.txt | |||
===Testing with OSM UI=== | ===Testing with OSM UI=== | ||
** | *Onboard VNF package | ||
Go to VNF packages | |||
Drag and drop the VNF package to the ... | |||
*Onboard NS package | |||
Drag and drop the NS package to the ... | |||
*Instantiate NS | |||
Go to NS packages | |||
In hackfest3-ns, click in “Actions: Instantiate NS” | |||
-Complete the form | |||
-Add a name to the NS instance | |||
-Select the Datacenter where the NS will be deployed | |||
-Specify in the config section a default VIM network name to map “MGMTNET”: | |||
-Click the info button to see the mgmt IP address | |||
*Connect to the VNF | |||
ssh osm@<IP> (pwd:osm4u) #The password to the default user was injected via cloud-init | |||
Check that Cloud init worked: | |||
sudo ls /root/helloworld.txt | |||
sudo cat /root/helloworld.txt | |||
== VNF with EPA requirements == | == VNF with EPA requirements == | ||
* '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_4_vnfd.tar.gz hackfest4-vnf] | * '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_4_vnfd.tar.gz hackfest4-vnf] | ||
* '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_4_nsd.tar.gz hackfest4-ns] | * '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_4_nsd.tar.gz hackfest4-ns] | ||
* '''Image | * '''Image :''' [https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/hackfest-pktgen.qcow2 hackfest-pktgen] | ||
* '''Reference material:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180627%20OSM%20Hackfest%20-%20Session%205%20-%20Modeling%20EPA%20capabilities%20in%20VNF.pdf Modeling EPA capabilities in your VNF descriptor] | * '''Reference material:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180627%20OSM%20Hackfest%20-%20Session%205%20-%20Modeling%20EPA%20capabilities%20in%20VNF.pdf Modeling EPA capabilities in your VNF descriptor] | ||
===VNF diagram=== | ===VNF diagram=== | ||
[[File:Hackfest epasriov vnf. | [[File:Hackfest epasriov vnf.jpg|500px]] | ||
===VNF descriptor=== | ===VNF descriptor=== | ||
vnfd:vnfd-catalog: | vnfd:vnfd-catalog: | ||
| Line 528: | Line 562: | ||
short-name: dataVM-internal | short-name: dataVM-internal | ||
type: VPORT | type: VPORT | ||
===NS diagram=== | ===NS diagram=== | ||
[[File:Hackfest epasriov ns. | [[File:Hackfest epasriov ns.jpg|500px]] | ||
===NS descriptor=== | ===NS descriptor=== | ||
nsd:nsd-catalog: | nsd:nsd-catalog: | ||
| Line 571: | Line 603: | ||
member-vnf-index-ref: '2' | member-vnf-index-ref: '2' | ||
vnfd-connection-point-ref: vnf-data | vnfd-connection-point-ref: vnf-data | ||
===Testing with OSM client=== | |||
*Onboard VNF packages | |||
osm vnfd-create hackfest4_vnfd.tar.gz | |||
osm vnfd-list | |||
osm vnfd-show hackfest4-vnf | |||
*Onboard NS packages | |||
osm nsd-create hackfest4_nsd.tar.gz | |||
osm nsd-list | |||
osm nsd-show hackfest4-ns | |||
*Instantiate | |||
osm ns-create --ns_name hf4 --nsd_name hackfest4-ns \ | |||
--vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> | |||
*Check NS status | |||
osm ns-list | |||
osm ns-show hf4 | |||
*Check VNF instances to see the instance and get the mgmt IP address of the VNF | |||
osm vnf-list | |||
osm vnf-show <VNF ID> | |||
*Connect to the VNF (Do the same in both VNFs) | |||
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init | |||
Check that EPA is working: | |||
ssh -i test4.pem ubuntu<IP_dataVM> | |||
Run pktgen | |||
===Testing with OSM UI=== | |||
*Onboard VNF package | |||
Go to VNF packages | |||
Drag and drop the VNF package to the ... | |||
*Onboard NS package | |||
Drag and drop the NS package to the ... | |||
*Instantiate NS | |||
Go to NS packages | |||
In hackfest4-ns, click in “Actions: Instantiate NS” | |||
-Complete the form | |||
-Add a name to the NS instance | |||
-Select the Datacenter where the NS will be deployed | |||
-Specify in the config section a default VIM network name to map “MGMTNET”: | |||
-Click the info button to see the mgmt IP address | |||
*Connect to the VNF (Do the same in both VNFs) | |||
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init | |||
Check that EPA is working: | |||
ssh -i test4.pem ubuntu<IP_dataVM> | |||
Run pktgen | |||
== VNF with Day-1/Day-2 configuration (adding a charm) == | == VNF with Day-1/Day-2 configuration (adding a charm) == | ||
| Line 596: | Line 652: | ||
* '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_simplecharm_vnf.tar.gz hackfest_simplecharm_vnf] | * '''VNF package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_simplecharm_vnf.tar.gz hackfest_simplecharm_vnf] | ||
* '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_simlecharm_ns.tar.gz hackfest_simplecharm_ns] | * '''NS package:''' [https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/packages/hackfest_simlecharm_ns.tar.gz hackfest_simplecharm_ns] | ||
* '''Image | * '''Image :''' [https://osm-download.etsi.org/ftp/osm-3.0-three/1st-hackfest/images/hackfest3-mgmt.qcow2 hackfest3-mgmt] | ||
* '''Reference material:''': | * '''Reference material:''': | ||
**[https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626%20OSM%20Hackfest%20-%20VNF%20and%20NS%20package%20generation%20from%20command%20line.pdf How to generate VNF package from command line] | **[https://osm-download.etsi.org/ftp/osm-4.0-four/3rd-hackfest/presentations/20180626%20OSM%20Hackfest%20-%20VNF%20and%20NS%20package%20generation%20from%20command%20line.pdf How to generate VNF package from command line] | ||
| Line 603: | Line 659: | ||
===VNF diagram=== | ===VNF diagram=== | ||
[[File:Hackfest simplecharm vnf. | [[File:Hackfest simplecharm vnf.jpg|500px]] | ||
===VNF descriptor=== | ===VNF descriptor=== | ||
vnfd:vnfd-catalog: | vnfd:vnfd-catalog: | ||
| Line 711: | Line 766: | ||
data-type: STRING | data-type: STRING | ||
default-value: '/home/ubuntu/touched' | default-value: '/home/ubuntu/touched' | ||
===NS diagram=== | ===NS diagram=== | ||
[[File:Hackfest simplecharm ns. | [[File:Hackfest simplecharm ns.jpg|500px]] | ||
===NS descriptor=== | ===NS descriptor=== | ||
nsd:nsd-catalog: | nsd:nsd-catalog: | ||
| Line 755: | Line 808: | ||
vnfd-connection-point-ref: vnf-data | vnfd-connection-point-ref: vnf-data | ||
===Testing with OSM client=== | |||
*Onboard VNF packages | |||
osm vnfd-create hackfest3_simplecharm_vnf.tar.gz | |||
osm vnfd-list | |||
osm vnfd-show hackfest3charmed-vnf | |||
*Onboard NS packages | |||
osm nsd-create hackfest_simplecharm_ns.tar.gz | |||
osm nsd-list | |||
osm nsd-show hackfest3charmed-ns | |||
*Instantiate | |||
osm ns-create --ns_name hackfest3charmed --nsd_name hackfest3charmed-ns \ | |||
--vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> | |||
*Check NS status | |||
osm ns-list | |||
osm ns-show hackfest3charmed | |||
*Check VNF instances to see the instance and get the mgmt IP address of the VNF | |||
osm vnf-list | |||
osm vnf-show <VNF ID> | |||
*Connect to the VNF (Do the same in both VNFs) | |||
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init | |||
Check that file /home/ubuntu/first-touch exists (this file is created by the charm): | |||
ls /home/ubuntu/first-touch | |||
OSM ns-action | |||
osm ns-action hackfest3charmed --vnf_name 1 --action_name touch --params '{filename: /home/ubuntu/mytouch1}' (Returns an operation ID) | |||
osm ns-op-list hackfest3charmed | |||
osm ns-op-show OP_ID | |||
-Check that the file were created from the actions | |||
ssh ubuntu@<MGMT_IP> | |||
ls /home/ubuntu/mytouch1 | |||
===Testing with OSM UI=== | ===Testing with OSM UI=== | ||
** | *Onboard VNF package | ||
Go to VNF packages | |||
Drag and drop the VNF package to the ... | |||
*Onboard NS package | |||
Drag and drop the NS package to the ... | |||
*Instantiate NS | |||
Go to NS packages | |||
In hackfest3-simplecharm-ns, click in “Actions: Instantiate NS” | |||
-Complete the form | |||
-Add a name to the NS instance | |||
-Select the Datacenter where the NS will be deployed | |||
-Specify in the config section a default VIM network name to map “MGMTNET”: | |||
-Click the info button to see the mgmt IP address | |||
*Connect to the VNF (Do the same in both VNFs) | |||
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init | |||
Check that file /home/ubuntu/first-touch exists (this file is created by the charm): | |||
ls /home/ubuntu/first-touch | |||
OSM ns-action | |||
osm ns-action hackfest3charmed --vnf_name 1 --action_name touch --params '{filename: /home/ubuntu/mytouch1}' (Returns an operation ID) | |||
osm ns-op-list hackfest3charmed | |||
osm ns-op-show OP_ID | |||
-Check that the file were created from the actions | |||
ssh ubuntu@<MGMT_IP> | |||
ls /home/ubuntu/mytouch1 | |||
Revision as of 06:08, 23 July 2018
Examples from the 3rd OSM Hackfest
Work material
Examples
Basic VNF and NS
- VNF package: hackfest1-vnf
- NS package: hackfest1-ns
- Image: ubuntu1604
- Reference material: Presentation: creating a basic VNF and NS
VNF diagram
VNF descriptor
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: ubuntu1604
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
NS diagram
NS descriptor
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
Testing with OSM client
- Onboard VNF packages
osm vnfd-create hackfest1_vnfd.tar.gz osm vnfd-list osm vnfd-show hackfest1-vnf
- Onboard NS packages
osm nsd-create hackfest1_nsd.tar.gz osm nsd-list osm nsd-show hackfest1-ns
- Instantiate
osm ns-create --ns_name hf1 --nsd_name hackfest1-ns \
--vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID> \
--ssh_keys <KEY1_PUBKEY_FILE> \
--config '{vld: [ {name: mgmtnet, vim-network-name: <VIM_MGMT_NAME>} ] }'
- Check NS status
osm ns-list osm ns-show hf1
- Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list osm vnf-show <VNF ID>
- Connect to the VNF
ssh -i <priv_key> ubuntu@<IP>
Testing with OSM UI
- Onboard VNF package
Go to VNF packages Drag and drop the VNF package to the ...
- Onboard NS package
Drag and drop the NS package to the ...
- Instantiate NS
Go to NS packages
In hackfest1-ns, click in “Actions: Instantiate NS”
Complete the form:
-Add a name to the NS instance
-Select the Datacenter where the NS will be deployed
-Specify in the config section a default VIM network name to map “mgmtnet”:
-Paste your public SSH key to get access to the VNF (VMs need to have cloud-init enabled, in this case the hackfest1 example has cloud-init)
- Connect to the VNF:
ssh -i <priv_key> ubuntu@<IP>
Multi-VDU VNF
- VNF package: hackfest2-vnf
- NS package: hackfest2-ns
- Image: ubuntu1604
- Reference material: Presentation: Modeling multi-VDU VNF
VNF diagram
VNF descriptor
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: US1604
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: US1604
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
NS diagram
NS descriptor
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
Testing with OSM client
- Onboard VNF packages
osm vnfd-create hackfest2_vnfd.tar.gz osm vnfd-list osm vnfd-show hackfest2-vnf
- Onboard NS packages
osm nsd-create hackfest2_nsd.tar.gz osm nsd-list osm nsd-show hackfest2-ns
- Instantiate
osm ns-create --ns_name hf2 --nsd_name hackfest2-ns \ --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID>
- Check NS status
osm ns-list osm ns-show hf2
- Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list osm vnf-show <VNF ID>
- Connect to the VNF
ssh osm@<IP> (pwd:osm4u)
Testing with OSM UI
- Onboard VNF package
Go to VNF packages Drag and drop the VNF package to the ...
- Onboard NS package
Drag and drop the NS package to the ...
- Instantiate NS
Go to NS packages
In hackfest2-ns, click in “Actions: Instantiate NS”
-Complete the form
-Add a name to the NS instance
-Select the Datacenter where the NS will be deployed
-Specify in the config section a default VIM network name to map “MGMTNET”:
-Click the info button to see the mgmt IP address
- Connect to each VNF:
ssh osm@<IP> (pwd:osm4u)
VNF with Day-0 configuration
- VNF package: hackfest3-vnf
- NS package: hackfest3-ns
- Image hackfest3-mgmt: hackfest3-mgmt
- Reference material: Adding day-0 configuration to VNFs
VNF diagram
VNF descriptor
vnfd:vnfd-catalog:
vnfd:
- id: hackfest3-vnf
name: hackfest3-vnf
short-name: hackfest3-vnf
version: '1.0'
description: A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with cloud-init
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: hackfest3-mgmt
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
cloud-init-file: cloud-config.txt
- id: dataVM
name: dataVM
image: hackfest3-mgmt
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
NS diagram
NS descriptor
nsd:nsd-catalog:
nsd:
- id: hackfest3-ns
name: hackfest3-ns
short-name: hackfest3-ns
description: NS with 2 VNFs hackfest3-vnf connected by datanet and mgmtnet VLs
version: '1.0'
logo: osm.png
constituent-vnfd:
- vnfd-id-ref: hackfest3-vnf
member-vnf-index: '1'
- vnfd-id-ref: hackfest3-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: hackfest3-vnf
member-vnf-index-ref: '1'
vnfd-connection-point-ref: vnf-mgmt
- vnfd-id-ref: hackfest3-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: hackfest3-vnf
member-vnf-index-ref: '1'
vnfd-connection-point-ref: vnf-data
- vnfd-id-ref: hackfest3-vnf
member-vnf-index-ref: '2'
vnfd-connection-point-ref: vnf-data
Testing with OSM client
- Onboard VNF packages
osm vnfd-create hackfest3_vnfd.tar.gz osm vnfd-list osm vnfd-show hackfest3-vnf
- Onboard NS packages
osm nsd-create hackfest3_nsd.tar.gz osm nsd-list osm nsd-show hackfest3-ns
- Instantiate
osm ns-create --ns_name hf3 --nsd_name hackfest3-ns \ --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID>
- Check NS status
osm ns-list osm ns-show hf3
- Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list osm vnf-show <VNF ID>
- Connect to the VNF
ssh osm@<IP> (pwd:osm4u) #The password to the default user was injected via cloud-init
Check that Cloud init worked:
sudo ls /root/helloworld.txt
sudo cat /root/helloworld.txt
Testing with OSM UI
- Onboard VNF package
Go to VNF packages Drag and drop the VNF package to the ...
- Onboard NS package
Drag and drop the NS package to the ...
- Instantiate NS
Go to NS packages
In hackfest3-ns, click in “Actions: Instantiate NS”
-Complete the form
-Add a name to the NS instance
-Select the Datacenter where the NS will be deployed
-Specify in the config section a default VIM network name to map “MGMTNET”:
-Click the info button to see the mgmt IP address
- Connect to the VNF
ssh osm@<IP> (pwd:osm4u) #The password to the default user was injected via cloud-init
Check that Cloud init worked:
sudo ls /root/helloworld.txt
sudo cat /root/helloworld.txt
VNF with EPA requirements
- VNF package: hackfest4-vnf
- NS package: hackfest4-ns
- Image : hackfest-pktgen
- Reference material: Modeling EPA capabilities in your VNF descriptor
VNF diagram
VNF descriptor
vnfd:vnfd-catalog:
vnfd:
- id: hackfest4-vnf
name: hackfest4-vnf
short-name: hackfest4-vnf
version: '1.0'
description: A VNF consisting of 2 VDUs with EPA capabilities connected to an internal VL, mgmtVM VDU with cloud-init
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: hackfest3-mgmt
count: '1'
vm-flavor:
vcpu-count: '1'
memory-mb: '1024'
storage-gb: '10'
guest-epa:
cpu-pinning-policy: DEDICATED
cpu-thread-pinning-policy: PREFER
mempage-size: LARGE
numa-node-policy:
mem-policy: STRICT
node-cnt: '1'
node:
- id: '1'
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
cloud-init-file: cloud-config.txt
- id: dataVM
name: dataVM
image: hackfest-pktgen
count: '1'
vm-flavor:
vcpu-count: '8'
memory-mb: '4096'
storage-gb: '10'
guest-epa:
cpu-pinning-policy: DEDICATED
cpu-thread-pinning-policy: PREFER
mempage-size: LARGE
numa-node-policy:
mem-policy: STRICT
node-cnt: '1'
node:
- id: '1'
interface:
- name: eth0
position: '1'
type: INTERNAL
virtual-interface:
type: VIRTIO
internal-connection-point-ref: dataVM-internal
- name: xe0
position: '2'
type: EXTERNAL
virtual-interface:
type: SR-IOV
external-connection-point-ref: vnf-data
internal-connection-point:
- id: dataVM-internal
name: dataVM-internal
short-name: dataVM-internal
type: VPORT
NS diagram
NS descriptor
nsd:nsd-catalog:
nsd:
- id: hackfest4-ns
name: hackfest4-ns
short-name: hackfest4-ns
description: NS with 2 VNFs hackfest4-vnf connected by datanet and mgmtnet VLs
version: '1.0'
logo: osm.png
constituent-vnfd:
- vnfd-id-ref: hackfest4-vnf
member-vnf-index: '1'
- vnfd-id-ref: hackfest4-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: hackfest4-vnf
member-vnf-index-ref: '1'
vnfd-connection-point-ref: vnf-mgmt
- vnfd-id-ref: hackfest4-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: hackfest4-vnf
member-vnf-index-ref: '1'
vnfd-connection-point-ref: vnf-data
- vnfd-id-ref: hackfest4-vnf
member-vnf-index-ref: '2'
vnfd-connection-point-ref: vnf-data
Testing with OSM client
- Onboard VNF packages
osm vnfd-create hackfest4_vnfd.tar.gz osm vnfd-list osm vnfd-show hackfest4-vnf
- Onboard NS packages
osm nsd-create hackfest4_nsd.tar.gz osm nsd-list osm nsd-show hackfest4-ns
- Instantiate
osm ns-create --ns_name hf4 --nsd_name hackfest4-ns \ --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID>
- Check NS status
osm ns-list osm ns-show hf4
- Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list osm vnf-show <VNF ID>
- Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init
Check that EPA is working:
ssh -i test4.pem ubuntu<IP_dataVM>
Run pktgen
Testing with OSM UI
- Onboard VNF package
Go to VNF packages Drag and drop the VNF package to the ...
- Onboard NS package
Drag and drop the NS package to the ...
- Instantiate NS
Go to NS packages
In hackfest4-ns, click in “Actions: Instantiate NS”
-Complete the form
-Add a name to the NS instance
-Select the Datacenter where the NS will be deployed
-Specify in the config section a default VIM network name to map “MGMTNET”:
-Click the info button to see the mgmt IP address
- Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init
Check that EPA is working:
ssh -i test4.pem ubuntu<IP_dataVM>
Run pktgen
VNF with Day-1/Day-2 configuration (adding a charm)
- VNF package: hackfest_simplecharm_vnf
- NS package: hackfest_simplecharm_ns
- Image : hackfest3-mgmt
- Reference material::
VNF diagram
VNF descriptor
vnfd:vnfd-catalog:
vnfd:
- id: hackfest-simplecharm-vnf
name: hackfest-simplecharm-vnf
short-name: hackfest-simplecharm-vnf
version: '1.0'
description: A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with cloud-init
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: hackfest3-mgmt
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
cloud-init-file: cloud-config.txt
- id: dataVM
name: dataVM
image: hackfest3-mgmt
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
vnf-configuration:
juju:
charm: simple
initial-config-primitive:
- seq: '1'
name: config
parameter:
- name: ssh-hostname
value: <rw_mgmt_ip>
- name: ssh-username
value: ubuntu
- name: ssh-password
value: osm4u
- seq: '2'
name: touch
parameter:
- name: filename
value: '/home/ubuntu/first-touch'
config-primitive:
- name: touch
parameter:
- name: filename
data-type: STRING
default-value: '/home/ubuntu/touched'
NS diagram
NS descriptor
nsd:nsd-catalog:
nsd:
- id: hackfest-simplecharm-ns
name: hackfest-simplecharm-ns
short-name: hackfest-simplecharm-ns
description: NS with 2 VNFs hackfest-simplecharm-vnf connected by datanet and mgmtnet VLs
version: '1.0'
logo: osm.png
constituent-vnfd:
- vnfd-id-ref: hackfest-simplecharm-vnf
member-vnf-index: '1'
- vnfd-id-ref: hackfest-simplecharm-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: hackfest-simplecharm-vnf
member-vnf-index-ref: '1'
vnfd-connection-point-ref: vnf-mgmt
- vnfd-id-ref: hackfest-simplecharm-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: hackfest-simplecharm-vnf
member-vnf-index-ref: '1'
vnfd-connection-point-ref: vnf-data
- vnfd-id-ref: hackfest-simplecharm-vnf
member-vnf-index-ref: '2'
vnfd-connection-point-ref: vnf-data
Testing with OSM client
- Onboard VNF packages
osm vnfd-create hackfest3_simplecharm_vnf.tar.gz osm vnfd-list osm vnfd-show hackfest3charmed-vnf
- Onboard NS packages
osm nsd-create hackfest_simplecharm_ns.tar.gz osm nsd-list osm nsd-show hackfest3charmed-ns
- Instantiate
osm ns-create --ns_name hackfest3charmed --nsd_name hackfest3charmed-ns \ --vim_account <VIM_ACCOUNT_NAME>|<VIM_ACCOUNT_ID>
- Check NS status
osm ns-list osm ns-show hackfest3charmed
- Check VNF instances to see the instance and get the mgmt IP address of the VNF
osm vnf-list osm vnf-show <VNF ID>
- Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init
Check that file /home/ubuntu/first-touch exists (this file is created by the charm):
ls /home/ubuntu/first-touch
OSM ns-action
osm ns-action hackfest3charmed --vnf_name 1 --action_name touch --params '{filename: /home/ubuntu/mytouch1}' (Returns an operation ID)
osm ns-op-list hackfest3charmed
osm ns-op-show OP_ID
-Check that the file were created from the actions
ssh ubuntu@<MGMT_IP>
ls /home/ubuntu/mytouch1
Testing with OSM UI
- Onboard VNF package
Go to VNF packages Drag and drop the VNF package to the ...
- Onboard NS package
Drag and drop the NS package to the ...
- Instantiate NS
Go to NS packages
In hackfest3-simplecharm-ns, click in “Actions: Instantiate NS”
-Complete the form
-Add a name to the NS instance
-Select the Datacenter where the NS will be deployed
-Specify in the config section a default VIM network name to map “MGMTNET”:
-Click the info button to see the mgmt IP address
- Connect to the VNF (Do the same in both VNFs)
ssh ubuntu@<MGMT_IP> (pwd:osm4u) #The password to the default user was injected via cloud-init
Check that file /home/ubuntu/first-touch exists (this file is created by the charm):
ls /home/ubuntu/first-touch
OSM ns-action
osm ns-action hackfest3charmed --vnf_name 1 --action_name touch --params '{filename: /home/ubuntu/mytouch1}' (Returns an operation ID)
osm ns-op-list hackfest3charmed
osm ns-op-show OP_ID
-Check that the file were created from the actions
ssh ubuntu@<MGMT_IP>
ls /home/ubuntu/mytouch1