Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation  Back up to About Overview 
  
[+] Expand All
[-] Collapse All

Requirements for Supporting the Attributes in CoA/DM Requests

This section describes the requirements for supporting the attributes in the CoA and DM requests described in Requirements of the CoA/DM Requests.

Dictionaries

In order to be used in CoA or DM messages, all attributes in the packing lists identified in Requirements of the CoA/DM Requests must be in Steel-Belted Radius Carrier dictionaries (files with the extension *.dic.) In this example, all attributes appear in the radius.dic or wimax.dic file, so no additional attributes need to be added.

If any of the required attributes do not exist in a *.dic file, you must add them to the dictionary file. For information about adding attributes to a dictionary file, see Attribute Processing Files in the SBR Carrier Reference Guide.

deviceModels.xml

The requirements for the attribute packing lists are directly mapped to the deviceModels.xml file. Each network access device processing CoA/DM requests needs to be configured as a RADIUS client in SBR Carrier. The Make/Model setting defined for each of these RADIUS clients must match the controlledDeviceModel id of the corresponding section in the deviceModels.xml file. If no such section exists in deviceModels.xml file, you must create one.

The following shows a valid controlledDeviceModel XML section for the CoA and DM requests:

<controlledDeviceModel id="WiMax" 
vendor="juniper" 
model="WiMax" 
dictionary="wimax">
   <radiusPorts>
       <!--specifies default port, can be changed per device -->
       <radiusPort name="RFC3576" port="3799"/>
   </radiusPorts>
   <actions>
       <action name="query">
          <localSessionQuery description="return local session data"/>
       </action>
       <action name="disconnect">
           <radiusRequest code="DM" 
                portName="RFC3576" 
                dictionary="wimax">
               <attributes>
                   <requiredAttribute name="User-Name"/>
                   <requiredAttribute name="Calling-Station-Id"
                    convertToBinary="true"/>
                   <requiredAttribute name="WiMAX-AAA-Session-Id"/>
                   <defaultAttribute name="WiMAX-DM-Action-Code"
                    value="0"/>
               </attributes>
               <onSuccess>
                   <!--this device does not send Stop when we 
                     disconnect someone -->
                   <sessionStop 
                    description="Simulated Session Stop"/>
               </onSuccess>
               <onFailure>
                   <!--assume bad session record -->
                   <sessionStop description="Cleaning Session Database"/>
               </onFailure>
               <onTimeout/>
          </radiusRequest>
      </action>
      <action name="interceptOn">
           <radiusRequest code="CoA" 
               portName="RFC3576" 
               dictionary="wimax">
               <attributes>
                   <requiredAttribute name="User-Name"/>
                   <requiredAttribute name="Calling-Station-Id"
                    convertToBinary="true"/>
                   <requiredAttribute name="WiMAX-AAA-Session-Id"/>
                   <overrideAttribute name="WiMAX-Hotline-Profile-ID" 
                    value="1"/>
               </attributes>
           </radiusRequest>
       </action>
   </actions>
</controlledDeviceModel>

As you can see in this example, three actions are defined: Query, Disconnect-Request, and a CoA-Request called “interceptOn”.

Note: Internally, SBR Carrier assumes that the Calling-Station-Id attribute is a readable string. Therefore, when operating in an environment where this attribute can contains nulls, SBR Carrier must convert the attribute to a hexadecimal string after it is received, to encode any non-readable characters. As a result, the value for this attribute must be restored to its binary form before it is sent in a CoA/DM request. To trigger this behavior, the convertToBinary attribute is applied to the Calling-Station-Id in this example controlledDeviceModel. This flag, if set to true, causes the CoA/DM subsystem to convert the attribute from hexadecimal back to binary before emitting the CoA/DM packet.

Modified: 2017-03-07