Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Add_workflow_for_techpubs

...

The D-SBC SWe instances are launched on OpenStack with sample Heat templates provided by Sonus. The Life Cycle Agent (LCA) performs the following:

  • LCA is part of the qcow2 image and starts automatically when SWe instance is booted.
  • Orchestrates the initial configuration and activation of the D-SBC SWe instance.    
  • Once the SWe instance boots up, Cloud-init retrieves Metadata and Userdata information associated with this instance from the config-drive and provides it to the LCA.

  • LCA validates the data before activating the SBC application. In the deployments where EMS is used, LCA registers with EMS and downloads the configuration data and installs it on the instance before bringing up the SBC application.

In the OpenStack environment, Metadata and Userdata are populated automatically by the Heat template when SWe instances are launched through templates. If required, Metadata can be updated using nova APIs. The Metadata and the Userdata are provided in the standard JSON format (.json file).

Format of Metadata

...

AUTH1UserResourceIdentifier{userKey=8a00a0c85fd202bb0160132c449a0026, userName='null'}
JIRAIDAUTHSBX-88817
REV5UserResourceIdentifier{userKey=8a00a0c85fd202bb0160132c449a0026, userName='null'}
REV6UserResourceIdentifier{userKey=8a00a0c85fd202bb0160132c449a0026, userName='null'}
REV3UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cdcd0ab1, userName='null'}
REV1UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cc4107b4, userName='null'}




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

Metadata Format

Code Block
# Mgt0 interface
   
"IF0" : { 
        "Port":"Mgt0",
		"DHCP": "<Dhcp_flag>",
        "GWV4":"<IP_Address>",
        "IPV4":"<IP_Address/Subnet_Prefix>",
        "GWV6" :"<IP_Address>",
        "IPV6":"<IP_Address/Subnet_Prefix>",
        "FIPV4":"<IP_Address>",
},

...

  

...

 

...


# 

...

Ha0 

...

interface
 "IF1" : {
        "Port" : "Ha0",
		"DHCP": "<Dhcp_flag>",
        "GWV4":"<IP_Address>",
        "IPV4":"<IP_Address/Subnet_Prefix>",
        "FIPV4":"<IP_Address>",
  },
  
#

...

 IP interface Pkt0.111
"IF2":  {
        "Port" :"Pkt0",
		"DHCP": "<Dhcp_flag>",
        "GWV4":"<IP_Address>",
        "IPV4":"<IP_Address/Subnet_Prefix>",
        "GWV6" :"<IP_Address>",
        "IPV6":"<IP_Address/Subnet_Prefix>",
        "FIPV4":"<IP_Address>",
        "RNat":"true",
        "VlanId":"111"
  },
},
  
# Secondary IP for Pkt0.111   
"AltIP2" : {
        "IFName":"IF2",
        "IP": "<IP_Address>",
        "FIPV4":"<IP_Address>"
 }

...


Code Block
# Another Secondary IP for Pkt0.111 
"AltIP3" : {
        "IFName":"IF2",
        "IP": "<IP_Address>",
        "FIPV4":"<IP_Address>"
 }
 
# 

...

IP interface Pkt0.222
"IF3":  {
        "Port":"Pkt0",
		"DHCP": "<Dhcp_flag>",
        "GWV4":"<IP_Address>",
        "IPV4":"<IP_Address/Subnet_Prefix>",
        "GWV6" :"<IP_Address>",
        "IPV6":"<IP_Address/Subnet_Prefix>",
        "FIPV4":"<IP_Address>",
        "RNat":"true",
        "VlanId":"222" 
  },
   
# Secondary IP for Pkt0.222
"AltIP4" : {
        "IFName":"IF3",
        "IP": "<IP_Address>",
        "FIPV4":"<IP_Address>", 
 },
   
#

...

 

...

IP interface Pkt1.333
"IF4":  {
        "Port":"Pkt1",
		"DHCP": "<Dhcp_flag>",
        "GWV4":"<IP_Address>",
        "IPV4":"<IP_Address/Subnet_Prefix>",
        "GWV6" :"<IP_Address>",
        "IPV6":"<IP_Address/Subnet_Prefix>",
        "FIPV4":"<IP_Address>",
        "RNat":"true",
        "VlanId":"333"
  },
   
# Secondary IP for Pkt1.333
"AltIP5" : {
        "IFName":"IF4",
        "IP": "<IP_Address>",
        "FIPV4":"<IP_Address>"

...


},

ClusterIp: "<RG_IP>"


If a port needs to be part of multiple VLANs, IF definitions including the

...

port must be repeated for

...

each VLAN IDs, as follows:

