Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: added msrp, slb to personality types per Hemanth email

...

In the OpenStack environment,when cloud instances are launched through Heat, metadata and userdata are populated automatically by the Heat template. The SBC SWe metadata and userdata you provide in your template are essential to ensuring that the SBC instance you deploy can initialize correctly. To be interpreted correctly, the metadata and userdata must be provided in the proper JSON format. The example Heat templates 

Spacevars
0company
 provides include metadata and userdata sections in the required format. When editing or copying these sections to create your own Heat template, be sure to maintain the format.  The following sections describe the SBC SWe metadata and userdata. 


Info

For AWS and OpenStack, there is now a common REST API command for accessing/showing/listing instantiation data such as meta-data and user-data. For details, refer to the REST-API-Reference-Guide.

...

Interface Definition Format

Code Block
"IFXIFx" : { 
        "Port":"<Port_Name>",
		"DHCP": "<Dhcp_flag>",
        "RNat": "<True|False>",
        "GWV4":"<IP_Address>",
        "IPV4":"<IP_Address/Subnet_Prefix>",
        "GWV6" :"<IP_Address>",
        "IPV6":"<IP_Address/Subnet_Prefix>",
        "FIPV4":"<IP_Address>",
        "VlanId":"<VLAN_ID>"
}

Anchor
Interface Parameter Table
Interface Parameter Table
The elements which can constitute an interface definition:
Caption
0Table
1Interface Definition Parameters
3Interface Definition
ParametersDescription
IFXx

Interface definition name

This element is the name in the dictionary which contains the information of the port. Here, "IF" is a key word, and it can be appended with any name/identifier for X x. Example: IF_Pkt0, IFMgt0, IF-MediaPort. 

Note: The name provided for the interface definition is used in an alternate IP definition. A link is formed between the two definitions based on the interface definition name.

Port

Port Name

One of – Mgt0, Ha0, Pkt0, Pkt1. This indicates the actual port to which the definition belongs.

DHCPThis flag is used to enable or disable DHCP. If the DHCP is set to False, you need to provide fixed IP addresses for each port.
RNat

Reverse NAT flag

Values:

  • True: To consider FIPV4 entity value provided in the dictionary.
  • False: To configure FIPV4 using SMM rules, and ignore the FIPV4 value provided.

Default value - True

GWV4

Gateway IP in IPv4 format.

Should be provided only when DHCP disabled on the port and it requires an IPv4 address.

Note : GWV4 and IPV4 are interdependent, both have to be provided in a noDHCP IPv4 scenario.

IPV4

Primary IP on the private port and prefix in IPv4 format.

Should be provided only when DHCP is disabled on the port and it requires an IPv4 address.

Example: 10.54.116.53/23

GWV6

Gateway IP in IPv6 format.

Should be provided only in case DHCP is disabled on the port and it requires an IPv6 address.

Note : GWV6 and IPV6 are interdependent, both have to be provided in a noDHCP PVv6 scenario.

IPV6

IP on the private port  and prefix in IPv6 format.

Should be provided only in case DHCP disabled on the port and it requires an IPv6 address.

Example : fd00:10:6b50:4350::69/64

FIPV4

Floating IP associated with the port.

Provide when a Floating IP is associated (in DHCP enabled and disabled scenarios) with the port.

VlanIdID of the VLAN.

...

Caption
0Table
1Alternate IP Definition Parameters
3Alternate IP Definition
ParameterDescription

AltIP3

Alternate IP (ALT IP) definition name/identifier associated with a port. This identifier does not have any restriction on naming, AltIP3 is an example.

Other examples for ALT IP identifier : Alt_Pkt0_AX,  ALT_PKT0_01, signaling_Pkt0_05.

IFName

Interface definition name

Makes an association between the ALT IP address and an existing interface definition.

If you change the interface definition name (i.e IFX x name), you must simultaneously change the IFName value in this definition. Otherwise, the link between the ALT IP and its associated port is lost.

IP

IPV4 or IPV6 address

IP address to associate with the port.

Specify an IPv4 or IPv6 address, based on the IP version the parent interface definition contains.

In a dual-stack scenario, the interface definition has both IPv4 and IPv6 addresses, you can also have IPv4 and IPv6 ALT IP addresses. They must be defined in separate ALT IP definitions, each pointing to the parent definition.

FIPV4

Floating IP on the Alternate IP

Use this parameter to specify the value of a floating IP to associate with the ALT IP.

Note: The RNat flag which is defined in the interface definition is an interface-wide entity. If the RNat flag is disabled in the interface definition, the FIP value provided in the ALT IP definition is not considered while populating the metavariables for this port.

