diff --git a/epa_2vm_sriov_ns/epa_2vm_sriov_nsd.yaml b/epa_2vm_sriov_ns/epa_2vm_sriov_nsd.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..57ae239725b33b9ab46ce11bed72c2f69a119d93
--- /dev/null
+++ b/epa_2vm_sriov_ns/epa_2vm_sriov_nsd.yaml
@@ -0,0 +1,38 @@
+nsd:
+  nsd:
+  - description: NS with 2 VNFs epa_2vm_sriov-vnf connected by datanet and mgmtnet
+      VLs
+    df:
+    - id: default-df
+      vnf-profile:
+      - id: '1'
+        virtual-link-connectivity:
+        - constituent-cpd-id:
+          - constituent-base-element-id: '1'
+            constituent-cpd-id: vnf-mgmt-ext
+          virtual-link-profile-id: mgmtnet
+        - constituent-cpd-id:
+          - constituent-base-element-id: '1'
+            constituent-cpd-id: vnf-data-ext
+          virtual-link-profile-id: datanet
+        vnfd-id: epa_2vm_sriov-vnf
+      - id: '2'
+        virtual-link-connectivity:
+        - constituent-cpd-id:
+          - constituent-base-element-id: '2'
+            constituent-cpd-id: vnf-mgmt-ext
+          virtual-link-profile-id: mgmtnet
+        - constituent-cpd-id:
+          - constituent-base-element-id: '2'
+            constituent-cpd-id: vnf-data-ext
+          virtual-link-profile-id: datanet
+        vnfd-id: epa_2vm_sriov-vnf
+    id: epa_2vm_sriov-ns
+    name: epa_2vm_sriov-ns
+    version: '1.0'
+    virtual-link-desc:
+    - id: mgmtnet
+      mgmt-network: true
+    - id: datanet
+    vnfd-id:
+    - epa_2vm_sriov-vnf
diff --git a/epa_2vm_sriov_ns/icons/osm.png b/epa_2vm_sriov_ns/icons/osm.png
new file mode 100644
index 0000000000000000000000000000000000000000..62012d2a2b491bdcd536d62c3c3c863c0d8c1b33
Binary files /dev/null and b/epa_2vm_sriov_ns/icons/osm.png differ
diff --git a/epa_2vm_sriov_vnf/cloud_init/cloud-config-data.txt b/epa_2vm_sriov_vnf/cloud_init/cloud-config-data.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cf1e7a5ebe6047de6c5ee5dbbdc9d5d2e46f36ed
--- /dev/null
+++ b/epa_2vm_sriov_vnf/cloud_init/cloud-config-data.txt
@@ -0,0 +1,6 @@
+#cloud-config
+password: osm4u
+chpasswd: { expire: False }
+ssh_pwauth: True
+ssh_authorized_keys:
+  - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC49EBX7pW4ogqGMqT4y/SBDGXibz+XSgH8q5IEgt4BHlsHM2tWTtWFs/ULQ9Rq5BF781h96cludcLL9LnFAH8LVJCfiqfVnXEvwVNsVZqUVcTRyOnUMWGiJMptOu6JQkwVkPAnk0bMRjerWUhySCduyAQOhVE7DBcE6VjCu3q8cqAURzAcbBk8AtCPSvKCMhE45+9h+0V9joPV+MpsgHdqsoASiHIXTGhybcH5cS25epPpYuyTatQTBzz5WGiwUz//FsoI4KHZ+bcXXq4b+HkecplPgUtu+tVvRre/JoYmr6YrqCk9Qqf7bpEC6i4rjU7BzMWTuys7rrY8nAB4ytAN
diff --git a/epa_2vm_sriov_vnf/cloud_init/cloud-config-mgmt.txt b/epa_2vm_sriov_vnf/cloud_init/cloud-config-mgmt.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ea35add978bab82daa29a5bac425d7debe1d4410
--- /dev/null
+++ b/epa_2vm_sriov_vnf/cloud_init/cloud-config-mgmt.txt
@@ -0,0 +1,41 @@
+#cloud-config
+password: osm4u
+chpasswd: { expire: False }
+ssh_pwauth: True
+write_files:
+-   content: |
+        -----BEGIN RSA PRIVATE KEY-----
+        MIIEowIBAAKCAQEAuPRAV+6VuKIKhjKk+Mv0gQxl4m8/l0oB/KuSBILeAR5bBzNr
+        Vk7VhbP1C0PUauQRe/NYfenJbnXCy/S5xQB/C1SQn4qn1Z1xL8FTbFWalFXE0cjp
+        1DFhoiTKbTruiUJMFZDwJ5NGzEY3q1lIckgnbsgEDoVROwwXBOlYwrt6vHKgFEcw
+        HGwZPALQj0rygjIROOfvYftFfY6D1fjKbIB3arKAEohyF0xocm3B+XEtuXqT6WLs
+        k2rUEwc8+VhosFM//xbKCOCh2fm3F16uG/h5HnKZT4FLbvrVb0a3vyaGJq+mK6gp
+        PUKn+26RAuouK41OwczFk7srO662PJwAeMrQDQIDAQABAoIBAEm73jbv/7JWr1lm
+        sUwai0QzPB70eOaIc5hWkeTIg1bw0hthzWXgEdG2t3chOHrQp4PBtMKlxE8MFXeX
+        /cNi+kL7GJjx/wzzMl92dBqZWgHO26NCtK2KbkDk5+p59wSzcH+cg5FTboMbbzAZ
+        bP9acpYAmVVsosCmhjrICEHB2iFr5sopbHgq9MEq1vQhV8fZJf8NDjmAPjug1XFa
+        2vi3G+bKuCLKBabsFVMabcCKlTlSrjUcwijJDatbJkmiz3Sg7IcczQbz++BXdhCU
+        UkjpLA5tAvIyncQpX5pAU467rO2E+Wcrq9NHl43vN2XHM3g6wIRjSBkmgndBFLds
+        En5WloUCgYEA71/Am0RCjyoF1IUJ7DpkjWxinkhzn6P0vIIAIRvMMwcEKPHoclBv
+        2k0ZdFkGfI4PDZgWwbFsvMysF/lB6bmw8tFxDL2g3cGEdVFBPC0L1qsf5jOKKe1d
+        eqtarToIgcya4/9ALNeci4DiH6coZrZ3Pg4/6rkhhhm5yWjl1prgFqsCgYEAxczf
+        VANZVg9JsbXjRnygRxOx735Ug17+dxaDdfdzYviH1XEqWMFyGCmpnk5aT8aHJpIY
+        DroaAvgAOEkVje5Pv9PpU6GuAh2USL11l4Hp8z3I1YJNkmABUa0aPe5ZQEG5NruH
+        dUTwJhXuo1buKbhg8j81DrPF/HAQOTMjpASmFCcCgYAjZmm5jJK7UV+jWjlpcglE
+        0O6UsepHhZu/9QnH27CLK1J2K7BQl4yzIAvPpQrMiMW5IPDcnDyUf0BEG1ygEBIX
+        Fto9JB4SLXhFUUrwd0j06kHBbYXVRYE5jvXOAHMZnwSZCzqWZxyDlP/b5oCXEAz6
+        ZGkXcWF/z3YmTxkOb8EMGQKBgAlHHMqSBaS1vt0pDOoHenUbBWOYZ1pqIEFxuuTT
+        oIPp6GUok7XqDPH5Mk2Mm0vWogw7GgnGzOWKwGfjdbFclj0HMZCMqt7KiGQJDvT2
+        UQTpxvvMytqsyiMMnYh+H42WB5v7m9TyUNlYegMLVsx6K4HxWQnBgO3gS8KDFY7h
+        8PBNAoGBAN+92Vayc9CD42Kg8nRN0Gy15zE4x8R6x4bxys47qC7ST3xVJgQHlOk4
+        weBWzLb+eW2bvKogRm5xS4nmXzg/fFWaLzwDGRHawKPO8LpSOdXNeV54YncaFuCZ
+        LPMO7xo6dYNtdI3mIk+K3lSjxgeIE1fMmFVm4ZJWgY5qeKPnMzfc
+        -----END RSA PRIVATE KEY-----
+
+
+    owner: root:root
+    permissions: '0600'
+    path: /home/ubuntu/test.pem
+runcmd:
+-   [ sh, -c, "chown ubuntu:ubuntu /home/ubuntu/test.pem" ]
+
diff --git a/epa_2vm_sriov_vnf/epa_2vm_sriov_vnfd.yaml b/epa_2vm_sriov_vnf/epa_2vm_sriov_vnfd.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cdd4140bb9a77bd10e7e819576542acb927de583
--- /dev/null
+++ b/epa_2vm_sriov_vnf/epa_2vm_sriov_vnfd.yaml
@@ -0,0 +1,115 @@
+vnfd:
+  description: A VNF consisting of 2 VDUs with EPA capabilities connected to an internal
+    VL, 1 external CP based on paravirt, 1 external CP based on SR-IOV
+  df:
+  - id: default-df
+    instantiation-level:
+    - id: default-instantiation-level
+      vdu-level:
+      - number-of-instances: 1
+        vdu-id: mgmtVM
+      - number-of-instances: 1
+        vdu-id: dataVM
+    vdu-profile:
+    - id: mgmtVM
+      min-number-of-instances: 1
+    - id: dataVM
+      min-number-of-instances: 1
+  ext-cpd:
+  - id: vnf-mgmt-ext
+    int-cpd:
+      cpd: mgmtVM-eth0-int
+      vdu-id: mgmtVM
+  - id: vnf-data-ext
+    int-cpd:
+      cpd: xe0-int
+      vdu-id: dataVM
+  id: epa_2vm_sriov-vnf
+  int-virtual-link-desc:
+  - id: internal
+  mgmt-cp: vnf-mgmt-ext
+  product-name: epa_2vm_sriov-vnf
+  sw-image-desc:
+  - id: ubuntu20.04
+    image: ubuntu20.04
+    name: ubuntu20.04
+  vdu:
+  - cloud-init-file: cloud-config-mgmt.txt
+    id: mgmtVM
+    int-cpd:
+    - id: mgmtVM-eth0-int
+      virtual-network-interface-requirement:
+      - name: mgmtVM-eth0
+        position: 1
+        virtual-interface:
+          type: PARAVIRT
+    - id: mgmtVM-eth1-int
+      int-virtual-link-desc: internal
+      virtual-network-interface-requirement:
+      - name: mgmtVM-eth1
+        position: 2
+        virtual-interface:
+          type: PARAVIRT
+    name: mgmtVM
+    sw-image-desc: ubuntu20.04
+    virtual-compute-desc: mgmtVM-compute
+    virtual-storage-desc:
+    - mgmtVM-storage
+  - cloud-init-file: cloud-config-data.txt
+    id: dataVM
+    int-cpd:
+    - id: eth0-int
+      int-virtual-link-desc: internal
+      virtual-network-interface-requirement:
+      - name: eth0
+        position: 1
+        virtual-interface:
+          type: PARAVIRT
+    - id: xe0-int
+      virtual-network-interface-requirement:
+      - name: xe0
+        position: 2
+        virtual-interface:
+          type: SR-IOV
+    name: dataVM
+    sw-image-desc: ubuntu20.04
+    virtual-compute-desc: dataVM-compute
+    virtual-storage-desc:
+    - dataVM-storage
+  version: '1.0'
+  virtual-compute-desc:
+  - id: mgmtVM-compute
+    virtual-cpu:
+      num-virtual-cpu: 1
+      pinning:
+        policy: static
+        thread-policy: PREFER
+    virtual-memory:
+      mempage-size: LARGE
+      numa-enabled: true
+      numa-node-policy:
+        mem-policy: STRICT
+        node:
+        - id: 1
+        node-cnt: 1
+      size: 1.0
+  - id: dataVM-compute
+    virtual-cpu:
+      num-virtual-cpu: 8
+      pinning:
+        policy: static
+        thread-policy: PREFER
+    virtual-memory:
+      mempage-size: LARGE
+      numa-enabled: true
+      numa-node-policy:
+        mem-policy: STRICT
+        node:
+        - id: 1
+        node-cnt: 1
+      size: 4.0
+  virtual-storage-desc:
+  - id: mgmtVM-storage
+    size-of-storage: 10
+  - id: dataVM-storage
+    size-of-storage: 10
diff --git a/epa_2vm_sriov_vnf/icons/osm.png b/epa_2vm_sriov_vnf/icons/osm.png
new file mode 100644
index 0000000000000000000000000000000000000000..62012d2a2b491bdcd536d62c3c3c863c0d8c1b33
Binary files /dev/null and b/epa_2vm_sriov_vnf/icons/osm.png differ