Add a Grouped AVP to the Diameter Dictionary

For MATRIXX Engine to recognize and process AVPs sent in the network message, they must be included in the Diameter Dictionary. You can add grouped AVPs in which the data field is a sequence of AVPs.

About this task

This task assumes you are changing a MATRIXX Engine installation that is online, in production, and has multiple engines. In such cases, you must perform this procedure on an engine running in standby mode. If you are changing an offline engine, you need not perform any steps after running the configure_engine.py script, except to run the script again on the other engines. If you are changing a single engine, you need not perform any steps after running the configure_engine.py script.

Perform this task on a processing server in the standby cluster.

For more information about the MATRIXX environment variables, see the discussion about container directories and environment variables in MATRIXX Installation and Upgrade.

Procedure

  1. Use a configuration source to configure the grouped AVP in create_config.info. You must delete the following create_config.info questions:
    • Diameter: Do you want to use the default Diameter Gateway dictionary (y/n)?
    • Do you want to add any Diameter AVPs (y/n)?
    Note: The second question is not in the file if the answer to the default Diameter dictionary question was y.

    The MATRIXX Engine configuration source image can contain multiple configuration files to be merged at start-up as inputs for the create_config.py command. Files are loaded in alphabetical order. Each filename must end in create_config.info.

  2. Run create_config.py.
    For example:
    kubectl exec -it engine_pod_name -n matrixx -- bash --login -c"create_config.py"
  3. The create_config.py script prompts you for answers to the following questions:
    • If an MDC exists that is based upon an MDC used in the diameter_dictionary_base.xml file, the following question is asked:
      • Diameter: Do you want to use a private MDC instead of the MDC_NAME MDC (y/n)?
    • Diameter: New grouped AVP:1:What MDC struct name should be used for mapping this AVP?
    • Diameter: New grouped AVP:1:optional:1:What is the maximum number of times this AVP can occur?
    • The following questions are asked for each AVP in a grouped AVP:
      • Diameter: New grouped AVP:1:optional:1:What is the MDC field name to map to this AVP?
      • Diameter: New grouped AVP:1:optional:1:Do you want to specify additional attributes for this mapping (y/n)?
    • Diameter: Do you want to add any AVPs to existing grouped AVPs (y/n)?
      If you answer y to this question, then the following questions may be asked:
      • Diameter: What are the names of any existing grouped AVPs to which you want to add AVPs?
      • Diameter: Modified grouped AVP:GROUPED_AVP_NAME:Do you want to use a different MDC struct name instead of MDC_NAME for this grouped AVP (y/n)?
      • Diameter: Modified grouped AVP:MDC_NAME:How many fixed AVPs do you want to add?
      • Diameter: Modified grouped AVP:MDC_NAME:How many required AVPs do you want to add?
      • Diameter: Modified grouped AVP:MDC_NAME:How many optional AVPs do you want to add?
      • Diameter: Modified grouped AVP:MDC_NAME:optional:1:What is the name of this AVP?
      • Diameter: Modified grouped AVP:MDC_NAME:optional:1:What is the maximum number of times this AVP can occur?
      • Diameter: Modified grouped AVP:MDC_NAME:optional:1:What is the MDC field name to map to this AVP?
      • Diameter: Modified grouped AVP:MDC_NAME:optional:1:Do you want to specify additional attributes for this mapping (y/n)?
        If you answer y to this question, you must answer the following questions about the attributes.
        • Diameter: Modified grouped AVP:MDC_NAME:optional:2:What type of decoding should be used for this AVP?
        Based on your answer to this question, additional questions may be asked. For example, if you entered decode_hex_string, you are asked the following question:
        • Diameter: Modified grouped AVP:MDC_NAME:optional:2:What is the name of the destination field for this function?
    When the script finishes, the AVP is added to the ${MTX_CUSTOM_DIR}/diameter_dictionary_base_xml.sed file and the ${MTX_CONF_DIR}/diameter_dictionary.xml file.

What to do next

When create_config.py finishes, update the configuration for each engine as described in the discussion about changing the configuration of an online engine in MATRIXX Installation and Upgrade.