...

Userdata Format

Code Block
 user_data_format: RAW
      user_data:
        str_replace:
          template: |
                #cloud-config
                users:
                    - name: admin
                      ssh-authorized-keys: 
                                 - $adminSshKey 
                      lock_passwd: false
                    - name: linuxadmin
                      ssh-authorized-keys:
                                 - $linuxAdminSshKey
                      lock_passwd: false
                
                runcmd:
                    - usermod -p '$adminPassword' admin
                    - usermod -p '$linuxAdminPassword' linuxadmin

                write_files:
                -   content: |
                        {
                          "CERoleCEName"                   : "$ce_rolename",
                          "CENameCEMode"                   : "$ce_namemode",
                          "SystemName"               : "$system_name",
                          "SbcPersonalityType"       : "$personality",
                          "SbcMgmtMode"              : "$mgmt_mode",
                          "DosSupportSecPktPorts"    : "$dos_support_sec_port",
                          "EmsUsername"              : "$ems_user_name",
                          "EmsPassword"              : "$ems_password",
                          "EmsIP"                    : [ "$ems_ip_1", "$ems_ip_2" ],
                          "EmsDownloadConfig"        : "$downloadConfig",
                          "TemplateNameOamIP"                   : "heatRgActiveTemplate.yaml" [ "$oam_ip_1", "$oam_ip_2" ],
                          "CERole"                   : "$ce_role",
                          "TemplateName"             : "heatRgNoDhcp.yaml",
                          "TemplateVersion"          : "TEMPLATE_VERSION_UNKNOWN",
                          "EmsPrivateNodeParameters" : { "cluster_id": "$cluster_id" , "vnfc_id": "$vnfc_id" }
                        }
                    path: /opt/sonus/conf/userData.json


                #bootcmd:
                #-   /opt/sonus/bin/mountVolume.sh -v "$cinderVolumeIdForLogs"
                
          params:
              $ce_role:        { get_param: sbc_ceRole }
              $ce_name:        { get_param: sbc_ceName }
              $ce_mode:         { get_param: sbc_ceMode }
              $system_name:    { get_param: sbc_system_ceNamename }
              $system_name$personality:    { get_param: sbc_system_namepersonality }
              $personality:  $dos_support_sec_port:  { get_param: personalitydos_support_sec_port }
              $mgmt_mode:      { get_param: mgmt_mode }
              $ems_user_name:  { get_param: ems_user_name }
              $ems_password:   { get_param: ems_password }
              $ems_ip_1:       { get_param: ems_ip_1 }
              $ems_ip_2:       { get_param: ems_ip_2 }
              $cluster_id:     { get_param: cluster_id }
              $downloadConfig: { get_param: download_config }
              $oam_ip_1:  $cluster_id:     { get_param: clusteroam_ip_id1 }
              $downloadConfig$oam_ip_2:       { get_param: downloadoam_ip_config2 }
              $vnfc_id:        { list_join: ['-', [ { get_param: "OS::stack_name" }, { get_param: cluster_id }, '1']] }
              $adminSshKey:    { get_param: adminSshKey }
              $linuxAdminSshKey: { get_param: linuxAdminSshKey }
              $adminPassword:    { get_param: adminPassword }
              $linuxAdminPassword: { get_param: linuxAdminPassword }
              #$cinderVolumeIdForLogs: { get_param: cinder_volume_id_for_logs }

...

Code Block
{
  "CERole"                  : "ACTIVE",
  "CEName"                  : "vsbc1",
  "CEMode"                  : "sbc",
  "SystemName"              : "vsbcsystem",
  "SbcPersonalityType"      : "vsbc1msbc",
  "SystemNameSbcMgmtMode"              : "vsbcsystemdistributed",
  "SbcPersonalityTypeOamIP"      : "msbc",
  "SbcMgmtMode"          : [  : "distributed""10.54.58.104", "10.54.58.105" ],
  "EmsUsername"             : "restuser",
  "EmsPassword"             : "sonus123",
  "EmsIP"                   : [ "10.54.58.184", "10.54.58.185" ],
  "EmsDownloadConfig"       : "TrueFalse",
  "TemplateName"            : "heatRgActiveTemplateheatRgNoDhcp.yaml",
  "TemplateVersion"         : "V07V08.0100.00",
  "EmsPrivateNodeParameters": { "cluster_id": "MSBC" , "vnfc_id": "Msbc1_N1" }
}

...

