When you use Virtual Network Function Manager (VNFM) to deploy SBC SWe in an OpenStack cloud environment, you must provide it with a Cloud Service Archive (CSAR) package file that is appropriate for the type of deployment you want to create. The CSAR package includes a Virtual Network Function Descriptor (VNFD) file that defines the characteristics of your deployment.
Ribbon provides the script createVnfmCsar.py
and a VNFD template file (vnfmSol001VnfdTemplate.yaml
) to create a CSAR file for your deployment.
By default, from SBC 10.1.x onwards, the createVnfmCsar.py
creates a 3.5.1 compliant VNFD. You can only use this with VNFM versions 21.2 onwards.
Two additional files are also supplied along with createVnfmCsar.py
and vnfmSol001VnfdTemplate.yaml
vnfmSol001VnfdCustomTypes.yaml
- types definition file needed for CSARs that are SOL001 3.5.1. compliant.
vnfm_pre_21_2_Sol001VnfdTemplate.yaml
- VNFD template file for use with older VNFM versions.
Script Parameters
Important
The script creates one or more CSAR files based on the run-time parameters you specify. Note that the default value for several parameters is "all." If you run the script without specifying any parameters, the script uses its defaults and creates multiple CSAR files for all possible values and combinations for these parameters. Use the run-time parameters to restrict the output and create a CSAR file that is tailored to a specific deployment model.
The following tables describe the script run-time parameters. Help information for these parameters is also available by entering: createVnfmCsar.py --usage
Parameter | Description | Default |
---|
-f <flavor size> [] | Use this parameter to specify the flavor size for the SBC nodes in the deployment. For customer deployments, use the option standard (std) . | all sizes |
-h <ha type> [simplex | ha | n_1_ha] | Use this parameter to specify an HA model for the deployment. The options are: ha – to specify 1:1 HA redundancy.n_1_ha – to specify an N:1 HA deployment. N can be up to 4 for S-SBC and M-SBC deployments. Use this parameter with the --num_instances parameter which specifies the number of instances in the deployment.simplex – to specify a standalone instance for a test environment.
| all HA models |
-i <interface type> [virtio | sriov | provider] | Use this parameter to specify the network interface type for your deployment. The options are: provider – to specify a provider network.sriov – to specify an SR-IOV (single root input/output virtualization) network.virtio – to specify a virtio network.
| all interface types |
-p <prod_version> | Use this parameter to specify the SBC product version number. This parameter is required. Provide the full release number within quote marks. For example: - | n/a |
-q <qcow_image_file> | Include this parameter to specify that you want to include the SBC software .qcow2 image file within the CSAR package. Including the image file greatly increases the size of the CSAR file and is by VNFM. If you use this option, specify the name of the image file following the -q parameter. | no image file |
-s <subversion> | Use this parameter to specify the SBC release number. This parameter is required. Provide the release number within quote marks. For example: -s "" | n/a |
-v <vnfd_template> | Include this parameter to specify the full path and the name of the VNFD template file. If the template file resides in the same directory as the script, the -v parameter is not needed. | current directory |
--cinder_boot | Include this parameter to specify that you want to create a bootable Cinder volume and copy the boot image (the . image) to that volume before starting the VM. By default, no boot volume is created. Activating this option causes the initial boot time to increase significantly.
Note: The ephemeral disk size is set to 0 by default when you enable creating a Cinder boot volume. | no Cinder boot volume |
--cinder_log | Include this parameter to specify that you want to create a Cinder volume to use for /var/log. By default no Cinder log volume is created. You can use this option to re-associate the /var/log directory tree from a previous orchestration to a new orchestration, by specifying that boot volume during orchestration. Note: Use the --cinder_log_DISK option to specify a size for the Cinder log volume. | no Cinder log volume |
--cinder_log_DISK <disk_gb> --cinder_oam_DISK <disk_gb> --cinder_sbc_DISK <disk_gb> | Include these parameters to specify the disk sizes for the Cinder volumes if you specify to create a . If you are creating a log volume for storing log files and CDRs, consider the following formula to determine a minimum volume size to accommodate CDRs, and then add approximately 60GB for log and core files: (40% of peak CPS) * (records/call) * 86400 * (days) * 2K where: - CPS is calls per second
- records per call is typically one or two, and depends on your deployment
- 86400 is the number of seconds per day
- days is the number of days of CDR records to store
| boot volume: default disk size based on specified flavor log volume: 30 GB |
--ha_io_type [virtio | sriov | provider] | This parameter is deprecated. Use --ha0 [virtio | sriov | provider] to specify an interface type. See "Interface Rules" in the Specific Customer Parameters table for more information. | n/a |
--image_name <image_name> | Include this parameter to specify the name of the SBC software qcow2 image file you are uploading to the Glance image repository so that name appears in the VNFD file. By default a name is derived by joining the values you specify for the product (-p ) and the version (-s ). Note that the image name must exactly match the name of the image in Glance to allow VNFM to load the image. | make image name from product (-p ) and version (-s ) strings |
--ipv6 | Include this parameter to specify that you want to use IPv6 addressing for the networks in your deployment. | IPv4 |
--mgt_io_type [virtio | sriov | provider] | This parameter is deprecated. Use --mgt0 [virtio | sriov | provider] to specify an interface type. See "Interface Rules" in the Specific Customer Parameters table for more information. | n/a |
--mgt_vip
| Include this parameter if you want to add a to the management interface. Ensure the interface type is not "virtio". | no virtual IP address is added to the management interface |
--num_oam_instances <num_oam_instances> | Include this parameter to specify the number of OAM node instances to create within an N:1 HA deployment that will use the OAM configuration model. For example, specify 2 to create a 1:1 HA pair of OAM nodes. For deployments that use the Direct Single configuration model (standalone or 1:1 HA deployments), the default value of 0 applies because OAM nodes are not required. Refer to SBC SWe Configuration Management for descriptions of both models. | 0 |
--num_instances <number> | Use this parameter to specify the number of SBC instances to create within the redundancy groups in an N:1 HA deployment. The default value is 5 which creates a 4:1 HA deployment. | 5 |
--num_sbc_rg <num_sbc_rg> | Use this parameter to specify the number of SBC redundancy groups to create within the VNF. The range allowed is 1 to 8. See Creating Multiple Redundancy Groups that Use the Same OAM Nodes for the procedure to create multiple redundancy groups. | 1 |
--personality [isbc | msbc | ssbc | tsbc | mrfp | slb ] | Use this parameter to specify the type of deployment to create. The options are: isbc – integrated SBC deploymentmsbc – media SBC component of a distributed SBC deploymentssbc – signaling SBC component of a distributed SBC deploymenttsbc – media/transcoding SBC component of a distributed SBC deploymentmrfp – media resource function processor (MRFP) nodeslb – SIP-aware front-end load-balancer node
| all types |
--pkt_vip | Include this parameter to add a to the packet interfaces. Ensure the interface type is not "virtio". | virtual IP addresses are not added to the packet interfaces |
--pkt_oam_io_type [virtio | sriov | provider] | Include this parameter to specify a type of interface for the packet ports on the OAM nodes. The options are:provider – to specify a provider network.sriov – to specify an SR-IOV (single root input/output virtualization) network.virtio – to specify a virtio network.
Note: SBC 9.0 and later releases do not include PKT interfaces on OAM nodes. This option should only be used to generate a VNFD that includes PKT interfaces to enable upgrading from an 8.x deployment that includes PKT interfaces on OAM nodes. | not used |
--sbc_tar [<file> | omit] | Include this parameter to specify the path and file name for an input tar file, or use omit to not include a file. Specifying a tar file is currently not required. | omit |
--sbc_public_key <file> | Include this parameter to specify a path and name for a file containing a default public key to provide in the Cloud Config Init Data section during VNF instantiation. A public key is required to use SSH to access the deployed SBC. Specifying a key file with this parameter makes the key available as the default when a user deploys a VNF using the generated CSAR file. A user can still override the default with a different key during instantiation. | Example: id_rsa.pub |
--sriov_redundancy | Include this parameter to add two additional packet interfaces if SR-IOV is the io_type . Refer to SBC SWe Port Redundancy and Link Detection in OpenStack Cloud Deployments for more information on packet port redundancy. | not enabled |
--userid <userid>[:<public key file>] | Include this parameter to specify an additional user ID to authorize during instantiation, along with a public key for the user. Note: If you do not specify a <public key file> , the SBC uses the sbc_public_key value (described above). This parameter can be repeated multiple times as necessary to authorize additional users. | n/a |
--vCPU <num_vCPU> --RAM <ram_mb> --DISK <disk_gb> | The flavor you select for an SBC VM defines the default values for sizing the VM when it is instantiated. Include these parameters to override one or more of the default values for VM sizing with a different value that you specify. The --DISK option applies to the ephemeral disk size. | various |
--oam_vCPU <num_vCPU> --oam_RAM <ram_mb> --oam_DISK <disk_gb> | Include these parameters to override one or more of the default sizing values for OAM nodes with different values. There are various default values for these sizes, depending on the options selected. The --oam_DISK option applies to the ephemeral disk size. - For
std flavor deployments, OAM nodes have a size of vCPU=4, RAM=16 GiB, DISK=80 GB. - For
dev flavor deployments, OAM nodes have the same size as other VMs: vCPU=4, RAM=10GiB, DISK=80 GB.
| various |
| - Specifies whether two redundancy groups can be placed on the same server.
- Possible values: true/false.
| false |
| The number of redundancy groups that a single VDU can scale out to. | 8 |
--dns_file | - File path to JSON file containing DNS settings.
- This functionality works only when the
io type is virtio.
| no file/disabled |
--enable_scaling | - Enables scaling in the VNFD.
- Requires
--num_oam_instances to work this functionality.
| N/A. |
--redundancy_ratio
| - The redundancy ratio of a N:1 setup, to be supplied in form
n:m. - This value is used only when the
ha_type is n_1_ha. - If this value is not supplied, a value is taken from
num_instances where the ratio is num_instances-1:1.
| num_instances-1:1 (in N:1 setup) |
--old_vnfm | Creates an older version of the VNFD for use with VNFMs versions pre- 21.2 Possible values: false/true . | false |
-t <vnfd_custom_types> | Include this parameter to specify the full path and the name of the VNFD custom types file. If the types file resides in the same directory as the script, the -t parameter is not needed. | current directory |
The following parameters address less commonly used instantiation options, but may be necessary to address specific requirements in some customer deployments.
Specific Customer Parameters
Parameter | Description | Default |
---|
Cinder Volumes |
--cinder_disktype <> | Include this parameter to specify the type of disk on which to create the . | no specific type |
Interface Rules |
--mgt0 <options>
--ha0 <options>
--pkt0 <options>
--pkt1 <options>
--oampkt <options> | Interface rules set additional options for a specified interface that you enter as a colon-separated list of options. Examples:
--mgt0 ipv6:provider:rules --pkt0 ipv6 The options can be a colon-separated list of values of the following: |
ipv4 | ipv6 | ipvn: to specify an IP version for the interface. | ipvn – indicates both IP versions are available and selected during orchestration, except for the --oampkt interface, which has a default of ipv4 |
rules : Include this parameter to have the recommended security rules created automatically during orchestration for the specified interface. Refer to Creating Security Group Rules for the list. | no rules are created automatically, unless --security_restrict is set (which adds the recommended rules to all interfaces) |
: Include this parameter to create separate sets of the recommended security rules for the OAM nodes mgt0 and ha0 interfaces (for customers who want separate security rules created for each VM type). | the same rules apply to mgt0 and ha0 on both OAM and SBC nodes. |
rip=n : to specify the number of remote IPs to add to rules. The range allowed for n is 0 to 2. | 2 |
ems_rip=n : to specify the number of remote IPs to add to rules for EMS IPs. The range allowed for n is 0 to 2. | 2 |
virtio | provider | sriov: to specify an interface type for ha0 or mgt0 interfaces. The options are:
provider – to specify a provider network.sriov – to specify an SR-IOV (single root input/output virtualization) network.virtio – to specify a virtio network.
| defaults to the type specified with the -i parameter |
Placement Groups |
--placement_sbc_name <name> | Include this parameter to specify a placement group for the SBC nodes. Placement groups affect which affinity policies are assigned to nodes and the name selected affects the server group name. | Sbc%VNFTYPE%VmPlacement |
--placement_oam_name <name> | Include this parameter to specify a placement group for the OAM nodes. Placement groups affect which affinity policies are assigned to nodes and the name selected affects the server group name. | Oam%VNFTYPE%VmPlacement |
General |
--omit_ipv6 | Include this parameter to explicitly remove support for IPv6 deployments and the choice of IP version. IPv6 uses additional security groups. | not enabled |
--security_restrict | Include this parameter to have the recommended security rules created automatically during orchestration for all interfaces. Refer to Creating Security Group Rules for the list. If you use this option, enough quota for the supplied security rules. The quota requirement increases if your deployment includes OAM VMs and when it supports both IPv4 and IPv6. A basic IPv4 SBC deployment requires 54 rules, while a deployment that includes OAM VMs and supports IPv4 and IPv6 requires 196 rules. | not enabled; by default all ports are allowed. |
--timeout <seconds> | Include this parameter to specify a timeout, in seconds, for the CLI /bash shell. | 300 |
--version_suffix <name> | Include this parameter to specify a suffix to append to the package version in the CSAR's .mf file. | no suffix |
Custom Naming Parameters
You have the option to include script parameters that modify the names assigned to the system and individual node instances when the system is deployed. Refer to System and Instance Naming in SBC SWe N:1 and Cloud-Based Systems for more information on the default naming conventions.
The following table summarizes the custom naming parameters.
Script Parameters for Custom Naming
Parameter | Description | Default |
---|
--custom_system_name <name> | Include this parameter to specify a custom system name. The specified name appears in the VNFM UI as the default in the SYSTEMNAME field. | |
--custom_oam_name <name> | Include this parameter to specify a custom name to use in naming OAM nodes. The specified name is included in the actualCeName assigned to each OAM node. | OAM |
--custom_sbc_name <name> | Include this parameter to specify a custom name to use in naming SBC nodes. The specified name is included in the actualCeName assigned to each SBC node. | %VNFTYPE% (for a single redundancy group)
RG%rg_index%-%VNFTYPE% (for multiple redundancy groups)
|
--custom_oam_server_group_name | Include this parameter to specify a custom server group name to use in naming OAM nodes. | %orchname%-OAM-%VNFTYPE%-SG |
--custom_sbc_server_group_name | Include this parameter to specify a custom server group name to use in naming SBC nodes. | %orchname%-SBC-%VNFTYPE%%rg_index%-SG |
--custom_vmname_dash | Include this parameter to manually insert a dash before the VM index. | no dash is added |
Tokens
The following tokens are allowed within the custom naming parameters:
%rg_index%
-- to include the redundancy group index.
%vnftype%
or %VNFTYPE%
-- to include the VNF type (for example: SSBC) in lower or uppercase.
VNFM tokens – %orchname%
, %basename%
, %index%
, %vmname%
, %vmtype%
, %get_param:parmname%
Refer to Using Customized Naming in a VNFD in VNFM documentation for more information on which VNFM tokens apply to which resources.
Naming Syntax
To construct the SBC parameter actualCeName
for each node it is deploying, VNFM begins with the the custom_system_name
and
appends either the custom_oam_name
or custom_sbc_name
(based on node type), followed by a VM index. That is:
<custom_system_name><
custom_oam_name><VM index>
or
<custom_system_name><custom_sbc_name><VM index>
The VM index is a unique instance number for the node type, up to 5 in a 4:1 HA deployment. For clarity, if either the custom_oam_name
or custom_sbc_name
ends in a digit or the %rg_index%
token, VNFM automatically adds a dash before the VM index. Include the custom_vmname_dash
parameter to manually include a dash before the VM index.
Custom Naming Example
The following custom naming parameters in a 4:1 HA deployment with two redundancy groups:
--custom_oam_name OAMX --custom_sbc_name GRP%rg_index% --custom_system_name EX-SSBC22
Yields the following node names:
EX-SSBC22-OAMX1
EX-SSBC22-GRP1-1, EX-SSBC22-GRP1-2, EX-SSBC22-GRP1-3,EX-SSBC22-GRP1-4,EX-SSBC22-GRP1-5
EX-SSBC22-GRP2-1, EX-SSBC22-GRP2-2, EX-SSBC22-GRP2-3,EX-SSBC22-GRP2-4,EX-SSBC22-GRP2-5
Environment Variables
For deployments that require even greater flexibility in customizing the names of resources, prior to running the script, you can define environment variables to override the default naming conventions for different types of resources. The environment variables and their use in conjunction with the createVnfmCsar.py
script are described in online command help provided with the script. To display the help information on custom naming options, enter:
createVnfmCsar.py --help_custom
Running the Script
Complete the following steps to generate a CSAR file:
- If you have not already done so, download the script and VNFD template files. The template and associated script are available in the file
cloudTemplates.tar.gz
. - Copy the script and template files to a Linux environment where . Openssl must also be present if you want to sign the package files.
- Review the options in the preceding table to determine which options are required for your deployment. The
-p
and -s
parameters are required. All other parameters are optional, but including a specific value for the -f
, -h
, -i
, and --personality
parameters ensures you generate a single CSAR file for a single deployment type.
- Switch to the directory location where the script and template file reside.
- Referring to the syntax shown in the previous table, enter the script name followed by its parameters in a single statement. The location of the CSAR file(s) the script generates is shown in the screen output.
Important
The CSAR script enters a name for the SBC image file in the VNFD file that it derives using the values you specified for the -p
and -s
parameters. The name of the SBC image file (qcow2 file) you upload to Glance must match this name. Using the the values 9.01.00 and R000, the script concatenate these values and prepends the resulting string with sbc-V0
. For this example, "sbc-V09.01.00R000
Examples
creates a single CSAR package file for a 1:1 HA S-SBC deployment that uses virtio interfaces:
createVnfmCsar.py -p "9.01.00" -s "R000" -f std -h ha -i virtio --personality ssbc
The following command creates a single CSAR package file for a 3:1 HA M-SBC deployment that uses SR-IOV interfaces and includes a 1:1 HA pair of OAM nodes:
createVnfmCsar.py -p "9.01.00" -s "R000" -f std -h n_1_ha --num_instances 4 -i sriov --personality msbc --num_oam_instances 2
The following command creates a single CSAR package file for a 1:1 HA I-SBC deployment that uses an IPv6 provider network:
createVnfmCsar.py -p "9.01.00" -s "R000" -f std -h ha -i provider --ipv6 --personality isbc
The following command creates file for 1:1 HA S-SBC deployments – one with virtio, one with SR-IOV, and one with provider interfaces:
createVnfmCsar.py -p "9.01.00" -s "R000" -f std -h ha --personality ssbc
The following command creates a CSAR Package file for 4:1 HA M-SBC deployment that uses virtio interfaces, includes a HA pair of OAM nodes, and allows scaling up to 6 full Redundancy Groups:
createVnfmCsar.py -p "10.01.00" -s "R000" -f std -h n_1_ha -i virtio --personality ssbc --affinity_across_rgs true --enable_scaling --max_sbc_rg 6 --redundancy_ratio "4:1" --num_oam_instances 2
Creating Multiple Redundancy Groups that Use the Same OAM Nodes
groups within the same cluster. These redundancy groups will share the same configuration and are managed by the same OAM nodes. When you set the num_sbc_rg
option to a value greater than one, the script generates a VNFD file that includes additional sets of parameters for the number of redundancy groups specified. During instantiation, VNFM presents multiple sets of parameters where appropriate, enabling you to define the parameters that are specific to an individual redundancy group, such as its name. The redundancy groups are uniquely identified in the interface by prepending names with rg#_
.
To create multiple SBC redundancy groups that are managed by the same OAM nodes:
- Run the
createVnfmCsar.py
script using the option num_sbc_rg
to specify the number of SBC redundancy groups you want to create.
For example, the following command generates a CSAR package containing a VNFD file that creates two 4:1 HA M-SBC redundancy groups:
createVnfmCsar
.py -p 9.01.00 -s R000 -i virtio -f std -h n_1_ha
--num_instances 5 --num_oam_instances 2 --personality msbc --omit_ipv6 --num_sbc_rg 2
Onboard the resulting CSAR package file to VNFM.
Instantiate the VNF using the CSAR package you generated. VNFM replicates any parameters needed to define each redundancy group. The following figure shows a part of the VNFM instantiation screen requesting SBC system names for two redundancy groups. Similarly, VNFM replicates other instantiation parameters (Networks, Flavors, Manual IP) for each redundancy group.
Multiple Redundancy Groups - System Name Options