#  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
            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
          - id: hss
            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    
  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
