Fix timeout order in procedure dynamic operation and program for ST
authorEduardo Ramos Testillano <eduardo.ramos.testillano@ericsson.com>
Sat, 15 Apr 2017 14:16:30 +0000 (16:16 +0200)
committerEduardo Ramos Testillano <eduardo.ramos.testillano@ericsson.com>
Sat, 15 Apr 2017 14:16:30 +0000 (16:16 +0200)
dynamic/launcher/gx/00001/Procedure.cpp
dynamic/launcher/gx/00001/dictionary.xml [new file with mode: 0644]
example/diameter/launcher/deployments/st-client/program.sh

index 63b4ef1..b74f362 100644 (file)
@@ -27,7 +27,7 @@ namespace {
    void usage (std::string &response) {
      response += "\n\nInvalid arguments. Provide these ones:";
      response += "\n";
-     response += "\n<test timeout ms (0: no timeout step)><initial sequence>|<final sequence>|<digits>|<CCR-I xml file>[|CCR-T xml file]";
+     response += "\n<initial sequence>|<final sequence>|<test timeout ms (0: no timeout step)>|<digits>|<CCR-I xml file>[|CCR-T xml file]";
      response += "\n";
      response += "\nSequences are parsed when needed, over AVPs or internal values:";
      response += "\n";
@@ -42,7 +42,7 @@ namespace {
      response += "\nThe same will be done in MSISDN and IMSI (Subscription-Data AVPs).";
      response += "\nFramed-IP-Address will be sequenced with a direct correspondence to hex value.";
      response += "\n";
-     response += "\nThen, you could provide these arguments: \"5000|2000000|9000000|7|CCR-I.xml|CCR-T.xml\"";
+     response += "\nThen, you could provide these arguments: \"2000000|9000000|5000|7|CCR-I.xml|CCR-T.xml\"";
      response += "\n";
    }
 }
@@ -94,56 +94,51 @@ void Procedure::execute(const std::string &args, std::string &response, anna::di
   anna::diameter::codec::Avp *ccri_sessionId, *ccrt_sessionId, *ccri_framedIPAddress, *ccrt_framedIPAddress, *ccri_msisdn, *ccri_imsi;
   anna::diameter::codec::Avp *si1, *si2, *sidata1, *sidata2, *sitype1, *sitype2;
 
-  try {
+  ///////// CCR-Initial:
+  ccri.loadXML(ccr_i);
 
-    ///////// CCR-Initial:
-    ccri.loadXML(ccr_i);
+  // Session-Id & Framed-Ip-Address AVPs
+  ccri_sessionId = ccri.getAvp("Session-Id");
+  ccri_framedIPAddress = ccri.getAvp("Framed-IP-Address");
 
-    // Session-Id & Framed-Ip-Address AVPs
-    ccri_sessionId = ccri.getAvp("Session-Id");
-    ccri_framedIPAddress = ccri.getAvp("Framed-IP-Address");
-
-    // Subscription-Id AVPs
-    if (ccri.countAvp("Subscription-Id") != 2) {
-      response += "Both Subscription-Id MSISDN & IMSI Avps must be present in the CCR-Initial provided !";
-      return;
-    }
+  // Subscription-Id AVPs
+  if (ccri.countAvp("Subscription-Id") != 2) {
+    response += "Both Subscription-Id MSISDN & IMSI Avps must be present in the CCR-Initial provided !";
+    return;
+  }
 
-    si1 = ccri.getAvp("Subscription-Id", 1, anna::Exception::Mode::Ignore);
-    si2 = ccri.getAvp("Subscription-Id", 2, anna::Exception::Mode::Ignore);
+  si1 = ccri.getAvp("Subscription-Id", 1, anna::Exception::Mode::Ignore);
+  si2 = ccri.getAvp("Subscription-Id", 2, anna::Exception::Mode::Ignore);
 
-    if (!si1 || !si2) {
-      response += "Cannot found Subscription-Id MSISDN & IMSI Avps !" ;
-      return;
-    }
+  if (!si1 || !si2) {
+    response += "Cannot found Subscription-Id MSISDN & IMSI Avps !" ;
+    return;
+  }
 
-    sidata1 = si1->getAvp("Subscription-Id-Data");
-    sidata2 = si2->getAvp("Subscription-Id-Data");
-    sitype1 = si1->getAvp("Subscription-Id-Type");
-    //sitype2 = si2->getAvp("Subscription-Id-Type");
+  sidata1 = si1->getAvp("Subscription-Id-Data");
+  sidata2 = si2->getAvp("Subscription-Id-Data");
+  sitype1 = si1->getAvp("Subscription-Id-Type");
+  //sitype2 = si2->getAvp("Subscription-Id-Type");
 
-    if (sitype1->getEnumerated()->getValue() == anna::diameter::helpers::dcca::AVPVALUES__Subscription_Id_Type::END_USER_E164) {
-      ccri_msisdn = sidata1;
-      ccri_imsi = sidata2;
-    }
-    else {
-      ccri_msisdn = sidata2;
-      ccri_imsi = sidata1;
-    }
+  if (sitype1->getEnumerated()->getValue() == anna::diameter::helpers::dcca::AVPVALUES__Subscription_Id_Type::END_USER_E164) {
+    ccri_msisdn = sidata1;
+    ccri_imsi = sidata2;
+  }
+  else {
+    ccri_msisdn = sidata2;
+    ccri_imsi = sidata1;
+  }
 
-    ///////// CCR-Termination:
-    if (haveTermination) {
-      ccrt.loadXML(ccr_t);
+  ///////// CCR-Termination:
+  if (haveTermination) {
+    ccrt.loadXML(ccr_t);
 
-      // Session-Id & Framed-Ip-Address AVPs
-      ccrt_sessionId = ccrt.getAvp("Session-Id");
-      ccrt_framedIPAddress = ccrt.getAvp("Framed-IP-Address");
-    }
-  }
-  catch(anna::RuntimeException &ex) {
-    ex.trace();
+    // Session-Id & Framed-Ip-Address AVPs
+    ccrt_sessionId = ccrt.getAvp("Session-Id");
+    ccrt_framedIPAddress = ccrt.getAvp("Framed-IP-Address");
   }
 
+
   // Prepare session-id string:
   std::string sessionId = ccri_sessionId->getUTF8String()->getValue();
   std::size_t last_semicolon = sessionId.rfind(";");
diff --git a/dynamic/launcher/gx/00001/dictionary.xml b/dynamic/launcher/gx/00001/dictionary.xml
new file mode 100644 (file)
index 0000000..0aeb974
--- /dev/null
@@ -0,0 +1,2818 @@
+<dictionary name="DictionaryGx | Application-Id: 16777238">
+   <vendor name="IETF" code="0"/>
+   <vendor name="ERICSSON" code="193"/>
+   <vendor name="3GPP2" code="5535"/>
+   <vendor name="3GPP" code="10415"/>
+   <vendor name="ETSI" code="13019"/>
+   <avp name="User-Name" code="1" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="NAS-IP-Address" code="4" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Framed-IP-Address" code="8" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Filter-Id" code="11" may-encrypt="no" v-bit="mustnot" m-bit="may" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Class" code="25" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Session-Timeout" code="27" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Called-Station-Id" code="30" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Proxy-State" code="33" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Acct-Session-Id" code="44" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Acct-Multi-Session-Id" code="50" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Event-Timestamp" code="55" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Acct-Interim-Interval" code="85" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Framed-IPv6-Prefix" code="97" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Host-IP-Address" code="257" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Auth-Application-Id" code="258" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Acct-Application-Id" code="259" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Vendor-Specific-Application-Id" code="260" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Vendor-Id" type="Mandatory" qual="1*"/>
+         <avprule id="Auth-Application-Id" type="Optional"/>
+         <avprule id="Acct-Application-Id" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Redirect-Host-Usage" code="261" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-6">
+         <label data="0" alias="DONT_CACHE"/>
+         <label data="1" alias="ALL_SESSION"/>
+         <label data="2" alias="ALL_REALM"/>
+         <label data="3" alias="REALM_AND_APPLICATION"/>
+         <label data="4" alias="ALL_APPLICATION"/>
+         <label data="5" alias="ALL_HOST"/>
+         <label data="6" alias="ALL_USER"/>
+      </single>
+   </avp>
+   <avp name="Redirect-Max-Cache-Time" code="262" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Session-Id" code="263" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Origin-Host" code="264" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Supported-Vendor-Id" code="265" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Vendor-Id" code="266" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Firmware-Revision" code="267" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Result-Code" code="268" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32">
+         <label data="1001" alias="DIAMETER_MULTI_ROUND_AUTH"/>
+         <label data="2001" alias="DIAMETER_SUCCESS"/>
+         <label data="2002" alias="DIAMETER_LIMITED_SUCCESS"/>
+         <label data="3001" alias="DIAMETER_COMMAND_UNSUPPORTED"/>
+         <label data="3002" alias="DIAMETER_UNABLE_TO_DELIVER"/>
+         <label data="3003" alias="DIAMETER_REALM_NOT_SERVED"/>
+         <label data="3004" alias="DIAMETER_TOO_BUSY"/>
+         <label data="3005" alias="DIAMETER_LOOP_DETECTED"/>
+         <label data="3006" alias="DIAMETER_REDIRECT_INDICATION"/>
+         <label data="3007" alias="DIAMETER_APPLICATION_UNSUPPORTED"/>
+         <label data="3008" alias="DIAMETER_INVALID_HDR_BITS"/>
+         <label data="3009" alias="DIAMETER_INVALID_AVP_BITS"/>
+         <label data="3010" alias="DIAMETER_UNKNOWN_PEER"/>
+         <label data="4001" alias="DIAMETER_AUTHENTICATION_REJECTED"/>
+         <label data="4002" alias="DIAMETER_OUT_OF_SPACE"/>
+         <label data="4003" alias="DIAMETER_ELECTION_LOST"/>
+         <label data="4144" alias="DIAMETER_PENDING_TRANSACTION"/>
+         <label data="4241" alias="DIAMETER_NO_AVAILABLE_POLICY_COUNTERS"/>
+         <label data="5001" alias="DIAMETER_AVP_UNSUPPORTED"/>
+         <label data="5002" alias="DIAMETER_UNKNOWN_SESSION_ID"/>
+         <label data="5003" alias="DIAMETER_AUTHORIZATION_REJECTED"/>
+         <label data="5004" alias="DIAMETER_INVALID_AVP_VALUE"/>
+         <label data="5005" alias="DIAMETER_MISSING_AVP"/>
+         <label data="5006" alias="DIAMETER_RESOURCES_EXCEEDED"/>
+         <label data="5007" alias="DIAMETER_CONTRADICTING_AVPS"/>
+         <label data="5008" alias="DIAMETER_AVP_NOT_ALLOWED"/>
+         <label data="5009" alias="DIAMETER_AVP_OCCURS_TOO_MANY_TIMES"/>
+         <label data="5010" alias="DIAMETER_NO_COMMON_APPLICATION"/>
+         <label data="5011" alias="DIAMETER_UNSUPPORTED_VERSION"/>
+         <label data="5012" alias="DIAMETER_UNABLE_TO_COMPLY"/>
+         <label data="5013" alias="DIAMETER_INVALID_BIT_IN_HEADER"/>
+         <label data="5014" alias="DIAMETER_INVALID_AVP_LENGTH"/>
+         <label data="5015" alias="DIAMETER_INVALID_MESSAGE_LENGTH"/>
+         <label data="5016" alias="DIAMETER_INVALID_AVP_BIT_COMBO"/>
+         <label data="5017" alias="DIAMETER_NO_COMMON_SECURITY"/>
+         <label data="5030" alias="DIAMETER_USER_UNKNOWN"/>
+         <label data="5063" alias="REQUESTED_SERVICE_NOT_AUTHORIZED"/>
+         <label data="5065" alias="IP_CAN_SESSION_NOT_AVAILABLE"/>
+      </single>
+   </avp>
+   <avp name="Product-Name" code="269" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Session-Binding" code="270" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Session-Server-Failover" code="271" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="REFUSE_SERVICE"/>
+         <label data="1" alias="TRY_AGAIN"/>
+         <label data="2" alias="ALLOW_SERVICE"/>
+         <label data="3" alias="TRY_AGAIN_ALLOW_SERVICE"/>
+      </single>
+   </avp>
+   <avp name="Multi-Round-Time-Out" code="272" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Disconnect-Cause" code="273" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="REBOOTING"/>
+         <label data="1" alias="BUSY"/>
+         <label data="2" alias="DO_NOT_WANT_TO_TALK_TO_YOU"/>
+      </single>
+   </avp>
+   <avp name="Auth-Request-Type" code="274" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-3">
+         <label data="1" alias="AUTHENTICATE_ONLY"/>
+         <label data="2" alias="AUTHORIZE_ONLY"/>
+         <label data="3" alias="AUTHORIZE_AUTHENTICATE"/>
+      </single>
+   </avp>
+   <avp name="Auth-Grace-Period" code="276" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Auth-Session-State" code="277" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="STATE_MAINTAINED"/>
+         <label data="1" alias="NO_STATE_MAINTAINED"/>
+      </single>
+   </avp>
+   <avp name="Origin-State-Id" code="278" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Failed-AVP" code="279" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="AVP" type="Mandatory" qual="1*"/>
+      </grouped>
+   </avp>
+   <avp name="Proxy-Host" code="280" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Error-Message" code="281" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Route-Record" code="282" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Destination-Realm" code="283" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Proxy-Info" code="284" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Proxy-Host" type="Mandatory"/>
+         <avprule id="Proxy-State" type="Mandatory"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Re-Auth-Request-Type" code="285" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="AUTHORIZE_ONLY"/>
+         <label data="1" alias="AUTHORIZE_AUTHENTICATE"/>
+      </single>
+   </avp>
+   <avp name="Accounting-Sub-Session-Id" code="287" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned64"/>
+   </avp>
+   <avp name="Authorization-Lifetime" code="291" may-encrypt="no" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Redirect-Host" code="292" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterURI"/>
+   </avp>
+   <avp name="Destination-Host" code="293" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Error-Reporting-Host" code="294" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Termination-Cause" code="295" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-8">
+         <label data="1" alias="LOGOUT"/>
+         <label data="2" alias="SERVICE_NOT_PROVIDED"/>
+         <label data="3" alias="BAD_ANSWER"/>
+         <label data="4" alias="ADMINISTRATIVE"/>
+         <label data="5" alias="LINK_BROKEN"/>
+         <label data="6" alias="AUTH_EXPIRED"/>
+         <label data="7" alias="USER_MOVED"/>
+         <label data="8" alias="SESSION_TIMEOUT"/>
+      </single>
+   </avp>
+   <avp name="Origin-Realm" code="296" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterIdentity"/>
+   </avp>
+   <avp name="Experimental-Result" code="297" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Vendor-Id" type="Mandatory"/>
+         <avprule id="Experimental-Result-Code" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="Experimental-Result-Code" code="298" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Inband-Security-Id" code="299" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="E2E-Sequence" code="300" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="AVP" type="Mandatory" qual="2*"/>
+      </grouped>
+   </avp>
+   <avp name="CC-Correlation-Id" code="411" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="CC-Input-Octets" code="412" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned64"/>
+   </avp>
+   <avp name="CC-Money" code="413" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Unit-Value" type="Fixed"/>
+         <avprule id="Currency-Code" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="CC-Output-Octets" code="414" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned64"/>
+   </avp>
+   <avp name="CC-Request-Number" code="415" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="CC-Request-Type" code="416" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-4">
+         <label data="1" alias="INITIAL_REQUEST"/>
+         <label data="2" alias="UPDATE_REQUEST"/>
+         <label data="3" alias="TERMINATION_REQUEST"/>
+         <label data="4" alias="EVENT_REQUEST"/>
+      </single>
+   </avp>
+   <avp name="CC-Service-Specific-Units" code="417" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Unsigned64"/>
+   </avp>
+   <avp name="CC-Session-Failover" code="418" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="FAILOVER_NOT_SUPPORTED"/>
+         <label data="1" alias="FAILOVER_SUPPORTED"/>
+      </single>
+   </avp>
+   <avp name="CC-Sub-Session-Id" code="419" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Unsigned64"/>
+   </avp>
+   <avp name="CC-Time" code="420" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="CC-Total-Octets" code="421" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned64"/>
+   </avp>
+   <avp name="Check-Balance-Result" code="422" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="ENOUGH_CREDIT"/>
+         <label data="1" alias="NO_CREDIT"/>
+      </single>
+   </avp>
+   <avp name="Cost-Information" code="423" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Unit-Value" type="Mandatory"/>
+         <avprule id="Currency-Code" type="Mandatory"/>
+         <avprule id="Cost-Unit" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Cost-Unit" code="424" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Currency-Code" code="425" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Credit-Control" code="426" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="CREDIT_AUTHORIZATION"/>
+         <label data="1" alias="RE_AUTHORIZATION"/>
+      </single>
+   </avp>
+   <avp name="Credit-Control-Failure-Handling" code="427" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="TERMINATE"/>
+         <label data="1" alias="CONTINUE"/>
+         <label data="2" alias="RETRY_AND_TERMINATE"/>
+      </single>
+   </avp>
+   <avp name="Direct-Debiting-Failure-Handling" code="428" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="TERMINATE_OR_BUFFER"/>
+         <label data="1" alias="CONTINUE"/>
+      </single>
+   </avp>
+   <avp name="Exponent" code="429" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Integer32"/>
+   </avp>
+   <avp name="Final-Unit-Indication" code="430" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Final-Unit-Action" type="Fixed"/>
+         <avprule id="Restriction-Filter-Rule" type="Optional" qual="*"/>
+         <avprule id="Filter-Id" type="Optional" qual="*"/>
+         <avprule id="Redirect-Server" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Granted-Service-Unit" code="431" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="CC-Total-Octets" type="Optional"/>
+         <avprule id="CC-Time" type="Optional"/>
+         <avprule id="CC-Input-Octets" type="Optional"/>
+         <avprule id="CC-Output-Octets" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Rating-Group" code="432" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Redirect-Address-Type" code="433" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="IPv4"/>
+         <label data="1" alias="IPv6Addr"/>
+         <label data="2" alias="URL"/>
+         <label data="3" alias="SIP"/>
+      </single>
+   </avp>
+   <avp name="Redirect-Server" code="434" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Redirect-Address-Type" type="Fixed"/>
+         <avprule id="Redirect-Server-Address" type="Fixed"/>
+      </grouped>
+   </avp>
+   <avp name="Redirect-Server-Address" code="435" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Requested-Action" code="436" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="DIRECT_DEBITING"/>
+         <label data="1" alias="REFUND_ACCOUNT"/>
+         <label data="2" alias="CHECK_BALANCE"/>
+         <label data="3" alias="PRICE_ENQUIRY"/>
+      </single>
+   </avp>
+   <avp name="Requested-Service-Unit" code="437" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="CC-Time" type="Optional"/>
+         <avprule id="CC-Money" type="Optional"/>
+         <avprule id="CC-Total-Octets" type="Optional"/>
+         <avprule id="CC-Input-Octets" type="Optional"/>
+         <avprule id="CC-Output-Octets" type="Optional"/>
+         <avprule id="CC-Service-Specific-Units" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Restriction-Filter-Rule" code="438" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="IPFilterRule"/>
+   </avp>
+   <avp name="Service-Identifier" code="439" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Service-Parameter-Info" code="440" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="may">
+      <grouped>
+         <avprule id="Service-Parameter-Type" type="Mandatory"/>
+         <avprule id="Service-Parameter-Value" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="Service-Parameter-Type" code="441" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Service-Parameter-Value" code="442" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Subscription-Id" code="443" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Subscription-Id-Type" type="Mandatory"/>
+         <avprule id="Subscription-Id-Data" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="Subscription-Id-Data" code="444" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Unit-Value" code="445" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Value-Digits" type="Fixed"/>
+         <avprule id="Exponent" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Used-Service-Unit" code="446" may-encrypt="yes" v-bit="mustnot" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="CC-Total-Octets" type="Optional"/>
+         <avprule id="CC-Time" type="Optional"/>
+         <avprule id="CC-Input-Octets" type="Optional"/>
+         <avprule id="CC-Output-Octets" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Value-Digits" code="447" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Integer64"/>
+   </avp>
+   <avp name="Validity-Time" code="448" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Final-Unit-Action" code="449" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="TERMINATE"/>
+         <label data="1" alias="REDIRECT"/>
+         <label data="2" alias="RESTRICT_ACCESS"/>
+      </single>
+   </avp>
+   <avp name="Subscription-Id-Type" code="450" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="END_USER_E164"/>
+         <label data="1" alias="END_USER_IMSI"/>
+         <label data="2" alias="END_USER_SIP_URI"/>
+         <label data="3" alias="END_USER_NAI"/>
+         <label data="4" alias="END_USER_PRIVATE"/>
+      </single>
+   </avp>
+   <avp name="Tariff-Time-Change" code="451" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Tariff-Change-Usage" code="452" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="UNIT_BEFORE_TARIFF_CHANGE"/>
+         <label data="1" alias="UNIT_AFTER_TARIFF_CHANGE"/>
+         <label data="2" alias="UNIT_INDETERMINATE"/>
+      </single>
+   </avp>
+   <avp name="G-S-U-Pool-Identifier" code="453" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="CC-Unit-Type" code="454" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-5">
+         <label data="0" alias="TIME"/>
+         <label data="1" alias="MONEY"/>
+         <label data="2" alias="TOTAL_OCTETS"/>
+         <label data="3" alias="INPUT_OCTETS"/>
+         <label data="4" alias="OUTPUT_OCTETS"/>
+         <label data="5" alias="SERVICE_SPECIFIC_UNITS"/>
+      </single>
+   </avp>
+   <avp name="Multiple-Services-Indicator" code="455" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="MULTIPLE_SERVICES_NOT_SUPPORTED"/>
+         <label data="1" alias="MULTIPLE_SERVICES_SUPPORTED"/>
+      </single>
+   </avp>
+   <avp name="Multiple-Services-Credit-Control" code="456" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Granted-Service-Unit" type="Optional"/>
+         <avprule id="Requested-Service-Unit" type="Optional"/>
+         <avprule id="Used-Service-Unit" type="Optional" qual="*"/>
+         <avprule id="Tariff-Change-Usage" type="Optional"/>
+         <avprule id="Service-Identifier" type="Optional" qual="*"/>
+         <avprule id="Rating-Group" type="Optional"/>
+         <avprule id="G-S-U-Pool-Reference" type="Optional" qual="*"/>
+         <avprule id="Validity-Time" type="Optional"/>
+         <avprule id="Result-Code" type="Optional"/>
+         <avprule id="Final-Unit-Indication" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="G-S-U-Pool-Reference" code="457" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="G-S-U-Pool-Identifier" type="Mandatory"/>
+         <avprule id="CC-Unit-Type" type="Mandatory"/>
+         <avprule id="Unit-Value" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="User-Equipment-Info" code="458" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="mustnot">
+      <grouped>
+         <avprule id="User-Equipment-Info-Type" type="Mandatory"/>
+         <avprule id="User-Equipment-Info-Value" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="User-Equipment-Info-Type" code="459" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="IMEISV"/>
+         <label data="1" alias="MAC"/>
+         <label data="2" alias="EUI64"/>
+         <label data="3" alias="MODIFIED_EUI64"/>
+      </single>
+   </avp>
+   <avp name="User-Equipment-Info-Value" code="460" may-encrypt="yes" v-bit="mustnot" m-bit="may" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Service-Context-Id" code="461" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Accounting-Record-Type" code="480" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-4">
+         <label data="1" alias="EVENT_RECORD"/>
+         <label data="2" alias="START_RECORD"/>
+         <label data="3" alias="INTERIM_RECORD"/>
+         <label data="4" alias="STOP_RECORD"/>
+      </single>
+   </avp>
+   <avp name="Accounting-Interim-Interval" code="482" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="may">
+      <single format-name="Integer32"/>
+   </avp>
+   <avp name="Accounting-Realtime-Required" code="483" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-3">
+         <label data="1" alias="DELIVER_AND_GRANT"/>
+         <label data="2" alias="GRANT_AND_STORE"/>
+         <label data="3" alias="GRANT_AND_LOSE"/>
+      </single>
+   </avp>
+   <avp name="Accounting-Record-Number" code="485" may-encrypt="yes" v-bit="mustnot" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Rule-Space-Suggestion" code="290" vendor-name="ERICSSON" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Authorization-State" code="1056" vendor-name="ERICSSON" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-12">
+         <label data="0" alias="AUTHORIZED"/>
+         <label data="1" alias="DENIED_CALENDAR_TIME"/>
+         <label data="2" alias="DENIED_ROAMING"/>
+         <label data="3" alias="DENIED_QUALITY_OF_SERVICE"/>
+         <label data="4" alias="DENIED_BLACKLISTED"/>
+         <label data="5" alias="DENIED_TERMINAL"/>
+         <label data="6" alias="DENIED_OPERATOR_REASON_ONE"/>
+         <label data="7" alias="DENIED_OPERATOR_REASON_TWO"/>
+         <label data="8" alias="DENIED_OPERATOR_REASON_THREE"/>
+         <label data="9" alias="DENIED_OPERATOR_REASON_FOUR"/>
+         <label data="10" alias="DENIED_OPERATOR_REASON_FIVE"/>
+         <label data="11" alias="DENIED_UNKNOWN_REASON"/>
+         <label data="12" alias="DENIED_USAGE_CONTROL"/>
+      </single>
+   </avp>
+   <avp name="Gx-Capability-List" code="1060" vendor-name="ERICSSON" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Content-Filtering-Profile-Id" code="1138" vendor-name="ERICSSON" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Rule-Space-Decision" code="291" vendor-name="3GPP2" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Charging-Rule-Authorization" code="1055" vendor-name="3GPP2" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Authorization-State" type="Mandatory"/>
+         <avprule id="Authorization-State-Change-Time" type="Optional"/>
+         <avprule id="Next-Authorization-State" type="Optional"/>
+         <avprule id="One-Time-Redirect-Control" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Customer-Id" code="1146" vendor-name="3GPP2" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="One-Time-Redirect-Control" code="1193" vendor-name="3GPP2" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-10">
+         <label data="0" alias="INACTIVE"/>
+         <label data="1" alias="DEFAULT"/>
+         <label data="2" alias="ROAMING"/>
+         <label data="3" alias="QBAU"/>
+         <label data="4" alias="TIME"/>
+         <label data="5" alias="OPERATOR_REASON_ONE"/>
+         <label data="6" alias="OPERATOR_REASON_TWO"/>
+         <label data="7" alias="OPERATOR_REASON_THREE"/>
+         <label data="8" alias="OPERATOR_REASON_FOUR"/>
+         <label data="9" alias="OPERATOR_REASON_FIVE"/>
+         <label data="10" alias="OPERATOR_REASON_SIX"/>
+      </single>
+   </avp>
+   <avp name="3GPP2-BSID" code="9010" vendor-name="3GPP2" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-Charging-Id" code="2" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="3GPP-PDP-Type" code="3" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32">
+         <label data="0" alias="IPV4"/>
+         <label data="1" alias="PPP"/>
+         <label data="2" alias="IPV6"/>
+      </single>
+   </avp>
+   <avp name="3GPP-CG-Address" code="4" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-GPRS-Neg-QoS-Profile" code="5" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-SGSN-Address" code="6" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-GGSN-Address" code="7" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-IMSI-MCC-MNC" code="8" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-GGSN-MCC-MNC" code="9" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-NSAPI" code="10" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-Session-Stop-Indicator" code="11" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-Selection-Mode" code="12" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-Charging-Characteristics" code="13" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GPP-SGSN-IPv6-Address" code="15" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-GGSN-IPv6-Address" code="16" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-SGSN-MCC-MNC" code="18" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="3GGP-IMEISV" code="20" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-RAT-Type" code="21" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-User-Location-Info" code="22" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-MS-TimeZone" code="23" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="3GPP-CAMEL-Charging-Info" code="24" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Abort-Cause" code="500" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="BEARER_RELEASED"/>
+         <label data="1" alias="INSUFFICIENT_SERVER_RESOURCES"/>
+         <label data="2" alias="INSUFFICIENT_BEARER_RESOURCES"/>
+         <label data="3" alias="PS_TO_CS_HANDOVER"/>
+         <label data="4" alias="SPONSORED_DATA_CONNECTIVITY_DISALLOWED"/>
+      </single>
+   </avp>
+   <avp name="Access-Network-Charging-Address" code="501" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Access-Network-Charging-Identifier" code="502" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Access-Network-Charging-Identifier-Value" type="Mandatory"/>
+         <avprule id="Flows" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Access-Network-Charging-Identifier-Value" code="503" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="AF-Application-Identifier" code="504" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="AF-Charging-Identifier" code="505" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Flow-Description" code="507" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="IPFilterRule"/>
+   </avp>
+   <avp name="Flow-Number" code="509" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Flows" code="510" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Media-Component-Number" type="Mandatory"/>
+         <avprule id="Flow-Number" type="Optional" qual="*"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Flow-Status" code="511" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="ENABLED-UPLINK"/>
+         <label data="1" alias="ENABLED-DOWNLINK"/>
+         <label data="2" alias="ENABLED"/>
+         <label data="3" alias="DISABLED"/>
+         <label data="4" alias="REMOVED"/>
+      </single>
+   </avp>
+   <avp name="Flow-Usage" code="512" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-15">
+         <label data="0" alias="NO_INFORMATION"/>
+         <label data="1" alias="RTCP"/>
+         <label data="2" alias="AF_SIGNALLING"/>
+      </single>
+   </avp>
+   <avp name="Specific-Action" code="513" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="1-4,6-11">
+         <label data="1" alias="CHARGING_CORRELATION_EXCHANGE"/>
+         <label data="2" alias="INDICATION_OF_LOSS_OF_BEARER"/>
+         <label data="3" alias="INDICATION_OF_RECOVERY_OF_BEARER"/>
+         <label data="4" alias="INDICATION_OF_RELEASE_OF_BEARER"/>
+         <label data="6" alias="IP-CAN_CHANGE"/>
+         <label data="7" alias="INDICATION_OF_OUT_OF_CREDIT"/>
+         <label data="8" alias="INDICATION_OF_SUCCESSFUL_RESOURCES_ALLOCATION"/>
+         <label data="9" alias="INDICATION_OF_FAILED_RESOURCES_ALLOCATION"/>
+         <label data="10" alias="INDICATION_OF_LIMITED_PCC_DEPLOYMENT"/>
+         <label data="11" alias="USAGE_REPORT"/>
+      </single>
+   </avp>
+   <avp name="Max-Requested-Bandwidth-DL" code="515" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Max-Requested-Bandwidth-UL" code="516" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Media-Component-Description" code="517" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Media-Component-Number" type="Mandatory"/>
+         <avprule id="Media-Sub-Component" type="Optional" qual="*"/>
+         <avprule id="AF-Application-Identifier" type="Optional"/>
+         <avprule id="Media-Type" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-UL" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-DL" type="Optional"/>
+         <avprule id="Flow-Status" type="Optional"/>
+         <avprule id="Reservation-Priority" type="Optional"/>
+         <avprule id="RS-Bandwidth" type="Optional"/>
+         <avprule id="RR-Bandwidth" type="Optional"/>
+         <avprule id="Codec-Data" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Media-Component-Number" code="518" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Media-Sub-Component" code="519" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Flow-Number" type="Mandatory"/>
+         <avprule id="Flow-Description" type="Optional" qual="0*2"/>
+         <avprule id="Flow-Status" type="Optional"/>
+         <avprule id="Flow-Usage" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-UL" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-DL" type="Optional"/>
+         <avprule id="AF-Signalling-Protocol" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Media-Type" code="520" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-6,4294967295">
+         <label data="4294967295" alias="OTHER"/>
+         <label data="0" alias="AUDIO"/>
+         <label data="1" alias="VIDEO"/>
+         <label data="2" alias="DATA"/>
+         <label data="3" alias="APPLICATION"/>
+         <label data="4" alias="CONTROL"/>
+         <label data="5" alias="TEXT"/>
+         <label data="6" alias="MESSAGE"/>
+      </single>
+   </avp>
+   <avp name="RR-Bandwidth" code="521" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="RS-Bandwidth" code="522" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="SIP-Forking-Indication" code="523" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="SINGLE_DIALOGUE"/>
+         <label data="1" alias="SEVERAL_DIALOGUES"/>
+      </single>
+   </avp>
+   <avp name="Codec-Data" code="524" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Service-URN" code="525" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Acceptable-Service-Info" code="526" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Media-Component-Description" type="Optional" qual="*"/>
+         <avprule id="Max-Requested-Bandwidth-DL" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-UL" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Service-Info-Status" code="527" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="FINAL_SERVICE_INFORMATION"/>
+         <label data="1" alias="PRELIMINARY_SERVICE_INFORMATION"/>
+      </single>
+   </avp>
+   <avp name="MPS-Identifier" code="528" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="AF-Signalling-Protocol" code="529" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="NO_INFORMATION"/>
+         <label data="1" alias="SIP"/>
+      </single>
+   </avp>
+   <avp name="Sponsored-Connectivity-Data" code="530" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <grouped>
+         <avprule id="Sponsor-Identity" type="Optional"/>
+         <avprule id="Application-Service-Provider-Identity" type="Optional"/>
+         <avprule id="Granted-Service-Unit" type="Optional"/>
+         <avprule id="Used-Service-Unit" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Sponsor-Identity" code="531" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Application-Service-Provider-Identity" code="532" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Rx-Request-Type" code="533" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="INITIAL_REQUEST"/>
+         <label data="1" alias="UPDATE_REQUEST"/>
+      </single>
+   </avp>
+   <avp name="Required-Access-Info" code="536" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="USER_LOCATION"/>
+         <label data="1" alias="MS_TIME_ZONE"/>
+      </single>
+   </avp>
+   <avp name="Server-Name" code="602" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Server-Capabilities" code="603" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Mandatory-Capability" type="Optional" qual="*"/>
+         <avprule id="Optional-Capability" type="Optional" qual="*"/>
+         <avprule id="Server-Name" type="Optional" qual="*"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Mandatory-Capability" code="604" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Optional-Capability" code="605" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Charging-Information" code="618" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Primary-Event-Charging-Function-Name" type="Optional"/>
+         <avprule id="Secondary-Event-Charging-Function-Name" type="Optional"/>
+         <avprule id="Primary-Charging-Collection-Function-Name" type="Optional"/>
+         <avprule id="Secondary-Charging-Collection-Function-Name" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Primary-Event-Charging-Function-Name" code="619" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterURI"/>
+   </avp>
+   <avp name="Secondary-Event-Charging-Function-Name" code="620" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterURI"/>
+   </avp>
+   <avp name="Primary-Charging-Collection-Function-Name" code="621" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterURI"/>
+   </avp>
+   <avp name="Secondary-Charging-Collection-Function-Name" code="622" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="DiameterURI"/>
+   </avp>
+   <avp name="Supported-Features" code="628" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="may" p-bit="mustnot">
+      <grouped>
+         <avprule id="Vendor-Id" type="Mandatory"/>
+         <avprule id="Feature-List-ID" type="Mandatory"/>
+         <avprule id="Feature-List" type="Mandatory"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Feature-List-ID" code="629" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Feature-List" code="630" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Session-Priority" code="650" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="PRIORITY-0"/>
+         <label data="1" alias="PRIORITY-1"/>
+         <label data="2" alias="PRIORITY-2"/>
+         <label data="3" alias="PRIORITY-3"/>
+         <label data="4" alias="PRIORITY-4"/>
+      </single>
+   </avp>
+   <avp name="Quota-Consumption-Time" code="811" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Event-Type" code="823" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="SIP-Method" type="Optional"/>
+         <avprule id="Event" type="Optional"/>
+         <avprule id="Expires" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="SIP-Method" code="824" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Event" code="825" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Content-Type" code="826" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Content-Length" code="827" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Content-Disposition" code="828" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Role-Of-Node" code="829" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="ORIGINATING_ROLE"/>
+         <label data="1" alias="TERMINATING_ROLE"/>
+         <label data="2" alias="PROXY_ROLE"/>
+         <label data="3" alias="B2BUA_ROLE"/>
+      </single>
+   </avp>
+   <avp name="User-Session-Id" code="830" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Calling-Party-Address" code="831" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Called-Party-Address" code="832" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Time-Stamps" code="833" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="SIP-Request-Timestamp" type="Optional"/>
+         <avprule id="SIP-Response-Timestamp" type="Optional"/>
+         <avprule id="SIP-Request-Timestamp-Fraction" type="Optional"/>
+         <avprule id="SIP-Response-Timestamp-Fraction" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="SIP-Request-Timestamp" code="834" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="SIP-Response-Timestamp" code="835" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Application-Server" code="836" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Application-Provided-Called-Party-Address" code="837" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Inter-Operator-Identifier" code="838" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Originating-IOI" type="Optional"/>
+         <avprule id="Terminating-IOI" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Originating-IOI" code="839" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Terminating-IOI" code="840" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="IMS-Charging-Identifier" code="841" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="SDP-Session-Description" code="842" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="SDP-Media-Component" code="843" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="SDP-Media-Name" type="Optional"/>
+         <avprule id="SDP-Media-Description" type="Optional" qual="*"/>
+         <avprule id="Media-Initiator-Flag" type="Optional"/>
+         <avprule id="Media-Initiator-Party" type="Optional"/>
+         <avprule id="Authorized-QoS" type="Optional"/>
+         <avprule id="3GPP-Charging-Id" type="Optional"/>
+         <avprule id="Access-Network-Charging-Identifier-Value" type="Optional"/>
+         <avprule id="SDP-Type" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="SDP-Media-Name" code="844" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="SDP-Media-Description" code="845" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="CG-Address" code="846" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="GGSN-Address" code="847" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Served-Party-IP-Address" code="848" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Authorized-QoS" code="849" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Application-Server-Information" code="850" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Application-Server" type="Optional"/>
+         <avprule id="Application-Provided-Called-Party-Address" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Trunk-Group-ID" code="851" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Incoming-Trunk-Group-ID" type="Optional"/>
+         <avprule id="Outgoing-Trunk-Group-ID" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Incoming-Trunk-Group-ID" code="852" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Outgoing-Trunk-Group-ID" code="853" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Bearer-Service" code="854" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Service-Id" code="855" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Associated-URI" code="856" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Cause-Code" code="861" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Integer32"/>
+   </avp>
+   <avp name="Node-Functionality" code="862" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-11">
+         <label data="0" alias="S-CSCF"/>
+         <label data="1" alias="P-CSCF"/>
+         <label data="2" alias="I-CSCF"/>
+         <label data="3" alias="MRFC"/>
+         <label data="4" alias="MGCF"/>
+         <label data="5" alias="BGCF"/>
+         <label data="6" alias="AS"/>
+         <label data="7" alias="IBCF"/>
+         <label data="8" alias="S-GW"/>
+         <label data="9" alias="P-GW"/>
+         <label data="10" alias="HSGW"/>
+         <label data="11" alias="E-CSCF"/>
+      </single>
+   </avp>
+   <avp name="Service-Specific-Data" code="863" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Originator" code="864" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="Calling Party"/>
+         <label data="1" alias="Called Party"/>
+      </single>
+   </avp>
+   <avp name="PS-Furnish-Charging-Information" code="865" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="3GPP-Charging-Id" type="Mandatory"/>
+         <avprule id="PS-Free-Format-Data" type="Mandatory"/>
+         <avprule id="PS-Append-Free-Format-Data" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="PS-Free-Format-Data" code="866" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="PS-Append-Free-Format-Data" code="867" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="APPEND"/>
+         <label data="1" alias="OVERWRITE"/>
+      </single>
+   </avp>
+   <avp name="Time-Quota-Threshold" code="868" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Volume-Quota-Threshold" code="869" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Trigger-Type" code="870" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="1-4,10-23,30-34,40,50">
+         <label data="1" alias="CHANGE_IN_SGSN_IP_ADDRESS"/>
+         <label data="2" alias="CHANGE_IN_QOS"/>
+         <label data="3" alias="CHANGE_IN_LOCATION"/>
+         <label data="4" alias="CHANGE_IN_RAT"/>
+         <label data="10" alias="CHANGEINQOS_TRAFFIC_CLASS"/>
+         <label data="11" alias="CHANGEINQOS_RELIABILITY_CLASS"/>
+         <label data="12" alias="CHANGEINQOS_DELAY_CLASS"/>
+         <label data="13" alias="CHANGEINQOS_PEAK_THROUGHPUT"/>
+         <label data="14" alias="CHANGEINQOS_PRECEDENCE_CLASS"/>
+         <label data="15" alias="CHANGEINQOS_MEAN_THROUGHPUT"/>
+         <label data="16" alias="CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK"/>
+         <label data="17" alias="CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK"/>
+         <label data="18" alias="CHANGEINQOS_RESIDUAL_BER"/>
+         <label data="19" alias="CHANGEINQOS_SDU_ERROR_RATIO"/>
+         <label data="20" alias="CHANGEINQOS_TRANSFER_DELAY"/>
+         <label data="21" alias="CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY"/>
+         <label data="22" alias="CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK"/>
+         <label data="23" alias="CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK"/>
+         <label data="30" alias="CHANGEINLOCATION_MCC"/>
+         <label data="31" alias="CHANGEINLOCATION_MNC"/>
+         <label data="32" alias="CHANGEINLOCATION_RAC"/>
+         <label data="33" alias="CHANGEINLOCATION_LAC"/>
+         <label data="34" alias="CHANGEINLOCATION_CellId"/>
+         <label data="40" alias="CHANGE_IN_MEDIA_COMPOSITION"/>
+         <label data="50" alias="CHANGEINPARTICIPANTS_NMB"/>
+      </single>
+   </avp>
+   <avp name="Quota-Holding-Time" code="871" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Reporting-Reason" code="872" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-8">
+         <label data="0" alias="THRESHOLD"/>
+         <label data="1" alias="QHT"/>
+         <label data="2" alias="FINAL"/>
+         <label data="3" alias="QUOTA_EXHAUSTED"/>
+         <label data="4" alias="VALIDITY_TIME"/>
+         <label data="5" alias="OTHER_QUOTA_TYPE"/>
+         <label data="6" alias="RATING_CONDITION_CHANGE"/>
+         <label data="7" alias="FORCED_REAUTHORISATION"/>
+         <label data="8" alias="POOL_EXHAUSTED"/>
+      </single>
+   </avp>
+   <avp name="Service-Information" code="873" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="PS-Information" type="Optional"/>
+         <avprule id="IMS-Information" type="Optional"/>
+         <avprule id="MMS-Information" type="Optional"/>
+         <avprule id="SMS-Information" type="Optional"/>
+         <avprule id="Service-Generic-Information" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="PS-Information" code="874" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="3GPP-Charging-Id" type="Optional"/>
+         <avprule id="3GPP-PDP-Type" type="Optional"/>
+         <avprule id="3GPP-GPRS-Neg-QoS-Profile" type="Optional"/>
+         <avprule id="3GPP-IMSI-MCC-MNC" type="Optional"/>
+         <avprule id="3GPP-GGSN-MCC-MNC" type="Optional"/>
+         <avprule id="3GPP-NSAPI" type="Optional"/>
+         <avprule id="3GPP-Session-Stop-Indicator" type="Optional"/>
+         <avprule id="3GPP-Selection-Mode" type="Optional"/>
+         <avprule id="3GPP-Charging-Characteristics" type="Optional"/>
+         <avprule id="3GPP-SGSN-MCC-MNC" type="Optional"/>
+         <avprule id="3GPP-RAT-Type" type="Optional"/>
+         <avprule id="3GPP-User-Location-Info" type="Optional"/>
+         <avprule id="3GPP-MS-TimeZone" type="Optional"/>
+         <avprule id="3GPP-CAMEL-Charging-Info" type="Optional"/>
+         <avprule id="CG-Address" type="Optional"/>
+         <avprule id="GGSN-Address" type="Optional"/>
+         <avprule id="PS-Furnish-Charging-Information" type="Optional"/>
+         <avprule id="Charging-Rule-Base-Name" type="Optional"/>
+         <avprule id="PDP-Address" type="Optional"/>
+         <avprule id="SGSN-Address" type="Optional"/>
+         <avprule id="Called-Station-Id" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="IMS-Information" code="876" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Event-Type" type="Optional"/>
+         <avprule id="Role-Of-Node" type="Optional"/>
+         <avprule id="Node-Functionality" type="Mandatory"/>
+         <avprule id="User-Session-Id" type="Optional"/>
+         <avprule id="Outgoing-Session-Id" type="Optional"/>
+         <avprule id="Session-Priority" type="Optional"/>
+         <avprule id="Calling-Party-Address" type="Optional" qual="*"/>
+         <avprule id="Called-Party-Address" type="Optional"/>
+         <avprule id="Called-Asserted-Identity" type="Optional" qual="*"/>
+         <avprule id="Number-Portability-Routing-Information" type="Optional"/>
+         <avprule id="Carrier-Select-Routing-Information" type="Optional"/>
+         <avprule id="Alternate-Charged-Party-Address" type="Optional"/>
+         <avprule id="Requested-Party-Address" type="Optional"/>
+         <avprule id="Associated-URI" type="Optional" qual="*"/>
+         <avprule id="Time-Stamps" type="Optional"/>
+         <avprule id="Application-Server-Information" type="Optional" qual="*"/>
+         <avprule id="Inter-Operator-Identifier" type="Optional" qual="*"/>
+         <avprule id="IMS-Charging-Identifier" type="Optional"/>
+         <avprule id="SDP-Session-Description" type="Optional" qual="*"/>
+         <avprule id="SDP-Media-Component" type="Optional" qual="*"/>
+         <avprule id="Served-Party-IP-Address" type="Optional"/>
+         <avprule id="Server-Capabilities" type="Optional"/>
+         <avprule id="Trunk-Group-ID" type="Optional"/>
+         <avprule id="Bearer-Service" type="Optional"/>
+         <avprule id="Service-Id" type="Optional"/>
+         <avprule id="Service-Specific-Info" type="Optional" qual="*"/>
+         <avprule id="Message-Body" type="Optional" qual="*"/>
+         <avprule id="Cause-Code" type="Optional"/>
+         <avprule id="Access-Network-Information" type="Optional"/>
+         <avprule id="Early-Media-Description" type="Optional" qual="*"/>
+         <avprule id="IMS-Communication-Service-Identifier" type="Optional"/>
+         <avprule id="Online-Charging-Flag" type="Optional"/>
+         <avprule id="Real-Time-Tariff-Information" type="Optional"/>
+         <avprule id="Account-Expiration" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="MMS-Information" code="877" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Originator-Address" type="Optional"/>
+         <avprule id="Recipient-Address" type="Optional" qual="*"/>
+         <avprule id="Submission-Time" type="Optional"/>
+         <avprule id="MM-Content-Type" type="Optional"/>
+         <avprule id="Priority" type="Optional"/>
+         <avprule id="Message-ID" type="Optional"/>
+         <avprule id="Message-Type" type="Optional"/>
+         <avprule id="Message-Size" type="Optional"/>
+         <avprule id="Message-Class" type="Optional"/>
+         <avprule id="Delivery-Report-Requested" type="Optional"/>
+         <avprule id="Read-Reply-Report-Requested" type="Optional"/>
+         <avprule id="MMBox-Storage-Requested" type="Optional"/>
+         <avprule id="Applic-ID" type="Optional"/>
+         <avprule id="Reply-Applic-ID" type="Optional"/>
+         <avprule id="Aux-Applic-Info" type="Optional"/>
+         <avprule id="Content-Class" type="Optional"/>
+         <avprule id="DRM-Content" type="Optional"/>
+         <avprule id="Adaptations" type="Optional"/>
+         <avprule id="VASP-Id" type="Optional"/>
+         <avprule id="VAS-Id" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Media-Initiator-Flag" code="882" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="CALLING_PARTY"/>
+         <label data="1" alias="CALLED_PARTY"/>
+         <label data="2" alias="UNKNOWN"/>
+      </single>
+   </avp>
+   <avp name="Number-Of-Participants" code="885" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Originator-Address" code="886" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Address-Type" type="Optional"/>
+         <avprule id="Address-Data" type="Optional"/>
+         <avprule id="Address-Domain" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Expires" code="888" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Message-Body" code="889" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Content-Type" type="Mandatory"/>
+         <avprule id="Content-Length" type="Mandatory"/>
+         <avprule id="Content-Disposition" type="Optional"/>
+         <avprule id="Originator" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Address-Data" code="897" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Address-Domain" code="898" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Domain-Name" type="Optional"/>
+         <avprule id="3GPP-IMSI-MCC-MNC" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Address-Type" code="899" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-7">
+         <label data="0" alias="e-mail address"/>
+         <label data="1" alias="MSISDN"/>
+         <label data="2" alias="IPv4 Address"/>
+         <label data="3" alias="IPv6 Address"/>
+         <label data="4" alias="Numeric Shortcode"/>
+         <label data="5" alias="Alphanumeric Shortcode"/>
+         <label data="6" alias="Other"/>
+         <label data="7" alias="IMSI"/>
+      </single>
+   </avp>
+   <avp name="RAI" code="909" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Bearer-Usage" code="1000" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="GENERAL"/>
+         <label data="1" alias="IMS_SIGNALLING"/>
+      </single>
+   </avp>
+   <avp name="Charging-Rule-Install" code="1001" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Charging-Rule-Definition" type="Optional" qual="*"/>
+         <avprule id="Charging-Rule-Name" type="Optional" qual="*"/>
+         <avprule id="Charging-Rule-Base-Name" type="Optional" qual="*"/>
+         <avprule id="Charging-Rule-Authorization" type="Optional" qual="*"/>
+         <avprule id="Bearer-Identifier" type="Optional"/>
+         <avprule id="Rule-Activation-Time" type="Optional"/>
+         <avprule id="Rule-DeActivation-Time" type="Optional"/>
+         <avprule id="Resource-Allocation-Notification" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Charging-Rule-Remove" code="1002" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Charging-Rule-Name" type="Optional" qual="*"/>
+         <avprule id="Charging-Rule-Base-Name" type="Optional" qual="*"/>
+         <avprule id="Required-Access-Info" type="Optional" qual="*"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Charging-Rule-Definition" code="1003" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Charging-Rule-Name" type="Mandatory"/>
+         <avprule id="Service-Identifier" type="Optional"/>
+         <avprule id="Rating-Group" type="Optional"/>
+         <avprule id="Flow-Information" type="Optional" qual="*"/>
+         <avprule id="Flow-Status" type="Optional"/>
+         <avprule id="QoS-Information" type="Optional"/>
+         <avprule id="Reporting-Level" type="Optional"/>
+         <avprule id="Online" type="Optional"/>
+         <avprule id="Offline" type="Optional"/>
+         <avprule id="Metering-Method" type="Optional"/>
+         <avprule id="Precedence" type="Optional"/>
+         <avprule id="AF-Charging-Identifier" type="Optional"/>
+         <avprule id="Flows" type="Optional" qual="*"/>
+         <avprule id="Monitoring-Key" type="Optional"/>
+         <avprule id="Required-Access-Info" type="Optional" qual="*"/>
+         <avprule id="TDF-Application-Identifier" type="Optional"/>
+         <avprule id="Redirect-Information" type="Optional"/>
+         <avprule id="Mute-Notification" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Charging-Rule-Base-Name" code="1004" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Charging-Rule-Name" code="1005" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Event-Trigger" code="1006" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-2,4-4,7-7,12-17,20-22,25-27,29-29,33-34,39-40,45-45,48">
+         <label data="0" alias="SGSN_CHANGE"/>
+         <label data="1" alias="QOS_CHANGE"/>
+         <label data="2" alias="RAT_CHANGE"/>
+         <label data="4" alias="PLMN_CHANGE"/>
+         <label data="7" alias="IP-CAN-CHANGE"/>
+         <label data="12" alias="RAI_CHANGE"/>
+         <label data="13" alias="USER_LOCATION_CHANGE"/>
+         <label data="14" alias="NO_EVENT_TRIGGERS"/>
+         <label data="15" alias="OUT_OF_CREDIT"/>
+         <label data="16" alias="REALLOCATION_OF_CREDIT"/>
+         <label data="17" alias="REVALIDATION_TIMEOUT"/>
+         <label data="20" alias="DEFAULT_EPS_BEARER_QOS_CHANGE"/>
+         <label data="21" alias="AN_GW_CHANGE"/>
+         <label data="22" alias="SUCCESSFUL_RESOURCE_ALLOCATION"/>
+         <label data="25" alias="UE_TIME_ZONE_CHANGE"/>
+         <label data="26" alias="TAI_CHANGE"/>
+         <label data="27" alias="ECGI_CHANGE"/>
+         <label data="29" alias="APN-AMBR_MODIFICATION_FAILURE"/>
+         <label data="33" alias="USAGE_REPORT"/>
+         <label data="34" alias="DEFAULT-EPS-BEARER-QOS_MODIFICATION_FAILURE"/>
+         <label data="39" alias="APPLICATION_START"/>
+         <label data="40" alias="APPLICATION_STOP"/>
+         <label data="45" alias="ACCESS_NETWORK_INFO_REPORT"/>
+         <label data="48" alias="CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT"/>
+      </single>
+   </avp>
+   <avp name="Metering-Method" code="1007" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="DURATION"/>
+         <label data="1" alias="VOLUME"/>
+         <label data="2" alias="DURATION_VOLUME"/>
+      </single>
+   </avp>
+   <avp name="Offline" code="1008" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="DISABLE_OFFLINE"/>
+         <label data="1" alias="ENABLE_OFFLINE"/>
+      </single>
+   </avp>
+   <avp name="Online" code="1009" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="DISABLE_ONLINE"/>
+         <label data="1" alias="ENABLE_ONLINE"/>
+      </single>
+   </avp>
+   <avp name="Precedence" code="1010" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Reporting-Level" code="1011" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="SERVICE_IDENTIFIER_LEVEL"/>
+         <label data="1" alias="RATING_GROUP_LEVEL"/>
+      </single>
+   </avp>
+   <avp name="ToS-Traffic-Class" code="1014" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="QoS-Information" code="1016" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="QoS-Class-Identifier" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-UL" type="Optional"/>
+         <avprule id="Max-Requested-Bandwidth-DL" type="Optional"/>
+         <avprule id="Guaranteed-Bitrate-UL" type="Optional"/>
+         <avprule id="Guaranteed-Bitrate-DL" type="Optional"/>
+         <avprule id="Bearer-Identifier" type="Optional"/>
+         <avprule id="Allocation-Retention-Priority" type="Optional"/>
+         <avprule id="APN-Aggregate-Max-Bitrate-UL" type="Optional"/>
+         <avprule id="APN-Aggregate-Max-Bitrate-DL" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Charging-Rule-Report" code="1018" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Charging-Rule-Name" type="Optional" qual="*"/>
+         <avprule id="Charging-Rule-Base-Name" type="Optional" qual="*"/>
+         <avprule id="PCC-Rule-Status" type="Optional"/>
+         <avprule id="Rule-Failure-Code" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="PCC-Rule-Status" code="1019" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="ACTIVE"/>
+         <label data="1" alias="INACTIVE"/>
+         <label data="2" alias="TEMPORARILY_INACTIVE"/>
+      </single>
+   </avp>
+   <avp name="Bearer-Identifier" code="1020" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Bearer-Operation" code="1021" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="TERMINATION"/>
+         <label data="1" alias="ESTABLISHMENT"/>
+         <label data="2" alias="MODIFICATION"/>
+      </single>
+   </avp>
+   <avp name="Access-Network-Charging-Identifier-Gx" code="1022" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <grouped>
+         <avprule id="Access-Network-Charging-Identifier-Value" type="Mandatory"/>
+         <avprule id="Charging-Rule-Base-Name" type="Optional" qual="*"/>
+         <avprule id="Charging-Rule-Name" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Bearer-Control-Mode" code="1023" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="UE_ONLY"/>
+         <label data="1" alias="RESERVED"/>
+         <label data="2" alias="UE_NW"/>
+      </single>
+   </avp>
+   <avp name="Network-Request-Support" code="1024" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="NETWORK_REQUEST_NOT_SUPPORTED"/>
+         <label data="1" alias="NETWORK_REQUEST_SUPPORTED"/>
+      </single>
+   </avp>
+   <avp name="Guaranteed-Bitrate-DL" code="1025" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Guaranteed-Bitrate-UL" code="1026" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="IP-CAN-Type" code="1027" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-7">
+         <label data="0" alias="3GPP-GPRS"/>
+         <label data="1" alias="DOCSIS"/>
+         <label data="2" alias="xDSL"/>
+         <label data="3" alias="WiMAX"/>
+         <label data="4" alias="3GPP2"/>
+         <label data="5" alias="3GPP-EPS"/>
+         <label data="6" alias="Non-3GPP-EPS"/>
+         <label data="7" alias="FBA"/>
+      </single>
+   </avp>
+   <avp name="QoS-Class-Identifier" code="1028" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-254">
+         <label data="1" alias="QCI_1"/>
+         <label data="2" alias="QCI_2"/>
+         <label data="3" alias="QCI_3"/>
+         <label data="4" alias="QCI_4"/>
+         <label data="5" alias="QCI_5"/>
+         <label data="6" alias="QCI_6"/>
+         <label data="7" alias="QCI_7"/>
+         <label data="8" alias="QCI_8"/>
+         <label data="9" alias="QCI_9"/>
+         <label data="10" alias="QCI_10"/>
+         <label data="11" alias="QCI_11"/>
+         <label data="12" alias="QCI_12"/>
+         <label data="13" alias="QCI_13"/>
+         <label data="14" alias="QCI_14"/>
+         <label data="15" alias="QCI_15"/>
+         <label data="16" alias="QCI_16"/>
+         <label data="17" alias="QCI_17"/>
+         <label data="18" alias="QCI_18"/>
+         <label data="19" alias="QCI_19"/>
+         <label data="20" alias="QCI_20"/>
+         <label data="21" alias="QCI_21"/>
+         <label data="22" alias="QCI_22"/>
+         <label data="23" alias="QCI_23"/>
+         <label data="24" alias="QCI_24"/>
+         <label data="25" alias="QCI_25"/>
+         <label data="26" alias="QCI_26"/>
+         <label data="27" alias="QCI_27"/>
+         <label data="28" alias="QCI_28"/>
+         <label data="29" alias="QCI_29"/>
+         <label data="30" alias="QCI_30"/>
+         <label data="31" alias="QCI_31"/>
+         <label data="32" alias="QCI_32"/>
+         <label data="33" alias="QCI_33"/>
+         <label data="34" alias="QCI_34"/>
+         <label data="35" alias="QCI_35"/>
+         <label data="36" alias="QCI_36"/>
+         <label data="37" alias="QCI_37"/>
+         <label data="38" alias="QCI_38"/>
+         <label data="39" alias="QCI_39"/>
+         <label data="40" alias="QCI_40"/>
+         <label data="41" alias="QCI_41"/>
+         <label data="42" alias="QCI_42"/>
+         <label data="43" alias="QCI_43"/>
+         <label data="44" alias="QCI_44"/>
+         <label data="45" alias="QCI_45"/>
+         <label data="46" alias="QCI_46"/>
+         <label data="47" alias="QCI_47"/>
+         <label data="48" alias="QCI_48"/>
+         <label data="49" alias="QCI_49"/>
+         <label data="50" alias="QCI_50"/>
+         <label data="51" alias="QCI_51"/>
+         <label data="52" alias="QCI_52"/>
+         <label data="53" alias="QCI_53"/>
+         <label data="54" alias="QCI_54"/>
+         <label data="55" alias="QCI_55"/>
+         <label data="56" alias="QCI_56"/>
+         <label data="57" alias="QCI_57"/>
+         <label data="58" alias="QCI_58"/>
+         <label data="59" alias="QCI_59"/>
+         <label data="60" alias="QCI_60"/>
+         <label data="61" alias="QCI_61"/>
+         <label data="62" alias="QCI_62"/>
+         <label data="63" alias="QCI_63"/>
+         <label data="64" alias="QCI_64"/>
+         <label data="65" alias="QCI_65"/>
+         <label data="66" alias="QCI_66"/>
+         <label data="67" alias="QCI_67"/>
+         <label data="68" alias="QCI_68"/>
+         <label data="69" alias="QCI_69"/>
+         <label data="70" alias="QCI_70"/>
+         <label data="71" alias="QCI_71"/>
+         <label data="72" alias="QCI_72"/>
+         <label data="73" alias="QCI_73"/>
+         <label data="74" alias="QCI_74"/>
+         <label data="75" alias="QCI_75"/>
+         <label data="76" alias="QCI_76"/>
+         <label data="77" alias="QCI_77"/>
+         <label data="78" alias="QCI_78"/>
+         <label data="79" alias="QCI_79"/>
+         <label data="80" alias="QCI_80"/>
+         <label data="81" alias="QCI_81"/>
+         <label data="82" alias="QCI_82"/>
+         <label data="83" alias="QCI_83"/>
+         <label data="84" alias="QCI_84"/>
+         <label data="85" alias="QCI_85"/>
+         <label data="86" alias="QCI_86"/>
+         <label data="87" alias="QCI_87"/>
+         <label data="88" alias="QCI_88"/>
+         <label data="89" alias="QCI_89"/>
+         <label data="90" alias="QCI_90"/>
+         <label data="91" alias="QCI_91"/>
+         <label data="92" alias="QCI_92"/>
+         <label data="93" alias="QCI_93"/>
+         <label data="94" alias="QCI_94"/>
+         <label data="95" alias="QCI_95"/>
+         <label data="96" alias="QCI_96"/>
+         <label data="97" alias="QCI_97"/>
+         <label data="98" alias="QCI_98"/>
+         <label data="99" alias="QCI_99"/>
+         <label data="100" alias="QCI_100"/>
+         <label data="101" alias="QCI_101"/>
+         <label data="102" alias="QCI_102"/>
+         <label data="103" alias="QCI_103"/>
+         <label data="104" alias="QCI_104"/>
+         <label data="105" alias="QCI_105"/>
+         <label data="106" alias="QCI_106"/>
+         <label data="107" alias="QCI_107"/>
+         <label data="108" alias="QCI_108"/>
+         <label data="109" alias="QCI_109"/>
+         <label data="110" alias="QCI_110"/>
+         <label data="111" alias="QCI_111"/>
+         <label data="112" alias="QCI_112"/>
+         <label data="113" alias="QCI_113"/>
+         <label data="114" alias="QCI_114"/>
+         <label data="115" alias="QCI_115"/>
+         <label data="116" alias="QCI_116"/>
+         <label data="117" alias="QCI_117"/>
+         <label data="118" alias="QCI_118"/>
+         <label data="119" alias="QCI_119"/>
+         <label data="120" alias="QCI_120"/>
+         <label data="121" alias="QCI_121"/>
+         <label data="122" alias="QCI_122"/>
+         <label data="123" alias="QCI_123"/>
+         <label data="124" alias="QCI_124"/>
+         <label data="125" alias="QCI_125"/>
+         <label data="126" alias="QCI_126"/>
+         <label data="127" alias="QCI_127"/>
+         <label data="128" alias="QCI_128"/>
+         <label data="129" alias="QCI_129"/>
+         <label data="130" alias="QCI_130"/>
+         <label data="131" alias="QCI_131"/>
+         <label data="132" alias="QCI_132"/>
+         <label data="133" alias="QCI_133"/>
+         <label data="134" alias="QCI_134"/>
+         <label data="135" alias="QCI_135"/>
+         <label data="136" alias="QCI_136"/>
+         <label data="137" alias="QCI_137"/>
+         <label data="138" alias="QCI_138"/>
+         <label data="139" alias="QCI_139"/>
+         <label data="140" alias="QCI_140"/>
+         <label data="141" alias="QCI_141"/>
+         <label data="142" alias="QCI_142"/>
+         <label data="143" alias="QCI_143"/>
+         <label data="144" alias="QCI_144"/>
+         <label data="145" alias="QCI_145"/>
+         <label data="146" alias="QCI_146"/>
+         <label data="147" alias="QCI_147"/>
+         <label data="148" alias="QCI_148"/>
+         <label data="149" alias="QCI_149"/>
+         <label data="150" alias="QCI_150"/>
+         <label data="151" alias="QCI_151"/>
+         <label data="152" alias="QCI_152"/>
+         <label data="153" alias="QCI_153"/>
+         <label data="154" alias="QCI_154"/>
+         <label data="155" alias="QCI_155"/>
+         <label data="156" alias="QCI_156"/>
+         <label data="157" alias="QCI_157"/>
+         <label data="158" alias="QCI_158"/>
+         <label data="159" alias="QCI_159"/>
+         <label data="160" alias="QCI_160"/>
+         <label data="161" alias="QCI_161"/>
+         <label data="162" alias="QCI_162"/>
+         <label data="163" alias="QCI_163"/>
+         <label data="164" alias="QCI_164"/>
+         <label data="165" alias="QCI_165"/>
+         <label data="166" alias="QCI_166"/>
+         <label data="167" alias="QCI_167"/>
+         <label data="168" alias="QCI_168"/>
+         <label data="169" alias="QCI_169"/>
+         <label data="170" alias="QCI_170"/>
+         <label data="171" alias="QCI_171"/>
+         <label data="172" alias="QCI_172"/>
+         <label data="173" alias="QCI_173"/>
+         <label data="174" alias="QCI_174"/>
+         <label data="175" alias="QCI_175"/>
+         <label data="176" alias="QCI_176"/>
+         <label data="177" alias="QCI_177"/>
+         <label data="178" alias="QCI_178"/>
+         <label data="179" alias="QCI_179"/>
+         <label data="180" alias="QCI_180"/>
+         <label data="181" alias="QCI_181"/>
+         <label data="182" alias="QCI_182"/>
+         <label data="183" alias="QCI_183"/>
+         <label data="184" alias="QCI_184"/>
+         <label data="185" alias="QCI_185"/>
+         <label data="186" alias="QCI_186"/>
+         <label data="187" alias="QCI_187"/>
+         <label data="188" alias="QCI_188"/>
+         <label data="189" alias="QCI_189"/>
+         <label data="190" alias="QCI_190"/>
+         <label data="191" alias="QCI_191"/>
+         <label data="192" alias="QCI_192"/>
+         <label data="193" alias="QCI_193"/>
+         <label data="194" alias="QCI_194"/>
+         <label data="195" alias="QCI_195"/>
+         <label data="196" alias="QCI_196"/>
+         <label data="197" alias="QCI_197"/>
+         <label data="198" alias="QCI_198"/>
+         <label data="199" alias="QCI_199"/>
+         <label data="200" alias="QCI_200"/>
+         <label data="201" alias="QCI_201"/>
+         <label data="202" alias="QCI_202"/>
+         <label data="203" alias="QCI_203"/>
+         <label data="204" alias="QCI_204"/>
+         <label data="205" alias="QCI_205"/>
+         <label data="206" alias="QCI_206"/>
+         <label data="207" alias="QCI_207"/>
+         <label data="208" alias="QCI_208"/>
+         <label data="209" alias="QCI_209"/>
+         <label data="210" alias="QCI_210"/>
+         <label data="211" alias="QCI_211"/>
+         <label data="212" alias="QCI_212"/>
+         <label data="213" alias="QCI_213"/>
+         <label data="214" alias="QCI_214"/>
+         <label data="215" alias="QCI_215"/>
+         <label data="216" alias="QCI_216"/>
+         <label data="217" alias="QCI_217"/>
+         <label data="218" alias="QCI_218"/>
+         <label data="219" alias="QCI_219"/>
+         <label data="220" alias="QCI_220"/>
+         <label data="221" alias="QCI_221"/>
+         <label data="222" alias="QCI_222"/>
+         <label data="223" alias="QCI_223"/>
+         <label data="224" alias="QCI_224"/>
+         <label data="225" alias="QCI_225"/>
+         <label data="226" alias="QCI_226"/>
+         <label data="227" alias="QCI_227"/>
+         <label data="228" alias="QCI_228"/>
+         <label data="229" alias="QCI_229"/>
+         <label data="230" alias="QCI_230"/>
+         <label data="231" alias="QCI_231"/>
+         <label data="232" alias="QCI_232"/>
+         <label data="233" alias="QCI_233"/>
+         <label data="234" alias="QCI_234"/>
+         <label data="235" alias="QCI_235"/>
+         <label data="236" alias="QCI_236"/>
+         <label data="237" alias="QCI_237"/>
+         <label data="238" alias="QCI_238"/>
+         <label data="239" alias="QCI_239"/>
+         <label data="240" alias="QCI_240"/>
+         <label data="241" alias="QCI_241"/>
+         <label data="242" alias="QCI_242"/>
+         <label data="243" alias="QCI_243"/>
+         <label data="244" alias="QCI_244"/>
+         <label data="245" alias="QCI_245"/>
+         <label data="246" alias="QCI_246"/>
+         <label data="247" alias="QCI_247"/>
+         <label data="248" alias="QCI_248"/>
+         <label data="249" alias="QCI_249"/>
+         <label data="250" alias="QCI_250"/>
+         <label data="251" alias="QCI_251"/>
+         <label data="252" alias="QCI_252"/>
+         <label data="253" alias="QCI_253"/>
+         <label data="254" alias="QCI_254"/>
+      </single>
+   </avp>
+   <avp name="QoS-Negotiation" code="1029" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="NO_QoS_NEGOTIATION"/>
+         <label data="1" alias="QoS_NEGOTIATION_SUPPORTED"/>
+      </single>
+   </avp>
+   <avp name="QoS-Upgrade" code="1030" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="QoS_UPGRADE_NOT_SUPPORTED"/>
+         <label data="1" alias="QoS_UPGRADE_SUPPORTED"/>
+      </single>
+   </avp>
+   <avp name="Rule-Failure-Code" code="1031" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="1-15,18">
+         <label data="1" alias="UNKNOWN_RULE_NAME"/>
+         <label data="2" alias="RATING_GROUP_ERROR"/>
+         <label data="3" alias="SERVICE_IDENTIFIER_ERROR"/>
+         <label data="4" alias="GWPCEF_MALFUNCTION"/>
+         <label data="5" alias="RESOURCES_LIMITATION"/>
+         <label data="6" alias="MAX_NR_BEARERS_REACHED"/>
+         <label data="7" alias="UNKNOWN_BEARER_ID"/>
+         <label data="8" alias="MISSING_BEARER_ID"/>
+         <label data="9" alias="MISSING_FLOW_INFORMATION"/>
+         <label data="10" alias="RESOURCE_ALLOCATION_FAILURE"/>
+         <label data="11" alias="UNSUCCESSFUL_QOS_VALIDATION"/>
+         <label data="12" alias="INCORRECT_FLOW_INFORMATION"/>
+         <label data="13" alias="PS_TO_CS_HANDOVER"/>
+         <label data="14" alias="TDF_APPLICATION_IDENTIFIER_ERROR"/>
+         <label data="15" alias="NO_BEARER_BOUND"/>
+         <label data="18" alias="MISSING_REDIRECT_SERVER_ADDRESS"/>
+      </single>
+   </avp>
+   <avp name="RAT-Type" code="1032" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1,1000-1004,2000-2003">
+         <label data="0" alias="WLAN"/>
+         <label data="1" alias="VIRTUAL"/>
+         <label data="1000" alias="UTRAN"/>
+         <label data="1001" alias="GERAN"/>
+         <label data="1002" alias="GAN"/>
+         <label data="1003" alias="HSPA_EVOLUTION"/>
+         <label data="1004" alias="EUTRAN"/>
+         <label data="2000" alias="CDMA2000_1X"/>
+         <label data="2001" alias="HRPD"/>
+         <label data="2002" alias="UMB"/>
+         <label data="2003" alias="EHRPD"/>
+      </single>
+   </avp>
+   <avp name="Allocation-Retention-Priority" code="1034" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="Priority-Level" type="Mandatory"/>
+         <avprule id="Pre-emption-Capability" type="Optional"/>
+         <avprule id="Pre-emption-Vulnerability" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="APN-Aggregate-Max-Bitrate-DL" code="1040" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="APN-Aggregate-Max-Bitrate-UL" code="1041" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Revalidation-Time" code="1042" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Rule-Activation-Time" code="1043" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Rule-DeActivation-Time" code="1044" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Session-Release-Cause" code="1045" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="UNSPECIFIED_REASON"/>
+         <label data="1" alias="UE_SUBSCRIPTION_REASON"/>
+      </single>
+   </avp>
+   <avp name="Priority-Level" code="1046" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Pre-emption-Capability" code="1047" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="PRE-EMPTION_CAPABILITY_ENABLED"/>
+         <label data="1" alias="PRE-EMPTION_CAPABILITY_DISABLED"/>
+      </single>
+   </avp>
+   <avp name="Pre-emption-Vulnerability" code="1048" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="PRE-EMPTION_VULNERABILITY_ENABLED"/>
+         <label data="1" alias="PRE-EMPTION_VULNERABILITY_DISABLED"/>
+      </single>
+   </avp>
+   <avp name="Default-EPS-Bearer-QoS" code="1049" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="QoS-Class-Identifier" type="Optional"/>
+         <avprule id="Allocation-Retention-Priority" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="AN-GW-Address" code="1050" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Authorization-State-Change-Time" code="1057" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Flow-Information" code="1058" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="Flow-Description" type="Optional"/>
+         <avprule id="Flow-Direction" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Next-Authorization-State" code="1059" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="AUTHORIZED"/>
+         <label data="1" alias="DENIED_CALENDAR_TIME"/>
+      </single>
+   </avp>
+   <avp name="Resource-Allocation-Notification" code="1063" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="must" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0">
+         <label data="0" alias="ENABLE_NOTIFICATION"/>
+      </single>
+   </avp>
+   <avp name="Monitoring-Key" code="1066" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Usage-Monitoring-Information" code="1067" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="Monitoring-Key" type="Optional"/>
+         <avprule id="Granted-Service-Unit" type="Optional"/>
+         <avprule id="Used-Service-Unit" type="Optional"/>
+         <avprule id="Usage-Monitoring-Level" type="Optional"/>
+         <avprule id="Usage-Monitoring-Report" type="Optional"/>
+         <avprule id="Usage-Monitoring-Support" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Usage-Monitoring-Level" code="1068" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="SESSION_LEVEL"/>
+         <label data="1" alias="PCC_RULE_LEVEL"/>
+      </single>
+   </avp>
+   <avp name="Usage-Monitoring-Report" code="1069" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0">
+         <label data="0" alias="USAGE_MONITORING_REPORT_REQUIRED"/>
+      </single>
+   </avp>
+   <avp name="Usage-Monitoring-Support" code="1070" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0">
+         <label data="0" alias="USAGE_MONITORING_DISABLED"/>
+      </single>
+   </avp>
+   <avp name="Flow-Direction" code="1080" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="UNSPECIFIED"/>
+         <label data="1" alias="DOWNLINK"/>
+         <label data="2" alias="UPLINK"/>
+         <label data="3" alias="BIDIRECTIONAL"/>
+      </single>
+   </avp>
+   <avp name="Redirect-Information" code="1085" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="Redirect-Support" type="Optional"/>
+         <avprule id="Redirect-Address-Type" type="Optional"/>
+         <avprule id="Redirect-Server-Address" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Redirect-Support" code="1086" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="REDIRECTION_DISABLED"/>
+         <label data="1" alias="REDIRECTION_ENABLED"/>
+      </single>
+   </avp>
+   <avp name="TDF-Application-Identifier" code="1088" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Application-Detection-Information" code="1098" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="TDF-Application-Identifier" type="Mandatory"/>
+         <avprule id="TDF-Application-Instance-Identifier" type="Optional"/>
+         <avprule id="Flow-Information" type="Optional" qual="*"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="VASP-Id" code="1101" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="VAS-Id" code="1102" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Domain-Name" code="1200" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Recipient-Address" code="1201" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Address-Type" type="Optional"/>
+         <avprule id="Address-Data" type="Optional"/>
+         <avprule id="Address-Domain" type="Optional"/>
+         <avprule id="Addressee-Type" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Submission-Time" code="1202" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="MM-Content-Type" code="1203" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Type-Number" type="Optional"/>
+         <avprule id="Additional-Type-Information" type="Optional"/>
+         <avprule id="Content-Size" type="Optional"/>
+         <avprule id="Additional-Content-Information" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Type-Number" code="1204" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-88"/>
+   </avp>
+   <avp name="Additional-Type-Information" code="1205" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Content-Size" code="1206" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Additional-Content-Information" code="1207" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Type-Number" type="Optional"/>
+         <avprule id="Additional-Type-Information" type="Optional"/>
+         <avprule id="Content-Size" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Addressee-Type" code="1208" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="TO"/>
+         <label data="1" alias="CC"/>
+         <label data="2" alias="BCC"/>
+      </single>
+   </avp>
+   <avp name="Priority" code="1209" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="Low"/>
+         <label data="1" alias="Normal"/>
+         <label data="2" alias="High"/>
+      </single>
+   </avp>
+   <avp name="Message-ID" code="1210" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Message-Type" code="1211" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="1-15">
+         <label data="1" alias="m-send-req"/>
+         <label data="2" alias="m-send-conf"/>
+         <label data="3" alias="m-notification-ind"/>
+         <label data="4" alias="m-notifyresp-ind"/>
+         <label data="5" alias="m-retrieve-conf"/>
+         <label data="6" alias="m-acknowledge-ind"/>
+         <label data="7" alias="m-delivery-ind"/>
+         <label data="8" alias="m-read-rec-ind"/>
+         <label data="9" alias="m-read-orig-ind"/>
+         <label data="10" alias="m-forward-req"/>
+         <label data="11" alias="m-forward-conf"/>
+         <label data="12" alias="m-mbox-store-conf"/>
+         <label data="13" alias="m-mbox-view-conf"/>
+         <label data="14" alias="m-mbox-upload-conf"/>
+         <label data="15" alias="m-mbox-delete-conf"/>
+      </single>
+   </avp>
+   <avp name="Message-Size" code="1212" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Message-Class" code="1213" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Class-Identifier" type="Optional"/>
+         <avprule id="Token-Text" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Class-Identifier" code="1214" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="Personal"/>
+         <label data="1" alias="Advertisement"/>
+         <label data="2" alias="Informational"/>
+         <label data="3" alias="Auto"/>
+      </single>
+   </avp>
+   <avp name="Token-Text" code="1215" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Delivery-Report-Requested" code="1216" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="No"/>
+         <label data="1" alias="Yes"/>
+      </single>
+   </avp>
+   <avp name="Adaptations" code="1217" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="Yes"/>
+         <label data="1" alias="No"/>
+      </single>
+   </avp>
+   <avp name="Applic-ID" code="1218" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Aux-Applic-Info" code="1219" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Content-Class" code="1220" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-7">
+         <label data="0" alias="text"/>
+         <label data="1" alias="image-basic"/>
+         <label data="2" alias="image-rich"/>
+         <label data="3" alias="video-basic"/>
+         <label data="4" alias="video-rich"/>
+         <label data="5" alias="megapixel"/>
+         <label data="6" alias="content-basic"/>
+         <label data="7" alias="content-rich"/>
+      </single>
+   </avp>
+   <avp name="DRM-Content" code="1221" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="No"/>
+         <label data="1" alias="Yes"/>
+      </single>
+   </avp>
+   <avp name="Read-Reply-Report-Requested" code="1222" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="No"/>
+         <label data="1" alias="Yes"/>
+      </single>
+   </avp>
+   <avp name="Reply-Applic-ID" code="1223" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Unit-Quota-Threshold" code="1226" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="PDP-Address" code="1227" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="SGSN-Address" code="1228" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="PDP-Context-Type" code="1247" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="MMBox-Storage-Requested" code="1248" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="No"/>
+         <label data="1" alias="Yes"/>
+      </single>
+   </avp>
+   <avp name="Service-Specific-Info" code="1249" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Service-Specific-Type" type="Optional"/>
+         <avprule id="Service-Specific-Data" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Called-Asserted-Identity" code="1250" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Requested-Party-Address" code="1251" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Service-Generic-Information" code="1256" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Application-Server-ID" type="Optional"/>
+         <avprule id="Application-Service-Type" type="Optional"/>
+         <avprule id="Application-Session-ID" type="Optional"/>
+         <avprule id="Delivery-Status" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Service-Specific-Type" code="1257" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Access-Network-Information" code="1263" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Trigger" code="1264" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Trigger-Type" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Base-Time-Interval" code="1265" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Envelope" code="1266" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Envelope-Start-Time" type="Mandatory"/>
+         <avprule id="Envelope-End-Time" type="Optional"/>
+         <avprule id="CC-Total-Octets" type="Optional"/>
+         <avprule id="CC-Input-Octets" type="Optional"/>
+         <avprule id="CC-Output-Octets" type="Optional"/>
+         <avprule id="CC-Service-Specific-Units" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Envelope-End-Time" code="1267" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Envelope-Reporting" code="1268" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="DO_NOT_REPORT_ENVELOPES"/>
+         <label data="1" alias="REPORT_ENVELOPES"/>
+         <label data="2" alias="REPORT_ENVELOPES_WITH_VOLUME"/>
+         <label data="3" alias="REPORT_ENVELOPES_WITH_EVENTS"/>
+         <label data="4" alias="REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS"/>
+      </single>
+   </avp>
+   <avp name="Envelope-Start-Time" code="1269" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Time-Quota-Mechanism" code="1270" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Time-Quota-Type" type="Mandatory"/>
+         <avprule id="Base-Time-Interval" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="Time-Quota-Type" code="1271" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="DISCRETE_TIME_PERIOD"/>
+         <label data="1" alias="CONTINUOUS_TIME_PERIOD"/>
+      </single>
+   </avp>
+   <avp name="Early-Media-Description" code="1272" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="SDP-TimeStamps" type="Optional"/>
+         <avprule id="SDP-Media-Component" type="Optional" qual="*"/>
+         <avprule id="SDP-Session-Description" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="SDP-TimeStamps" code="1273" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="SDP-Offer-Timestamp" type="Optional"/>
+         <avprule id="SDP-Answer-Timestamp" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="SDP-Offer-Timestamp" code="1274" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="SDP-Answer-Timestamp" code="1275" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="AF-Correlation-Information" code="1276" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="AF-Charging-Identifier" type="Mandatory"/>
+         <avprule id="Flows" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Alternate-Charged-Party-Address" code="1280" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="IMS-Communication-Service-Identifier" code="1281" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Media-Initiator-Party" code="1288" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="SMS-Information" code="2000" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="SMS-Node" type="Optional"/>
+         <avprule id="Client-Address" type="Optional"/>
+         <avprule id="Originator-SCCP-Address" type="Optional"/>
+         <avprule id="SMSC-Address" type="Optional"/>
+         <avprule id="Data-Coding-Scheme" type="Optional"/>
+         <avprule id="SM-Discharge-Time" type="Optional"/>
+         <avprule id="SM-Message-Type" type="Optional"/>
+         <avprule id="Originator-Interface" type="Optional"/>
+         <avprule id="SM-Protocol-ID" type="Optional"/>
+         <avprule id="Reply-Path-Requested" type="Optional"/>
+         <avprule id="SM-Status" type="Optional"/>
+         <avprule id="SM-User-Data-Header" type="Optional"/>
+         <avprule id="Number-Of-Messages-Sent" type="Optional"/>
+         <avprule id="Recipient-Info" type="Optional" qual="*"/>
+         <avprule id="Originator-Received-Address" type="Optional"/>
+         <avprule id="SM-Service-Type" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Data-Coding-Scheme" code="2001" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Integer32"/>
+   </avp>
+   <avp name="Destination-Interface" code="2002" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Interface-Id" type="Optional"/>
+         <avprule id="Interface-Text" type="Optional"/>
+         <avprule id="Interface-Port" type="Optional"/>
+         <avprule id="Interface-Type" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Interface-Id" code="2003" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Interface-Port" code="2004" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Interface-Text" code="2005" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Interface-Type" code="2006" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="Unknown"/>
+         <label data="1" alias="MOBILE_ORIGINATING"/>
+         <label data="2" alias="MOBILE_TERMINATING"/>
+         <label data="3" alias="APPLICATION_ORIGINATING"/>
+         <label data="4" alias="APPLICATION_TERMINATION"/>
+      </single>
+   </avp>
+   <avp name="SM-Message-Type" code="2007" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-2">
+         <label data="0" alias="SUBMISSION"/>
+         <label data="1" alias="DELIVERY_REPORT"/>
+         <label data="2" alias="SM Service Request"/>
+      </single>
+   </avp>
+   <avp name="Originator-SCCP-Address" code="2008" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Originator-Interface" code="2009" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Interface-Id" type="Optional"/>
+         <avprule id="Interface-Text" type="Optional"/>
+         <avprule id="Interface-Port" type="Optional"/>
+         <avprule id="Interface-Type" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Recipient-SCCP-Address" code="2010" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Reply-Path-Requested" code="2011" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="No Reply Path Set"/>
+         <label data="1" alias="Reply path Set"/>
+      </single>
+   </avp>
+   <avp name="SM-Discharge-Time" code="2012" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="SM-Protocol-ID" code="2013" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="SM-Status" code="2014" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="SM-User-Data-Header" code="2015" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="SMS-Node" code="2016" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-3">
+         <label data="0" alias="SMS Router"/>
+         <label data="1" alias="IP-SM-GW"/>
+         <label data="2" alias="SMS Router and IP-SM-GW"/>
+         <label data="3" alias="SMS-SC"/>
+      </single>
+   </avp>
+   <avp name="SMSC-Address" code="2017" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Client-Address" code="2018" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Address"/>
+   </avp>
+   <avp name="Number-Of-Messages-Sent" code="2019" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Low-Balance-Indication" code="2020" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="NOT_APPLICABLE"/>
+         <label data="1" alias="YES"/>
+      </single>
+   </avp>
+   <avp name="Remaining-Balance" code="2021" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Unit-Value" type="Mandatory"/>
+         <avprule id="Currency-Code" type="Mandatory"/>
+      </grouped>
+   </avp>
+   <avp name="Refund-Information" code="2022" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Carrier-Select-Routing-Information" code="2023" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Number-Portability-Routing-Information" code="2024" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Recipient-Info" code="2026" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Destination-Interface" type="Optional"/>
+         <avprule id="Recipient-Address" type="Optional" qual="*"/>
+         <avprule id="Recipient-Received-Address" type="Optional" qual="*"/>
+         <avprule id="Recipient-SCCP-Address" type="Optional"/>
+         <avprule id="SM-Protocol-ID" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Originator-Received-Address" code="2027" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Address-Type" type="Optional"/>
+         <avprule id="Address-Data" type="Optional"/>
+         <avprule id="Address-Domain" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Recipient-Received-Address" code="2028" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Address-Type" type="Optional"/>
+         <avprule id="Address-Data" type="Optional"/>
+         <avprule id="Address-Domain" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="SM-Service-Type" code="2029" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-10">
+         <label data="0" alias="VAS4SMS Short Message content processing"/>
+         <label data="1" alias="VAS4SMS Short Message forwarding"/>
+         <label data="2" alias="VAS4SMS Short Message Forwarding multiple subscriptions"/>
+         <label data="3" alias="VAS4SMS Short Message filtering"/>
+         <label data="4" alias="VAS4SMS Short Message receipt"/>
+         <label data="5" alias="VAS4SMS Short Message Network Storage"/>
+         <label data="6" alias="VAS4SMS Short Message to multiple destinations"/>
+         <label data="7" alias="VAS4SMS Short Message Virtual Private Network (VPN)"/>
+         <label data="8" alias="VAS4SMS Short Message Auto Reply"/>
+         <label data="9" alias="VAS4SMS Short Message Personal Signature"/>
+         <label data="10" alias="VAS4SMS Short Message Deferred Delivery"/>
+      </single>
+   </avp>
+   <avp name="SDP-Type" code="2036" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="SDP Offer"/>
+         <label data="1" alias="SDP Answer"/>
+      </single>
+   </avp>
+   <avp name="Current-Tariff" code="2056" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Currency-Code" type="Optional"/>
+         <avprule id="Scale-Factor" type="Optional"/>
+         <avprule id="Rate-Element" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Next-Tariff" code="2057" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Currency-Code" type="Optional"/>
+         <avprule id="Scale-Factor" type="Optional"/>
+         <avprule id="Rate-Element" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Rate-Element" code="2058" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="CC-Unit-Type" type="Mandatory"/>
+         <avprule id="Reason-Code" type="Optional"/>
+         <avprule id="Unit-Value" type="Optional"/>
+         <avprule id="Unit-Cost" type="Optional"/>
+         <avprule id="Unit-Quota-Threshold" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Scale-Factor" code="2059" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Value-Digits" type="Mandatory"/>
+         <avprule id="Exponent" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Tariff-Information" code="2060" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Current-Tariff" type="Mandatory"/>
+         <avprule id="Tariff-Time-Change" type="Optional"/>
+         <avprule id="Next-Tariff" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Unit-Cost" code="2061" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Value-Digits" type="Mandatory"/>
+         <avprule id="Exponent" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Application-Server-ID" code="2101" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Application-Service-Type" code="2102" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="100-105">
+         <label data="100" alias="SENDING"/>
+         <label data="101" alias="RECEIVING"/>
+         <label data="102" alias="RETRIEVAL"/>
+         <label data="103" alias="INVITING"/>
+         <label data="104" alias="LEAVING"/>
+         <label data="105" alias="JOINING"/>
+      </single>
+   </avp>
+   <avp name="Application-Session-ID" code="2103" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Delivery-Status" code="2104" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="SIP-Request-Timestamp-Fraction" code="2301" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="SIP-Response-Timestamp-Fraction" code="2302" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Online-Charging-Flag" code="2303" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-1">
+         <label data="0" alias="ECF address not provided"/>
+         <label data="1" alias="ECF address provided"/>
+      </single>
+   </avp>
+   <avp name="Real-Time-Tariff-Information" code="2305" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <grouped>
+         <avprule id="Tariff-Information" type="Optional"/>
+         <avprule id="Tariff-XML" type="Optional"/>
+      </grouped>
+   </avp>
+   <avp name="Tariff-XML" code="2306" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Account-Expiration" code="2309" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Reason-Code" code="2316" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="Enumerated" enum="0-4">
+         <label data="0" alias="UNKNOWN"/>
+         <label data="1" alias="USAGE"/>
+         <label data="2" alias="COMMUNICATION-ATTEMPT-CHARGE"/>
+         <label data="3" alias="SETUP-CHARGE"/>
+         <label data="4" alias="ADD-ON-CHARGE"/>
+      </single>
+   </avp>
+   <avp name="Outgoing-Session-Id" code="2320" vendor-name="3GPP" may-encrypt="no" v-bit="must" m-bit="must" p-bit="may">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="TDF-Application-Instance-Identifier" code="2802" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="UTF8String"/>
+   </avp>
+   <avp name="Mute-Notification" code="2809" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Enumerated" enum="0">
+         <label data="0" alias="MUTE_REQUIRED"/>
+      </single>
+   </avp>
+   <avp name="User-Location-Info-Time" code="2812" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Time"/>
+   </avp>
+   <avp name="Presence-Reporting-Area-Elements-List" code="2820" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Presence-Reporting-Area-Identifier" code="2821" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="OctetString"/>
+   </avp>
+   <avp name="Presence-Reporting-Area-Information" code="2822" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <grouped>
+         <avprule id="Presence-Reporting-Area-Identifier" type="Optional"/>
+         <avprule id="Presence-Reporting-Area-Status" type="Optional"/>
+         <avprule id="Presence-Reporting-Area-Elements-List" type="Optional"/>
+         <avprule id="AVP" type="Optional" qual="*"/>
+      </grouped>
+   </avp>
+   <avp name="Presence-Reporting-Area-Status" code="2823" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="NetLoc-Access-Support" code="2824" vendor-name="3GPP" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="mustnot">
+      <single format-name="Unsigned32"/>
+   </avp>
+   <avp name="Reservation-Priority" code="458" vendor-name="ETSI" may-encrypt="yes" v-bit="must" m-bit="mustnot" p-bit="may">
+      <single format-name="Enumerated" enum="0-15">
+         <label data="0" alias="DEFAULT"/>
+         <label data="1" alias="PRIORITY-ONE"/>
+         <label data="2" alias="PRIORITY-TWO"/>
+         <label data="3" alias="PRIORITY-THREE"/>
+         <label data="4" alias="PRIORITY-FOUR"/>
+         <label data="5" alias="PRIORITY-FIVE"/>
+         <label data="6" alias="PRIORITY-SIX"/>
+         <label data="7" alias="PRIORITY-SEVEN"/>
+         <label data="8" alias="PRIORITY-EIGHT"/>
+         <label data="9" alias="PRIORITY-NINE"/>
+         <label data="10" alias="PRIORITY-TEN"/>
+         <label data="11" alias="PRIORITY-ELEVEN"/>
+         <label data="12" alias="PRIORITY-TWELVE"/>
+         <label data="13" alias="PRIORITY-THIRTEEN"/>
+         <label data="14" alias="PRIORITY-FOURTEEN"/>
+         <label data="15" alias="PRIORITY-FIFTEEN"/>
+      </single>
+   </avp>
+   <command name="CER" code="257" type="Request">
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Host-IP-Address" type="Mandatory" qual="1*"/>
+      <avprule id="Vendor-Id" type="Mandatory"/>
+      <avprule id="Product-Name" type="Mandatory"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Supported-Vendor-Id" type="Optional" qual="*"/>
+      <avprule id="Auth-Application-Id" type="Optional" qual="*"/>
+      <avprule id="Inband-Security-Id" type="Optional" qual="*"/>
+      <avprule id="Acct-Application-Id" type="Optional" qual="*"/>
+      <avprule id="Vendor-Specific-Application-Id" type="Optional" qual="*"/>
+      <avprule id="Firmware-Revision" type="Optional"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="CEA" code="257" type="Answer">
+      <avprule id="Result-Code" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Host-IP-Address" type="Mandatory" qual="1*"/>
+      <avprule id="Vendor-Id" type="Mandatory"/>
+      <avprule id="Product-Name" type="Mandatory"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Error-Message" type="Optional"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+      <avprule id="Supported-Vendor-Id" type="Optional" qual="*"/>
+      <avprule id="Auth-Application-Id" type="Optional" qual="*"/>
+      <avprule id="Inband-Security-Id" type="Optional" qual="*"/>
+      <avprule id="Acct-Application-Id" type="Optional" qual="*"/>
+      <avprule id="Vendor-Specific-Application-Id" type="Optional" qual="*"/>
+      <avprule id="Firmware-Revision" type="Optional"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="RA-Request" code="258" type="Request">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Auth-Application-Id" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Destination-Realm" type="Mandatory"/>
+      <avprule id="Destination-Host" type="Mandatory"/>
+      <avprule id="Re-Auth-Request-Type" type="Mandatory"/>
+      <avprule id="Session-Release-Cause" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Event-Trigger" type="Optional" qual="*"/>
+      <avprule id="Charging-Rule-Remove" type="Optional" qual="*"/>
+      <avprule id="Charging-Rule-Install" type="Optional" qual="*"/>
+      <avprule id="Default-EPS-Bearer-QoS" type="Optional"/>
+      <avprule id="QoS-Information" type="Optional"/>
+      <avprule id="Revalidation-Time" type="Optional"/>
+      <avprule id="Content-Filtering-Profile-Id" type="Optional"/>
+      <avprule id="Usage-Monitoring-Information" type="Optional" qual="*"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="Route-Record" type="Optional" qual="*"/>
+      <avprule id="Presence-Reporting-Area-Information" type="Optional"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="RA-Answer" code="258" type="Answer">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Result-Code" type="Optional"/>
+      <avprule id="Experimental-Result" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="IP-CAN-Type" type="Optional"/>
+      <avprule id="RAT-Type" type="Optional"/>
+      <avprule id="AN-GW-Address" type="Optional" qual="0*2"/>
+      <avprule id="3GPP-SGSN-MCC-MNC" type="Optional"/>
+      <avprule id="3GPP-SGSN-Address" type="Optional"/>
+      <avprule id="3GPP-SGSN-IPv6-Address" type="Optional"/>
+      <avprule id="RAI" type="Optional"/>
+      <avprule id="3GPP-User-Location-Info" type="Optional"/>
+      <avprule id="3GPP-MS-TimeZone" type="Optional"/>
+      <avprule id="Charging-Rule-Report" type="Optional" qual="*"/>
+      <avprule id="Error-Message" type="Optional"/>
+      <avprule id="Error-Reporting-Host" type="Optional"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="NetLoc-Access-Support" type="Optional"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="ACR" code="271" type="Request">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Destination-Realm" type="Mandatory"/>
+      <avprule id="Accounting-Record-Type" type="Mandatory"/>
+      <avprule id="Accounting-Record-Number" type="Mandatory"/>
+      <avprule id="Acct-Application-Id" type="Optional"/>
+      <avprule id="Vendor-Specific-Application-Id" type="Optional"/>
+      <avprule id="User-Name" type="Optional"/>
+      <avprule id="Accounting-Sub-Session-Id" type="Optional"/>
+      <avprule id="Acct-Session-Id" type="Optional"/>
+      <avprule id="Acct-Multi-Session-Id" type="Optional"/>
+      <avprule id="Acct-Interim-Interval" type="Optional"/>
+      <avprule id="Accounting-Realtime-Required" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Event-Timestamp" type="Optional"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="Route-Record" type="Optional" qual="*"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="ACA" code="271" type="Answer">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Result-Code" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Accounting-Record-Type" type="Mandatory"/>
+      <avprule id="Accounting-Record-Number" type="Mandatory"/>
+      <avprule id="Acct-Application-Id" type="Optional"/>
+      <avprule id="Vendor-Specific-Application-Id" type="Optional"/>
+      <avprule id="User-Name" type="Optional"/>
+      <avprule id="Accounting-Sub-Session-Id" type="Optional"/>
+      <avprule id="Acct-Session-Id" type="Optional"/>
+      <avprule id="Acct-Multi-Session-Id" type="Optional"/>
+      <avprule id="Error-Reporting-Host" type="Optional"/>
+      <avprule id="Acct-Interim-Interval" type="Optional"/>
+      <avprule id="Accounting-Realtime-Required" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Event-Timestamp" type="Optional"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="CC-Request" code="272" type="Request">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Auth-Application-Id" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Destination-Realm" type="Mandatory"/>
+      <avprule id="CC-Request-Type" type="Mandatory"/>
+      <avprule id="CC-Request-Number" type="Mandatory"/>
+      <avprule id="Destination-Host" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Subscription-Id" type="Optional" qual="*"/>
+      <avprule id="Supported-Features" type="Optional" qual="*"/>
+      <avprule id="Network-Request-Support" type="Optional"/>
+      <avprule id="Bearer-Identifier" type="Optional"/>
+      <avprule id="Bearer-Operation" type="Optional"/>
+      <avprule id="Framed-IP-Address" type="Optional"/>
+      <avprule id="Framed-IPv6-Prefix" type="Optional"/>
+      <avprule id="IP-CAN-Type" type="Optional"/>
+      <avprule id="3GPP-RAT-Type" type="Optional"/>
+      <avprule id="RAT-Type" type="Optional"/>
+      <avprule id="Termination-Cause" type="Optional"/>
+      <avprule id="User-Equipment-Info" type="Optional"/>
+      <avprule id="QoS-Information" type="Optional"/>
+      <avprule id="QoS-Negotiation" type="Optional"/>
+      <avprule id="QoS-Upgrade" type="Optional"/>
+      <avprule id="Default-EPS-Bearer-QoS" type="Optional"/>
+      <avprule id="AN-GW-Address" type="Optional" qual="0*2"/>
+      <avprule id="3GPP-SGSN-MCC-MNC" type="Optional"/>
+      <avprule id="3GPP-SGSN-Address" type="Optional"/>
+      <avprule id="3GPP-SGSN-IPv6-Address" type="Optional"/>
+      <avprule id="RAI" type="Optional"/>
+      <avprule id="3GPP-User-Location-Info" type="Optional"/>
+      <avprule id="3GPP-MS-TimeZone" type="Optional"/>
+      <avprule id="User-Location-Info-Time" type="Optional"/>
+      <avprule id="Called-Station-Id" type="Optional"/>
+      <avprule id="Bearer-Usage" type="Optional"/>
+      <avprule id="Online" type="Optional"/>
+      <avprule id="Offline" type="Optional"/>
+      <avprule id="3GPP-Charging-Characteristics" type="Optional"/>
+      <avprule id="Gx-Capability-List" type="Optional"/>
+      <avprule id="Rule-Space-Decision" type="Optional"/>
+      <avprule id="Rule-Space-Suggestion" type="Optional"/>
+      <avprule id="Charging-Rule-Report" type="Optional" qual="*"/>
+      <avprule id="Event-Trigger" type="Optional" qual="*"/>
+      <avprule id="Access-Network-Charging-Address" type="Optional"/>
+      <avprule id="Application-Detection-Information" type="Optional" qual="*"/>
+      <avprule id="Access-Network-Charging-Identifier-Gx" type="Optional" qual="*"/>
+      <avprule id="Usage-Monitoring-Information" type="Optional" qual="*"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="Route-Record" type="Optional" qual="*"/>
+      <avprule id="Presence-Reporting-Area-Information" type="Optional"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="CC-Answer" code="272" type="Answer">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Auth-Application-Id" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="CC-Request-Type" type="Mandatory"/>
+      <avprule id="CC-Request-Number" type="Mandatory"/>
+      <avprule id="Result-Code" type="Optional"/>
+      <avprule id="Experimental-Result" type="Optional"/>
+      <avprule id="Supported-Features" type="Optional" qual="*"/>
+      <avprule id="Bearer-Control-Mode" type="Optional"/>
+      <avprule id="Event-Trigger" type="Optional" qual="*"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Redirect-Host" type="Optional" qual="*"/>
+      <avprule id="Redirect-Host-Usage" type="Optional"/>
+      <avprule id="Redirect-Max-Cache-Time" type="Optional"/>
+      <avprule id="Charging-Rule-Remove" type="Optional" qual="*"/>
+      <avprule id="Charging-Rule-Install" type="Optional" qual="*"/>
+      <avprule id="Charging-Information" type="Optional"/>
+      <avprule id="Online" type="Optional"/>
+      <avprule id="Offline" type="Optional"/>
+      <avprule id="Content-Filtering-Profile-Id" type="Optional"/>
+      <avprule id="3GPP-Charging-Characteristics" type="Optional"/>
+      <avprule id="Gx-Capability-List" type="Optional"/>
+      <avprule id="QoS-Information" type="Optional"/>
+      <avprule id="Revalidation-Time" type="Optional"/>
+      <avprule id="Default-EPS-Bearer-QoS" type="Optional"/>
+      <avprule id="Customer-Id" type="Optional"/>
+      <avprule id="Usage-Monitoring-Information" type="Optional" qual="*"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="Route-Record" type="Optional" qual="*"/>
+      <avprule id="Presence-Reporting-Area-Information" type="Optional"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="ASR" code="274" type="Request">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Destination-Realm" type="Mandatory"/>
+      <avprule id="Destination-Host" type="Mandatory"/>
+      <avprule id="Auth-Application-Id" type="Mandatory"/>
+      <avprule id="User-Name" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="Route-Record" type="Optional" qual="*"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="ASA" code="274" type="Answer">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Result-Code" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="User-Name" type="Optional"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Error-Message" type="Optional"/>
+      <avprule id="Error-Reporting-Host" type="Optional"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+      <avprule id="Redirect-Host" type="Optional" qual="*"/>
+      <avprule id="Redirect-Host-Usage" type="Optional"/>
+      <avprule id="Redirect-Max-Cache-Time" type="Optional"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="STR" code="275" type="Request">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Destination-Realm" type="Mandatory"/>
+      <avprule id="Auth-Application-Id" type="Mandatory"/>
+      <avprule id="Termination-Cause" type="Mandatory"/>
+      <avprule id="User-Name" type="Optional"/>
+      <avprule id="Destination-Host" type="Optional"/>
+      <avprule id="Class" type="Optional" qual="*"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="Route-Record" type="Optional" qual="*"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="STA" code="275" type="Answer">
+      <avprule id="Session-Id" type="Fixed"/>
+      <avprule id="Result-Code" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="User-Name" type="Optional"/>
+      <avprule id="Class" type="Optional" qual="*"/>
+      <avprule id="Error-Message" type="Optional"/>
+      <avprule id="Error-Reporting-Host" type="Optional"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+      <avprule id="Redirect-Host" type="Optional" qual="*"/>
+      <avprule id="Redirect-Host-Usage" type="Optional"/>
+      <avprule id="Redirect-Max-Cache-Time" type="Optional"/>
+      <avprule id="Proxy-Info" type="Optional" qual="*"/>
+      <avprule id="AVP" type="Optional" qual="*"/>
+   </command>
+   <command name="DWR" code="280" type="Request">
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+   </command>
+   <command name="DWA" code="280" type="Answer">
+      <avprule id="Result-Code" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Error-Message" type="Optional"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+      <avprule id="Origin-State-Id" type="Optional"/>
+   </command>
+   <command name="DPR" code="282" type="Request">
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Disconnect-Cause" type="Mandatory"/>
+   </command>
+   <command name="DPA" code="282" type="Answer">
+      <avprule id="Result-Code" type="Mandatory"/>
+      <avprule id="Origin-Host" type="Mandatory"/>
+      <avprule id="Origin-Realm" type="Mandatory"/>
+      <avprule id="Error-Message" type="Optional"/>
+      <avprule id="Failed-AVP" type="Optional" qual="*"/>
+   </command>
+</dictionary>
index 31eb97d..5d1fa45 100755 (executable)
@@ -53,7 +53,7 @@ Usage: $0 <test stuff directory|dynamic> [-s]
           and a file called 'dynamic.suffix' used to complete the dynamic operation
           in this way:
 
-             dynamic|<timeout ms>|<initial sequence>|<final sequence>|<dynamic.suffix content>
+             dynamic|<initial sequence>|<final sequence>|<dynamic.suffix content>
 
           For example, you could have this content for 'dynamic.suffix':
 
@@ -61,11 +61,11 @@ Usage: $0 <test stuff directory|dynamic> [-s]
 
           in order to generate the operation:
 
-             dynamic|0|<initial sequence>|<final sequence>|7|CCR-I.xml|CCR-T.xml
+             dynamic|<initial sequence>|<final sequence>|0|7|CCR-I.xml|CCR-T.xml
 
           which would be parsed for the specific ADML instance programmed:
 
-             dynamic|0|2000001|2001000|7|CCR-I.xml|CCR-T.xml
+             dynamic|2000001|2001000|0|7|CCR-I.xml|CCR-T.xml
 
           The file 'dynamic.suffix' could have several lines for several scenaries.
           In this case, this script will prompt for the desired one.