#  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 # Memory size in GB
    - id: hss-compute
      virtual-cpu:
        num-virtual-cpu: 1
      virtual-memory:
        size: 2 # 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
      checksum:
        hash: # Mandatory?
    - id: nextepc-hss-bas
      name: nextepc-hss-bas
      checksum:
        hash: # Mandatory?
  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: spgwmme-mgmt-int
          virtual-network-interface-requirement:
            - name: eth0
              virtual-interface:
                type: PARAVIRT
        - id: spgwmme-s1-int
          virtual-network-interface-requirement:
            - name: eth1
              virtual-interface:
                type: PARAVIRT
        - id: spgwmme-sgi-int
          virtual-network-interface-requirement:
            - name: eth2
              virtual-interface:
                type: PARAVIRT
        - id: spgwmme-s6a-int
          int-virtual-link-desc: s6a # Connection to VLD!
          virtual-network-interface-requirement:
            - name: eth3
              virtual-interface:
                type: PARAVIRT
    - 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-bas
      int-cpd:
        - id: hss-mgmt-int
          virtual-network-interface-requirement:
            - name: eth0
              virtual-interface:
                type: PARAVIRT
        - id: hss-s6a-int
          int-virtual-link-desc: s6a # Connection to VLD!
          virtual-network-interface-requirement:
            - name: eth1
              virtual-interface:
                type: PARAVIRT
  df:
    - id: vepc_default
      vnf-configuration-id: vnf-configuration-example
      vdu-profile:
        - id: spgwmme
          min-number-of-instances: 1
        - id: hss
          min-number-of-instances: 1
          vdu-configuration-id: vdu-configuration-example
      instantiation-level:
        - id: default
          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
              description: s6a network
              ip-version: ipv4
              cidr: 10.0.6.0/24
              dhcp-enabled: true
      monitoring-parameter:
        - id: "spgw_cpu_util"
          name: "spgw_cpu_util"
          performance-metric: "cpu_load"
          collection-period: 123456
          #aggregation-type: AVERAGE # Not included in augments
          #vdu-monitoring-param: # Not included in augments
          #  vdu-ref: "spgwmme" # Not included in augments
          #  vdu-monitoring-param-ref: "spgw_cpu_util" # Not included in augments
        - id: "spgw_memory_util"
          name: "spgw_memory_util"
          #aggregation-type: AVERAGE # Not included in augments
          #vdu-monitoring-param: # Not included in augments
          #  vdu-ref: "spgwmme" # Not included in augments
          #  vdu-monitoring-param-ref: "spgw_memory_util" # Not included in augments
  vdu-configuration:
    - id: vdu-configuration-example
      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: vnf-configuration-example
      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: spgwmme-mgmt-int
    - id: spgwmme-s1-ext
      int-cpd: # Connection to int-cpd
        vdu-id: spgwmme
        cpd: spgwmme-mgmt-int
    - id: spgwmme-sgi-ext
      int-cpd: # Connection to int-cpd
        vdu-id: spgwmme
        cpd: spgwmme-mgmt-int
    # HSS
    - id: hss-mgmt-ext
      int-cpd: # Connection to int-cpd
        vdu-id: spgwmme
        cpd: spgwmme-mgmt-int
