11 Managing Large Volume Uploads and Downloads

This chapter describes how to use and configure the mod_unit module to manage upload and download volumes greater than 2 GB.

How mod_unit Module Works

To comply with the NAS requirement to support upload and download volumes greater than 2GB, Oracle Communications Billing and Revenue Management (BRM) RADIUS Manager supports unsigned integer data type. However, because the Dialup event structure supports signed integer data type, when an opcode call is made from the RADIUS modules for values greater than 2 GB, proper scaling needs to be done by the RADIUS Manager before calling the opcode. For this reason, the mod_unit module is used to scale unsigned integer values to signed integer values so that the values can be stored using the Dialup event structure.

Note:

You don't need to use mod_unit if you don't have upload and download volumes greater than 2GB.

Setting the Scaling Unit for mod_unit

You set the scaling unit for mod_unit in the RADIUS configuration file to be byte (1), kilobyte (2), megabyte (3), or gigabyte (4). For instance, to rate incoming packets by kilobyte, you set the scale-unit configuration parameter to 2.

The mod_unit module reads the Acct-Input-Octets and Acct-Input-Gigawords and, depending on the scaling unit specified, calculates the new values for Acct-Input-Octets and Acct-Output-Octets as follows:

  • When scale-unit is set to 1:

    • Acct_Input_Octets = Acct_Input_Gigaword*4*1024*1024*1024 + Acct_Input_Octets

    • Acct_Output_Octets = Acct_Output_Gigaword*4*1024*1024*1024 + Acct_Output_Octets

  • When scale-unit is set to 2:

    • Acct_Input_Octets = Acct_Input_Gigaword*4*1024*1024+ Acct_Input_Octets/1024

    • Acct_Output_Octets = Acct_Output_Gigaword*4*1024*1024 + Acct_Output_Octets/1024

  • When scale-unit is set to 3:

    • Acct_Input_Octets = Acct_Input_Gigaword*4*1024+ Acct_Input_Octets/(1024*1024)

    • Acct_Output_Octets = Acct_Output_Gigaword*4*1024 + Acct_Output_Octets/(1024*1024)

  • When scale-unit is set to 4:

    • Acct_Input_Octets = Acct_Input_Gigaword*4+ Acct_Input_Octets/(1024*1024*1024)

    • Acct_Output_Octets = Acct_Output_Gigaword*4+ Acct_Output_Octets/(1024*1024*1024)

      Note:

      The fields which are modified by mod_unit are related to accounting only. After the conversion, the input values are overwritten in Acct-Input-Octets and Acct-Output-Octets with the modified value.

Changing Rate Plans to Use Scale Unit as the Unit for Rating

When an opcode call is made from the RADIUS modules for values greater than 2 GB, the mod_unit module converts the unit from bytes to kilobytes, megabytes, or gigabytes, depending on the scaling unit configuration that you set.

If you set the scaling unit to scale higher, than you must also change your rate plans to rate using the higher unit. For example, if your existing rate plans use bytes as the unit for rating, and mod_unit is used to scale the upload and download volumes from bytes to kilobytes, than you must change your rate plans to use kilobytes as the unit for rating.

However, if you have specific requirements for using bytes as the unit for rating, you can also extend the Dialup event to record the upload and download volume information in the decimal field format. Then define custom RUM settings to rate using the volume information stored in the decimal format. In this case, you do not use mod_unit for scaling of units.

Note:

You need to change your rate plans only if the upload and download volumes are more than 2GB, and if mod_unit module is used to scale the units or the information is recorded in decimal format.

Configuring mod_unit

You configure mod_unit in the $MODULES section of the RADIUS configuration file (BRM_home/apps/radius/config, where BRM_home is the directory in which BRM components are installed). Use the scale-unit configuration parameter to specify the scaling unit. For example:

exp {
     type=mod_unit
     scale-unit = 3
}

Note:

You must restart the RADIUS daemon after modifying the configuration file.

For more information, see "Adding a New Module to the RADIUS Configuration File" and "Starting and Stopping the RADIUS Daemon".