#  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-int #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
                type: EXTERNAL # Remove (redundant)
                virtual-interface:
                  type: PARAVIRT
                network-interface-requirements:
                  # ?
          - id: spgwmme-s1-int
            virtual-network-interface-requirement:
              - name: eth1
                type: EXTERNAL # Remove (redundant)
                virtual-interface:
                  type: PARAVIRT
                network-interface-requirements:
                  # ?
          - id: spgwmme-sgi-int
            virtual-network-interface-requirement:
              - name: eth2
                type: EXTERNAL # Remove (redundant)
                virtual-interface:
                  type: PARAVIRT
                network-interface-requirements:
                  # ?
          - id: spgwmme-s6a-int
            int-virtual-link-desc: s6a # Connection to VLD!
            virtual-network-interface-requirement:
              - id: eth3
                type: INTERNAL # Remove (redundant)
                virtual-interface:
                  type: PARAVIRT
                network-interface-requirements:
                  # ?

      - 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
                type: EXTERNAL
                virtual-interface:
                  type: PARAVIRT
                network-interface-requirements:
                  # ?
          - id: hss-s6a-int
            int-virtual-link-desc: s6a # Connection to VLD!
            virtual-network-interface-requirement:
              - id: eth1
                type: INTERNAL
                virtual-interface:
                  type: PARAVIRT
                network-interface-requirements:
                  #?
        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

    df:
      - id: vepc_default
        vdu-profile:
          - id: spgwmme
            min-number-of-instance: 1
          - id: hss
            min-number-of-instance: 1
        instantiation-level:
          - id: default
            vdu-level:
              - id: spgwmme
                number-of-instances: 1
              - 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

    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

    exp-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