Caption
0Table
1OpenStack Userdata Parameter Description
ParameterDescription
adminSshKeySpecifies the public SSH key to log into the SBC CLI as the admin user.
linuxAdminSshKeySpecifies the public SSH key to log into the SBC shell as the linuxadmin user.
adminPasswordThe hash of the password to log into the SBC CLI as the admin user.
linuxAdminPasswordThe hash of the password to log into the SBC shell as the linuxadmin user.
CERole

Assigned role for the SBC instance.

Allowed values:

  • Active
  • Standby

CEName

Specifies the actual CE name of the SBC instance. For more information, see System and Instance Naming Conventions.

CEName requirements:

  • Must start with an alphabetic character.
  • Can only contain alphabetic characters and/or numbers. No special characters.Cannot exceed 64 characters in lengthnumbers. No special characters.
  • Cannot exceed 64 characters in length.
CEMode

Specifies the role for the SBC instance within the cluster.

Allowed values:

  • oam - the node is an Operations, Administration, and Maintenance (OAM) node that manages configuration for an N:1 cluster.
  • sbc - the node is an SBC node.

SystemName

Specifies the actual system name of the SBC instance. For more information, see System and Instance Naming Conventions.

SystemName requirements:

  • Must start with an alphabetic character.
  • Can only contain alphabetic characters and/or numbers. No special characters.
  • Cannot exceed 26 characters in length.

SbcPersonalityType

Specifies the SBC or node personality type.
Allowed values:

  • isbc - integrated SBC
  • ssbc - signaling SBC
  • msbc - media SBC
  • mrfp - Media Resource Function Processor
  • slb - SIP-aware front-end load-balancer

DosSupportSecPktPorts

(Applicable only when port redundancy is enabled) Specifies whether to launch secondary Rx cores to support DoS protection for secondary packet ports.
Allowed values:

  • True (default)
  • False
SbcMgmtMode

Specifies the SBC management mode.
Allowed values:

  • centralized - a 1:1 HA redundancy model where one active instance is backed up by one standby instance. In centralized mode, the SBC configuration is synchronized between active and standby SBCs.
  • distributed (default) - an N:1 redundancy model where up to N active instances are backed up by a single standby instance. In this mode, each node is configured separately, and the configuration on active and standby instances are not synchronized. The . In this mode, a 1:1 HA pair of dedicated Operations, Administration, and Maintenance (OAM) nodes is deployed to configure and manage SBC nodes. The SBC instances in such deployments also have homogeneous configuration. The active OAM node holds the active configuration for the cluster and is responsible for sharing this configuration with the SBC nodes in the cluster.
OamIPSpecifies the IP addresses for the 1:1 HA pair of OAM nodes.

EmsUsername

Specifies the REST username for logging into EMS.
Default value: "None"

If the SBC SWe is not integrated with an EMS, this parameter should be set to "None".

EmsPassword

Specifies the REST password for logging into EMS.
Default value: "None"

If the SBC SWe is not integrated with an EMS, this parameter should be set to "None".

EmsIP

Specifies the EMS instance IPv4 or IPv6 address(es).

For IPv4

  • Standalone EMS IP address as - "aaaa:bbbb:cccc:dddd"

  • Geographical Redundancy EMS IP address as:

    ["aaaa:bbbb:cccc:dddd","aaaa:bbbb:cccc:dddd"]

For IPv6

  • Standalone EMS IP address as - "aaaa:bbbb:cccc:dddd::xx"

  • Geographical Redundancy EMS IP address as:

    ["aaaa:bbbb:cccc:dddd::xx","aaaa:bbbb:cccc:dddd::yy"]

EmsDownloadConfig

Whether configuration should be downloaded from the EMS.

Default value: True
Allowed values:

  • True
  • False

Note: Beginning in release 8.0, this option is no longer required and the configured value is ignored.

TemplateNameSpecifies the name of the template file.
TemplateVersionSpecifies the software version associated with the template.

EmsPrivateNodeParameters

Specifies the EMS private node parameters.
cluster_id - Unique ID for a specific cluster in a cloud environment which can contain one or more SBC instances.
vnfc_id - Unique ID specified for an SBC instance. The EMS identifies the nodes based on the VNFC-ID. If you reuse an existing VNFC-ID, the EMS will interpret it as a re-registration request and overwrite the existing data on the cloud node.

The cluster ID and vnfc ID both allow hyphens and cannot exceed 64 characters in length.

cinderVolumeIdForLogs

(Optional) Specifies the Cinder volume ID that you want to attach for logs.

Cinder volume length must be between 1 and 8 characters. allowed values: "^[A-Za-z0-9]{1}[-A-Za-z0-9]*[A-Za-z0-9]{1}$"

...