Add_workflow_for_techpubs |
---|
...
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
...
AUTH1 | UserResourceIdentifier{userKey=8a00a0c85fd202bb0160132c449a0026, userName='null'} |
---|
JIRAIDAUTH | SBX-88817 |
---|
REV5 | UserResourceIdentifier{userKey=8a00a0c85fd202bb0160132c449a0026, userName='null'} |
---|
REV6 | UserResourceIdentifier{userKey=8a00a0c85fd202bb0160132c449a0026, userName='null'} |
---|
REV3 | UserResourceIdentifier{userKey=8a00a02355cd1c2f0155cd26cdcd0ab1, userName='null'} |
---|
REV1 | UserResourceIdentifier{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
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. |
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>"
} |
...
Code Block |
---|
|
#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 |
---|
|
- 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. |
...
Example: The second alternate IP address for pkt0's first VLAN IP interface can be named as PKT0_V01_ALT_IP_02. |
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
"<IP_Address/Subnet_Prefix>",
" |
...
...
...
...
"<IP_Address/Subnet_Prefix>",
" |
...
...
...
<IP_Address>",
"VlanId":" |
...
...
...
Anchor |
---|
| Interface Parameter Table |
---|
| Interface Parameter Table |
---|
|
The elements which can constitute an interface definition: Caption |
---|
0 | Table |
---|
1 | Interface Definition Parameters |
---|
3 | Interface Definition |
---|
|
...
...
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. | DHCP | This flag is used to enable or disable |
|
...
DHCP. If the DHCP is set to False, you need to provide fixed |
|
...
...
...
Port Name
One of – Mgt0, Ha0, Pkt0, Pkt1. This indicates the actual port to which the definition belongs to.
...
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
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 |
|
...
...
...
private port and prefix in IPv4 format. Should be provided only |
|
...
when DHCP is disabled on the port and it requires |
|
...
...
Example: 10.54.116.53/23 NOTE: 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 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 |
|
...
...
...
a Floating IP is associated (in DHCP enabled and disabled |
|
...
scenarios) 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
...
An alternate IP definition contains the information for an additional IP address associated with a
Alternate IP Definition
...
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 |
---|
0 | Table |
---|
1 | Alternate IP Definition Parameters |
---|
3 | Alternate IP Definition |
---|
|
...
Parameter | Description |
---|
AltIP3 | Alternate |
|
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
, AltIP3 is an example. Other examples for ALT IP identifier : Alt_Pkt0_AX, |
|
...
...
signaling_Pkt0_05. | IFName | Interface |
|
...
...
name Makes an association between the ALT IP address and an existing interface |
|
...
...
you change the interface definition name (i.e |
|
...
...
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 |
|
...
...
...
...
...
...
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.
Cluster IP
...
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. |
|
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 |
---|
0 | Table |
---|
1 | Cluster IP Parameters |
---|
3 | Cluster IP |
---|
|
...
|
Parameter | Description |
---|
ClusterIp |
|
...
ClusterIP is the IP address of |
|
...
one of the nodes in the RG used for RG formation on startup. |
|
Code Block |
---|
user_data_format: RAW
user_data:
str_replace:
template: |
#cloud-config
|
...
Code Block |
---|
{
"CERole" : "CERole",
"CEName" : "CEName",
"SystemName" : "SystemName",
"SbcPersonalityType" : "SbcPersonalityType",
"EmsUsername" : "EmsUsername",
"EmsPassword" : "EmsPassword",
"EmsIP" : "EmsIP",
"EmsDownloadConfig" : "EmsDownloadConfig",
"ConfigDownloadName" : "ConfigDownloadName",
"EmsPrivateNodeParameters" : { "cluster_id": "","vnfc_id":""}
} |
Example of Userdata
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Div |
---|
|
Caption |
---|
0 | Table |
---|
1 | OpenStack Userdata Parameter Description |
---|
| Parameter | Length | Example | Description |
---|
CERole | | | Assigned role of SBC instance. Allowed Value: | CEName | 64 | vsbc1 | Specifies the actual CE name of the SBC instance. For more information, see System and Instance Naming Convention. CEName Requirements: - Must start with an alphabetic character.
- Only contain alphabetic characters and/or numbers. No special characters.
- Cannot exceed 64 characters in length
| SystemName | 26 | vsbcSystem | Specifies the actual system name of the SBC instance. For more information, see System and Instance Naming Convention. System Requirements: - Must start with an alphabetic character.
- Only contain alphabetic characters and/or numbers. No special characters.
- Cannot exceed 26 characters in length.
| SbcPersonalityType | N/A | isbc | Specifies the SBC personality type. Allowed Value: | EmsUsername | N/A | restuser | Specifies the REST log in credentials of EMS. Default Value: restuser | EmsPassword | N/A | sonus123 | Specifies the REST log in credentials of EMS. Default Value: sonus123 | EmsIP | N/A | 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"]
| Specifies the EMS instance for IPv4 and IPv6 address. | EmsPrivateNodeParameters | 64 | N/A | 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 | True | Whether Configuration needs to be downloaded from EMS.Default value : True Allowed Value: | ConfigDownloadName | 64 | savedMSBCconfiguration1 | The SBC configuration name can contain only letters, numbers, dashes (-), apostrophes ('), underscores (_), colons (:) and spaces |
|
|
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.
...
Caption |
---|
0 | Figure |
---|
1 | Metavariable Table |
---|
|
Image Removed |
...
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 . |
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 |
---|
|
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 |
---|
0 | Table |
---|
1 | OpenStack Userdata Parameter Description |
---|
|
Parameter | Description |
---|
adminSshKey | Specifies the public SSH key to log into the SBC CLI as the admin user. | linuxAdminSshKey | Specifies the public SSH key to log into the SBC shell as the linuxadmin user. | adminPassword | The hash of the password to log into the SBC CLI as the admin user. | linuxAdminPassword | The hash of the password to log into the SBC shell as the linuxadmin user. | CERole | Assigned role for the SBC instance. Allowed values: | CEName | Specifies the actual CE name of the SBC instance. For more information, see System and Instance Naming in SBC SWe N:1 and Cloud-Based Systems. CEName 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 | 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 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 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: | 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","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). For IPv4 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: Note: Beginning in release 8.0, this option is no longer required and the configured value is ignored. | TemplateName | Specifies the name of the template file. | TemplateVersion | Specifies 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}$" |
|
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 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 PKT0_V02_ALT_IP_01.IP mode inService state enabled
commit |