Code Block
"IF3": {
"GWV4": "<IP_Address>",
"DHCP": "<Dhcp_flag>",
"Port": "Pkt1",
"VlanId": "<VLAN_ID_1>",
"IPV4": "<IP_Address/Subnet_Prefix>"
},

"IF4": {
"GWV4": "<IP_Address>",
"DHCP": "<Dhcp_flag>",
"Port": "Pkt1",
"VlanId": "<VLAN_ID_2>",
"IPV4": "<IP_Address/Subnet_Prefix>"
},

"IF5": {
"GWV4": "<IP_Address>",
"

...

DHCP": "

...

<Dhcp_flag>",
"

...

Port": "Pkt1",
"VlanId": "<VLAN_ID_3>",
"IPV4": "<IP_Address/Subnet_Prefix>"
}

Pagebreak

Example

...

Metadata

Code Block
languagenone
#Interface definition for the Mgt0 port.
"IF0" : {
        "Port":"Mgt0",
		"DHCP": "False",
        "GWV4":"10.0.0.1",
        "IPV4":"10.0.0.24/24",
        "GWV6" :"fd00:10:2b50:4000::1",
        "IPV6":"fd00:10:2b50:4000::1/64",
        "FIPV4":"10.14.52.108",
},
   
# JSON for the Ha0 interface
 "IF1" : {
        "Port" : "Ha0",
		"DHCP": "False",
        "GWV4":"192.168.100.1",
        "IPV4":"192.168.100.24/24",
  },
  
# JSON for the IP interface Pkt0.2007
"IF2":  {
        "Port" :"Pkt0",
		"DHCP": "False",
        "GWV6" :"fd00:10:6b21:2007::1",
        "IPV6":"fd00:10:6b21:2007::1001/64",
        "VlanId":"2007"
  },
# JSON for the IP interface Pkt1.2008

"IF3":  {
        "Port" :"Pkt1",
		"DHCP": "False",
        "GWV6" :"fd00:10:6b21:2008::1",
        "IPV6":"fd00:10:6b21:2008::1001/64",
        "VlanId":"2008"
  },
},
  
# Secondary IP for Pkt0.2007 
"AltIP2" : {
        "IFName":"IF2",
        "IP": "fd00:10:6b21:2007::1002",
}
  
# Another Secondary IP for Pkt0.2007
"AltIP3" : {
        "IFName":"IF2",
        "IP": "fd00:10:6b21:2007::1003",
},

ClusterIp: 

...

"192.168.100.25" 


Info
titleNote

...

  • Ensure the alternate IP definitions have

...

  • corresponding IF names.
  • IF dictionary

...

  • names are any name prefixed by IF .

Example : IF-ABC, IFASD, IF_AS, and so on.

  • The name for an alternate IP address on a

...

  • port can be constructed with port/

...

  • VLAN information.

Example: The second alternate IP address for pkt0's first VLAN IP interface can be named as PKT0_V01_ALT_IP_02.

  • The

...

  • maximum length of the name is 255 characters.


This section describes

...

parameters

...

within the SBC metadata

...

:

Interface Definition Format

Code Block
"

...

IFx" : { 

...


        "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

...

IFx

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

...

.

...

Primary IP on the Private Port  + Prefix - V4

Should be provided only in case of DHCP disabled on the port requires V4 address.

Provide IP address and prefix. Format : 10.54.116.53/23

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

...

Gateway IP V4

...

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.

Provide IP address and prefix. Format : fd00:10:6b50:4350::69/64

...

Gateway IP V

Should be provided only in case of DHCP disabled on the port requires V6 address.

...

Example: 10.54.116.53/23

Info
titleNote

Do not use a non-routable IP address (example: 169.254.x.x), even for the HA port, if you are using a non-DHCP configuration. 


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

...

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

...

Reverse NAT flag

Values:

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

Default value - True

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.



Alternate IP Definition

...

An alternate IP definition contains the information

...

for an additional IP

...

address associated with

...

a port. For each additional IP address added to the port, there has to be corresponding ALT IP definition. The

...

following is an example definition with the parameters explained in the table that follows the example.

Code Block
"AltIP3" : {

        "IFName":"IF2",
        "IP": "10.2.0.7",
		"FIPV4":"aaa.bbb.ccc.eee"
 }


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

...

It can contain either V4 or V6 address, based on what version the parent Interface dictionary contains.
If, say, IF definition has V4 address, the ALT IP definition also should have only V4 address. Same logic goes for V6 addresses.
In case of dual stack scenario, since, Interface dictionary has both V4 and V6 addresses, the ALT IP definition can also have V4 and V6 addresses. But both have to be defined in separate ALT dictionary, pointing to it's parent dictionary.

