2.3.1 Formatting String Wizard elements

Table 2-16 describe the elements shown when [wizard] is clicked, from the Diameter, and then Mediation, and then Rule Templates [Insert] page.

Table 2-16 Formatting String Wizard Elements

Element Description
Value

The value of the variable in xl-format.

The components of this value can be entered manually by clicking on one or more specifiers, or both.

Specifiers

List of elements that can be part of an xl-formatted string.

A specifier is either a single item or a group of items forming a sub-list. Every specifier selected is put into the Value field where the cursor is currently located.

The specifiers are described in Formatting String Wizard Specifiers.

Preview The readable description of the xl-formatted string in the Value field.

Formatting String Wizard Specifiers

Table 2-17 describe the variables in the Value field in the Formatting String Wizard page.

Note:

[Index] that is either a [<number>] or [any] can be excluded from all of the expressions that refer to the first instance of the AVP.

The instance number any can be present in the Left value of the Condition only once.

The instance number any can be present in the Right value of the Condition only once.

Table 2-17 Formatting Value Wizard Specifiers

Specifier Description
New Line Sub-Items xl-formatted Value Preview Value
  \r\n This causes a line break on the GUI page.
String Constant Type the string constant "string constant" {"string constant"}
Diameter Header Sub-Items xl-formatted Value Preview Value
From the current messages being processed
Version @msg.version {Msg Version}
Message Length @msg.length {Message Length}
Command Flags: R @msg.command.flags.R {Msg R Command Flag}
Command Flags: P @msg.command.flags.P {Msg P Command Flag}
Command Flags: E @msg.command.flags.E {Msg E Command Flag}
Command Flags: T @msg.command.flags.T {Msg T Command Flag}
Command Flags: r4 @msg.command.flags.r4 {Msg r4 Command Flag}
Command Flags: r5 @msg.command.flags.r5 {Msg r5 Command Flag}
Command Flags: r6 @msg.command.flags.r6 {Msg r6 Command Flag}
Command Flags: r7 @msg.command.flags.r7 {Msg r7 Command Flag}
Command Code @msg.command.code {Msg Command Code}
Application ID @msg.application_id {Msg Application ID}
Hop-by-Hop Identifier @msg.hbh_id {Msg Hop-to-Hop Identifier}
End-to-End Identifier @msg.e2e_id {Msg End-to-End Identifier}
From the request during the answer processing
Version @req.version {Req Version}
Message Length @req.length {Request Length}
Command Flags: R @req.command.flags.R {Req R Command Flag}
Command Flags: P @req.command.flags.P {Req P Command Flag}
Command Flags: E @req.command.flags.E {Req E Command Flag}
Command Flags: T @req.command.flags.T {Req T Command Flag}
Command Flags: r4 @req.command.flags.r4 {Req r4 Command Flag}
Command Flags: r5 @req.command.flags.r5 {Req r5 Command Flag}
Command Flags: r6 @req.command.flags.r6 {Req r6 Command Flag}
Command Flags: r7 @req.command.flags.r7 {Req r7 Command Flag}
Command Code @req.command.code {Req Command Code}
Application ID @req.application_id {Req Application ID}
Hop-by-Hop Identifier @req.hbh_id {Req Hop-to-Hop Identifier}
End-to-End Identifier @req.e2e_id {Req End-to-End Identifier}
AVP Sub-Items

AVP

List containing all AVP definitions from the base and custom dictionaries. If the AVP selected is of Type Group, then the list contains only those AVPs belonging to the ParentAVP.

AVP Component

List containing the following components:
  • Data
  • Data_Length
  • AVP Code
  • Flag V
  • Flag M
  • Flag P
  • Flag r3
  • Flag r4
  • Flag r5
  • Flag r6
  • Flag r7
  • Vendor-ID

Flags V, M, and P are supported; flags r3, r4, r5, r6, and r7 are reserved for future use.

AVP Instance number

List the indexes of AVP (First, Second, Third, Fourth, Fifth, Any). If Any is selected in the AVP instance number list, then the Store matched instance into list appears. It contains all provisioned internal variables that are of integer32, integer64, unsigned32, and unsigned64 type.

Sub-type

Specifically used with AVP Visited-PLMN-Id

List containing types:

  • mccmnc
  • mcc
  • mnc

Sub-type

Specifically used with AVP User-Name

List containing types:

  • realm
  • user
  • realm_decoration
  • user_decoration
  • stripped_decoration
  • proper_user
  • imsi
  • imsi.mccmnc
  • imsi.mcc
  • imsi.mnc

