#  Copyright 2020 Whitestack LLC
#
#  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.

vnfd:
  id: vEPC_vnfd
  product-name: vEPC_vnfd
  description: Generated by OSM package generator
  provider: OSM_VNFONB_TF
  version: "1.0"
  mgmt-cp: spgwmme-mgmt-ext #Simplified from mgmt-interface
  virtual-compute-desc:
    - id: spgwmme-compute
      virtual-cpu:
        num-virtual-cpu: 2
      virtual-memory:
        size: 4.0 # Memory size in GB
    - id: hss-compute
      virtual-cpu:
        num-virtual-cpu: 1
      virtual-memory:
        size: 2.0 # Memory size in GB
  virtual-storage-desc:
    - id: spgwmme-storage
      size-of-storage: 10
    - id: hss-storage
      size-of-storage: 10
  sw-image-desc:
    - id: nextepc-spgwmme-base
      name: nextepc-spgwmme-base
      image: nextepc-spgwmme-base
    - id: nextepc-hss-base
      name: nextepc-hss-base
      image: nextepc-hss-base

  vdu:
    - id: spgwmme
      name: spgwmme
      description: spgwmme
      cloud-init-file: spgwmme-init
      virtual-compute-desc: spgwmme-compute
      virtual-storage-desc:
        - spgwmme-storage
      sw-image-desc: nextepc-spgwmme-base
      int-cpd:
        - id: eth0-int
          virtual-network-interface-requirement:
            - name: eth0
              virtual-interface:
                type: PARAVIRT
        - id: eth1-int
          virtual-network-interface-requirement:
            - name: eth1
              virtual-interface:
                type: PARAVIRT
        - id: eth2-int
          virtual-network-interface-requirement:
            - name: eth2
              virtual-interface:
                type: PARAVIRT
        - id: eth3-int
          int-virtual-link-desc: s6a # Connection to VLD!
          virtual-network-interface-requirement:
            - name: eth3
              virtual-interface:
                type: PARAVIRT
      monitoring-parameter:
        - id: "spgw_cpu_util"
          name: "spgw_cpu_util"
          performance-metric: "cpu_utilization"
        - id: "spgw_memory_util"
          name: "spgw_memory_util"
          performance-metric: "average_memory_utilization"
    - id: hss
      name: hss
      description: hss
      cloud-init-file: hss-init
      virtual-compute-desc: hss-compute
      virtual-storage-desc:
        - hss-storage
      sw-image-desc: nextepc-hss-base
      int-cpd:
        - id: eth0-int
          virtual-network-interface-requirement:
            - name: eth0
              virtual-interface:
                type: PARAVIRT
        - id: eth1-int
          int-virtual-link-desc: s6a # Connection to VLD!
          virtual-network-interface-requirement:
            - name: eth1
              virtual-interface:
                type: PARAVIRT
  df:
    - id: default-df
      vdu-profile:
        - id: spgwmme
          min-number-of-instances: 1
        - id: hss
          min-number-of-instances: 1
      instantiation-level:
        - id: default-instantiation-level
          vdu-level:
            - vdu-id: spgwmme
              number-of-instances: 1
            - vdu-id: hss
              number-of-instances: 1
      virtual-link-profile:
        - id: s6a
          flavour: ""
          virtual-link-protocol-data:
            l3-protocol-data:
              name: s6a-l3-protocol-data
              description: s6a network
              ip-version: ipv4
              cidr: 10.0.6.0/24
              dhcp-enabled: true
      lcm-operations-configuration:
        operate-vnf-op-config:
          day1-2:
          - id: vEPC_vnfd
            execution-environment-list:
            - id: spgwcharm-ee
              juju:
                charm: spgwcharm
            initial-config-primitive:
              - seq: "1"
                name: config
                parameter:
                  - name: ssh-hostname
                    value: <rw_mgmt_ip>
                  - name: ssh-username
                    value: ubuntu
                  - name: ssh-password
                    value: <password>
                execution-environment-ref: spgwcharm-ee
              - seq: "2"
                name: configure-spgw
                parameter:
                  - name: spgw-ip
                    data-type: STRING
                    value: <spgw_ip>
                  - name: hss-ip
                    data-type: STRING
                    value: <hss_ip>
                execution-environment-ref: spgwcharm-ee
              - seq: "3"
                name: restart-spgw
                execution-environment-ref: spgwcharm-ee
            config-primitive:
              - name: add-route
                parameter:
                  - name: external-prefix
                    data-type: STRING
                    default-value: "8.8.8.8/32"
                  - name: next-hop
                    data-type: STRING
                    default-value: "192.168.2.1"
                execution-environment-ref: spgwcharm-ee
          - id: hss
            execution-environment-list:
            - id: hsscharm-ee
              juju:
                charm: hsscharm
            initial-config-primitive:
              - seq: "1"
                execution-environment-ref: hsscharm-ee
                name: config
                parameter:
                  - name: ssh-hostname
                    value: <rw_mgmt_ip>
                  - name: ssh-username
                    value: ubuntu
                  - name: ssh-password
                    value: <password>
              - seq: "2"
                name: configure-hss
                parameter:
                  - name: spgw-ip
                    data-type: STRING
                    value: <spgw_ip>
                  - name: hss-ip
                    data-type: STRING
                    value: <hss_ip>
                execution-environment-ref: hsscharm-ee
              - seq: "3"
                name: restart-hss
                execution-environment-ref: hsscharm-ee
  int-virtual-link-desc:
    - id: s6a
  ext-cpd:
    # SPGWMME
    - id: spgwmme-mgmt-ext
      int-cpd: # Connection to int-cpd
        vdu-id: spgwmme
        cpd: eth0-int
    - id: spgwmme-s1-ext
      int-cpd: # Connection to int-cpd
        vdu-id: spgwmme
        cpd: eth1-int
    - id: spgwmme-sgi-ext
      int-cpd: # Connection to int-cpd
        vdu-id: spgwmme
        cpd: eth2-int
    # HSS
    - id: hss-mgmt-ext
      int-cpd: # Connection to int-cpd
        vdu-id: hss
        cpd: eth0-int
