Some Tcl parameter names have prefixes, some suffixes, and others may have both. In addition to specific naming convention (see On Multiple Subtabs and Prefix Type), each parameter also has its own value-type rules.
The generic value-types would be one of the following:
True-False (usually a checkbox)
One-Zero (usually a checkbox)
Name-Value (usually a Combo box/List)
Name-Index (usually a Combo box/List)
Array Parameter Class
Tdf Parameter Class
TestNode Parameter Class
Sut Parameter Class
Vsa Paramater Class
Dmf Parameter Class
The following further clarifies the Tcl Parameter value types:
Boolean Types are usually represented by a checkbox on the GUI and come in three main variations:
"True"/"False" Boolean True/False – “True” == On/Enabled, “False” == Off/Disabled
"Enabled"/"Disabled" Boolean Enabled/Disabled – “True” == On/Enabled, “False” == Off/Disabled
"1"/"0" Boolean 1/0 – “1” == On/Enabled, “0” == Off/Disabled
Multi-Choice Types are usually represented by a dropdown list on the GUI and come in three variations:
<String as displayed> Multi-Choice Label – The value matches the label displayed in the GUI.
Index Multi-Choice Index – The value matches the index of the item displayed in the GUI.
LABEL1 -> VALUE1 Multi-Choice Value – The values are custom defined not tied to index or label.
LABEL2 -> VALUE2
LABELn -> VALUEn
For example, if there were 3 MSCCs, the variable would be suffixed as follows:
_1 (for MSCC_1 tab), _2 (for MSCC_2 tab), _3 (for MSCC_2 tab) and so on.
On ID Sub tab (MSCC > ID): The Tcl Variable names on the ID tab (Service ID), are suffixed based on the number of MSCC's and IDs. For example, parametername_x_y, where x = mscc_tab_idx, y = service_id_tab_idx (1-based indexes)
On SG sub tab (MSCC > ID > SG): The Tcl Variable names on the SG sub tab (Subscriber Group), are suffixed based on the number of MSCC's, Service IDs, and Subscriber Group indexes. For example, parametername_x_y_z, where x = mscc_tab_idx, y = service_id_tab_idx, x = sg_tab_idx (1-based indexes)
On Triggers sub tab (MSCC > ID > Triggers): The Tcl Variable names on the Triggers sub tab, are suffixed based on the number of trigger Id, MSCC's, and Service IDs indexes. For example, parameternamex_y_z, where x = Trigger ID, y = mscc_tab_idx, z = service_id_tab_idx, (1-based indexes)
The Tcl variable format is "DiaSrvCcV1AvpTrigger" + <trigger_value> + "_" + mscc_idx + id_idx
With summary settings, parameters are suffixed with _0_0 or _0
With Individual settings, there are multiple tabs of parameters, each tab would have suffixes based on either just the primary context or Primary/Secondary Context: _Primary (_0, _1, ... _n) or _Primary_Secondary.
For example, if there were 3 primary contexts and 2 secondary contexts per primary context, the parameters would be suffixed as follows:
_0_0 (Primary), _0_1 (secondary), _0_2 (secondary), _1_0, _1_1, _1_2, _2_0, _2_1, and _2_2.
For example, if the maximum bearer per subscriber were 3, the parameters would be suffixed as _1, _2, _3, ... _11
With summary settings, parameters are suffixed with _2_1 on the Default tab
For example, if the maximum bearer per subscriber were 3, the parameters would be suffixed as _1, _2, _3, ... _11
Different Rule Set are defined for V4, V6, and dual stacks and the parameters are identified by V4, V6, or Ds as applicable. For example, TyCcV4 (IpV4 rule set) or TyCcV6 (IpV6 rule set) or TyCcDs (Dual Stack rule set)
A Rule Set is associated with a maximum of 8 Charging Rules, which is associated with a maximum of 8 Rule Definitions. In Addition, a Rule Set may be mapped to a maximum of 30 APNs and each APN may be mapped with more than one Rule-Set.
The Tcl parameters in PCRF Node Test Case are define as an array.
APN Name/Timer Mapping Tcl Variable Information Tcl variable name: TyCcSrvApns Parameter Class: Array, list of APN names, up to 30 [APN1] [APN2] ... [APNn] Tcl variable name: TyCcSrvApnRevalidationTime[n] Parameter Class: Array, list of associated revalidation timers [TIMER1] [TIMER2] ... [TIMERn] Example: set list [ls::create Array-TyCcSrvApns -under $p] ls::create ArrayItem -under $list -Value 'my apn1'; #apn1 1 ls::create ArrayItem -under $list -Value 'my apn2'; #apn2 1 ls::create ArrayItem -under $list -Value 'my apn3'; #apn3 1 set list [ls::create Array-TyCcSrvApnRevalidationTime -under $p] ls::create ArrayItem -under $list -Value 0; #apn1 timer disabled ls::create ArrayItem -under $list -Value 0; #apn2 timer disabled ls::create ArrayItem -under $list -Value 3600; #apn3 timer |
On the Charging Rules pane, the parameters are suffixed with _x_y, where x = Rule Set index and y = Charging Rule index). For example the suffixes display as, _1_1, _1_2, .... 8_1, 8_8
On the Rule Definitions pane, the parameters are suffixed _x_y_z. Where x = Rule Set; y = Charging Rule; z = Rule Definition) For example the suffixes display as, _1_1_1, _1_1_2, .... 8_1_1, ..., 8_8_8
For Packet Filter Table, the parameters are suffixed as follows: a_b_c_d, where a = rule set index, b = charging rule index, c= rule definition index, d = filter number
Suffix "_1" indicates Primary setting, and "_2" Mobility setting
Primaries PDP Contexts: P<primary index> (P0, P1, .... Pn)
Secondary PDP Context: P<primary index>-S<primary index> (P0-S0, P0-S1, ... P0-Sn, P1-S0 ... P1-Sn, Pn-S0 ... PnSn)
Depending on the test case using the IPSec protocols, the parameter $prefix$ identifies the test case in which the parameter is used:
Number of Cryptographic Suites : <tab_prefix>NumCryptoSuites
<tab_prefix><ParameterName>_<Suite ID>
For example: DataAuthType_1
Suite ID is 1 - 5
Number of Cryptographic Suites : <tab_prefix>NumCryptoSuites<Tunnel ID>
Where value of Tunnel ID range is 1 to 16
<tab_prefix><ParameterName><Tunnel ID><Suite ID>
Where value of Tunnel ID is 1 - 16
Suite ID is 1 - 5
Depending on the test case using the Diameter protocols, the parameter <tabprefix> identifies the test case and protocol in which the parameter is used: