Here are some CNF customization examples.
Example 1
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Network Function description
imports:
- vmware_etsi_nfv_sol001_vnfd_2_5_1_types.yaml
node_types:
tosca.nodes.nfv.VMware.CNF.cu-up-1.8:
derived_from: tosca.nodes.nfv.VMware.CNF
interfaces:
Vnflcm:
type: tosca.interfaces.nfv.Vnflcm
tosca.nodes.nfv.Vdu.Compute.Helm.cuup-helm-chart:
derived_from: tosca.nodes.nfv.Vdu.Compute.Helm
properties:
configurable_properties:
type: tosca.datatypes.nfv.VnfcConfigurableProperties.cuup-helm-chart
required: true
data_types:
tosca.datatypes.nfv.VnfcConfigurableProperties.cuup-helm-chart:
derived_from: tosca.datatypes.nfv.VnfcConfigurableProperties
properties:
additional_vnfc_configurable_properties:
type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.cuup-helm-chart
description: Describes additional configuration for VNFC that can be configured
required: true
tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.cuup-helm-chart:
derived_from: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties
properties:
values:
required: true
propertyName: values
description: Overrides for chart values
default: ''
type: string
format: file
BHU:
required: true
propertyName: BHU
description: ''
default: ''
type: string
format: network
F1U:
required: true
propertyName: F1U
description: ''
default: ''
type: string
format: network
E1C:
required: true
propertyName: E1C
description: ''
default: ''
type: string
format: network
MGMT:
required: true
propertyName: MGMT
description: ''
default: ''
type: string
format: network
tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters:
derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
properties:
USERNAME:
name: USERNAME
type: string
description: K8s master username
required: true
default: capv
format: string
PASSWORD:
name: PASSWORD
type: password
description: K8s master password
required: true
default:
format: password
IP:
name: IP
type: string
description: K8s master ip address
required: true
default:
format: string
K8S_NAMESPACE:
name: K8S_NAMESPACE
type: string
description: K8S namespace for CU-UP
required: true
default:
format: string
NAD_FILE:
name: NAD_FILE
type: string
description: NAD Config File
required: true
default: ''
format: file
tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters:
derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
properties:
nsCreateResult:
name: nsCreateResult
type: string
description: ''
topology_template:
substitution_mappings:
node_type: tosca.nodes.nfv.VMware.CNF.cu-up-1.8
node_templates:
cu-up-1.8:
node_type: tosca.nodes.nfv.VMware.CNF.cu-up-1.8
properties:
descriptor_id: nfd_4e7599b5-9a44-4000-850c-7ec65d2f2423
provider: Vendor01
product_name: CU-UP
version: '1.0'
id: id
software_version: '1.3.4761'
descriptor_version: '1.8'
flavour_id: default
flavour_description: default
vnfm_info:
- gvnfmdriver
infra_requirements:
node_components:
isNumaConfigNeeded: false
kernel:
kernel_type:
name: linux
version: 4.19.132-1.ph3
kernel_modules:
- name: dpdk
version: 19.11.1
kernel_args:
- key: default_hugepagesz
value: 1G
- key: hugepagesz
value: 1G
- key: hugepages
value: 10
- key: transparent_hugepage
value: never
- key: intel_idle.max_cstate
value: 1
- key: iommu
value: pt
- key: intel_iommu
value: 'on'
- key: tsc
value: reliable
- key: idle
value: pool
- key: intel_pstate
value: disable
- key: rcu_nocb_poll
value: 1
- key: clocksource
value: tsc
- key: pcie_aspm.policy
value: performance
- key: skew_tick
value: 1
- key: isolcpus
value: 11-17
- key: nosoftlockup
- key: nohz
value: 'on'
- key: nohz_full
value: 11-17
- key: rcu_nocbs
value: 11-17
custom_packages:
- name: pciutils
version: 3.6.2-1.ph3
- name: tuned
version: 2.13.0-1.ph3
network:
devices:
- deviceType: sriov
networkName: F1U
resourceName: ani_netdevice_cuup_f1u
dpdkBinding: igb_uio
- deviceType: sriov
networkName: BHU
resourceName: ani_netdevice_cuup_bhu
dpdkBinding: igb_uio
- deviceType: sriov
networkName: E1C
resourceName: ani_netdevice_cuup_e1c
- deviceType: sriov
networkName: MGMT
resourceName: ani_netdevice_cuup_mgmt
count: 5
additional_config:
- name: tuned
value: '[{"name":"vendor01-cu"}]'
file_injection:
- source: file
content: ../Artifacts/scripts/tuned.conf
path: /etc/tuned/cu/tuned.conf
- source: file
content: ../Artifacts/scripts/cpu-partitioning-variables.conf
path: /etc/tuned/cpu-partitioning-variables.conf
caas_components:
- name: sriov
type: cni
description: Network Function description
interfaces:
Vnflcm:
instantiate_start:
implementation: ../Artifacts/workflows/CUUP_PreInstantiation_Steps.json
description: Configure Vendor01 CU-UP
inputs:
type: >-
tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters
USERNAME: capv
PASSWORD:
IP:
K8S_NAMESPACE:
NAD_FILE: ''
outputs:
type: >-
tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters
nsCreateResult: ''
cuup-helm-chart:
type: tosca.nodes.nfv.Vdu.Compute.Helm.cuup-helm-chart
properties:
name: cuup-helm-chart
description: cu-up
chartName: cuup-helm-chart
chartVersion: 1.3.4760
helmVersion: v3
id: cuup-helm-chart
configurable_properties:
additional_vnfc_configurable_properties:
type: >-
tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.cuup-helm-chart
values: ''
BHU: ''
F1U: ''
E1C: ''
MGMT: ''
policies:
- policy_scale:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: scale
interface_type: operation
isEnabled: true
- policy_workflow:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: workflow
interface_type: operation
isEnabled: true
- policy_reconfigure:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: reconfigure
interface_type: operation
isEnabled: true
- policy_update:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: update
interface_type: operation
isEnabled: true
- policy_upgrade:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: upgrade
interface_type: operation
isEnabled: true
- policy_upgrade_package:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: upgrade_package
interface_type: operation
isEnabled: true
- policy_instantiate_start:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: instantiate_start
interface_type: workflow
isEnabled: true
- policy_instantiate_start:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: instantiate_start
interface_type: workflow
isEnabled: true
Example 2
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Network Function description
imports:
- vmware_etsi_nfv_sol001_vnfd_2_5_1_types.yaml
node_types:
tosca.nodes.nfv.VMware.CNF.du-1.8:
derived_from: tosca.nodes.nfv.VMware.CNF
interfaces:
Vnflcm:
type: tosca.interfaces.nfv.Vnflcm
tosca.nodes.nfv.Vdu.Compute.Helm.du-helm-chart:
derived_from: tosca.nodes.nfv.Vdu.Compute.Helm
properties:
configurable_properties:
type: tosca.datatypes.nfv.VnfcConfigurableProperties.du-helm-chart
required: true
data_types:
tosca.datatypes.nfv.VnfcConfigurableProperties.du-helm-chart:
derived_from: tosca.datatypes.nfv.VnfcConfigurableProperties
properties:
additional_vnfc_configurable_properties:
type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.du-helm-chart
description: Describes additional configuration for VNFC that can be configured
required: true
tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.du-helm-chart:
derived_from: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties
properties:
Input Yaml:
required: true
propertyName: Input Yaml
description: ''
default: ''
type: string
format: file
F1U:
required: true
propertyName: F1U
description: ''
default: ''
type: string
format: network
F1C:
required: true
propertyName: F1C
description: ''
default: ''
type: string
format: network
MGMT:
required: true
propertyName: MGMT
description: ''
default: ''
type: string
format: network
FH:
required: true
propertyName: FH
description: ''
default: ''
type: string
format: network
tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters:
derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
properties:
USERNAME:
name: USERNAME
type: string
description: K8s master username
required: true
default: ''
format: string
PASSWORD:
name: PASSWORD
type: password
description: K8s master password
required: true
default: ''
format: password
IP:
name: IP
type: string
description: K8s master ip address
required: true
default: ''
format: string
NAD_FILE:
name: NAD_FILE
type: string
description: The NAD Config file
required: true
default: ''
format: file
K8S_NAMESPACE:
name: K8S_NAMESPACE
type: string
description: K8S namespace for DU
required: true
default: ''
format: string
tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters:
derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
properties:
nsCreateResult:
name: nsCreateResult
type: string
description: ''
copyNADResult:
name: copyNADResult
type: string
description: ''
nadCreateResult:
name: nadCreateResult
type: string
description: ''
topology_template:
substitution_mappings:
node_type: tosca.nodes.nfv.VMware.CNF.du-1.8
node_templates:
du-1.8:
node_type: tosca.nodes.nfv.VMware.CNF.du-1.8
properties:
descriptor_id: nfd_4e7599b5-9a44-4000-850c-7ec65d2f2422
provider: Vendor01
product_name: DU
version: '1.0'
id: id
software_version: '1.3.4761'
descriptor_version: '1.8'
flavour_id: default
flavour_description: default
vnfm_info:
- gvnfmdriver
infra_requirements:
node_components:
isNumaConfigNeeded: true
kernel:
kernel_type:
name: linux-rt
version: 4.19.132-1.ph3
kernel_modules:
- name: dpdk
version: 19.11.1
kernel_args:
- key: nosoftlockup
- key: noswap
- key: softlockup_panic
value: 0
- key: pcie_aspm.policy
value: performance
- key: intel_idle.max_cstate
value: 1
- key: mce
value: ignore_ce
- key: fsck.mode
value: force
- key: fsck.repair
value: yes
- key: nowatchdog
- key: cpuidle.off
value: 1
- key: nmi_watchdog
value: 0
- key: audit
value: 0
- key: processor.max_cstate
value: 1
- key: intel_pstate
value: disable
- key: isolcpus
value: 8-{{tca.node.vmNumCPUs}}
- key: skew_tick
value: 1
- key: irqaffinity
value: 0-7
- key: selinux
value: 0
- key: enforcing
value: 0
- key: nohz
value: 'on'
- key: nohz_full
value: 8-{{tca.node.vmNumCPUs}}
- key: rcu_nocb_poll
value: 1
- key: rcu_nocbs
value: 8-{{tca.node.vmNumCPUs}}
- key: idle
value: poll
- key: default_hugepagesz
value: 1G
- key: hugepagesz
value: 1G
- key: hugepages
value: 17
- key: intel_iommu
value: 'on'
- key: iommu
value: pt
- key: kthreads_cpu
value: 0-7
- key: clock
value: tsc
- key: clocksource
value: tsc
- key: tsc
value: reliable
custom_packages:
- name: pciutils
version: 3.6.2-1.ph3
- name: tuned
version: 2.13.0-3.ph3
- name: linuxptp
version: 2.0-1.ph3
additional_config:
- name: tuned
value: '[{"name":"vendor01-du"}]'
file_injection:
- source: file
content: ../Artifacts/scripts/tuned.conf
path: /etc/tuned/du/tuned.conf
- source: file
content: ../Artifacts/scripts/cpu-partitioning-variables.conf
path: /etc/tuned/cpu-partitioning-variables.conf
- source: file
content: ../Artifacts/scripts/realtime-variables.conf
path: /etc/tuned/realtime-variables.conf
network:
devices:
- deviceType: sriov
networkName: F1U
resourceName: ani_netdevice_du_f1u
dpdkBinding: igb_uio
- deviceType: sriov
networkName: F1C
resourceName: ani_netdevice_du_f1c
- deviceType: sriov
networkName: FH
resourceName: ani_netdevice_du_fh
dpdkBinding: vfio-pci
- deviceType: sriov
networkName: MGMT
resourceName: ani_netdevice_du_mgmt
count: 6
passthrough_devices:
- device_type: NIC
pf_group: ptp
caas_components:
- name: sriov
type: cni
interfaces:
Vnflcm:
instantiate_start:
implementation: ../Artifacts/workflows/DU-Preinstantion-WF.json
description: Configure DU using a configmap
inputs:
type: >-
tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters
USERNAME: ''
PASSWORD: ''
IP: ''
NAD_FILE: ''
K8S_NAMESPACE: ''
outputs:
type: >-
tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters
nsCreateResult: ''
copyNADResult: ''
nadCreateResult: ''
du-helm-chart:
type: tosca.nodes.nfv.Vdu.Compute.Helm.du-helm-chart
properties:
name: du-helm-chart
description: Chart for DU
chartName: du-helm-chart
chartVersion: 1.3.4761
helmVersion: v3
id: du-helm-chart-1.0
configurable_properties:
additional_vnfc_configurable_properties:
type: >-
tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.du-helm-chart
Input Yaml: ''
F1U: 'cellsite-F1U'
F1C: 'cellsite-F1C'
MGMT: 'cellsite-mgmt'
FH: 'cellsite-FH'
policies:
- policy_scale:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: scale
interface_type: operation
isEnabled: true
- policy_workflow:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: workflow
interface_type: operation
isEnabled: true
- policy_reconfigure:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: reconfigure
interface_type: operation
isEnabled: true
- policy_update:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: update
interface_type: operation
isEnabled: true
- policy_upgrade:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: upgrade
interface_type: operation
isEnabled: true
- policy_upgrade_package:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: upgrade_package
interface_type: operation
isEnabled: true
- policy_instantiate_start:
type: tosca.policies.nfv.SupportedVnfInterface
properties:
interface_name: instantiate_start
interface_type: workflow
isEnabled: true