Store matched instance into

The matching instance value can be saved into any if the integer types, signed/unsigned 32/64 bit.

Table 2-18 From the Current Messages Being Processed

xl-Formatted Value Preview Value
@msg.avp[“name”][index].data {Msg AVP:avp​[“Name”][Index].Data}
@msg.avp[“name”][index].data_length {Msg AVP:avp​[“Name”][Index].Data_Length}
@msg.avp["name”][index].code {Msg AVP:avp​[“Name”][Index].Code}
@msg.avp["name”][index].flags.V {Msg AVP:avp​[“Name”][Index].Flag V}
@msg.avp["name”][index].flags.M {Msg AVP:avp​[“Name”][Index].Flag M}
@msg.avp ["name”][index].flags.P {Msg AVP:avp​[“Name”][Index].Flag P}
@msg.avp ["name”][index].flags.r3 {Msg AVP:avp​[“Name”][Index].Flag r3}
@msg.avp ["name”][index].flags.r4 {Msg AVP:avp​[“Name”][Index].Flag r4}
@msg.avp ["name”][index].flags.r5 {Msg AVP:avp​[“Name”][Index].Flag r5}
@msg.avp ["name”][index].flags.r6 {Msg AVP:avp​[“Name”][Index].Flag r6}
@msg.avp ["name”][index].flags.r7 {Msg AVP:avp​[“Name”][Index].Flag r7}
@msg.avp ["name”][index].vendor_id {Msg AVP:avp​[“Name”][Index].Vendor-ID}
@msg.avp[“name”][index].avp​[“name”][index].data {Msg AVP:avp[“ParentAVP Name”]​[Index].avp​["AVP Name"][Index].Data}
@msg.avp[“name”][index].avp​[“name”][index].data_length {Msg AVP:avp[“ParentAVP Name”]​[Index].avp​["AVP Name"][Index].Data_Length}
@msg.avp[“name”][index].avp​[“name”][index].code {Msg AVP:avp[“ParentAVP Name”]​[Index].avp​["AVP Name"][Index].Code}
@msg.avp[“name”][index].avp​[“name”][index].flags.V {Msg AVP:avp[“ParentAVP Name”]​[Index].avp​["AVP Name"][Index].Flag V}
@msg.avp[“name”][index].avp​[“name”][index].flags.M {Msg AVP:avp[“ParentAVP Name”][Index].avp​["AVP Name"][Index].Flag M}
@msg.avp[“name”][index].avp​​[“name”][index].flags.P {Msg AVP:avp[“ParentAVP Name”][Index].avp​["AVP Name"][Index].Flag P}
@msg.avp[“name”][index].avp​[“name”][index].flags.r3 {Msg AVP:avp[“ParentAVP Name”][Index].avp["AVP Name"][Index].Flag r3}
@msg.avp[“name”][index].avp​[“name”][index].flags.r4 {Msg AVP:avp[“ParentAVP Name”][Index].avp["AVP Name"][Index].Flag r4}
@msg.avp[“name”][index].avp​[“name”][index].flags.r5 {Msg AVP:avp[“ParentAVP Name”][Index].avp["AVP Name"][Index].Flag r5}
@msg.avp[“name”][index].avp​[“name”][index].flags.r6 {Msg AVP:avp[“ParentAVP Name”][Index].avp["AVP Name"][Index].Flag r6}
@msg.avp[“name”][index].avp​[“name”][index].flags.r7 {Msg AVP:avp[“ParentAVP Name”][Index].avp["AVP Name"][Index].Flag r7}
@msg.avp[“name”][index].avp​[“name”][index].vendor_id {Msg AVP:avp[“ParentAVP Name”][Index].avp["AVP Name"][Index].Vendor-ID}
Depending on the trigger point, when the processed message being retrieved by the @msg xl-formatted values, the following message data is accessible:

Table 2-19 Trigger Point for Message Data

Trigger Points What is Returned by the Select @msg
RTP1 Header/AVP components from the previously modified (at RTP1) incoming request.
RTP4 Header/AVP components from the previously modified request before the application invocation.
RTP6

Header/AVP components from the previously modified request after the application invocation.

(If an application, for ex. MAP-Diameter IWF generates request) Header/AVP component from the request generated by the application.

RTP10 Header/AVP components from the previously modified request that is ready to be forwarded by the system.
RTP11 Header/AVP components from the previously modified re-routed request that is ready to be forwarded by the system.
ATP1 Header/AVP components from the previously modified(at ATP1) incoming answer.
ATP4 Header/AVP components from the previously modified answer before the application invocation.
ATP6

Header/AVP components from the previously modified answer after the application invocation.

(If the application, for ex. Map-Diameter IWF generates answer )Header/AVP component from the answer generated by the application.

ATP10 Header/AVP components from the modified answer ready to be forwarded by the system.
DCL triggers Header/AVP components from the system request/answer being processed.

Table 2-20 From the Request During the Answer Processing

xl-formatted Value Preview Value
@req.avp[“name”][index].data {Req AVP:avp​[“Name”][Index].Data}
@req.avp[“name”][index].data_length {Req AVP:avp​[“Name”][Index].Data_Length}
@req.avp[“name”][index].code {Req AVP:avp​[“Name”][Index].Code}
@req.avp[“name”][index].flags.V {Req AVP:avp​[“Name”][Index].Flag V}
@req.avp[“name”][index].flags.M {Req AVP:avp​[“Name”][Index].Flag M}
@req.avp[“name”][index].flags.P {Req AVP:avp​[“Name”][Index].Flag P}
@req.avp[“name”][index].flags.r3 {Req AVP:avp​[“Name”][Index].Flag r3}
@req.avp[“name”][index].flags.r4 {Req AVP:avp​[“Name”][Index].Flag r4}
@req.avp[“name”][index].flags.r5 {Req AVP:avp​[“Name”][Index].Flag r5}
@req.avp[“name”][index].flags.r6 {Req AVP:avp​[“Name”][Index].Flag r6}
@req.avp[“name”][index].flags.r7 {Req AVP:avp​[“Name”][Index].Flag r7}
@req.avp[“name”][index].vendor_id {Req AVP:avp​[“Name”][Index].Vendor-ID}
@req.avp[“name”][index].avp​[“name”][index].data {Req AVP:avp[“ParentAVP Name”][Index].avp​​[AVP Name"][Index].Data}
@req.avp[“name”][index].avp​[“name”][index].data_length {Req AVP:avp[“ParentAVP Name”][Index].avp​​[AVP Name"]​[Index].Data_Length}
@req.avp[“name”][index].avp​[“name”][index].code {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Code}
@req.avp[“name”][index].avp​[“name”][index].flags.V {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Flag V}
@req.avp[“name”][index].avp​[“name”][index].flags.M {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Flag M}
@req.avp[“name”][index].avp​[“name”][index].flags.P {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Flag P}
@req.avp[“name”][index].avp​[“name”][index].flags.r3 {Req AVP:avp[“ParentAVP Name”][Index].avp[AVP Name"]​[Index].Flag r3}
@req.avp[“name”][index].avp​[“name”][index].flags.r4 {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Flag r4}
@req.avp[“name”][index].avp​[“name”][index].flags.r5 {Req AVP:avp[“ParentAVP Name”][Index].avp[AVP Name"]​[Index].Flag r5}
@req.avp[“name”][index].avp​[“name”][index].flags.r6 {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Flag r6}
@req.avp[“name”][index].avp​[“name”][index].flags.r7 {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Flag r7}
@req.avp[“name”][index].avp​[“name”][index].vendor_id {Req AVP:avp[“ParentAVP Name”][Index].avp​[AVP Name"][Index].Vendor-ID}
Depending on the trigger point, when the request is retrieved by using the "@req" xl-formatted values and based on the origin of the answer message, the following request data is accessible:

Table 2-21 Trigger Point for Request Data

Trigger Points Answer is Received Answer is Generated
RTP1 N/A
RTP4 N/A
RTP6 N/A
RTP10 N/A
RTP11 N/A
ATP1 Header/AVP components from the modified request forwarded by the system N/A
ATP4 Header/AVP components from the modified request forwarded by the system N/A or Header/AVP components from the modified request.
ATP6 Header/AVP components from the modified request forwarded by the system N/A or Header/AVP components from the modified request.
ATP10 Header/AVP components from the modified request forwarded by the system Header/AVP components from the modified request.
DCL triggers N/A

Note: A condition/action fails at the DCL triggers when using @req xl-formatted values in the conditions and actions.

Linking AVP Sub-Items

Linking-AVP

List containing all AVP definitions from the dictionary (except for the case where the selected Parent AVP is grouped, then only those AVPs that belong to the group are available).

Note: Sub-LAVPs within a grouped LAVP cannot be retrieved (such as with @store.avp[“name”][index].avp[“name”][index]), modified, or removed.

Linking-AVP Instance number

List containing the indexes of the ParentAVP (First, Second, Third, Fourth, Fifth, Any).

Linking-AVP Component

List containing the following components:
  • Data
  • Data Length
  • AVP Code
  • Flag V
  • Flag M
  • Flag P
  • Flag r3
  • Flag r4
  • Flag r5
  • Flag r6
  • Flag r7
  • Vendor ID

Flags V, M, and P are supported; flags r3, r4, r5, r6, and r7 are reserved flags.

Table 2-22 Linking-AVP xl-Formatted Value

xl-Formatted Value Preview Value
@store.avp[“name”][index].data {LAVP:avp​[“Name”][Index].Data}
@store.avp[“name”][index].data_length {LAVP:avp​[“Name”][Index].Data_Length
@store.avp[“name”][index].code {LAVP:avp​[“Name”][Index].code}
@store.avp[“name”][index].flags.V {LAVP:avp​[“Name”][Index].Flag V}
@store.avp[“name”][index].flags.M {LAVP:avp​[“Name”][Index].Flag M}
@store.avp[“name”][index].flags.P {LAVP:avp​[“Name”][Index].Flag P}
@store.avp[“name”][index].flags.r3 {LAVP:avp​[“Name”][Index].Flag r3}
@store.avp[“name”][index].flags.r4 {LAVP:avp​[“Name”][Index].Flag r4}
@store.avp[“name”][index].flags.r5 {LAVP:avp​[“Name”][Index].Flag r5}
@store.avp[“name”][index].flags.r6 {LAVP:avp​[“Name”][Index].Flag r6}
@store.avp[“name”][index].flags.r7 {LAVP:avp​[“Name”][Index].Flag r7}
@store.avp[“name”][index].vendor_id {LAVP:avp​[“Name”][Index].Vendor-ID
@store.avp[“name”][index].avp​[“name”][index].data {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Data}
@store.avp[“name”][index].avp​[“name”][index].data_length {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Data_Length}
@store.avp[“name”][index].avp​[“name”][index].code {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Code}
@store.avp[“name”][index].avp​[“name”][index].flags.V {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.V}
@store.avp[“name”][index].avp​[“name”][index].flags.M {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.M}
@store.avp[“name”][index].avp​[“name”][index].flags.P {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.P}
@store.avp[“name”][index].avp​[“name”][index].flags.r3 {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.r3}
@store.avp[“name”][index].avp​[“name”][index].flags.r4 {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.r4}
@store.avp[“name”][index].avp​[“name”][index].flags.r5 {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.r5}
@store.avp[“name”][index].avp​[“name”][index].flags.r6 {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.r6}
@store.avp[“name”][index].avp​[“name”][index].flags.r7 {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Flags.r7}
@store.avp[“name”][index].avp​[“name”][index].vendor-id {LAVP:avp[“ParentLAVP Name”][Index].avp​["LAVP Name"][Index].Vendor-ID}
Functions Sub-Items xl-Formatted Value Preview Value
Length of strlen(STRING) {Length of (STRING)}

Used to determine the length of a number and if additional digits should be added or removed.

For example, if a 7-digit number is received, then a default area code might have to be added to the number.

Length of always works on string types. If the parameter happens to be a number, then it is automatically treated as a string by these functions. Hence, strlen(123) works the same as strlen(123), and returns 3.

The input of the function string might include other xl-values such as constants, Diameter Header parts, AVP, LAVP parts, or other functions.

Hash hash(STRING, RANGE) {Hash (STRING, RANGE)}

Used for making a routing decision based on the hash generated on the session-id AVP. This AVP is present in charging messages such as ACR and CCR.

For example, if session-id hashes to 1, then set dest-host to host1; if it hashes to 2, then set dest-host to host2.

Because all messages in a session need to go to the same host and they all have the same session-id, the mechanism can be used to send them to the same host without maintaining state.

The input of the function string might include other xl-values such as contents, Diameter Header parts, AVP or LAVP parts, or other functions.

Substring substr(STRING,POSITION, LENGTH)

Position can be negative, (counted from the end).

Substring (STRING,POSITION, LENGTH)}

Used to inspect a part of a string or number and make changes if needed.

For example, if the first 4 characters match +011, then delete the characters.

Substring works always on string types.

The input of the function position specifies the position(character) at which the counting of the substring begins. Position 0 indicates the first character of the string. -1 indicates the last character of the string.

The input of the function length specifies the number of characters to include in the substring.

The specified substring is extracted.

For example: substr(@msg.avp[APN-OI-Replacement][1],0,5)

X hours hour2sec(HOURS) {HOURS hours}
Y minutes min2sec(MINUTES) {MINUTES minutes}
GMT time() {GMT time}

Can be used to perform time of day routing.

Certain AVPs carry time, which can be compared against a specified hour and minute to perform time of day routing.

The inputs hours or minutes might include other xl-values.

TBCD_decode TBCD_decode (OCTETSTRING) {TBCD_decode (OCTETSTRING)}
TBCD_encode TBCD_encode (STRING) TBCD_encode (STRING)}

TBCD (Telephony Binary Decimal String) is used to represent the digits from 0 to 9, *,#, a,b,c. TBCD is of an octet string type, includes two digits per octet, each digit encoded between 0000 to 1001(0-9), 1010(*), 1011(#), 1100(a), 1101(b) or 1110 (c); 1111 is used as a filler in case of an odd number of digits.

The bits 8765 of octet n are encoding digits 2n

The bits 4321 of octet n are encoding digits 2(n-1) +1

TBCD_decode function(TBCD_decode(octetstring)): Decode digits(0-9) and specific telephony characters(*, #, a,b,c) from a TBCD-string and return an UTF8String.

The input of the function octetstring includes AVP or LAVP xl-values.

TBCD_encode function(TBCD_encode(string)): Encode digits(0-9) and specific telephony characters(*, #,a,b,c) to a TBCD-string and return an octet string.

The input of the function string includes other xl-values (constants, Diameter header parts, AVP or LAVP parts, other functions, and so on).

Position Position Integer32 (value) {Position (SUBSTRING,STRING)}

Position function(position(substring,string)) is used to search for a substring in a string and return the position of the first occurrence of a substring.

Position works always on string and octet string types.

The input of the function substring and string includes other xl-values (constants, Diameter header parts, AVP or LAVP parts, other functions, and so on).

The corresponding position is returned. Position 0 indicates the first character of the string.

Example: position(om,Thomas) returns 2.

Get Bit getBit (AVP,position) {Get Bit (AVP, Position)}

Get Bit function (getBit (AVP, Position)): The function allows retrieving a particular bit from the AVP value in the rule condition part.

The input of the function includes an AVP value and the position index of the bit.

The function works only with the AVPs of Unsigned32 ,Unsigned64, Integer32, Integer64 data types.

Convert to Integer32 Integer32 (<value>) {Convert to Integer32 (<value>)}
Convert to Integer64 Integer64 (<value>) {Convert to Integer64 (<value>)}
Convert to Unsigned32 Unsigned32 (<value>) {Convert to Unsigned32 (<value>)}
Convert to Unsigned64 Unsigned64 (<value>) {Convert to Unsigned64 (<value>)}
Convert to Float32 Float32 (<value>) {Convert to Float32 (<value>)}
Convert to Float64 Float64 (<value>) {Convert to Float64 (<value>)}
Convert to String String (<value>) {Convert to String (<value>)}
Convert to OctetString OctetString (<value>) {Convert to OctetString (<value>)}
Convert to Address Address (<value>) {Convert to Address (<value>)}

Usually the entered xl -formatted values are cast automatically. In some cases, the Administrator might need to enforce the certain interpretation for the entered xl-data. The purpose for Explicit casting is to enable the conversion of an xl-value to the certain DIAMETER protocol format (type), the Administrator enters Type, where Type is one of the DIAMETER data types in front of the entered data.

Example: String (@msg.avp["Value-Digits"][1].data)

The conversion is not possible when the value is reasonably non convertible to some specific format, for example, an integer cannot be converted to an IP address. See no scenarios in Table 2-23.

The conversion might be possible if the certain conditions are met. For example, an OctetString can be converted to any other format in case, the encoded data fits into the specified enforced format. See Table 2-23.

While converting intereger64 to integer32, (the same for unsigned integer 32/64, float32/64) the check is performed to verify if the data loss occurs. In such case the conversion fails.

Call Perl Subroutine perlsub (script, subroutine) {Call Perl Subroutine(script, subroutine,$)}
The script is used in the left or right side of the conditions or in the actions and executes an existing perl subroutine in a Condition (See Table 2-7) or Action (See Execute Perl Subroutine in the Actions that modify an AVP.)
Operators Provide the ability to perform mathematical operations on the AVP.
  • Plus
  • Minus
  • +
  • -
  • +
  • -
The connection is on which the request was received.
Connections DSR Ingress Connection is the connection id on which the request was received. @dsr.ingress. connection {DSR Ingress Connection}
DSR Egress Connection is the connection ID from which the request is sent. @dsr.egress. connection {DSR Egress Connection}
DSR Ingress Connection-Name is the connection name (UTF8String) on which the request was received. @dsr.ingress. connection.name {DSR Ingress Connection-Name}
DSR Egress Connection-Nameis the connection name (UTF8String) from which the request is sent. @dsr.egress. connection.name {DSR Egress Connection-Name}
Peers DSR Ingress Peer is the peer node id from which the request was received. @dsr.ingress. peer {DSR Ingress Peer}
DSR Egress Peer is the peer node ID to which the request is sent. @dsr.egress.peer {DSR Egress Peer}
DSR Ingress Peer-Name is the peer node name (UTF8String) from which the request was received. @dsr.ingress. peer.name {DSR Ingress Peer-Name}
DSR Egress Peer-Name is the peer node name (UTF8String) to which the request is sent. @dsr.egress. peer.name {DSR Egress Peer-Name}
Internal Variables List containing all internal variables specified in the system on the page $name {Internal Variable:name}
Message Message Priority is the corresponding priority is returned, if the specified xl-value contains the function @msg.priority {Message Priority}
Back Reference Number of occurrence of the back reference: input field for one digit; default is 0. \<number> \<number>
Because Back Reference can be part of only a replacement string, this specifier is presented only for the Substitute in AVP Value Action.

Table 2-23 contains conversion values for explicit casting.

Table 2-23 Explicit Casting

Convert to Yes Maybe No
Integer32 to Integer32     x
Integer32 to Unsigned32 x    
Integer32 to Integer64 x    
Integer32 to Unsigned64 x    
Integer32 to Float32 x    
Integer32 to Float64 x    
Integer32 to String x    
Integer32 to OctetString x    
Integer32 to Address     x
Unsigned32 to Integer32 x    
Unsigned32 to Unsigned32     x
Unsigned32 to Integer64 x    
Unsigned32 to Unsigned64 x    
Unsigned32 to Float32 x    
Unsigned32 to Float64 x    
Unsigned32 to String x    
Unsigned32 to OctetString x    
Unsigned32 to Address     x
Integer64 to Integer32   x  
Integer64 to Unsigned32   x  
Integer64 to Integer64     x
Integer64 to Unsigned64 x    
Integer64 to Float32 x    
Integer64 to Float64 x    
Integer64 to String x    
Integer64 to OctetString x    
Integer64 to Address     x
Unsigned64 to Integer32   x  
Unsigned64 to Unsigned32   x  
Unsigned64 to Integer64 x    
Unsigned64 to Unsigned64     x
Unsigned64 to Float32 x    
Unsigned64 to Float64 x    
Unsigned64 to String x    
Unsigned64 to OctetString x    
Unsigned64 to Address     x
Float32 to Integer32   x  
Float32 to Unsigned32   x  
Float32 to Integer64   x  
Float32 to Unsigned64   x  
Float32 to Float32     x
Float32 to Float64 x    
Float32 to String   x  
Float32 to OctetString x    
Float32 to Address     x
Float64 to Integer32   x  
Float64 to Unsigned32   x  
Float64 to Integer64   x  
Float64 to Unsigned64   x  
Float64 to Float32   x  
Float64 to Float64     x
Float64 to String   x  
Float64 to OctetString x    
Float64 to Address     x
String to Integer32   x  
String to Unsigned32   x  
String to Integer64   x  
String to Unsigned64   x  
String to Float32   x  
String to Float64   x  
String to String     x
String to OctetString x    
String to Address   x  
OctetString to Integer32   x  
OctetString to Unsigned32   x  
OctetString to Integer64   x  
OctetString to Unsigned64   x  
OctetString to Float32   x  
OctetString to Float64   x  
OctetString to String   x  
OctetString to OctetString     x
OctetString to Address   x  
Address to Integer32     x
Address to Unsigned32     x
Address to Unsigned64     x
Address to Integer64     x
Address to Float32     x
Address to Float64     x
Address to String x    
Address to OctetString x    
Address to Address     x