#  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
      vnf-configuration-id: default-vnf-configuration
      vdu-profile:
        - id: spgwmme
          min-number-of-instances: 1
        - id: hss
          min-number-of-instances: 1
          vdu-configuration-id: hss-vdu-configuration
      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
  vdu-configuration:
    - id: hss-vdu-configuration
      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>
        - seq: "2"
          name: configure-hss
          parameter:
            - name: spgw-ip
              data-type: STRING
              value: <spgw_ip>
            - name: hss-ip
              data-type: STRING
              value: <hss_ip>
        - seq: "3"
          name: restart-hss
      juju:
        charm: hsscharm
  vnf-configuration:
    - id: default-vnf-configuration
      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>
        - seq: "2"
          name: configure-spgw
          parameter:
            - name: spgw-ip
              data-type: STRING
              value: <spgw_ip>
            - name: hss-ip
              data-type: STRING
              value: <hss_ip>
        - seq: "3"
          name: restart-spgw
      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"
      juju:
        charm: spgwcharm
  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