...

FIPV4

...

Floating IP on the Alternate IP
If a floating IP is associated with the ALT (alternate/additional) IP, the value against this field must contain the floating IP.
Note: The RNat flag which is defined in Interface dictionary, is an interface-wide entity. If the RNat flag is disabled ( value = False ) in interface dictionary, the FIP value provided in the ALT IP definition is not considered while populating the metaVariables for this port.

Format of Userdata for HA

If the CERole parameter is Active/Standby, it represents HA userdata format.

Code Block
languagenone
{
 "CERole" : "CERole",
 "CEName" : "CEName",
 "SystemName" : "SystemName",
 "SbcPersonalityType" : "SbcPersonalityType",
 "PeerCEName" : "PeerCEName",
 "PeerCEHa0IPv4Prefix" : "PeerCEHa0IPv4Prefix",
 "PeerCEHa0IPv4Address" : "PeerCEHa0IPv4Address",
 "PeerCEMgt0IPv4Prefix" : "PeerCEMgt0IPv4Prefix",
 "PeerCEMgt0IPv4Address" : "PeerCEMgt0IPv4Address",
 "EmsUsername" : "EmsUsername",
 "EmsPassword" : "EmsPassword",
 "EmsIP" : "EmsIP",
 "EmsDownloadConfig" : "EmsDownloadConfig",
 "EmsPrivateNodeParameters": { "cluster_id": "" , "vnfc_id": "" }
 }

Example of Userdata for HA

If the CERole parameter is Active/Standby, it represents HA userdata format.

Code Block
languagenone
{
 "CERole" : "ACTIVE",
 "CEName" : "vsbc1",
 "SystemName" : "vsbcSystem",
 "SbcPersonalityType" : "isbc",
 "PeerCEName" : "vsbc2",
 "PeerCEHa0IPv4Prefix" : "24",
 "PeerCEHa0IPv4Address" : "192.168.100.25",
 "PeerCEMgt0IPv4Prefix" : "24",
 "PeerCEMgt0IPv4Address" : "10.0.0.25",
 "EmsUsername" : "None",
 "EmsPassword" : "None",
 "EmsIP" : "",
 "EmsDownloadConfig" : "False",
 "EmsPrivateNodeParameters": { "cluster_id": "SBC_Cluster" , "vnfc_id": "SSBC_Config1" }
 }

Format of Userdata for Standalone

If the CERole parameter is missing, it represents standalone userdata format.

Code Block
{
 "CEName" : "CEName",
 "SystemName" : "SystemName",
 "SbcPersonalityType" : "SbcPersonalityType",
 "EmsUsername" : "EmsUsername",
 "EmsPassword" : "EmsPassword",
 "EmsIP" : "EmsIP",
 "EmsDownloadConfig" : "EmsDownloadConfig",
 "ConfigDownloadName" : "ConfigDownloadName",
 "EmsPrivateNodeParameters" : { "cluster_id": "","vnfc_id":""}
}

Example of Userdata for Standalone

If the CERole parameter is missing, it represents standalone userdata format.

Code Block
{
 "CEName" : "vsbc1",
 "SystemName" : "vsbcSystem",
 "SbcPersonalityType" : "isbc",
 "EmsUsername" : "restuser",
 "EmsPassword" : "sonus1",
 "EmsIP" : "10.54.58.23",
 "EmsDownloadConfig" : "True",
 "ConfigDownloadName" : "savedMSBCconfiguration1",
 "EmsPrivateNodeParameters" : { "cluster_id": "Cluster_SSBC","vnfc_id":"SSBC_Config1"}
}

...

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.



Cluster IP

The parameter ClusterIp is used to form a Redundancy Group (RG) during startup. You must pass HA0 the IP address of one of the nodes in the RG in the ClusterIp parameter. The format is shown below.

Code Block
ClusterIp: "<RG_IP>"


Caption
0Table
1Cluster IP Parameters
3Cluster IP


ParameterDescription
ClusterIpClusterIP is the IP address of one of the nodes in the RG used for RG formation on startup.  


Pagebreak


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: |
                        {
                          "CEName"                   : "$ce_name",
                          "CEMode"                   : "$ce_mode",
                          "SystemName"               : "$system_name",
                          "SbcPersonalityType"       : "$personality",
                          "SbcHaMode"                : "$ha_mode",
                          "DosSupportSecPktPorts"    : "$dos_support_sec_port",
                          "EmsUsername"              : "$ems_user_name",
                          "EmsPassword"              : "$ems_password",
                          "EmsIP"                    : [ "$ems_ip_1", "$ems_ip_2" ],
                          "EmsDownloadConfig"        : "$downloadConfig",
                          "OamIP"                    : [ "$oam_ip_1", "$oam_ip_2" ],
                          "Oam1Ip"                   : "$oam_ip1",
                          "Oam2Ip"                   : "$oam_ip2",
                          "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_name }
              $personality:    { get_param: personality }
              $dos_support_sec_port:  { get_param: dos_support_sec_port }
              $ha_mode:        { get_param: ha_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:       { get_param: oam_ip_1 }
              $oam_ip_2:       { get_param: oam_ip_2 }
              $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 }


Info

The userdata JSON is present under the write_file directory /opt/sonus/conf/userData.json.

Example Userdata

Code Block
{
  "CERole"                  : "ACTIVE",
  "CEName"                  : "vsbc1",
  "CEMode"                  : "sbc",
  "SystemName"              : "vsbcsystem",
  "SbcPersonalityType"      : "msbc",
  "SbcHaMode"               : "Nto1",
  "OamIP"                   : [ "10.54.58.104", "10.54.58.105" ],
  "Oam1Ip"                  :  "10.54.58.104"
  "Oam2Ip"                  :  "10.54.58.105"
  "EmsUsername"             : "restuser",
  "EmsPassword"             : "sonus123",
  "EmsIP"                   : [ "10.54.58.184", "10.54.58.185" ],
  "EmsDownloadConfig"       : "False",
  "TemplateName"            : "heatRgNoDhcp.yaml",
  "TemplateVersion"         : "V08.00.00",
  "EmsPrivateNodeParameters": { "cluster_id": "MSBC" , "vnfc_id": "Msbc1_N1" }
}


Info
titleNote:

Beginning with release 7.1, you must include SSH keys or passwords in the Heat template to log into the SBC CLI or linux shell. Because they are more secure, SSH key fields are mandatory in the Heat templates.
You can use the ssh-keygen command to generate keys. This command generates two files id_rsa and id_rsa.pub in your /home/<user>/.ssh directory. The contents of the id_rsa.pub file contains the input value for the keys in the template. Optionally, keys can also be protected using a passphrase.
Use man ssh-keygen for more options.

Passwords are optional fields. The password input is not plain text, it is a hash of the password. The hash password can be generated using the command: mkpasswd --method=SHA-512 --rounds=4096
Use man mkpasswd for more options.

...


Caption
0Table
1OpenStack Userdata Parameter Description


Parameter

...

CEName

...

64

...

Description
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

...

...

requirements:

  • Must start with an alphabetic character.

...

  • Can only contain alphabetic characters and/or numbers. No special characters.
  • Cannot exceed 64 characters in length.

...

CEMode

...

26

...

vsbcSystem

Specifies the

...

role for the SBC instance

...

System Requirements:

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

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

...

PeerCEName

...

64

...

vsbc2

...

. For more information, see System and Instance Naming

...

in SBC SWe N:1 and Cloud-Based Systems.

SystemName requirements:

  • Must start with an alphabetic character.

...

  • Can only contain alphabetic characters and/or numbers. No special characters.
  • Cannot exceed

...

PeerCEHa0IPv4Prefix

...

N/A

...

Specifies the IPv4 routing prefix of the HA port for the peer SBC node. This parameter is applicable only in case of instance is launched in HA mode.

...

PeerCEHa0IPv4Address

...

N/A

...

Specifies the IPv4 address of the HA port for the peer SBC node. This parameter is applicable only in case of instance is launched in HA mode.

...

PeerCEMgt0IPv4Prefix

...

N/A

...

Specifies the IPv4 routing prefix of the management port for the peer SBC node. This parameter is applicable only in case of instance is launched in HA mode.

...

PeerCEMgt0IPv4Address

...

N/A

...

Specifies the IPv4 address of the management port for the peer SBC node. This parameter is applicable only in case of instance is launched in HA mode.

...

PeerCEMgt0IPv6Prefix

...

N/A

...

Specifies the IPv6 routing prefix of the management port for the peer SBC node. This parameter is applicable only in case of instance is launched in HA mode.

...

PeerCEMgt0IPv6Address

...

N/A

...

Specifies the IPv6 address of the management port for the peer SBC node. This parameter is applicable only in case of instance is launched in HA mode.

...

SbcPersonalityType

...

N/A

...

Specifies the SBC personality type.
Allowed Value:

  • isbc
  • ssbc
  • msbc

...

EmsUsername

...

N/A

...

Specifies the REST log in credentials of EMS.
Default Value: restuser

...

EmsPassword

...

N/A

...

Specifies the REST log in credentials of EMS.
Default Value: sonus123

...

EmsIP

...

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

  • 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
SbcHaMode

Specifies the SBC HA model for the deployment.
Allowed values:

  • 1to1 - a 1:1 HA redundancy model where one active instance is backed up by one standby instance. In HA 1:1 mode, the SBC configuration is synchronized between active and standby SBCs.
  • Nto1 (default) - an N:1 redundancy model where up to N active instances are backed up by a single standby instance. 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 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.
OamIP

Specifies the IP addresses for the 1:1 HA pair of OAM nodes.

For IPv4:  ["a.b.c.x","a.b.c.y"]

For IPv6:  [

...

"aaaa:bbbb:cccc:dddd::xx"

...

Geographical Redundancy EMS IP address as:

...

,"aaaa:bbbb:cccc:dddd:

...

:yy"]

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).

...

EmsPrivateNodeParameters

...

64

...

Specifies the EMS private node parameters.
cluster_id - Unique to one specific cluster in a cloud environment which can contain one or more SBC instances.
vnfc_id - Unique ID specified for SBC instance

The cluster ID and vnfc ID both allows hyphen.

...

EmsDownloadConfig

...

N/A

...

Whether Configuration needs to be downloaded from EMS.Default value : True
Allowed Value:

  • True
  • False

...

CERole 

...

N/A

...

Assigned role of SBC instance.

Allowed Value:

  • Active
  • Standby

...

ConfigDownloadName

...

64

...

savedMSBCconfiguration1

...

The SBC configuration name can contain only letters, numbers, dashes (-), apostrophes ('), underscores (_), colons (:) and spaces

For IPv4

  • Standalone EMS IP address as - "a.b.c.x"

  • Geographical Redundancy EMS IP address as:

    ["a.b.c.x","a.b.c.y"]

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}$"


Metavariables

Interface-related information (contents of interface and ALT IP definitions) provided in userdata and/or metadata is flattened down into key-value pairs, which can be retrieved using the CLI.

An example metavariable table for a 4:1 M-SBC is shown below:

Code Block
admin@vMsbcl> show table system metavariable
CE NAME             NAME        VALUE
------------------------------------------------------
vMsbcl-10.10.20.17  OamIP       ['10.10.20.17','10.10.20.18'] 
vMsbcl-10.10.20.17  Oam1Ip      10.10.20.17 
vMsbcl-10.10.20.17  Oam2Ip      10.10.20.18 
vMsbcl-10.10.20.17  IFO.GWV6 	fd00:10:6b50:43AO::1
vMsbcl-10.10.20.17  IF0.IPV6 	FD00:10:6B50:43AO::DO
vMsbcl-10.10.20.17  IFO.Port 	MgtO
vMsbcl-10.10.20.17  IFl.GWV4 	10.10.20.1
vMsbcl-10.10.20.17  IFl.IPV4 	10.10.20.17
vMsbcl-10.10.20.17  IFl.Port 	HaO
vMsbcl-10.10.20.17  IF2.GWV6 	FD00:10:6B50:4D74::1
vMsbcl-10.10.20.17  IF2.IPV6 	FD00:10:6B50:4D74::DO
vMsbcl-10.10.20.17  IF2.Port 	PktO
vMsbcl-10.10.20.17  IF3.GWV6 	FD00:10:6B50:4D70::1
vMsbcl-10.10.20.17  IF3.IPV6 	FD00:10:6B50:4D70::9
vMsbcl-10.10.20.17  IF3.Port 	PktO
vMsbcl-10.10.20.17  IF4.GWV4 	10.54.226.129
vMsbcl-10.10.20.17  IF4.IPV4 	10.54.226.138
vMsbcl-10.10.20.17  IF4.Port 	PktO
vMsbcl-10.10.20.17  IF5.GWV4 	10.54.226.193
vMsbcl-10.10.20.17  IF5.IPV4 	10.54.226.202
vMsbcl-10.10.20.17  IF5.Port 	PktO
vMsbcl-10.10.20.17  IF6.GWV4 	10.10.13.1
vMsbcl-10.10.20.17  IF6.IPV4 	10.10.13.17
vMsbcl-10.10.20.17  IF6.Port 	Pktl
vMsbcl-10.10.20.17  IF2.Vlanid 	313
vMsbcl-10.10.20.17  IF3.Vlanid 	309
vMsbcl-10.10.20.17  IF4.Vlanid 	311
vMsbcl-10.10.20.17  IF5.Vlanid 	312
vMsbcl-10.10.20.17  IFO.PrefixV6 60
vMsbcl-10.10.20.17  IFl.PrefixV4 24
vMsbcl-10.10.20.17  IF2.PrefixV6 64
vMsbcl-10.10.20.17  IF3.PrefixV6 64


Code Block
vMsbc2-10.10.20.18  OamIP       ['10.10.20.17','10.10.20.18'] 
vMsbc2-10.10.20.18  Oam1Ip      10.10.20.17 
vMsbc2-10.10.20.18  Oam2Ip      10.10.20.18
vMsbc2-10.10.20.18  IF4.PrefixV4 26
vMsbc2-10.10.20.18  IF5.PrefixV4 26
vMsbc2-10.10.20.18  IF6.PrefixV4 24
vMsbc2-10.10.20.18  IFO.GWV6 	fd00:10:6b50:43AO::1
vMsbc2-10.10.20.18  IF0.IPV6 	FD00:10:6B50:43AO::Dl
vMsbc2-10.10.20.18  IFO.Port 	MgtO
vMsbc2-10.10.20.18  IFl.GWV4 	10.10.20.1
vMsbc2-10.10.20.18  IFl.IPV4 	10.10.20.18
vMsbc2-10.10.20.18  IFl.Port 	HaO
vMsbc2-10.10.20.18  IF2.GWV6 	

Meta Variables

Interface related information (contents of Interface and ALT IP definition) provided in userdata and/or metadata is flattened down into key-value pairs, which would be used for CLI configuration.

MetaVariable dictionary is populated in the file /opt/sonus/instanceMetaVar.json and the corresponding XML file is injected into the CDB, is located at /opt/sonus/sbx/lca/sonusMetaVariables.xml

If the interface dictionary is not provided in userdata/metadata, it would be assumed that all the interface are created from subnets which have DHCP enabled. The following is populated in /opt/sonus/instanceMetaVar.json:

Code Block
{
    "IF3.Port": "Pkt1",
    "IF2.Port": "Pkt0",
    "IF1.Port": "Ha0",
    "IF0.Port": "Mgt0"
}

The IP address is obtained from DHCP query for respective interface. The IP address, Gateway address, Subnet prefix is directly populated in the /opt/sonus/sbx/lca/sonusMetaVariables.xml file.

The metaVariables can be viewed from the CLI command as shown below : 

...

FD00:10:6B50:4D74::

...

1
vMsbc2-10.10.20.18  IF2.IPV6 	FD00:10:6B50:4D74::Dl
vMsbc2-10.10.20.18  IF2.Port 	PktO
vMsbc2-10.10.20.18  IF3.GWV6 	FD00:10:6B50:4D70::1

...


vMsbc2-10.10.20.18  

...

IF3.IPV6 

...

	FD00:10:6B50:4D70::

...

A
vMsbc2-10.10.20.18  

...

IF3.Port 

...

	PktO
vMsbc2-10.10.20.18  IF4.GWV4 	10.54.226.129
vMsbc2-10.10.20.18  IF4.IPV4 	10.54.226.

...

139
vMsbc2-10.10.20.18  

...

IF4.Port 	PktO
vMsbc2-10.10.20.18  IF5.GWV4 	10.54.226.

...

193
vMsbc2-10.10.20.18  IF5.IPV4 	10.54.226.203
vMsbc2-10.10.20.18  IF5.Port 	PktO
vMsbc2-10.10.20.18  IF6.GWV4 	10.10.13.1
vMsbc2-10.10.20.18  IF6.IPV4 	10.10.13.18
vMsbc2-10.10.20.18  IF6.Port 	Pktl
vMsbc2-10.10.20.18  IF2.Vlanid 	313
vMsbc2-10.10.20.18  IF3.Vlanid 	309
vMsbc2-10.10.20.18  IF4.Vlanid 	311
vMsbc2-10.10.20.18  IF5.Vlanid 	312
vMsbc2-10.10.20.18  IFO.PrefixV6 60
vMsbc2-10.10.20.18  IFl.PrefixV4 24
vMsbc2-10.10.20.18  IF2.PrefixV6 64
vMsbc2-10.10.20.18  IF3.PrefixV6 64
vMsbc2-10.10.20.18  IF4.PrefixV4 26
vMsbc2-10.10.20.18  IF5.PrefixV4 26
vMsbc2-10.10.20.18  IF6.PrefixV4 24
vMsbc3-10.10.20.19  OamIP       ['10.10.20.17','10.10.20.18'] 
vMsbc3-10.10.20.19  Oam1Ip      10.10.20.17 
vMsbc3-10.10.20.19  Oam2Ip      10.10.20.18
vMsbc3-10.10.20.19  IFO.GWV6 	fd00:10:6b50:43AO::1
vMsbc3-10.10.20.19  IF0.IPV6 	FD00:10:6B50:43AO::D2
vMsbc3-10.10.20.19  IFO.Port 	MgtO
vMsbc3-10.10.20.19  IFl.GWV4 	10.10.20.1
vMsbc3-10.10.20.19  IFl.IPV4 	10.10.20.19
vMsbc3-10.10.20.19  IFl.Port 	HaO
vMsbc3-10.10.20.19  IF2.GWV6 	FD00:10:6B50:4D74::1
vMsbc3-10.10.20.19  IF2.IPV6 	FD00:10:6B50:4D74::D2
vMsbc3-10.10.20.19  IF2.Port 	PktO
vMsbc3-10.10.20.19  IF3.GWV6 	FD00:10:6B50:4D70::1
vMsbc3-10.10.20.19  IF3.IPV6 	FD00:10:6B50:4D70::B
vMsbc3-10.10.20.19  IF3.Port 	PktO
vMsbc3-10.10.20.19  IF4.GWV4 	10.54.226.129
vMsbc3-10.10.20.19  IF4.IPV4 	10.54.226.140
vMsbc3-10.10.20.19  IF4.Port 	PktO
vMsbc3-10.10.20.19  IF5.GWV4 	10.54.226.193
vMsbc3-10.10.20.19  IF5.IPV4 	10.54.226.204
vMsbc3-10.10.20.19  IF5.Port 	PktO
vMsbc3-10.10.20.19  IF6.GWV4 	10.10.13.1
vMsbc3-10.10.20.19  IF6.IPV4 	10.10.13.19
vMsbc3-10.10.20.19  IF6.Port 	Pktl


Code Block
vMsbc3-10.10.20.19  IF2.Vlanid 	313
vMsbc3-10.10.20.19  IF3.Vlanid 	309
vMsbc3-10.10.20.19  IF4.Vlanid 	311
vMsbc3-10.10.20.19  IFS.Vlanid 	312
vMsbc3-10.10.20.19  IFO.PrefixV6 60
vMsbc3-10.10.20.19  IFl.PrefixV4 24
vMsbc3-10.10.20.19  IF2.PrefixV6 64
vMsbc3-10.10.20.19  IF3.PrefixV6 64
vMsbc3-10.10.20.19  IF4.PrefixV4 26
vMsbc3-10.10.20.19  IF5.PrefixV4 26
vMsbc3-10.10.20.19  IF6.PrefixV4 24
vMsbc4-10.10.20.26  OamIP       ['10.10.20.17','10.10.20.18'] 
vMsbc4-10.10.20.26  Oam1Ip      10.10.20.17 
vMsbc4-10.10.20.26  Oam2Ip      10.10.20.18
vMsbc4-10.10.20.26  IFO.GWV6 	fd00:10:6b50:43AO::1
vMsbc4-10.10.20.26  IF0.IPV6 	FD00:10:6B50:43AO::D9
vMsbc4-10.10.20.26  IFO.Port 	MgtO
vMsbc4-10.10.20.26  IFl.GWV4 	10.10.20.1
vMsbc4-10.10.20.26  IFl.IPV4 	10.10.20.26
vMsbc4-10.10.20.26  IFl.Port 	HaO
vMsbc4-10.10.20.26  IF2.GWV6 	FD00:10:6B50:4D74::1
vMsbc4-10.10.20.26  IF2.IPV6 	FD00:10:6B50:4D74::D9
vMsbc4-10.10.20.26  IF2.Port 	PktO
vMsbc4-10.10.20.26  IF3.GWV6 	FD00:10:6B50:4D70::1
vMsbc4-10.10.20.26  IF3.IPV6 	FD00:10:6B50:4D70::12
vMsbc4-10.10.20.26  IF3.Port 	PktO
vMsbc4-10.10.20.26  IF4.GWV4 	10.54.226.129
vMsbc4-10.10.20.26  IF4.IPV4 	10.54.226.147
vMsbc4-10.10.20.26  IF4.Port 	PktO
vMsbc4-10.10.20.26  IF5.GWV4 	10.54.226.193
vMsbc4-10.10.20.26  IF5.IPV4 	10.54.226.211
vMsbc4-10.10.20.26  IF5.Port 	PktO
vMsbc4-10.10.20.26  IF6.GWV4 	10.10.13.1
vMsbc4-10.10.20.26  IF6.IPV4 	10.10.13.26
vMsbc4-10.10.20.26  IF6.Port 	Pktl
vMsbc4-10.10.20.26  IF2.Vlanid 	313
vMsbc4-10.10.20.26  IF3.Vlanid 	309
vMsbc4-10.10.20.26  IF4.Vlanid 	311
vMsbc4-10.10.20.26  IF5.Vlanid 	312
vMsbc4-10.10.20.26  IFO.PrefixV6 60
vMsbc4-10.10.20.26  IFl.PrefixV4 24
vMsbc4-10.10.20.26  IF2.PrefixV6 64
vMsbc4-10.10.20.26  IF3.PrefixV6 64
vMsbc4-10.10.20.26  IF4.PrefixV4 26
vMsbc4-10.10.20.26  IF5.PrefixV4 26
vMsbc4-10.10.20.26  IF6.PrefixV4 24


Code Block
vMsbcS-10.10.20.11  OamIP       ['10.10.20.17','10.10.20.18'] 
vMsbcS-10.10.20.11  Oam1Ip      10.10.20.17 
vMsbcS-10.10.20.11  Oam2Ip      10.10.20.18
vMsbcS-10.10.20.11  IFO.GWV6 	fd00:10:6b50:43AO::1
vMsbcS-10.10.20.11  IF0.IPV6 	FD00:10:6B50:43AO::CA
vMsbcS-10.10.20.11  IFO.Port 	MgtO
vMsbcS-10.10.20.11  IFl.GWV4 	10.10.20.1
vMsbcS-10.10.20.11  IFl.IPV4 	10.10.20.11
vMsbcS-10.10.20.11  IFl.Port 	HaO
vMsbcS-10.10.20.11  IF2.GWV6 	FD00:10:6B50:4D74::1
vMsbcS-10.10.20.11  IF2.IPV6 	FD00:10:6B50:4D74::CA
vMsbcS-10.10.20.11  IF2.Port 	PktO
vMsbcS-10.10.20.11  IF3.GWV6 	FD00:10:6B50:4D70::1
vMsbcS-10.10.20.11  IF3.IPV6 	FD00:10:6B50:4D70::3
vMsbcS-10.10.20.11  IF3.Port 	PktO
vMsbcS-10.10.20.11  IF4.GWV4 	10.54.226.129
vMsbcS-10.10.20.11  IF4.IPV4 	10.54.226.132
vMsbcS-10.10.20.11  IF4.Port 	PktO
vMsbcS-10.10.20.11  IF5.GWV4 	10.54.226.193
vMsbcS-10.10.20.11  IF5.IPV4 	10.54.226.196
vMsbcS-10.10.20.11  IF5.Port 	PktO
vMsbcS-10.10.20.11  IF6.GWV4 	10.10.13.1
vMsbcS-10.10.20.11  IF6.IPV4 	10.10.13.11
vMsbcS-10.10.20.11  IF6.Port 	Pktl
vMsbcS-10.10.20.11  IF2.Vlanid 	313
vMsbcS-10.10.20.11  IF3.Vlanid 	309
vMsbcS-10.10.20.11  IF4.Vlanid 	311
vMsbcS-10.10.20.11  IFS.Vlanid 	312
vMsbcS-10.10.20.11  IFO.PrefixV6 60
vMsbcS-10.10.20.11  IFl.PrefixV4 24
vMsbcS-10.10.20.11  IF2.PrefixV6 64
vMsbcS-10.10.20.11  IF3.PrefixV6 64
vMsbcS-10.10.20.11  IF4.PrefixV4 26
vMsbcS-10.10.20.11  IF5.PrefixV4 26
vMsbcS-10.10.20.11  IF6.PrefixV4 24
[ok] [2017-08-04 12:26:35]


The metavariable names are used for configuration:

Code Block
set addressContext default ipInterfaceGroup LIG1 ipInterface LIG1_V4 ipVarV4 IF2.IPV4 prefixVarV4 IF2.PrefixV4 vlanTagVar IF5.VlanId portName pkt0 state enabled mode inService
set addressContext default ipInterfaceGroup LIG2 ipInterface LIG2_V4 ipVarV4 IF3.IPV4 prefixVarV4 IF3.PrefixV4 ipPublicVarV4 IF3.FIPV4 portName pkt1 state enabled mode inService
set addressContext default zone ZONE_AS sipSigPort 3 ipInterfaceGroup LIG2 ipVarV4 IF3.IPV4 ipPublicVarV4 IF3.FIPV4 state enabled
set system dsbc dsbcSigPort ipInterfaceGroup SRRIMSMediaIPv6 ipVarV6 

 

These metaVariables are used to make configurations, a sample of it is as shown below:

...

PKT0_V02_ALT_IP_01.IP mode inService state enabled

...


commit

Pagebreak