changeset 961:d95cd3ca9e8d

merge latest 1.1 branch (one commit post 1.1.6)
author Thomas Klausner <tk@giga.or.at>
date Wed, 06 Mar 2013 20:09:54 +0100
parents f39fa6cd86e0 (diff) 04f590da5821 (current diff)
children 398e9b1ebf87
files .hgtags extensions/acl_wl/aw_conf.y include/freeDiameter/libfdproto.h libfdcore/cnxctx.c libfdcore/core.c libfdcore/fdd.l libfdcore/fdd.y libfdcore/peers.c libfdcore/sctp.c libfdproto/dictionary.c libfdproto/log.c libfdproto/messages.c
diffstat 30 files changed, 8011 insertions(+), 173 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Wed Mar 06 16:39:07 2013 +0100
+++ b/.hgtags	Wed Mar 06 20:09:54 2013 +0100
@@ -29,4 +29,5 @@
 5c4cf8d15ef0e298734daf16203278d7fa62fa7a 1.1.5-rc1
 226f5957186ae4369467b070aeb61b1c631c9a5c 1.1.5-rc2
 ae96ae28f3ddc48b9e2676e9538008eab2b9d60a 1.1.5
+8500947421cb412b5f4f2dfffdf1a35b6fb369e0 FORK
 155d45d0653025f45b58ab96b6ba0d5e6fb7fcf8 1.1.6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/tools/README	Wed Mar 06 20:09:54 2013 +0100
@@ -0,0 +1,2 @@
+org_to_fd.pl converts org files like diameter-rfcs.org to C fragments
+that can be included in freeDiameter code.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/tools/diameter-rfcs.org	Wed Mar 06 20:09:54 2013 +0100
@@ -0,0 +1,188 @@
+| Attribute Name                   | Code | Section | Data        | MUST | MAY | SHLD NOT | MUST NOT | Encr |
+| # RFC 3588 - Diameter #          |      |         |             |      |     |          |          |      |
+| Acct-Interim-Interval            |   85 |   9.8.2 | Unsigned32  | M    | P   |          | V        | Y    |
+| Accounting-Realtime-Required     |  483 |   9.8.7 | Enumerated  | M    | P   |          | V        | Y    |
+| Acct-Multi-Session-Id            |   50 |   9.8.5 | UTF8String  | M    | P   |          | V        | Y    |
+| Accounting-Record-Number         |  485 |   9.8.3 | Unsigned32  | M    | P   |          | V        | Y    |
+| Accounting-Record-Type           |  480 |   9.8.1 | Enumerated  | M    | P   |          | V        | Y    |
+| Accounting-Session-Id            |   44 |   9.8.4 | OctetString | M    | P   |          | V        | Y    |
+| Accounting-Sub-Session-Id        |  287 |   9.8.6 | Unsigned64  | M    | P   |          | V        | Y    |
+| Acct-Application-Id              |  259 |     6.9 | Unsigned32  | M    | P   |          | V        | N    |
+| Auth-Application-Id              |  258 |     6.8 | Unsigned32  | M    | P   |          | V        | N    |
+| Auth-Request-Type                |  274 |     8.7 | Enumerated  | M    | P   |          | V        | N    |
+| Authorization-Lifetime           |  291 |     8.9 | Unsigned32  | M    | P   |          | V        | N    |
+| Auth-Grace-Period                |  276 |    8.10 | Unsigned32  | M    | P   |          | V        | N    |
+| Auth-Session-State               |  277 |    8.11 | Enumerated  | M    | P   |          | V        | N    |
+| Re-Auth-Request-Type             |  285 |    8.12 | Enumerated  | M    | P   |          | V        | N    |
+| Class                            |   25 |    8.20 | OctetString | M    | P   |          | V        | Y    |
+| Destination-Host                 |  293 |     6.5 | DiamIdent   | M    | P   |          | V        | N    |
+| Destination-Realm                |  283 |     6.6 | DiamIdent   | M    | P   |          | V        | N    |
+| Disconnect-Cause                 |  273 |   5.4.3 | Enumerated  | M    | P   |          | V        | N    |
+| E2E-Sequence-AVP                 |  300 |    6.15 | Grouped     | M    | P   |          | V        | Y    |
+| Error-Message                    |  281 |     7.3 | UTF8String  |      | P   |          | V,M      | N    |
+| Error-Reporting-Host             |  294 |     7.4 | DiamIdent   |      | P   |          | V,M      | N    |
+| Event-Timestamp                  |   55 |    8.21 | Time        | M    | P   |          | V        | N    |
+| Experimental-Result              |  297 |     7.6 | Grouped     | M    | P   |          | V        | N    |
+| Experimental-Result-Code         |  298 |     7.7 | Unsigned32  | M    | P   |          | V        | N    |
+| Failed-AVP                       |  279 |     7.5 | Grouped     | M    | P   |          | V        | N    |
+| Firmware-Revision                |  267 |   5.3.4 | Unsigned32  |      |     |          | P,V,M    | N    |
+| Host-IP-Address                  |  257 |   5.3.5 | Address     | M    | P   |          | V        | N    |
+| Inband-Security-Id               |  299 |    6.10 | Unsigned32  | M    | P   |          | V        | N    |
+| Multi-Round-Time-Out             |  272 |    8.19 | Unsigned32  | M    | P   |          | V        | Y    |
+| Origin-Host                      |  264 |     6.3 | DiamIdent   | M    | P   |          | V        | N    |
+| Origin-Realm                     |  296 |     6.4 | DiamIdent   | M    | P   |          | V        | N    |
+| Origin-State-Id                  |  278 |    8.16 | Unsigned32  | M    | P   |          | V        | N    |
+| Product-Name                     |  269 |   5.3.7 | UTF8String  |      |     |          | P,V,M    | N    |
+| Proxy-Host                       |  280 |   6.7.3 | DiamIdent   | M    |     |          | P,V      | N    |
+| Proxy-Info                       |  284 |   6.7.2 | Grouped     | M    |     |          | P,V      | N    |
+| Proxy-State                      |   33 |   6.7.4 | OctetString | M    |     |          | P,V      | N    |
+| Redirect-Host                    |  292 |    6.12 | DiamURI     | M    | P   |          | V        | N    |
+| Redirect-Host-Usage              |  261 |    6.13 | Enumerated  | M    | P   |          | V        | N    |
+| Redirect-Max-Cache-Time          |  262 |    6.14 | Unsigned32  | M    | P   |          | V        | N    |
+| Result-Code                      |  268 |     7.1 | Unsigned32  | M    | P   |          | V        | N    |
+| Route-Record                     |  282 |   6.7.1 | DiamIdent   | M    |     |          | P,V      | N    |
+| Session-Id                       |  263 |     8.8 | UTF8String  | M    | P   |          | V        | Y    |
+| Session-Timeout                  |   27 |    8.13 | Unsigned32  | M    | P   |          | V        | N    |
+| Session-Binding                  |  270 |    8.17 | Unsigned32  | M    | P   |          | V        | Y    |
+| Session-Server-Failover          |  271 |    8.18 | Enumerated  | M    | P   |          | V        | Y    |
+| Supported-Vendor-Id              |  265 |   5.3.6 | Unsigned32  | M    | P   |          | V        | N    |
+| Termination-Cause                |  295 |    8.15 | Enumerated  | M    | P   |          | V        | N    |
+| User-Name                        |    1 |    8.14 | UTF8String  | M    | P   |          | V        | Y    |
+| Vendor-Id                        |  266 |   5.3.3 | Unsigned32  | M    | P   |          | V        | N    |
+| Vendor-Specific-Application-Id   |  260 |    6.11 | Grouped     | M    | P   |          | V        | N    |
+| # RFC 4005 - NAS #               |      |         |             |      |     |          |          |      |
+| NAS-Port                         |    5 |     4.2 | Unsigned32  | M    | P   |          | V        | Y    |
+| NAS-Port-Id                      |   87 |     4.3 | UTF8String  | M    | P   |          | V        | Y    |
+| NAS-Port-Type                    |   61 |     4.4 | Enumerated  | M    | P   |          | V        | Y    |
+| Called-Station-Id                |   30 |     4.5 | UTF8String  | M    | P   |          | V        | Y    |
+| Calling-Station-Id               |   31 |     4.6 | UTF8String  | M    | P   |          | V        | Y    |
+| Connect-Info                     |   77 |     4.7 | UTF8String  | M    | P   |          | V        | Y    |
+| Originating-Line-Info            |   94 |     4.8 | OctetString |      | M,P |          | V        | Y    |
+| Reply-Message                    |   18 |     4.9 | UTF8String  | M    | P   |          | V        | Y    |
+| User-Password                    |    2 |     5.1 | OctetString | M    | P   |          | V        | Y    |
+| Password-Retry                   |   75 |     5.2 | Unsigned32  | M    | P   |          | V        | Y    |
+| Prompt                           |   76 |     5.3 | Enumerated  | M    | P   |          | V        | Y    |
+| CHAP-Auth                        |  402 |     5.4 | Grouped     | M    | P   |          | V        | Y    |
+| CHAP-Algorithm                   |  403 |     5.5 | Enumerated  | M    | P   |          | V        | Y    |
+| CHAP-Ident                       |  404 |     5.6 | OctetString | M    | P   |          | V        | Y    |
+| CHAP-Response                    |  405 |     5.7 | OctetString | M    | P   |          | V        | Y    |
+| CHAP-Challenge                   |   60 |     5.8 | OctetString | M    | P   |          | V        | Y    |
+| ARAP-Password                    |   70 |     5.9 | OctetString | M    | P   |          | V        | Y    |
+| ARAP-Challenge-Response          |   84 |    5.10 | OctetString | M    | P   |          | V        | Y    |
+| ARAP-Security                    |   73 |    5.11 | Unsigned32  | M    | P   |          | V        | Y    |
+| ARAP-Security-Data               |   74 |    5.12 | OctetString | M    | P   |          | V        | Y    |
+| Service-Type                     |    6 |     6.1 | Enumerated  | M    | P   |          | V        | Y    |
+| Callback-Number                  |   19 |     6.2 | UTF8String  | M    | P   |          | V        | Y    |
+| Callback-Id                      |   20 |     6.3 | UTF8String  | M    | P   |          | V        | Y    |
+| Idle-Timeout                     |   28 |     6.4 | Unsigned32  | M    | P   |          | V        | Y    |
+| Port-Limit                       |   62 |     6.5 | Unsigned32  | M    | P   |          | V        | Y    |
+| NAS-Filter-Rule                  |  400 |     6.6 | IPFltrRule  | M    | P   |          | V        | Y    |
+| Filter-Id                        |   11 |     6.7 | UTF8String  | M    | P   |          | V        | Y    |
+| Configuration-Token              |   78 |     6.8 | OctetString | M    |     |          | P,V      |      |
+| QoS-Filter-Rule                  |  407 |     6.9 | QoSFltrRule |      |     |          |          |      |
+| Framed-Protocol                  |    7 |  6.10.1 | Enumerated  | M    | P   |          | V        | Y    |
+| Framed-Routing                   |   10 |  6.10.2 | Enumerated  | M    | P   |          | V        | Y    |
+| Framed-MTU                       |   12 |  6.10.3 | Unsigned32  | M    | P   |          | V        | Y    |
+| Framed-Compression               |   13 |  6.10.4 | Enumerated  | M    | P   |          | V        | Y    |
+| Framed-IP-Address                |    8 |  6.11.1 | OctetString | M    | P   |          | V        | Y    |
+| Framed-IP-Netmask                |    9 |  6.11.2 | OctetString | M    | P   |          | V        | Y    |
+| Framed-Route                     |   22 |  6.11.3 | UTF8String  | M    | P   |          | V        | Y    |
+| Framed-Pool                      |   88 |  6.11.4 | OctetString | M    | P   |          | V        | Y    |
+| Framed-Interface-Id              |   96 |  6.11.5 | Unsigned64  | M    | P   |          | V        | Y    |
+| Framed-IPv6-Prefix               |   97 |  6.11.6 | OctetString | M    | P   |          | V        | Y    |
+| Framed-IPv6-Route                |   99 |  6.11.7 | UTF8String  | M    | P   |          | V        | Y    |
+| Framed-IPv6-Pool                 |  100 |  6.11.8 | OctetString | M    | P   |          | V        | Y    |
+| Framed-IPX-Network               |   23 |  6.12.1 | UTF8String  | M    | P   |          | V        | Y    |
+| Framed-Appletalk-Link            |   37 |  6.13.1 | Unsigned32  | M    | P   |          | V        | Y    |
+| Framed-Appletalk-Network         |   38 |  6.13.2 | Unsigned32  | M    | P   |          | V        | Y    |
+| Framed-Appletalk-Zone            |   39 |  6.13.3 | OctetString | M    | P   |          | V        | Y    |
+| ARAP-Features                    |   71 |  6.14.1 | OctetString | M    | P   |          | V        | Y    |
+| ARAP-Zone-Access                 |   72 |  6.14.2 | Enumerated  | M    | P   |          | V        | Y    |
+| Login-IP-Host                    |   14 |  6.15.1 | OctetString | M    | P   |          | V        | Y    |
+| Login-IPv6-Host                  |   98 |  6.15.2 | OctetString | M    | P   |          | V        | Y    |
+| Login-Service                    |   15 |  6.15.3 | Enumerated  | M    | P   |          | V        | Y    |
+| Login-TCP-Port                   |   16 |  6.16.1 | Unsigned32  | M    | P   |          | V        | Y    |
+| Login-LAT-Service                |   34 |  6.17.1 | OctetString | M    | P   |          | V        | Y    |
+| Login-LAT-Node                   |   35 |  6.17.2 | OctetString | M    | P   |          | V        | Y    |
+| Login-LAT-Group                  |   36 |  6.17.3 | OctetString | M    | P   |          | V        | Y    |
+| Login-LAT-Port                   |   63 |  6.17.4 | OctetString | M    | P   |          | V        | Y    |
+| Tunneling                        |  401 |     7.1 | Grouped     | M    | P   |          | V        | N    |
+| Tunnel-Type                      |   64 |     7.2 | Enumerated  | M    | P   |          | V        | Y    |
+| Tunnel-Medium-Type               |   65 |     7.3 | Enumerated  | M    | P   |          | V        | Y    |
+| Tunnel-Client-Endpoint           |   66 |     7.4 | UTF8String  | M    | P   |          | V        | Y    |
+| Tunnel-Server-Endpoint           |   67 |     7.5 | UTF8String  | M    | P   |          | V        | Y    |
+| Tunnel-Password                  |   69 |     7.6 | OctetString | M    | P   |          | V        | Y    |
+| Tunnel-Private-Group-Id          |   81 |     7.7 | OctetString | M    | P   |          | V        | Y    |
+| Tunnel-Assignment-Id             |   82 |     7.8 | OctetString | M    | P   |          | V        | Y    |
+| Tunnel-Preference                |   83 |     7.9 | Unsigned32  | M    | P   |          | V        | Y    |
+| Tunnel-Client-Auth-Id            |   90 |    7.10 | UTF8String  | M    | P   |          | V        | Y    |
+| Tunnel-Server-Auth-Id            |   91 |    7.11 | UTF8String  | M    | P   |          | V        | Y    |
+| Accounting-Input-Octets          |  363 |     8.1 | Unsigned64  | M    | P   |          | V        | Y    |
+| Accounting-Output-Octets         |  364 |     8.2 | Unsigned64  | M    | P   |          | V        | Y    |
+| Accounting-Input-Packets         |  365 |     8.3 | Unsigned64  | M    | P   |          | V        | Y    |
+| Accounting-Output-Packets        |  366 |     8.4 | Unsigned64  | M    | P   |          | V        | Y    |
+| Acct-Session-Time                |   46 |     8.5 | Unsigned32  | M    | P   |          | V        | Y    |
+| Acct-Authentic                   |   45 |     8.6 | Enumerated  | M    | P   |          | V        | Y    |
+| Acounting-Auth-Method            |  406 |     8.7 | Enumerated  | M    | P   |          | V        | Y    |
+| Acct-Delay-Time                  |   41 |     8.8 | Unsigned32  | M    | P   |          | V        | Y    |
+| Acct-Link-Count                  |   51 |     8.9 | Unsigned32  | M    | P   |          | V        | Y    |
+| Acct-Tunnel-Connection           |   68 |    8.10 | OctetString | M    | P   |          | V        | Y    |
+| Acct-Tunnel-Packets-Lost         |   86 |    8.11 | Unsigned32  | M    | P   |          | V        | Y    |
+| NAS-Identifier                   |   32 |   9.3.1 | UTF8String  | M    | P   |          | V        | Y    |
+| NAS-IP-Address                   |    4 |   9.3.2 | OctetString | M    | P   |          | V        | Y    |
+| NAS-IPv6-Address                 |   95 |   9.3.3 | OctetString | M    | P   |          | V        | Y    |
+| State                            |   24 |   9.3.4 | OctetString | M    | P   |          | V        | Y    |
+| Termination-Cause                |  295 |   9.3.5 | Enumerated  | M    | P   |          | V        | Y    |
+| Origin-AAA-Protocol              |  408 |   9.3.6 | Enumerated  | M    | P   |          | V        | Y    |
+| # RFC 4006 - DCCA #              |      |         |             |      |     |          |          |      |
+| CC-Correlation-Id                |  411 |     8.1 | OctetString |      | P,M |          | V        | Y    |
+| CC-Input-Octets                  |  412 |    8.24 | Unsigned64  | M    | P   |          | V        | Y    |
+| CC-Money                         |  413 |    8.22 | Grouped     | M    | P   |          | V        | Y    |
+| CC-Output-Octets                 |  414 |    8.25 | Unsigned64  | M    | P   |          | V        | Y    |
+| CC-Request-Number                |  415 |     8.2 | Unsigned32  | M    | P   |          | V        | Y    |
+| CC-Request-Type                  |  416 |     8.3 | Enumerated  | M    | P   |          | V        | Y    |
+| CC-Service-Specific-Units        |  417 |    8.26 | Unsigned64  | M    | P   |          | V        | Y    |
+| CC-Session-Failover              |  418 |     8.4 | Enumerated  | M    | P   |          | V        | Y    |
+| CC-Sub-Session-Id                |  419 |     8.5 | Unsigned64  | M    | P   |          | V        | Y    |
+| CC-Time                          |  420 |    8.21 | Unsigned32  | M    | P   |          | V        | Y    |
+| CC-Total-Octets                  |  421 |    8.23 | Unsigned64  | M    | P   |          | V        | Y    |
+| CC-Unit-Type                     |  454 |    8.32 | Enumerated  | M    | P   |          | V        | Y    |
+| Check-Balance-Result             |  422 |     8.6 | Enumerated  | M    | P   |          | V        | Y    |
+| Cost-Information                 |  423 |     8.7 | Grouped     | M    | P   |          | V        | Y    |
+| Cost-Unit                        |  424 |    8.12 | UTF8String  | M    | P   |          | V        | Y    |
+| Credit-Control                   |  426 |    8.13 | Enumerated  | M    | P   |          | V        | Y    |
+| Credit-Control-Failure-Handling  |  427 |    8.14 | Enumerated  | M    | P   |          | V        | Y    |
+| Currency-Code                    |  425 |    8.11 | Unsigned32  | M    | P   |          | V        | Y    |
+| Direct-Debiting-Failure-Handling |  428 |    8.15 | Enumerated  | M    | P   |          | V        | Y    |
+| Exponent                         |  429 |     8.9 | Integer32   | M    | P   |          | V        | Y    |
+| Final-Unit-Action                |  449 |    8.35 | Enumerated  | M    | P   |          | V        | Y    |
+| Final-Unit-Indication            |  430 |    8.34 | Grouped     | M    | P   |          | V        | Y    |
+| Granted-Service-Unit             |  431 |    8.17 | Grouped     | M    | P   |          | V        | Y    |
+| G-S-U-Pool-Identifier            |  453 |    8.31 | Unsigned32  | M    | P   |          | V        | Y    |
+| G-S-U-Pool-Reference             |  457 |    8.30 | Grouped     | M    | P   |          | V        | Y    |
+| Multiple-Services-Credit-Control |  456 |    8.16 | Grouped     | M    | P   |          | V        | Y    |
+| Multiple-Services-Indicator      |  455 |    8.40 | Enumerated  | M    | P   |          | V        | Y    |
+| Rating-Group                     |  432 |    8.29 | Unsigned32  | M    | P   |          | V        | Y    |
+| Redirect-Address-Type            |  433 |    8.38 | Enumerated  | M    | P   |          | V        | Y    |
+| Redirect-Server                  |  434 |    8.37 | Grouped     | M    | P   |          | V        | Y    |
+| Redirect-Server-Address          |  435 |    8.39 | UTF8String  | M    | P   |          | V        | Y    |
+| Requested-Action                 |  436 |    8.41 | Enumerated  | M    | P   |          | V        | Y    |
+| Requested-Service-Unit           |  437 |    8.18 | Grouped     | M    | P   |          | V        | Y    |
+| Restriction-Filter-Rule          |  438 |    8.36 | IPFiltrRule | M    | P   |          | V        | Y    |
+| Service-Context-Id               |  461 |    8.42 | UTF8String  | M    | P   |          | V        | Y    |
+| Service-Identifier               |  439 |    8.28 | Unsigned32  | M    | P   |          | V        | Y    |
+| Service-Parameter-Info           |  440 |    8.43 | Grouped     |      | P,M |          | V        | Y    |
+| Service-Parameter-Type           |  441 |    8.44 | Unsigned32  |      | P,M |          | V        | Y    |
+| Service-Parameter-Value          |  442 |    8.45 | OctetString |      | P,M |          | V        | Y    |
+| Subscription-Id                  |  443 |    8.46 | Grouped     | M    | P   |          | V        | Y    |
+| Subscription-Id-Data             |  444 |    8.48 | UTF8String  | M    | P   |          | V        | Y    |
+| Subscription-Id-Type             |  450 |    8.47 | Enumerated  | M    | P   |          | V        | Y    |
+| Tariff-Change-Usage              |  452 |    8.27 | Enumerated  | M    | P   |          | V        | Y    |
+| Tariff-Time-Change               |  451 |    8.20 | Time        | M    | P   |          | V        | Y    |
+| Unit-Value                       |  445 |     8.8 | Grouped     | M    | P   |          | V        | Y    |
+| Used-Service-Unit                |  446 |    8.19 | Grouped     | M    | P   |          | V        | Y    |
+| User-Equipment-Info              |  458 |    8.49 | Grouped     |      | P,M |          | V        | Y    |
+| User-Equipment-Info-Type         |  459 |    8.50 | Enumerated  |      | P,M |          | V        | Y    |
+| User-Equipment-Info-Value        |  460 |    8.51 | OctetString |      | P,M |          | V        | Y    |
+| Value-Digits                     |  447 |    8.10 | Integer64   | M    | P   |          | V        | Y    |
+| Validity-Time                    |  448 |    8.33 | Unsigned32  | M    | P   |          | V        | Y    |
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/tools/org_to_fd.pl	Wed Mar 06 20:09:54 2013 +0100
@@ -0,0 +1,96 @@
+#!/usr/bin/env perl
+use strict;
+use Getopt::Std;
+
+our ($opt_V, $opt_v);
+
+# default to 3GPP
+my ($vendor) = 10415;
+my ($vendor_name) = "3GPP";
+
+sub convert_must_to_flags($) {
+    my ($allmust) = @_;
+    my ($mustfields) = "";
+    $mustfields .= "AVP_FLAG_VENDOR |" if ($allmust =~ m/V/);
+    $mustfields .= "AVP_FLAG_MANDATORY |" if ($allmust =~ m/M/);
+    $mustfields =~ s/ \|$//;
+    return $mustfields;
+}
+
+sub base_type($) {
+    my ($type) = @_;
+
+    return "AVP_TYPE_GROUPED" if ($type =~ m/Grouped/);
+    return "AVP_TYPE_OCTETSTRING" if ($type =~ m/(Address|DiameterIdentity|DiameterURI|OctetString|IPFilterRule|Time|UTF8String)/);
+    return "AVP_TYPE_INTEGER32" if ($type =~ m/Enumerated|Integer32/);
+    return "AVP_TYPE_INTEGER64" if ($type =~ m/Integer64/);
+    return "AVP_TYPE_UNSIGNED32" if ($type =~ m/Unsigned32/);
+    return "AVP_TYPE_UNSIGNED64" if ($type =~ m/Unsigned64/);
+    return "AVP_TYPE_FLOAT32" if ($type =~ m/Float32/);
+    return "AVP_TYPE_FLOAT64" if ($type =~ m/Float64/);
+
+    return "UNKNOWN TYPE: $type";
+}
+
+sub print_insert($$) {
+    my ($type, $name) = @_;
+    my $avp_type;
+
+    if ($type =~ m/(Grouped|OctetString|Integer32|Integer64|Unsigned32|Unsigned64|Float32|Float64)/) {
+        $avp_type = "NULL";
+    } elsif ($type =~ m/Enumerated/) {
+        print "\t\tstruct dict_object		*type;\n";
+        print "\t\tstruct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, \"" . ($vendor_name ? "$vendor_name/" : "") ."Enumerated($name)\", NULL, NULL, NULL };\n";
+        # XXX: add enumerated values
+        print "\t\tCHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);\n";
+        $avp_type = "type";
+    } else {
+        $avp_type = "${type}_type";
+    }
+
+    print "\t\tCHECK_dict_new(DICT_AVP, &data, $avp_type, NULL);\n";
+}
+
+sub usage($) {
+    die("usage: org_to_fd.pl [-V vendor_name -v vendor] [file ...]\n");
+    exit(@_);
+}
+
+getopts("V:v:") || usage(1);
+
+if (defined($opt_v)) {
+    $vendor = $opt_v;
+    if (!defined($opt_V)) {
+	usage(1);
+    }
+    $vendor_name = $opt_V;
+}
+
+print "\t/* The following is created automatically. Do not modify. */\n";
+print "\t/* Changes will be lost during the next update. Modify the source org file instead. */\n\n";
+
+while (<>) {
+    my ($dummy, $name, $code, $section, $type, $must, $may, $shouldnot, $mustnot, $encr) = split /\|/;
+
+    next if ($name =~ m/Attribute Name/);
+    if ($name =~ m/ # (.*)/) {
+        print "\t/* $1 */\n";
+        next;
+    }
+        
+
+    $name =~ s/ *//g;
+    $code =~ s/ *//g;
+    $type =~ s/ *//g;
+
+    print "\t/* $name */\n\t{\n\t\tstruct dict_avp_data data = {\n";
+    print "\t\t\t$code,\t/* Code */\n";
+    print "\t\t\t$vendor,\t/* Vendor */\n";
+    print "\t\t\t\"$name\",\t/* Name */\n";
+    print "\t\t\t" . convert_must_to_flags("$must, $mustnot") . ",\t/* Fixed flags */\n";
+    print "\t\t\t" . convert_must_to_flags("$must") . ",\t/* Fixed flag values */\n";
+    print "\t\t\t" . base_type($type) . "\t/* base type of data */\n";
+    print "\t\t};\n";
+    print_insert($type, $name);
+    print "\t};\n\n";
+}
--- a/extensions/_sample/CMakeLists.txt	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/_sample/CMakeLists.txt	Wed Mar 06 20:09:54 2013 +0100
@@ -1,15 +1,6 @@
 # The sample extension
 PROJECT("Sample extension")
 
-# Overwrite the debug level for the extension code if configured
-OPTION(DEBUG_LEVEL__SAMPLE "Overwrite debug level for the extension _sample if defined (valid values: FULL, ANNOYING, CALL...)" OFF)
-IF (DEBUG_LEVEL__SAMPLE)
-     ADD_DEFINITIONS(-DTRACE_LEVEL=${DEBUG_LEVEL__SAMPLE})
-ENDIF (DEBUG_LEVEL__SAMPLE)
-IF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-  MARK_AS_ADVANCED(DEBUG_LEVEL__SAMPLE)
-ENDIF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-
 # Compile as a module
 FD_ADD_EXTENSION(dbg_sample sample.c hello.cpp fini.c)
 
--- a/extensions/acl_wl/CMakeLists.txt	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/acl_wl/CMakeLists.txt	Wed Mar 06 20:09:54 2013 +0100
@@ -16,15 +16,6 @@
 	aw_conf.tab.h
 )
 
-# Overwrite the debug level for the extension code if configured
-OPTION(DEBUG_LEVEL_ACL_WL "Overwrite debug level for the extension acl_wl if defined (valid values: FULL, ANNOYING, CALL...)" OFF)
-IF (DEBUG_LEVEL_ACL_WL)
-     ADD_DEFINITIONS(-DTRACE_LEVEL=${DEBUG_LEVEL_ACL_WL})
-ENDIF (DEBUG_LEVEL_ACL_WL)
-IF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-  MARK_AS_ADVANCED(DEBUG_LEVEL_ACL_WL)
-ENDIF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-
 # Compile as a module
 FD_ADD_EXTENSION(acl_wl ${ACL_WL_SRC})
 
--- a/extensions/acl_wl/aw_conf.y	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/acl_wl/aw_conf.y	Wed Mar 06 20:09:54 2013 +0100
@@ -34,7 +34,7 @@
 *********************************************************************************************************/
 
 /* Yacc extension's configuration parser.
- * See doc/app_test.conf.sample for configuration file format
+ * See doc/acl_wl.conf.sample for configuration file format
  */
 
 /* For development only : */
--- a/extensions/app_diameap/diameap_tls.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/app_diameap/diameap_tls.h	Wed Mar 06 20:09:54 2013 +0100
@@ -41,7 +41,9 @@
 
 #include "diameap_defs.h"
 #include <gnutls/gnutls.h>
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #include <gcrypt.h>
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 #include <errno.h>
 #include <pthread.h>
 
--- a/extensions/app_diameap/libcrypt.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/app_diameap/libcrypt.h	Wed Mar 06 20:09:54 2013 +0100
@@ -39,7 +39,9 @@
 #ifndef LIBCRYPT_H_
 #define LIBCRYPT_H_
 
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #include <gcrypt.h>
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 #include <stdio.h>
 
 /* EAP-TLS*/
--- a/extensions/app_diameap/plugins/eap_md5/eap_md5.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/app_diameap/plugins/eap_md5/eap_md5.c	Wed Mar 06 20:09:54 2013 +0100
@@ -37,7 +37,9 @@
 
 
 #include "../../plugins.h"
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #include <gcrypt.h>
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 
 #define CHALLENGE_LEN	16
 
--- a/extensions/app_radgw/CMakeLists.txt	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/app_radgw/CMakeLists.txt	Wed Mar 06 20:09:54 2013 +0100
@@ -2,16 +2,6 @@
 PROJECT("RADIUS/Diameter extensible gateway application for freeDiameter" C)
 
 
-# Overwrite the debug level for the extension code if configured
-OPTION(DEBUG_LEVEL_APP_RADGW "Overwrite debug level for the extension app_radgw if defined (valid values: FULL, ANNOYING, CALL...)" OFF)
-IF (DEBUG_LEVEL_APP_RADGW)
-     ADD_DEFINITIONS(-DTRACE_LEVEL=${DEBUG_LEVEL_APP_RADGW})
-ENDIF (DEBUG_LEVEL_APP_RADGW)
-IF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-  MARK_AS_ADVANCED(DEBUG_LEVEL_APP_RADGW)
-ENDIF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-
-
 ########### Main app_radgw extension #############
 
 # Parser files
--- a/extensions/app_sip/app_sip.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/app_sip/app_sip.h	Wed Mar 06 20:09:54 2013 +0100
@@ -38,7 +38,9 @@
 #include <stdint.h>
 #include <stdlib.h>
 #include <stdio.h>
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #include <gcrypt.h>
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 #include <string.h>
 #include <mysql.h>
 #include "md5.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extensions/dict_dcca_3gpp/CMakeLists.txt	Wed Mar 06 20:09:54 2013 +0100
@@ -0,0 +1,13 @@
+# The dict_dcca_3gpp extension
+PROJECT("Diameter DCCA (Diameter Credit Control Application) 3GPP dictionary definitions" C)
+
+# Compile as a module
+FD_ADD_EXTENSION(dict_dcca_3gpp dict_dcca_3gpp.c)
+
+
+####
+## INSTALL section ##
+
+INSTALL(TARGETS dict_dcca_3gpp
+	LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX}
+	COMPONENT freeDiameter-dictionary-rfc4006-extension-3gpp)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Wed Mar 06 20:09:54 2013 +0100
@@ -0,0 +1,7014 @@
+/* 
+ * Dictionary definitions of objects specified in DCCA (Nokia, 3GPP).
+ */
+#include <freeDiameter/extension.h>
+
+
+/* The content of this file follows the same structure as dict_base_proto.c */
+
+#define CHECK_dict_new( _type, _data, _parent, _ref )	\
+	CHECK_FCT(  fd_dict_new( fd_g_config->cnf_dict, (_type), (_data), (_parent), (_ref))  );
+
+#define CHECK_dict_search( _type, _criteria, _what, _result )	\
+	CHECK_FCT(  fd_dict_search( fd_g_config->cnf_dict, (_type), (_criteria), (_what), (_result), ENOENT) );
+
+struct local_rules_definition {
+	char 			*avp_name;
+	enum rule_position	position;
+	int 			min;
+	int			max;
+};
+
+#define RULE_ORDER( _position ) ((((_position) == RULE_FIXED_HEAD) || ((_position) == RULE_FIXED_TAIL)) ? 1 : 0 )
+
+#define PARSE_loc_rules( _rulearray, _parent) {								\
+	int __ar;											\
+	for (__ar=0; __ar < sizeof(_rulearray) / sizeof((_rulearray)[0]); __ar++) {			\
+		struct dict_rule_data __data = { NULL, 							\
+			(_rulearray)[__ar].position,							\
+			0, 										\
+			(_rulearray)[__ar].min,								\
+			(_rulearray)[__ar].max};							\
+		__data.rule_order = RULE_ORDER(__data.rule_position);					\
+		CHECK_FCT(  fd_dict_search( 								\
+			fd_g_config->cnf_dict,								\
+			DICT_AVP, 									\
+			AVP_BY_NAME, 									\
+			(_rulearray)[__ar].avp_name, 							\
+			&__data.rule_avp, 0 ) );							\
+		if ( !__data.rule_avp ) {								\
+			TRACE_DEBUG(INFO, "AVP Not found: '%s'", (_rulearray)[__ar].avp_name );		\
+			return ENOENT;									\
+		}											\
+		CHECK_FCT_DO( fd_dict_new( fd_g_config->cnf_dict, DICT_RULE, &__data, _parent, NULL),	\
+			{							        		\
+				TRACE_DEBUG(INFO, "Error on rule with AVP '%s'",      			\
+					 (_rulearray)[__ar].avp_name );		      			\
+				return EINVAL;					      			\
+			} );							      			\
+	}									      			\
+}
+
+#define enumval_def_u32( _val_, _str_ ) \
+		{ _str_, 		{ .u32 = _val_ }}
+
+#define enumval_def_os( _len_, _val_, _str_ ) \
+		{ _str_, 		{ .os = { .data = (unsigned char *)_val_, .len = _len_ }}}
+
+
+static int dict_dcca_3gpp_entry(char * conffile)
+{
+	/* Applications section */
+	{		
+                /* Create the vendors */
+                {
+                        struct dict_vendor_data vendor_data = { 10415, "3GPP" };
+                        CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &vendor_data, NULL, NULL));
+                }                                
+  
+	}
+	
+
+	struct dict_object * Address_type;
+	struct dict_object * DiameterIdentity_type;
+	struct dict_object * DiameterURI_type;
+	struct dict_object * IPFilterRule_type;
+	struct dict_object * Time_type;
+	struct dict_object * UTF8String_type;
+
+	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Address", &Address_type);
+	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterIdentity", &DiameterIdentity_type);
+	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterURI", &DiameterURI_type);
+	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "IPFilterRule", &IPFilterRule_type);
+	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type);                                
+	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type);
+	
+	/* The following is created automatically. Do not modify. */
+	/* Changes will be lost during the next update. Modify the source org file instead. */
+
+	/* 3GPP 29.061-c00 (12.0.0 2012.12.20)                          */
+	/* 3GPP 29.061 is not very clear and self-inconsistent about M  */
+	/* for this reason, other sources are assumed more trustworthy  */
+	/* M inconsistently specified                                   */
+	/* 3GPP-IMSI */
+	{
+		struct dict_avp_data data = {
+			1,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-IMSI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* 29.061 says OctetString; dumps say UInt32; manually changed  */
+	/* 29.061 says MUST NOT M; dumps say MUST                       */
+	/* 3GPP-Charging-Id */
+	{
+		struct dict_avp_data data = {
+			2,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Charging-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; dumps say MUST                       */
+	/* 3GPP-PDP-Type */
+	{
+		struct dict_avp_data data = {
+			3,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-PDP-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(3GPP-PDP-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* 3GPP-CG-Address */
+	{
+		struct dict_avp_data data = {
+			4,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-CG-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-GPRS-Negotiated-QoS-Profile */
+	{
+		struct dict_avp_data data = {
+			5,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-GPRS-Negotiated-QoS-Profile",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* M inconsistently specified; old contrib/3gg says MUST NOT    */
+	/* 3GPP-SGSN-Address */
+	{
+		struct dict_avp_data data = {
+			6,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-SGSN-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP-GGSN-Address */
+	{
+		struct dict_avp_data data = {
+			7,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-GGSN-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; dumps say MUST                       */
+	/* 3GPP-IMSI-MCC-MNC */
+	{
+		struct dict_avp_data data = {
+			8,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-IMSI-MCC-MNC",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-GGSN-MCC-MNC */
+	{
+		struct dict_avp_data data = {
+			9,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-GGSN-MCC-MNC",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-NSAPI */
+	{
+		struct dict_avp_data data = {
+			10,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-NSAPI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* added manually, missing in AVP table                         */
+	/* 3GPP-Session-Stop-Indicator */
+	{
+		struct dict_avp_data data = {
+			11,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Session-Stop-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-Selection-Mode */
+	{
+		struct dict_avp_data data = {
+			12,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Selection-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-Charging-Characteristics */
+	{
+		struct dict_avp_data data = {
+			13,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Charging-Characteristics",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-CG-IPv6-Address */
+	{
+		struct dict_avp_data data = {
+			14,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-CG-IPv6-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* M inconsistently specified                                   */
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-SGSN-IPv6-Address */
+	{
+		struct dict_avp_data data = {
+			15,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-SGSN-IPv6-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-GGSN-IPv6-Address */
+	{
+		struct dict_avp_data data = {
+			16,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-GGSN-IPv6-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-IPv6-DNS-Servers */
+	{
+		struct dict_avp_data data = {
+			17,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-IPv6-DNS-Servers",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 29.061 says MUST NOT M; old contrib/3gpp says MUST           */
+	/* 3GPP-SGSN-MCC-MNC */
+	{
+		struct dict_avp_data data = {
+			18,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-SGSN-MCC-MNC",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* M inconsistently specified                                   */
+	/* 3GPP-IMEISV */
+	{
+		struct dict_avp_data data = {
+			20,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-IMEISV",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* M inconsistently specified                                   */
+	/* 3GPP-RAT-Type */
+	{
+		struct dict_avp_data data = {
+			21,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-RAT-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* M inconsistently specified                                   */
+	/* 3GPP-User-Location-Info */
+	{
+		struct dict_avp_data data = {
+			22,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-User-Location-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* M inconsistently specified                                   */
+	/* 3GPP-MS-TimeZone */
+	{
+		struct dict_avp_data data = {
+			23,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-MS-TimeZone",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP-CAMEL-Charging-Info */
+	{
+		struct dict_avp_data data = {
+			24,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-CAMEL-Charging-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP-Packet-Filter */
+	{
+		struct dict_avp_data data = {
+			25,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Packet-Filter",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP-Negotiated-DSCP */
+	{
+		struct dict_avp_data data = {
+			26,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Negotiated-DSCP",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP-Allocate-IP-Type */
+	{
+		struct dict_avp_data data = {
+			27,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-Allocate-IP-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* added manually, missing in AVP table                         */
+	/* External-Identifier */
+	{
+		struct dict_avp_data data = {
+			28,	/* Code */
+			10415,	/* Vendor */
+			"External-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* TMGI */
+	{
+		struct dict_avp_data data = {
+			900,	/* Code */
+			10415,	/* Vendor */
+			"TMGI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Required-MBMS-Bearer-Capabilities */
+	{
+		struct dict_avp_data data = {
+			901,	/* Code */
+			10415,	/* Vendor */
+			"Required-MBMS-Bearer-Capabilities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* MBMS-StartStop-Indication */
+	{
+		struct dict_avp_data data = {
+			902,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-StartStop-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-StartStop-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMS-Service-Area */
+	{
+		struct dict_avp_data data = {
+			903,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Service-Area",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-Session-Duration */
+	{
+		struct dict_avp_data data = {
+			904,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Session-Duration",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Alternative-APN */
+	{
+		struct dict_avp_data data = {
+			905,	/* Code */
+			10415,	/* Vendor */
+			"Alternative-APN",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* MBMS-Service-Type */
+	{
+		struct dict_avp_data data = {
+			906,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Service-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-Service-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMS-2G-3G-Indicator */
+	{
+		struct dict_avp_data data = {
+			907,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-2G-3G-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-2G-3G-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMS-Session-Identity */
+	{
+		struct dict_avp_data data = {
+			908,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Session-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* RAI */
+	{
+		struct dict_avp_data data = {
+			909,	/* Code */
+			10415,	/* Vendor */
+			"RAI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Additional-MBMS-Trace-Info */
+	{
+		struct dict_avp_data data = {
+			910,	/* Code */
+			10415,	/* Vendor */
+			"Additional-MBMS-Trace-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-Time-To-Data-Transfer */
+	{
+		struct dict_avp_data data = {
+			911,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Time-To-Data-Transfer",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-Session-Repetition-Number */
+	{
+		struct dict_avp_data data = {
+			912,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Session-Repetition-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-Required-QoS */
+	{
+		struct dict_avp_data data = {
+			913,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Required-QoS",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* MBMS-Counting-Information */
+	{
+		struct dict_avp_data data = {
+			914,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Counting-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-Counting-Information)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMS-User-Data-Mode-Indication */
+	{
+		struct dict_avp_data data = {
+			915,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-User-Data-Mode-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-User-Data-Mode-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMS-GGSN-Address */
+	{
+		struct dict_avp_data data = {
+			916,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-GGSN-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-GGSN-IPv6-Address */
+	{
+		struct dict_avp_data data = {
+			917,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-GGSN-IPv6-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-BMSC-SSM-IP-Address */
+	{
+		struct dict_avp_data data = {
+			918,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-BMSC-SSM-IP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-BMSC-SSM-IPv6-Address */
+	{
+		struct dict_avp_data data = {
+			919,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-BMSC-SSM-IPv6-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-Flow-Identifier */
+	{
+		struct dict_avp_data data = {
+			920,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Flow-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* CN-IP-Multicast-Distribution */
+	{
+		struct dict_avp_data data = {
+			921,	/* Code */
+			10415,	/* Vendor */
+			"CN-IP-Multicast-Distribution",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CN-IP-Multicast-Distribution)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMS-HC-Indicator */
+	{
+		struct dict_avp_data data = {
+			922,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-HC-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-HC-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* 3GPP 29.212-b70 (11.7.0 2012.12.20)                          */
+	/* ADC-Revalidation-Time */
+	{
+		struct dict_avp_data data = {
+			2801,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Revalidation-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* ADC-Rule-Install */
+	{
+		struct dict_avp_data data = {
+			1092,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Install",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* ADC-Rule-Remove */
+	{
+		struct dict_avp_data data = {
+			1093,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Remove",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* ADC-Rule-Definition */
+	{
+		struct dict_avp_data data = {
+			1094,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Definition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* ADC-Rule-Base-Name */
+	{
+		struct dict_avp_data data = {
+			1095,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Base-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* ADC-Rule-Name */
+	{
+		struct dict_avp_data data = {
+			1096,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* ADC-Rule-Report */
+	{
+		struct dict_avp_data data = {
+			1097,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Report",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Application-Detection-Information */
+	{
+		struct dict_avp_data data = {
+			1098,	/* Code */
+			10415,	/* Vendor */
+			"Application-Detection-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Access-Network-Charging-Identifier-Gx */
+	{
+		struct dict_avp_data data = {
+			1022,	/* Code */
+			10415,	/* Vendor */
+			"Access-Network-Charging-Identifier-Gx",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Allocation-Retention-Priority */
+	{
+		struct dict_avp_data data = {
+			1034,	/* Code */
+			10415,	/* Vendor */
+			"Allocation-Retention-Priority",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* AN-GW-Address */
+	{
+		struct dict_avp_data data = {
+			1050,	/* Code */
+			10415,	/* Vendor */
+			"AN-GW-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* APN-Aggregate-Max-Bitrate-DL */
+	{
+		struct dict_avp_data data = {
+			1040,	/* Code */
+			10415,	/* Vendor */
+			"APN-Aggregate-Max-Bitrate-DL",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* APN-Aggregate-Max-Bitrate-UL */
+	{
+		struct dict_avp_data data = {
+			1041,	/* Code */
+			10415,	/* Vendor */
+			"APN-Aggregate-Max-Bitrate-UL",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Bearer-Control-Mode */
+	{
+		struct dict_avp_data data = {
+			1023,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Control-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Control-Mode)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Bearer-Identifier */
+	{
+		struct dict_avp_data data = {
+			1020,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Bearer-Operation */
+	{
+		struct dict_avp_data data = {
+			1021,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Operation",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Operation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Bearer-Usage */
+	{
+		struct dict_avp_data data = {
+			1000,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Usage",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Usage)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Charging-Rule-Install */
+	{
+		struct dict_avp_data data = {
+			1001,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Install",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Charging-Rule-Remove */
+	{
+		struct dict_avp_data data = {
+			1002,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Remove",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Charging-Rule-Definition */
+	{
+		struct dict_avp_data data = {
+			1003,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Definition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Charging-Rule-Base-Name */
+	{
+		struct dict_avp_data data = {
+			1004,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Base-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Charging-Rule-Name */
+	{
+		struct dict_avp_data data = {
+			1005,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Charging-Rule-Report */
+	{
+		struct dict_avp_data data = {
+			1018,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Report",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Charging-Correlation-Indicator */
+	{
+		struct dict_avp_data data = {
+			1073,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Correlation-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Charging-Correlation-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* CoA-IP-Address */
+	{
+		struct dict_avp_data data = {
+			1035,	/* Code */
+			10415,	/* Vendor */
+			"CoA-IP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* CoA-Information */
+	{
+		struct dict_avp_data data = {
+			1039,	/* Code */
+			10415,	/* Vendor */
+			"CoA-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* CSG-Information-Reporting */
+	{
+		struct dict_avp_data data = {
+			1071,	/* Code */
+			10415,	/* Vendor */
+			"CSG-Information-Reporting",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CSG-Information-Reporting)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Default-EPS-Bearer-QoS */
+	{
+		struct dict_avp_data data = {
+			1049,	/* Code */
+			10415,	/* Vendor */
+			"Default-EPS-Bearer-QoS",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Event-Report-Indication */
+	{
+		struct dict_avp_data data = {
+			1033,	/* Code */
+			10415,	/* Vendor */
+			"Event-Report-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Event-Trigger */
+	{
+		struct dict_avp_data data = {
+			1006,	/* Code */
+			10415,	/* Vendor */
+			"Event-Trigger",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Event-Trigger)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Flow-Direction */
+	{
+		struct dict_avp_data data = {
+			1080,	/* Code */
+			10415,	/* Vendor */
+			"Flow-Direction",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Flow-Direction)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Flow-Information */
+	{
+		struct dict_avp_data data = {
+			1058,	/* Code */
+			10415,	/* Vendor */
+			"Flow-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Flow-Label */
+	{
+		struct dict_avp_data data = {
+			1057,	/* Code */
+			10415,	/* Vendor */
+			"Flow-Label",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* IP-CAN-Type */
+	{
+		struct dict_avp_data data = {
+			1027,	/* Code */
+			10415,	/* Vendor */
+			"IP-CAN-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IP-CAN-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Guaranteed-Bitrate-DL */
+	{
+		struct dict_avp_data data = {
+			1025,	/* Code */
+			10415,	/* Vendor */
+			"Guaranteed-Bitrate-DL",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Guaranteed-Bitrate-UL */
+	{
+		struct dict_avp_data data = {
+			1026,	/* Code */
+			10415,	/* Vendor */
+			"Guaranteed-Bitrate-UL",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* HeNB-BBF-FQDN */
+	{
+		struct dict_avp_data data = {
+			2803,	/* Code */
+			10415,	/* Vendor */
+			"HeNB-BBF-FQDN",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* HeNB-Local-IP-Address */
+	{
+		struct dict_avp_data data = {
+			2804,	/* Code */
+			10415,	/* Vendor */
+			"HeNB-Local-IP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Metering-Method */
+	{
+		struct dict_avp_data data = {
+			1007,	/* Code */
+			10415,	/* Vendor */
+			"Metering-Method",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Metering-Method)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Monitoring-Key */
+	{
+		struct dict_avp_data data = {
+			1066,	/* Code */
+			10415,	/* Vendor */
+			"Monitoring-Key",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Mute-Notification */
+	{
+		struct dict_avp_data data = {
+			2809,	/* Code */
+			10415,	/* Vendor */
+			"Mute-Notification",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Mute-Notification)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Monitoring-Time */
+	{
+		struct dict_avp_data data = {
+			2810,	/* Code */
+			10415,	/* Vendor */
+			"Monitoring-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Network-Request-Support */
+	{
+		struct dict_avp_data data = {
+			1024,	/* Code */
+			10415,	/* Vendor */
+			"Network-Request-Support",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Network-Request-Support)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Offline */
+	{
+		struct dict_avp_data data = {
+			1008,	/* Code */
+			10415,	/* Vendor */
+			"Offline",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Offline)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Online */
+	{
+		struct dict_avp_data data = {
+			1009,	/* Code */
+			10415,	/* Vendor */
+			"Online",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Online)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Packet-Filter-Content */
+	{
+		struct dict_avp_data data = {
+			1059,	/* Code */
+			10415,	/* Vendor */
+			"Packet-Filter-Content",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, IPFilterRule_type, NULL);
+	};
+
+	/* Packet-Filter-Identifier */
+	{
+		struct dict_avp_data data = {
+			1060,	/* Code */
+			10415,	/* Vendor */
+			"Packet-Filter-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Packet-Filter-Information */
+	{
+		struct dict_avp_data data = {
+			1061,	/* Code */
+			10415,	/* Vendor */
+			"Packet-Filter-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Packet-Filter-Operation */
+	{
+		struct dict_avp_data data = {
+			1062,	/* Code */
+			10415,	/* Vendor */
+			"Packet-Filter-Operation",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Packet-Filter-Operation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Packet-Filter-Usage */
+	{
+		struct dict_avp_data data = {
+			1072,	/* Code */
+			10415,	/* Vendor */
+			"Packet-Filter-Usage",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Packet-Filter-Usage)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PDN-Connection-ID */
+	{
+		struct dict_avp_data data = {
+			1065,	/* Code */
+			10415,	/* Vendor */
+			"PDN-Connection-ID",	/* Name */
+			AVP_FLAG_VENDOR,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Precedence */
+	{
+		struct dict_avp_data data = {
+			1010,	/* Code */
+			10415,	/* Vendor */
+			"Precedence",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Pre-emption-Capability */
+	{
+		struct dict_avp_data data = {
+			1047,	/* Code */
+			10415,	/* Vendor */
+			"Pre-emption-Capability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Pre-emption-Capability)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Pre-emption-Vulnerability */
+	{
+		struct dict_avp_data data = {
+			1048,	/* Code */
+			10415,	/* Vendor */
+			"Pre-emption-Vulnerability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Pre-emption-Vulnerability)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Priority-Level */
+	{
+		struct dict_avp_data data = {
+			1046,	/* Code */
+			10415,	/* Vendor */
+			"Priority-Level",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Redirect-Information */
+	{
+		struct dict_avp_data data = {
+			1085,	/* Code */
+			10415,	/* Vendor */
+			"Redirect-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Redirect-Support */
+	{
+		struct dict_avp_data data = {
+			1086,	/* Code */
+			10415,	/* Vendor */
+			"Redirect-Support",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Redirect-Support)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Reporting-Level */
+	{
+		struct dict_avp_data data = {
+			1011,	/* Code */
+			10415,	/* Vendor */
+			"Reporting-Level",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Reporting-Level)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Routing-Filter */
+	{
+		struct dict_avp_data data = {
+			1078,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Filter",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Routing-IP-Address */
+	{
+		struct dict_avp_data data = {
+			1079,	/* Code */
+			10415,	/* Vendor */
+			"Routing-IP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Routing-Rule-Definition */
+	{
+		struct dict_avp_data data = {
+			1076,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-Definition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Routing-Rule-Identifier */
+	{
+		struct dict_avp_data data = {
+			1077,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Routing-Rule-Install */
+	{
+		struct dict_avp_data data = {
+			1081,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-Install",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Routing-Rule-Remove */
+	{
+		struct dict_avp_data data = {
+			1075,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-Remove",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PCC-Rule-Status */
+	{
+		struct dict_avp_data data = {
+			1019,	/* Code */
+			10415,	/* Vendor */
+			"PCC-Rule-Status",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PCC-Rule-Status)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Session-Release-Cause */
+	{
+		struct dict_avp_data data = {
+			1045,	/* Code */
+			10415,	/* Vendor */
+			"Session-Release-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Release-Cause)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* TDF-Information */
+	{
+		struct dict_avp_data data = {
+			1087,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* TDF-Application-Identifier */
+	{
+		struct dict_avp_data data = {
+			1088,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Application-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* TDF-Application-Instance-Identifier */
+	{
+		struct dict_avp_data data = {
+			2802,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Application-Instance-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* TDF-Destination-Host */
+	{
+		struct dict_avp_data data = {
+			1089,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Destination-Host",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterIdentity_type, NULL);
+	};
+
+	/* TDF-Destination-Realm */
+	{
+		struct dict_avp_data data = {
+			1090,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Destination-Realm",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterIdentity_type, NULL);
+	};
+
+	/* TDF-IP-address */
+	{
+		struct dict_avp_data data = {
+			1091,	/* Code */
+			10415,	/* Vendor */
+			"TDF-IP-address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* QoS-Class-Identifier */
+	{
+		struct dict_avp_data data = {
+			1028,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Class-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Class-Identifier)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* QoS-Information */
+	{
+		struct dict_avp_data data = {
+			1016,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* QoS-Negotiation */
+	{
+		struct dict_avp_data data = {
+			1029,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Negotiation",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Negotiation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Qos-Upgrade */
+	{
+		struct dict_avp_data data = {
+			1030,	/* Code */
+			10415,	/* Vendor */
+			"Qos-Upgrade",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Qos-Upgrade)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PS-to-CS-Session-Continuity */
+	{
+		struct dict_avp_data data = {
+			1099,	/* Code */
+			10415,	/* Vendor */
+			"PS-to-CS-Session-Continuity",	/* Name */
+			AVP_FLAG_VENDOR,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PS-to-CS-Session-Continuity)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Resource-Allocation-Notification */
+	{
+		struct dict_avp_data data = {
+			1063,	/* Code */
+			10415,	/* Vendor */
+			"Resource-Allocation-Notification",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Resource-Allocation-Notification)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Rule-Failure-Code */
+	{
+		struct dict_avp_data data = {
+			1031,	/* Code */
+			10415,	/* Vendor */
+			"Rule-Failure-Code",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Rule-Failure-Code)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Security-Parameter-Index */
+	{
+		struct dict_avp_data data = {
+			1056,	/* Code */
+			10415,	/* Vendor */
+			"Security-Parameter-Index",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* TFT-Filter */
+	{
+		struct dict_avp_data data = {
+			1012,	/* Code */
+			10415,	/* Vendor */
+			"TFT-Filter",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, IPFilterRule_type, NULL);
+	};
+
+	/* TFT-Packet-Filter-Information */
+	{
+		struct dict_avp_data data = {
+			1013,	/* Code */
+			10415,	/* Vendor */
+			"TFT-Packet-Filter-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* ToS-Traffic-Class */
+	{
+		struct dict_avp_data data = {
+			1014,	/* Code */
+			10415,	/* Vendor */
+			"ToS-Traffic-Class",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Tunnel-Header-Filter */
+	{
+		struct dict_avp_data data = {
+			1036,	/* Code */
+			10415,	/* Vendor */
+			"Tunnel-Header-Filter",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, IPFilterRule_type, NULL);
+	};
+
+	/* Tunnel-Header-Length */
+	{
+		struct dict_avp_data data = {
+			1037,	/* Code */
+			10415,	/* Vendor */
+			"Tunnel-Header-Length",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Tunnel-Information */
+	{
+		struct dict_avp_data data = {
+			1038,	/* Code */
+			10415,	/* Vendor */
+			"Tunnel-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* RAT-Type */
+	{
+		struct dict_avp_data data = {
+			1032,	/* Code */
+			10415,	/* Vendor */
+			"RAT-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(RAT-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Revalidation-Time */
+	{
+		struct dict_avp_data data = {
+			1042,	/* Code */
+			10415,	/* Vendor */
+			"Revalidation-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Rule-Activation-Time */
+	{
+		struct dict_avp_data data = {
+			1043,	/* Code */
+			10415,	/* Vendor */
+			"Rule-Activation-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* UDP-Source-Port */
+	{
+		struct dict_avp_data data = {
+			2806,	/* Code */
+			10415,	/* Vendor */
+			"UDP-Source-Port",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* UE-Local-IP-Address */
+	{
+		struct dict_avp_data data = {
+			2805,	/* Code */
+			10415,	/* Vendor */
+			"UE-Local-IP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Usage-Monitoring-Information */
+	{
+		struct dict_avp_data data = {
+			1067,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Rule-DeActivation-Time */
+	{
+		struct dict_avp_data data = {
+			1044,	/* Code */
+			10415,	/* Vendor */
+			"Rule-DeActivation-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Usage-Monitoring-Level */
+	{
+		struct dict_avp_data data = {
+			1068,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-Level",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Level)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Usage-Monitoring-Report */
+	{
+		struct dict_avp_data data = {
+			1069,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-Report",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Report)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Usage-Monitoring-Support */
+	{
+		struct dict_avp_data data = {
+			1070,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-Support",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Support)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* QoS-Rule-Install */
+	{
+		struct dict_avp_data data = {
+			1051,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Rule-Install",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* QoS-Rule-Remove */
+	{
+		struct dict_avp_data data = {
+			1052,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Rule-Remove",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* QoS-Rule-Definition */
+	{
+		struct dict_avp_data data = {
+			1053,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Rule-Definition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* QoS-Rule-Name */
+	{
+		struct dict_avp_data data = {
+			1054,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Rule-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* QoS-Rule-Base-Name */
+	{
+		struct dict_avp_data data = {
+			1074,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Rule-Base-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* QoS-Rule-Report */
+	{
+		struct dict_avp_data data = {
+			1055,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Rule-Report",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Session-Linking-Indicator */
+	{
+		struct dict_avp_data data = {
+			1064,	/* Code */
+			10415,	/* Vendor */
+			"Session-Linking-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Linking-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* CS-Service-Qos-Request-Identifier */
+	{
+		struct dict_avp_data data = {
+			2807,	/* Code */
+			10415,	/* Vendor */
+			"CS-Service-Qos-Request-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* CS-Service-QoS-Request-Operation */
+	{
+		struct dict_avp_data data = {
+			2808,	/* Code */
+			10415,	/* Vendor */
+			"CS-Service-QoS-Request-Operation",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-QoS-Request-Operation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* 3GPP 29.229-b20 (11.2.0 2012.12.21)                          */
+	/* Associated-Identities */
+	{
+		struct dict_avp_data data = {
+			632,	/* Code */
+			10415,	/* Vendor */
+			"Associated-Identities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Associated-Registered-Identities */
+	{
+		struct dict_avp_data data = {
+			647,	/* Code */
+			10415,	/* Vendor */
+			"Associated-Registered-Identities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Call-ID-SIP-Header */
+	{
+		struct dict_avp_data data = {
+			643,	/* Code */
+			10415,	/* Vendor */
+			"Call-ID-SIP-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Charging-Information */
+	{
+		struct dict_avp_data data = {
+			618,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Confidentiality-Key */
+	{
+		struct dict_avp_data data = {
+			625,	/* Code */
+			10415,	/* Vendor */
+			"Confidentiality-Key",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Contact */
+	{
+		struct dict_avp_data data = {
+			641,	/* Code */
+			10415,	/* Vendor */
+			"Contact",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Deregistration-Reason */
+	{
+		struct dict_avp_data data = {
+			615,	/* Code */
+			10415,	/* Vendor */
+			"Deregistration-Reason",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Digest-Algorithm */
+	{
+		struct dict_avp_data data = {
+			111,	/* Code */
+			10415,	/* Vendor */
+			"Digest-Algorithm",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Digest-HA1 */
+	{
+		struct dict_avp_data data = {
+			121,	/* Code */
+			10415,	/* Vendor */
+			"Digest-HA1",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Digest-QoP */
+	{
+		struct dict_avp_data data = {
+			110,	/* Code */
+			10415,	/* Vendor */
+			"Digest-QoP",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Digest-Realm */
+	{
+		struct dict_avp_data data = {
+			104,	/* Code */
+			10415,	/* Vendor */
+			"Digest-Realm",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Feature-List */
+	{
+		struct dict_avp_data data = {
+			630,	/* Code */
+			10415,	/* Vendor */
+			"Feature-List",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Feature-List-ID */
+	{
+		struct dict_avp_data data = {
+			629,	/* Code */
+			10415,	/* Vendor */
+			"Feature-List-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* From-SIP-Header */
+	{
+		struct dict_avp_data data = {
+			644,	/* Code */
+			10415,	/* Vendor */
+			"From-SIP-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Identity-with-Emergency-Registration */
+	{
+		struct dict_avp_data data = {
+			651,	/* Code */
+			10415,	/* Vendor */
+			"Identity-with-Emergency-Registration",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Integrity-Key */
+	{
+		struct dict_avp_data data = {
+			626,	/* Code */
+			10415,	/* Vendor */
+			"Integrity-Key",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* LIA-Flags */
+	{
+		struct dict_avp_data data = {
+			653,	/* Code */
+			10415,	/* Vendor */
+			"LIA-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Loose-Route-Indication */
+	{
+		struct dict_avp_data data = {
+			638,	/* Code */
+			10415,	/* Vendor */
+			"Loose-Route-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Loose-Route-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Mandatory-Capability */
+	{
+		struct dict_avp_data data = {
+			604,	/* Code */
+			10415,	/* Vendor */
+			"Mandatory-Capability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Multiple-Registration-Indication */
+	{
+		struct dict_avp_data data = {
+			648,	/* Code */
+			10415,	/* Vendor */
+			"Multiple-Registration-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Multiple-Registration-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Optional-Capability */
+	{
+		struct dict_avp_data data = {
+			605,	/* Code */
+			10415,	/* Vendor */
+			"Optional-Capability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Originating-Request */
+	{
+		struct dict_avp_data data = {
+			633,	/* Code */
+			10415,	/* Vendor */
+			"Originating-Request",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Originating-Request)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Path */
+	{
+		struct dict_avp_data data = {
+			640,	/* Code */
+			10415,	/* Vendor */
+			"Path",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Primary-Charging-Collection-Function-Name */
+	{
+		struct dict_avp_data data = {
+			621,	/* Code */
+			10415,	/* Vendor */
+			"Primary-Charging-Collection-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
+	};
+
+	/* Primary-Event-Charging-Function-Name */
+	{
+		struct dict_avp_data data = {
+			619,	/* Code */
+			10415,	/* Vendor */
+			"Primary-Event-Charging-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
+	};
+
+	/* Priviledged-Sender-Indication */
+	{
+		struct dict_avp_data data = {
+			652,	/* Code */
+			10415,	/* Vendor */
+			"Priviledged-Sender-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Priviledged-Sender-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Public-Identity */
+	{
+		struct dict_avp_data data = {
+			601,	/* Code */
+			10415,	/* Vendor */
+			"Public-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Reason-Code */
+	{
+		struct dict_avp_data data = {
+			616,	/* Code */
+			10415,	/* Vendor */
+			"Reason-Code",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Reason-Code)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Reason-Info */
+	{
+		struct dict_avp_data data = {
+			617,	/* Code */
+			10415,	/* Vendor */
+			"Reason-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Record-Route */
+	{
+		struct dict_avp_data data = {
+			646,	/* Code */
+			10415,	/* Vendor */
+			"Record-Route",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Restoration-Info */
+	{
+		struct dict_avp_data data = {
+			649,	/* Code */
+			10415,	/* Vendor */
+			"Restoration-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SCSCF-Restoration-Info */
+	{
+		struct dict_avp_data data = {
+			639,	/* Code */
+			10415,	/* Vendor */
+			"SCSCF-Restoration-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Auth-Data-Item */
+	{
+		struct dict_avp_data data = {
+			612,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Auth-Data-Item",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Authenticate */
+	{
+		struct dict_avp_data data = {
+			609,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authenticate",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Authentication-Context */
+	{
+		struct dict_avp_data data = {
+			611,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authentication-Context",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Authentication-Scheme */
+	{
+		struct dict_avp_data data = {
+			608,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authentication-Scheme",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SIP-Authorization */
+	{
+		struct dict_avp_data data = {
+			610,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Authorization",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Digest-Authenticate */
+	{
+		struct dict_avp_data data = {
+			635,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Digest-Authenticate",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Item-Number */
+	{
+		struct dict_avp_data data = {
+			613,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Item-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Number-Auth-Items */
+	{
+		struct dict_avp_data data = {
+			607,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Number-Auth-Items",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Secondary-Charging-Collection-Function-Name */
+	{
+		struct dict_avp_data data = {
+			622,	/* Code */
+			10415,	/* Vendor */
+			"Secondary-Charging-Collection-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
+	};
+
+	/* Secondary-Event-Charging-Function-Name */
+	{
+		struct dict_avp_data data = {
+			620,	/* Code */
+			10415,	/* Vendor */
+			"Secondary-Event-Charging-Function-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterURI_type, NULL);
+	};
+
+	/* Server-Assignment-Type */
+	{
+		struct dict_avp_data data = {
+			614,	/* Code */
+			10415,	/* Vendor */
+			"Server-Assignment-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Server-Assignment-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Server-Capabilities */
+	{
+		struct dict_avp_data data = {
+			603,	/* Code */
+			10415,	/* Vendor */
+			"Server-Capabilities",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Server-Name */
+	{
+		struct dict_avp_data data = {
+			602,	/* Code */
+			10415,	/* Vendor */
+			"Server-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Session-Priority */
+	{
+		struct dict_avp_data data = {
+			650,	/* Code */
+			10415,	/* Vendor */
+			"Session-Priority",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Priority)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Subscription-Info */
+	{
+		struct dict_avp_data data = {
+			642,	/* Code */
+			10415,	/* Vendor */
+			"Subscription-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Supported-Applications */
+	{
+		struct dict_avp_data data = {
+			631,	/* Code */
+			10415,	/* Vendor */
+			"Supported-Applications",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Supported-Features */
+	{
+		struct dict_avp_data data = {
+			628,	/* Code */
+			10415,	/* Vendor */
+			"Supported-Features",	/* Name */
+			AVP_FLAG_VENDOR,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* To-SIP-Header */
+	{
+		struct dict_avp_data data = {
+			645,	/* Code */
+			10415,	/* Vendor */
+			"To-SIP-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* UAR-Flags */
+	{
+		struct dict_avp_data data = {
+			637,	/* Code */
+			10415,	/* Vendor */
+			"UAR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* User-Authorization-Type */
+	{
+		struct dict_avp_data data = {
+			623,	/* Code */
+			10415,	/* Vendor */
+			"User-Authorization-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(User-Authorization-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* User-Data */
+	{
+		struct dict_avp_data data = {
+			606,	/* Code */
+			10415,	/* Vendor */
+			"User-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* User-Data-Already-Available */
+	{
+		struct dict_avp_data data = {
+			624,	/* Code */
+			10415,	/* Vendor */
+			"User-Data-Already-Available",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(User-Data-Already-Available)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Visited-Network-Identifier */
+	{
+		struct dict_avp_data data = {
+			600,	/* Code */
+			10415,	/* Vendor */
+			"Visited-Network-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Wildcarded-Public-Identity */
+	{
+		struct dict_avp_data data = {
+			634,	/* Code */
+			10415,	/* Vendor */
+			"Wildcarded-Public-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* 3GPP 32.299-b60 (11.6.0 2012.12.21)                          */
+	/* AF-Correlation-Information */
+	{
+		struct dict_avp_data data = {
+			1276,	/* Code */
+			10415,	/* Vendor */
+			"AF-Correlation-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Access-Network-Information */
+	{
+		struct dict_avp_data data = {
+			1263,	/* Code */
+			10415,	/* Vendor */
+			"Access-Network-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Access-Transfer-Information */
+	{
+		struct dict_avp_data data = {
+			2709,	/* Code */
+			10415,	/* Vendor */
+			"Access-Transfer-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Access-Transfer-Type */
+	{
+		struct dict_avp_data data = {
+			2710,	/* Code */
+			10415,	/* Vendor */
+			"Access-Transfer-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Access-Transfer-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Account-Expiration */
+	{
+		struct dict_avp_data data = {
+			2309,	/* Code */
+			10415,	/* Vendor */
+			"Account-Expiration",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Accumulated-Cost */
+	{
+		struct dict_avp_data data = {
+			2052,	/* Code */
+			10415,	/* Vendor */
+			"Accumulated-Cost",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Adaptations */
+	{
+		struct dict_avp_data data = {
+			1217,	/* Code */
+			10415,	/* Vendor */
+			"Adaptations",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Adaptations)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Additional-Content-Information */
+	{
+		struct dict_avp_data data = {
+			1207,	/* Code */
+			10415,	/* Vendor */
+			"Additional-Content-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Additional-Type-Information */
+	{
+		struct dict_avp_data data = {
+			1205,	/* Code */
+			10415,	/* Vendor */
+			"Additional-Type-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Address-Data */
+	{
+		struct dict_avp_data data = {
+			897,	/* Code */
+			10415,	/* Vendor */
+			"Address-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Address-Domain */
+	{
+		struct dict_avp_data data = {
+			898,	/* Code */
+			10415,	/* Vendor */
+			"Address-Domain",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Address-Type */
+	{
+		struct dict_avp_data data = {
+			899,	/* Code */
+			10415,	/* Vendor */
+			"Address-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Address-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Addressee-Type */
+	{
+		struct dict_avp_data data = {
+			1208,	/* Code */
+			10415,	/* Vendor */
+			"Addressee-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Addressee-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Alternate-Charged-Party-Address */
+	{
+		struct dict_avp_data data = {
+			1280,	/* Code */
+			10415,	/* Vendor */
+			"Alternate-Charged-Party-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* AoC-Cost-Information */
+	{
+		struct dict_avp_data data = {
+			2053,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Cost-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* AoC-Format */
+	{
+		struct dict_avp_data data = {
+			2310,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Format",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(AoC-Format)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* AoC-Information */
+	{
+		struct dict_avp_data data = {
+			2054,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* AoC-Request-Type */
+	{
+		struct dict_avp_data data = {
+			2055,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Request-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(AoC-Request-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* AoC-Service */
+	{
+		struct dict_avp_data data = {
+			2311,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Service",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* AoC-Service-Obligatory-Type */
+	{
+		struct dict_avp_data data = {
+			2312,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Service-Obligatory-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(AoC-Service-Obligatory-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* AoC-Service-Type */
+	{
+		struct dict_avp_data data = {
+			2313,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Service-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(AoC-Service-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* AoC-Subscription-Information */
+	{
+		struct dict_avp_data data = {
+			2314,	/* Code */
+			10415,	/* Vendor */
+			"AoC-Subscription-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Applic-ID */
+	{
+		struct dict_avp_data data = {
+			1218,	/* Code */
+			10415,	/* Vendor */
+			"Applic-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Application-Server */
+	{
+		struct dict_avp_data data = {
+			836,	/* Code */
+			10415,	/* Vendor */
+			"Application-Server",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Application-Server-Information */
+	{
+		struct dict_avp_data data = {
+			850,	/* Code */
+			10415,	/* Vendor */
+			"Application-Server-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Application-provided-called-party-address */
+	{
+		struct dict_avp_data data = {
+			837,	/* Code */
+			10415,	/* Vendor */
+			"Application-provided-called-party-address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Associated-Party-Address */
+	{
+		struct dict_avp_data data = {
+			2035,	/* Code */
+			10415,	/* Vendor */
+			"Associated-Party-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Associated-URI */
+	{
+		struct dict_avp_data data = {
+			856,	/* Code */
+			10415,	/* Vendor */
+			"Associated-URI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Aux-Applic-Info */
+	{
+		struct dict_avp_data data = {
+			1219,	/* Code */
+			10415,	/* Vendor */
+			"Aux-Applic-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Base-Time-Interval */
+	{
+		struct dict_avp_data data = {
+			1265,	/* Code */
+			10415,	/* Vendor */
+			"Base-Time-Interval",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Bearer-Service */
+	{
+		struct dict_avp_data data = {
+			854,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Service",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* CG-Address */
+	{
+		struct dict_avp_data data = {
+			846,	/* Code */
+			10415,	/* Vendor */
+			"CG-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* CSG-Access-Mode */
+	{
+		struct dict_avp_data data = {
+			2317,	/* Code */
+			10415,	/* Vendor */
+			"CSG-Access-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CSG-Access-Mode)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* CSG-Membership-Indication */
+	{
+		struct dict_avp_data data = {
+			2318,	/* Code */
+			10415,	/* Vendor */
+			"CSG-Membership-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CSG-Membership-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* CUG-Information */
+	{
+		struct dict_avp_data data = {
+			2304,	/* Code */
+			10415,	/* Vendor */
+			"CUG-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Called-Asserted-Identity */
+	{
+		struct dict_avp_data data = {
+			1250,	/* Code */
+			10415,	/* Vendor */
+			"Called-Asserted-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Called-Party-Address */
+	{
+		struct dict_avp_data data = {
+			832,	/* Code */
+			10415,	/* Vendor */
+			"Called-Party-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Calling-Party-Address */
+	{
+		struct dict_avp_data data = {
+			831,	/* Code */
+			10415,	/* Vendor */
+			"Calling-Party-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Carrier-Select-Routing-Information */
+	{
+		struct dict_avp_data data = {
+			2023,	/* Code */
+			10415,	/* Vendor */
+			"Carrier-Select-Routing-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Cause-Code */
+	{
+		struct dict_avp_data data = {
+			861,	/* Code */
+			10415,	/* Vendor */
+			"Cause-Code",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Change-Condition */
+	{
+		struct dict_avp_data data = {
+			2037,	/* Code */
+			10415,	/* Vendor */
+			"Change-Condition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Change-Time */
+	{
+		struct dict_avp_data data = {
+			2038,	/* Code */
+			10415,	/* Vendor */
+			"Change-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Charge-Reason-Code */
+	{
+		struct dict_avp_data data = {
+			2118,	/* Code */
+			10415,	/* Vendor */
+			"Charge-Reason-Code",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Charge-Reason-Code)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Charged-Party */
+	{
+		struct dict_avp_data data = {
+			857,	/* Code */
+			10415,	/* Vendor */
+			"Charged-Party",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Charging-Characteristics-Selection-Mode */
+	{
+		struct dict_avp_data data = {
+			2066,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Characteristics-Selection-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Charging-Characteristics-Selection-Mode)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Class-Identifier */
+	{
+		struct dict_avp_data data = {
+			1214,	/* Code */
+			10415,	/* Vendor */
+			"Class-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Class-Identifier)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Client-Address */
+	{
+		struct dict_avp_data data = {
+			2018,	/* Code */
+			10415,	/* Vendor */
+			"Client-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Content-Class */
+	{
+		struct dict_avp_data data = {
+			1220,	/* Code */
+			10415,	/* Vendor */
+			"Content-Class",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Content-Class)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Content-Disposition */
+	{
+		struct dict_avp_data data = {
+			828,	/* Code */
+			10415,	/* Vendor */
+			"Content-Disposition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Content-Length */
+	{
+		struct dict_avp_data data = {
+			827,	/* Code */
+			10415,	/* Vendor */
+			"Content-Length",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Content-Size */
+	{
+		struct dict_avp_data data = {
+			1206,	/* Code */
+			10415,	/* Vendor */
+			"Content-Size",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Content-Type */
+	{
+		struct dict_avp_data data = {
+			826,	/* Code */
+			10415,	/* Vendor */
+			"Content-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Current-Tariff */
+	{
+		struct dict_avp_data data = {
+			2056,	/* Code */
+			10415,	/* Vendor */
+			"Current-Tariff",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* DRM-Content */
+	{
+		struct dict_avp_data data = {
+			1221,	/* Code */
+			10415,	/* Vendor */
+			"DRM-Content",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(DRM-Content)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Data-Coding-Scheme */
+	{
+		struct dict_avp_data data = {
+			2001,	/* Code */
+			10415,	/* Vendor */
+			"Data-Coding-Scheme",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Deferred-Location-Event-Type */
+	{
+		struct dict_avp_data data = {
+			1230,	/* Code */
+			10415,	/* Vendor */
+			"Deferred-Location-Event-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Delivery-Report-Requested */
+	{
+		struct dict_avp_data data = {
+			1216,	/* Code */
+			10415,	/* Vendor */
+			"Delivery-Report-Requested",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Delivery-Report-Requested)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Destination-Interface */
+	{
+		struct dict_avp_data data = {
+			2002,	/* Code */
+			10415,	/* Vendor */
+			"Destination-Interface",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Diagnostics */
+	{
+		struct dict_avp_data data = {
+			2039,	/* Code */
+			10415,	/* Vendor */
+			"Diagnostics",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Domain-Name */
+	{
+		struct dict_avp_data data = {
+			1200,	/* Code */
+			10415,	/* Vendor */
+			"Domain-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Dynamic-Address-Flag */
+	{
+		struct dict_avp_data data = {
+			2051,	/* Code */
+			10415,	/* Vendor */
+			"Dynamic-Address-Flag",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Dynamic-Address-Flag)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Dynamic-Address-Flag-Extension */
+	{
+		struct dict_avp_data data = {
+			2068,	/* Code */
+			10415,	/* Vendor */
+			"Dynamic-Address-Flag-Extension",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Dynamic-Address-Flag-Extension)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Early-Media-Description */
+	{
+		struct dict_avp_data data = {
+			1272,	/* Code */
+			10415,	/* Vendor */
+			"Early-Media-Description",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Envelope */
+	{
+		struct dict_avp_data data = {
+			1266,	/* Code */
+			10415,	/* Vendor */
+			"Envelope",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Envelope-End-Time */
+	{
+		struct dict_avp_data data = {
+			1267,	/* Code */
+			10415,	/* Vendor */
+			"Envelope-End-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Envelope-Reporting */
+	{
+		struct dict_avp_data data = {
+			1268,	/* Code */
+			10415,	/* Vendor */
+			"Envelope-Reporting",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Envelope-Reporting)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Envelope-Start-Time */
+	{
+		struct dict_avp_data data = {
+			1269,	/* Code */
+			10415,	/* Vendor */
+			"Envelope-Start-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Event */
+	{
+		struct dict_avp_data data = {
+			825,	/* Code */
+			10415,	/* Vendor */
+			"Event",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Event-Charging-TimeStamp */
+	{
+		struct dict_avp_data data = {
+			1258,	/* Code */
+			10415,	/* Vendor */
+			"Event-Charging-TimeStamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Event-Type */
+	{
+		struct dict_avp_data data = {
+			823,	/* Code */
+			10415,	/* Vendor */
+			"Event-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Expires */
+	{
+		struct dict_avp_data data = {
+			888,	/* Code */
+			10415,	/* Vendor */
+			"Expires",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* File-Repair-Supported */
+	{
+		struct dict_avp_data data = {
+			1224,	/* Code */
+			10415,	/* Vendor */
+			"File-Repair-Supported",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(File-Repair-Supported)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* From-Address */
+	{
+		struct dict_avp_data data = {
+			2708,	/* Code */
+			10415,	/* Vendor */
+			"From-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* GGSN-Address */
+	{
+		struct dict_avp_data data = {
+			847,	/* Code */
+			10415,	/* Vendor */
+			"GGSN-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* IMS-Application-Reference-Identifier */
+	{
+		struct dict_avp_data data = {
+			2601,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Application-Reference-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* IMS-Charging-Identifier */
+	{
+		struct dict_avp_data data = {
+			841,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Charging-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* IMS-Communication-Service-Identifier */
+	{
+		struct dict_avp_data data = {
+			1281,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Communication-Service-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* IMS-Emergency-Indicator */
+	{
+		struct dict_avp_data data = {
+			2322,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Emergency-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IMS-Emergency-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* IMS-Information */
+	{
+		struct dict_avp_data data = {
+			876,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* IMSI-Unauthenticated-Flag */
+	{
+		struct dict_avp_data data = {
+			2308,	/* Code */
+			10415,	/* Vendor */
+			"IMSI-Unauthenticated-Flag",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IMSI-Unauthenticated-Flag)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* IP-Realm-Default-Indication */
+	{
+		struct dict_avp_data data = {
+			2603,	/* Code */
+			10415,	/* Vendor */
+			"IP-Realm-Default-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IP-Realm-Default-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Incoming-Trunk-Group-Id */
+	{
+		struct dict_avp_data data = {
+			852,	/* Code */
+			10415,	/* Vendor */
+			"Incoming-Trunk-Group-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Incremental-Cost */
+	{
+		struct dict_avp_data data = {
+			2062,	/* Code */
+			10415,	/* Vendor */
+			"Incremental-Cost",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Initial-IMS-Charging-Identifier */
+	{
+		struct dict_avp_data data = {
+			2321,	/* Code */
+			10415,	/* Vendor */
+			"Initial-IMS-Charging-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Inter-Operator-Identifier */
+	{
+		struct dict_avp_data data = {
+			838,	/* Code */
+			10415,	/* Vendor */
+			"Inter-Operator-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Interface-Id */
+	{
+		struct dict_avp_data data = {
+			2003,	/* Code */
+			10415,	/* Vendor */
+			"Interface-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Interface-Port */
+	{
+		struct dict_avp_data data = {
+			2004,	/* Code */
+			10415,	/* Vendor */
+			"Interface-Port",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Interface-Text */
+	{
+		struct dict_avp_data data = {
+			2005,	/* Code */
+			10415,	/* Vendor */
+			"Interface-Text",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Interface-Type */
+	{
+		struct dict_avp_data data = {
+			2006,	/* Code */
+			10415,	/* Vendor */
+			"Interface-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Interface-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* LCS-APN */
+	{
+		struct dict_avp_data data = {
+			1231,	/* Code */
+			10415,	/* Vendor */
+			"LCS-APN",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* LCS-Client-Dialed-By-MS */
+	{
+		struct dict_avp_data data = {
+			1233,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Client-Dialed-By-MS",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* LCS-Client-External-ID */
+	{
+		struct dict_avp_data data = {
+			1234,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Client-External-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* LCS-Client-Id */
+	{
+		struct dict_avp_data data = {
+			1232,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Client-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* LCS-Client-Name */
+	{
+		struct dict_avp_data data = {
+			1235,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Client-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* LCS-Client-Type */
+	{
+		struct dict_avp_data data = {
+			1241,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Client-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(LCS-Client-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* LCS-Data-Coding-Scheme */
+	{
+		struct dict_avp_data data = {
+			1236,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Data-Coding-Scheme",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* LCS-Format-Indicator */
+	{
+		struct dict_avp_data data = {
+			1237,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Format-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(LCS-Format-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* LCS-Information */
+	{
+		struct dict_avp_data data = {
+			878,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* LCS-Name-String */
+	{
+		struct dict_avp_data data = {
+			1238,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Name-String",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* LCS-Requestor-Id */
+	{
+		struct dict_avp_data data = {
+			1239,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Requestor-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* LCS-Requestor-Id-String */
+	{
+		struct dict_avp_data data = {
+			1240,	/* Code */
+			10415,	/* Vendor */
+			"LCS-Requestor-Id-String",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Local-GW-Inserted-Indication */
+	{
+		struct dict_avp_data data = {
+			2604,	/* Code */
+			10415,	/* Vendor */
+			"Local-GW-Inserted-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Local-GW-Inserted-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Local-Sequence-Number */
+	{
+		struct dict_avp_data data = {
+			2063,	/* Code */
+			10415,	/* Vendor */
+			"Local-Sequence-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Location-Estimate */
+	{
+		struct dict_avp_data data = {
+			1242,	/* Code */
+			10415,	/* Vendor */
+			"Location-Estimate",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Location-Estimate-Type */
+	{
+		struct dict_avp_data data = {
+			1243,	/* Code */
+			10415,	/* Vendor */
+			"Location-Estimate-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Location-Estimate-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Location-Type */
+	{
+		struct dict_avp_data data = {
+			1244,	/* Code */
+			10415,	/* Vendor */
+			"Location-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Low-Balance-Indication */
+	{
+		struct dict_avp_data data = {
+			2020,	/* Code */
+			10415,	/* Vendor */
+			"Low-Balance-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Low-Balance-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Low-Priority-Indicator */
+	{
+		struct dict_avp_data data = {
+			2602,	/* Code */
+			10415,	/* Vendor */
+			"Low-Priority-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Low-Priority-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MBMSGW-Address */
+	{
+		struct dict_avp_data data = {
+			2307,	/* Code */
+			10415,	/* Vendor */
+			"MBMSGW-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* MBMS-Information */
+	{
+		struct dict_avp_data data = {
+			880,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBMS-User-Service-Type */
+	{
+		struct dict_avp_data data = {
+			1225,	/* Code */
+			10415,	/* Vendor */
+			"MBMS-User-Service-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MBMS-User-Service-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MM-Content-Type */
+	{
+		struct dict_avp_data data = {
+			1203,	/* Code */
+			10415,	/* Vendor */
+			"MM-Content-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MMBox-Storage-Requested */
+	{
+		struct dict_avp_data data = {
+			1248,	/* Code */
+			10415,	/* Vendor */
+			"MMBox-Storage-Requested",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(MMBox-Storage-Requested)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* MMS-Information */
+	{
+		struct dict_avp_data data = {
+			877,	/* Code */
+			10415,	/* Vendor */
+			"MMS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MMTel-Information */
+	{
+		struct dict_avp_data data = {
+			2030,	/* Code */
+			10415,	/* Vendor */
+			"MMTel-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MMTel-SService-Type */
+	{
+		struct dict_avp_data data = {
+			2031,	/* Code */
+			10415,	/* Vendor */
+			"MMTel-SService-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Media-Initiator-Flag */
+	{
+		struct dict_avp_data data = {
+			882,	/* Code */
+			10415,	/* Vendor */
+			"Media-Initiator-Flag",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Media-Initiator-Flag)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Media-Initiator-Party */
+	{
+		struct dict_avp_data data = {
+			1288,	/* Code */
+			10415,	/* Vendor */
+			"Media-Initiator-Party",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Message-Body */
+	{
+		struct dict_avp_data data = {
+			889,	/* Code */
+			10415,	/* Vendor */
+			"Message-Body",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Message-Class */
+	{
+		struct dict_avp_data data = {
+			1213,	/* Code */
+			10415,	/* Vendor */
+			"Message-Class",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Message-ID */
+	{
+		struct dict_avp_data data = {
+			1210,	/* Code */
+			10415,	/* Vendor */
+			"Message-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Message-Size */
+	{
+		struct dict_avp_data data = {
+			1212,	/* Code */
+			10415,	/* Vendor */
+			"Message-Size",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Message-Type */
+	{
+		struct dict_avp_data data = {
+			1211,	/* Code */
+			10415,	/* Vendor */
+			"Message-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Message-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* NNI-Information */
+	{
+		struct dict_avp_data data = {
+			2703,	/* Code */
+			10415,	/* Vendor */
+			"NNI-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* NNI-Type */
+	{
+		struct dict_avp_data data = {
+			2704,	/* Code */
+			10415,	/* Vendor */
+			"NNI-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(NNI-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Neighbour-Node-Address */
+	{
+		struct dict_avp_data data = {
+			2705,	/* Code */
+			10415,	/* Vendor */
+			"Neighbour-Node-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Next-Tariff */
+	{
+		struct dict_avp_data data = {
+			2057,	/* Code */
+			10415,	/* Vendor */
+			"Next-Tariff",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Node-Functionality */
+	{
+		struct dict_avp_data data = {
+			862,	/* Code */
+			10415,	/* Vendor */
+			"Node-Functionality",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Node-Functionality)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Node-Id */
+	{
+		struct dict_avp_data data = {
+			2064,	/* Code */
+			10415,	/* Vendor */
+			"Node-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Number-Of-Diversions */
+	{
+		struct dict_avp_data data = {
+			2034,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-Diversions",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Of-Messages-Sent */
+	{
+		struct dict_avp_data data = {
+			2019,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-Messages-Sent",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Of-Participants */
+	{
+		struct dict_avp_data data = {
+			885,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-Participants",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Of-Received-Talk-Bursts */
+	{
+		struct dict_avp_data data = {
+			1282,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-Received-Talk-Bursts",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Of-Talk-Bursts */
+	{
+		struct dict_avp_data data = {
+			1283,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-Talk-Bursts",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Portability-Routing-Information */
+	{
+		struct dict_avp_data data = {
+			2024,	/* Code */
+			10415,	/* Vendor */
+			"Number-Portability-Routing-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Offline-Charging */
+	{
+		struct dict_avp_data data = {
+			1278,	/* Code */
+			10415,	/* Vendor */
+			"Offline-Charging",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Online-Charging-Flag */
+	{
+		struct dict_avp_data data = {
+			2303,	/* Code */
+			10415,	/* Vendor */
+			"Online-Charging-Flag",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Online-Charging-Flag)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Originating-IOI */
+	{
+		struct dict_avp_data data = {
+			839,	/* Code */
+			10415,	/* Vendor */
+			"Originating-IOI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Originator */
+	{
+		struct dict_avp_data data = {
+			864,	/* Code */
+			10415,	/* Vendor */
+			"Originator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Originator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Originator-Address */
+	{
+		struct dict_avp_data data = {
+			886,	/* Code */
+			10415,	/* Vendor */
+			"Originator-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Originator-Interface */
+	{
+		struct dict_avp_data data = {
+			2009,	/* Code */
+			10415,	/* Vendor */
+			"Originator-Interface",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Originator-Received-Address */
+	{
+		struct dict_avp_data data = {
+			2027,	/* Code */
+			10415,	/* Vendor */
+			"Originator-Received-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Originator-SCCP-Address */
+	{
+		struct dict_avp_data data = {
+			2008,	/* Code */
+			10415,	/* Vendor */
+			"Originator-SCCP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Outgoing-Session-Id */
+	{
+		struct dict_avp_data data = {
+			2320,	/* Code */
+			10415,	/* Vendor */
+			"Outgoing-Session-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Outgoing-Trunk-Group-Id */
+	{
+		struct dict_avp_data data = {
+			853,	/* Code */
+			10415,	/* Vendor */
+			"Outgoing-Trunk-Group-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* PDG-Address */
+	{
+		struct dict_avp_data data = {
+			895,	/* Code */
+			10415,	/* Vendor */
+			"PDG-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* PDG-Charging-Id */
+	{
+		struct dict_avp_data data = {
+			896,	/* Code */
+			10415,	/* Vendor */
+			"PDG-Charging-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PDN-Connection-Charging-ID */
+	{
+		struct dict_avp_data data = {
+			2050,	/* Code */
+			10415,	/* Vendor */
+			"PDN-Connection-Charging-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PDP-Address */
+	{
+		struct dict_avp_data data = {
+			1227,	/* Code */
+			10415,	/* Vendor */
+			"PDP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* PDP-Address-Prefix-Length */
+	{
+		struct dict_avp_data data = {
+			2606,	/* Code */
+			10415,	/* Vendor */
+			"PDP-Address-Prefix-Length",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PDP-Context-Type */
+	{
+		struct dict_avp_data data = {
+			1247,	/* Code */
+			10415,	/* Vendor */
+			"PDP-Context-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PDP-Context-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PS-Append-Free-Format-Data */
+	{
+		struct dict_avp_data data = {
+			867,	/* Code */
+			10415,	/* Vendor */
+			"PS-Append-Free-Format-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PS-Append-Free-Format-Data)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PS-Free-Format-Data */
+	{
+		struct dict_avp_data data = {
+			866,	/* Code */
+			10415,	/* Vendor */
+			"PS-Free-Format-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PS-Furnish-Charging-Information */
+	{
+		struct dict_avp_data data = {
+			865,	/* Code */
+			10415,	/* Vendor */
+			"PS-Furnish-Charging-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PS-Information */
+	{
+		struct dict_avp_data data = {
+			874,	/* Code */
+			10415,	/* Vendor */
+			"PS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Participant-Access-Priority */
+	{
+		struct dict_avp_data data = {
+			1259,	/* Code */
+			10415,	/* Vendor */
+			"Participant-Access-Priority",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Participant-Access-Priority)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Participant-Action-Type */
+	{
+		struct dict_avp_data data = {
+			2049,	/* Code */
+			10415,	/* Vendor */
+			"Participant-Action-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Participant-Action-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Participant-Group */
+	{
+		struct dict_avp_data data = {
+			1260,	/* Code */
+			10415,	/* Vendor */
+			"Participant-Group",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Participants-Involved */
+	{
+		struct dict_avp_data data = {
+			887,	/* Code */
+			10415,	/* Vendor */
+			"Participants-Involved",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* PoC-Change-Condition */
+	{
+		struct dict_avp_data data = {
+			1261,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Change-Condition",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PoC-Change-Condition)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PoC-Change-Time */
+	{
+		struct dict_avp_data data = {
+			1262,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Change-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* PoC-Controlling-Address */
+	{
+		struct dict_avp_data data = {
+			858,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Controlling-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* PoC-Event-Type */
+	{
+		struct dict_avp_data data = {
+			2025,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Event-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PoC-Event-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PoC-Group-Name */
+	{
+		struct dict_avp_data data = {
+			859,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Group-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* PoC-Information */
+	{
+		struct dict_avp_data data = {
+			879,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PoC-Server-Role */
+	{
+		struct dict_avp_data data = {
+			883,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Server-Role",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PoC-Server-Role)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PoC-Session-Id */
+	{
+		struct dict_avp_data data = {
+			1229,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Session-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* PoC-Session-Initiation-type */
+	{
+		struct dict_avp_data data = {
+			1277,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Session-Initiation-type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PoC-Session-Initiation-type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PoC-Session-Type */
+	{
+		struct dict_avp_data data = {
+			884,	/* Code */
+			10415,	/* Vendor */
+			"PoC-Session-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PoC-Session-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* PoC-User-Role */
+	{
+		struct dict_avp_data data = {
+			1252,	/* Code */
+			10415,	/* Vendor */
+			"PoC-User-Role",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PoC-User-Role-IDs */
+	{
+		struct dict_avp_data data = {
+			1253,	/* Code */
+			10415,	/* Vendor */
+			"PoC-User-Role-IDs",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* PoC-User-Role-info-Units */
+	{
+		struct dict_avp_data data = {
+			1254,	/* Code */
+			10415,	/* Vendor */
+			"PoC-User-Role-info-Units",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PoC-User-Role-info-Units)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Positioning-Data */
+	{
+		struct dict_avp_data data = {
+			1245,	/* Code */
+			10415,	/* Vendor */
+			"Positioning-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Preferred-AoC-Currency */
+	{
+		struct dict_avp_data data = {
+			2315,	/* Code */
+			10415,	/* Vendor */
+			"Preferred-AoC-Currency",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Priority */
+	{
+		struct dict_avp_data data = {
+			1209,	/* Code */
+			10415,	/* Vendor */
+			"Priority",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Priority)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Quota-Consumption-Time */
+	{
+		struct dict_avp_data data = {
+			881,	/* Code */
+			10415,	/* Vendor */
+			"Quota-Consumption-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Quota-Holding-Time */
+	{
+		struct dict_avp_data data = {
+			871,	/* Code */
+			10415,	/* Vendor */
+			"Quota-Holding-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Rate-Element */
+	{
+		struct dict_avp_data data = {
+			2058,	/* Code */
+			10415,	/* Vendor */
+			"Rate-Element",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Read-Reply-Report-Requested */
+	{
+		struct dict_avp_data data = {
+			1222,	/* Code */
+			10415,	/* Vendor */
+			"Read-Reply-Report-Requested",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Read-Reply-Report-Requested)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Real-Time-Tariff-Information */
+	{
+		struct dict_avp_data data = {
+			2305,	/* Code */
+			10415,	/* Vendor */
+			"Real-Time-Tariff-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Received-Talk-Burst-Time */
+	{
+		struct dict_avp_data data = {
+			1284,	/* Code */
+			10415,	/* Vendor */
+			"Received-Talk-Burst-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Received-Talk-Burst-Volume */
+	{
+		struct dict_avp_data data = {
+			1285,	/* Code */
+			10415,	/* Vendor */
+			"Received-Talk-Burst-Volume",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Recipient-Address */
+	{
+		struct dict_avp_data data = {
+			1201,	/* Code */
+			10415,	/* Vendor */
+			"Recipient-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Recipient-Info */
+	{
+		struct dict_avp_data data = {
+			2026,	/* Code */
+			10415,	/* Vendor */
+			"Recipient-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Recipient-Received-Address */
+	{
+		struct dict_avp_data data = {
+			2028,	/* Code */
+			10415,	/* Vendor */
+			"Recipient-Received-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Recipient-SCCP-Address */
+	{
+		struct dict_avp_data data = {
+			2010,	/* Code */
+			10415,	/* Vendor */
+			"Recipient-SCCP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Refund-Information */
+	{
+		struct dict_avp_data data = {
+			2022,	/* Code */
+			10415,	/* Vendor */
+			"Refund-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Relationship-Mode */
+	{
+		struct dict_avp_data data = {
+			2706,	/* Code */
+			10415,	/* Vendor */
+			"Relationship-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Relationship-Mode)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Remaining-Balance */
+	{
+		struct dict_avp_data data = {
+			2021,	/* Code */
+			10415,	/* Vendor */
+			"Remaining-Balance",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Reply-Applic-ID */
+	{
+		struct dict_avp_data data = {
+			1223,	/* Code */
+			10415,	/* Vendor */
+			"Reply-Applic-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Reply-Path-Requested */
+	{
+		struct dict_avp_data data = {
+			2011,	/* Code */
+			10415,	/* Vendor */
+			"Reply-Path-Requested",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Reply-Path-Requested)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Reporting-Reason */
+	{
+		struct dict_avp_data data = {
+			872,	/* Code */
+			10415,	/* Vendor */
+			"Reporting-Reason",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Reporting-Reason)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Requested-Party-Address */
+	{
+		struct dict_avp_data data = {
+			1251,	/* Code */
+			10415,	/* Vendor */
+			"Requested-Party-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Role-Of-Node */
+	{
+		struct dict_avp_data data = {
+			829,	/* Code */
+			10415,	/* Vendor */
+			"Role-Of-Node",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Role-Of-Node)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SDP-Answer-Timestamp */
+	{
+		struct dict_avp_data data = {
+			1275,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Answer-Timestamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* SDP-Media-Component */
+	{
+		struct dict_avp_data data = {
+			843,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Media-Component",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SDP-Media-Description */
+	{
+		struct dict_avp_data data = {
+			845,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Media-Description",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SDP-Media-Name */
+	{
+		struct dict_avp_data data = {
+			844,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Media-Name",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SDP-Offer-Timestamp */
+	{
+		struct dict_avp_data data = {
+			1274,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Offer-Timestamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* SDP-Session-Description */
+	{
+		struct dict_avp_data data = {
+			842,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Session-Description",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SDP-TimeStamps */
+	{
+		struct dict_avp_data data = {
+			1273,	/* Code */
+			10415,	/* Vendor */
+			"SDP-TimeStamps",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SDP-Type */
+	{
+		struct dict_avp_data data = {
+			2036,	/* Code */
+			10415,	/* Vendor */
+			"SDP-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SDP-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SGSN-Address */
+	{
+		struct dict_avp_data data = {
+			1228,	/* Code */
+			10415,	/* Vendor */
+			"SGSN-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* SGW-Address */
+	{
+		struct dict_avp_data data = {
+			2067,	/* Code */
+			10415,	/* Vendor */
+			"SGW-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* SGW-Change */
+	{
+		struct dict_avp_data data = {
+			2065,	/* Code */
+			10415,	/* Vendor */
+			"SGW-Change",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SGW-Change)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SIP-Method */
+	{
+		struct dict_avp_data data = {
+			824,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Method",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SIP-Request-Timestamp */
+	{
+		struct dict_avp_data data = {
+			834,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Request-Timestamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* SIP-Request-Timestamp-Fraction */
+	{
+		struct dict_avp_data data = {
+			2301,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Request-Timestamp-Fraction",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SIP-Response-Timestamp */
+	{
+		struct dict_avp_data data = {
+			835,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Response-Timestamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* SIP-Response-Timestamp-Fraction */
+	{
+		struct dict_avp_data data = {
+			2302,	/* Code */
+			10415,	/* Vendor */
+			"SIP-Response-Timestamp-Fraction",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SM-Discharge-Time */
+	{
+		struct dict_avp_data data = {
+			2012,	/* Code */
+			10415,	/* Vendor */
+			"SM-Discharge-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* SM-Message-Type */
+	{
+		struct dict_avp_data data = {
+			2007,	/* Code */
+			10415,	/* Vendor */
+			"SM-Message-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SM-Message-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SM-Protocol-ID */
+	{
+		struct dict_avp_data data = {
+			2013,	/* Code */
+			10415,	/* Vendor */
+			"SM-Protocol-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SM-Service-Type */
+	{
+		struct dict_avp_data data = {
+			2029,	/* Code */
+			10415,	/* Vendor */
+			"SM-Service-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SM-Service-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SM-Status */
+	{
+		struct dict_avp_data data = {
+			2014,	/* Code */
+			10415,	/* Vendor */
+			"SM-Status",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SM-User-Data-Header */
+	{
+		struct dict_avp_data data = {
+			2015,	/* Code */
+			10415,	/* Vendor */
+			"SM-User-Data-Header",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SMS-Information */
+	{
+		struct dict_avp_data data = {
+			2000,	/* Code */
+			10415,	/* Vendor */
+			"SMS-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SMS-Node */
+	{
+		struct dict_avp_data data = {
+			2016,	/* Code */
+			10415,	/* Vendor */
+			"SMS-Node",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(SMS-Node)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* SMSC-Address */
+	{
+		struct dict_avp_data data = {
+			2017,	/* Code */
+			10415,	/* Vendor */
+			"SMSC-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Scale-Factor */
+	{
+		struct dict_avp_data data = {
+			2059,	/* Code */
+			10415,	/* Vendor */
+			"Scale-Factor",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Served-Party-IP-Address */
+	{
+		struct dict_avp_data data = {
+			848,	/* Code */
+			10415,	/* Vendor */
+			"Served-Party-IP-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* Service-Data-Container */
+	{
+		struct dict_avp_data data = {
+			2040,	/* Code */
+			10415,	/* Vendor */
+			"Service-Data-Container",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Service-Id */
+	{
+		struct dict_avp_data data = {
+			855,	/* Code */
+			10415,	/* Vendor */
+			"Service-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Service-Information */
+	{
+		struct dict_avp_data data = {
+			873,	/* Code */
+			10415,	/* Vendor */
+			"Service-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Service-Mode */
+	{
+		struct dict_avp_data data = {
+			2032,	/* Code */
+			10415,	/* Vendor */
+			"Service-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Service-Specific-Data */
+	{
+		struct dict_avp_data data = {
+			863,	/* Code */
+			10415,	/* Vendor */
+			"Service-Specific-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Service-Specific-Info */
+	{
+		struct dict_avp_data data = {
+			1249,	/* Code */
+			10415,	/* Vendor */
+			"Service-Specific-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Service-Specific-Type */
+	{
+		struct dict_avp_data data = {
+			1257,	/* Code */
+			10415,	/* Vendor */
+			"Service-Specific-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Serving-Node-Type */
+	{
+		struct dict_avp_data data = {
+			2047,	/* Code */
+			10415,	/* Vendor */
+			"Serving-Node-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Serving-Node-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Session-Direction */
+	{
+		struct dict_avp_data data = {
+			2707,	/* Code */
+			10415,	/* Vendor */
+			"Session-Direction",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Direction)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Start-Time */
+	{
+		struct dict_avp_data data = {
+			2041,	/* Code */
+			10415,	/* Vendor */
+			"Start-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Status */
+	{
+		struct dict_avp_data data = {
+			2702,	/* Code */
+			10415,	/* Vendor */
+			"Status",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Status)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Stop-Time */
+	{
+		struct dict_avp_data data = {
+			2042,	/* Code */
+			10415,	/* Vendor */
+			"Stop-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Submission-Time */
+	{
+		struct dict_avp_data data = {
+			1202,	/* Code */
+			10415,	/* Vendor */
+			"Submission-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Subscriber-Role */
+	{
+		struct dict_avp_data data = {
+			2033,	/* Code */
+			10415,	/* Vendor */
+			"Subscriber-Role",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Subscriber-Role)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Supplementary-Service */
+	{
+		struct dict_avp_data data = {
+			2048,	/* Code */
+			10415,	/* Vendor */
+			"Supplementary-Service",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Talk-Burst-Exchange */
+	{
+		struct dict_avp_data data = {
+			1255,	/* Code */
+			10415,	/* Vendor */
+			"Talk-Burst-Exchange",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Talk-Burst-Time */
+	{
+		struct dict_avp_data data = {
+			1286,	/* Code */
+			10415,	/* Vendor */
+			"Talk-Burst-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Talk-Burst-Volume */
+	{
+		struct dict_avp_data data = {
+			1287,	/* Code */
+			10415,	/* Vendor */
+			"Talk-Burst-Volume",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Tariff-Information */
+	{
+		struct dict_avp_data data = {
+			2060,	/* Code */
+			10415,	/* Vendor */
+			"Tariff-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Tariff-XML */
+	{
+		struct dict_avp_data data = {
+			2306,	/* Code */
+			10415,	/* Vendor */
+			"Tariff-XML",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Terminating-IOI */
+	{
+		struct dict_avp_data data = {
+			840,	/* Code */
+			10415,	/* Vendor */
+			"Terminating-IOI",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Time-First-Usage */
+	{
+		struct dict_avp_data data = {
+			2043,	/* Code */
+			10415,	/* Vendor */
+			"Time-First-Usage",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Time-Last-Usage */
+	{
+		struct dict_avp_data data = {
+			2044,	/* Code */
+			10415,	/* Vendor */
+			"Time-Last-Usage",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Time-Quota-Mechanism */
+	{
+		struct dict_avp_data data = {
+			1270,	/* Code */
+			10415,	/* Vendor */
+			"Time-Quota-Mechanism",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Time-Quota-Threshold */
+	{
+		struct dict_avp_data data = {
+			868,	/* Code */
+			10415,	/* Vendor */
+			"Time-Quota-Threshold",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Time-Quota-Type */
+	{
+		struct dict_avp_data data = {
+			1271,	/* Code */
+			10415,	/* Vendor */
+			"Time-Quota-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Time-Quota-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Time-Stamps */
+	{
+		struct dict_avp_data data = {
+			833,	/* Code */
+			10415,	/* Vendor */
+			"Time-Stamps",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Time-Usage */
+	{
+		struct dict_avp_data data = {
+			2045,	/* Code */
+			10415,	/* Vendor */
+			"Time-Usage",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Token-Text */
+	{
+		struct dict_avp_data data = {
+			1215,	/* Code */
+			10415,	/* Vendor */
+			"Token-Text",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Traffic-Data-Volumes */
+	{
+		struct dict_avp_data data = {
+			2046,	/* Code */
+			10415,	/* Vendor */
+			"Traffic-Data-Volumes",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Transcoder-Inserted-Indication */
+	{
+		struct dict_avp_data data = {
+			2605,	/* Code */
+			10415,	/* Vendor */
+			"Transcoder-Inserted-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Transcoder-Inserted-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Transit-IOI-List */
+	{
+		struct dict_avp_data data = {
+			2701,	/* Code */
+			10415,	/* Vendor */
+			"Transit-IOI-List",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Trigger */
+	{
+		struct dict_avp_data data = {
+			1264,	/* Code */
+			10415,	/* Vendor */
+			"Trigger",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Trigger-Type */
+	{
+		struct dict_avp_data data = {
+			870,	/* Code */
+			10415,	/* Vendor */
+			"Trigger-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Trigger-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Trunk-Group-Id */
+	{
+		struct dict_avp_data data = {
+			851,	/* Code */
+			10415,	/* Vendor */
+			"Trunk-Group-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Type-Number */
+	{
+		struct dict_avp_data data = {
+			1204,	/* Code */
+			10415,	/* Vendor */
+			"Type-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Type-Number)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Unit-Cost */
+	{
+		struct dict_avp_data data = {
+			2061,	/* Code */
+			10415,	/* Vendor */
+			"Unit-Cost",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Unit-Quota-Threshold */
+	{
+		struct dict_avp_data data = {
+			1226,	/* Code */
+			10415,	/* Vendor */
+			"Unit-Quota-Threshold",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* User-CSG-Information */
+	{
+		struct dict_avp_data data = {
+			2319,	/* Code */
+			10415,	/* Vendor */
+			"User-CSG-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* User-Participating-Type */
+	{
+		struct dict_avp_data data = {
+			1279,	/* Code */
+			10415,	/* Vendor */
+			"User-Participating-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(User-Participating-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* User-Session-Id */
+	{
+		struct dict_avp_data data = {
+			830,	/* Code */
+			10415,	/* Vendor */
+			"User-Session-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* Volume-Quota-Threshold */
+	{
+		struct dict_avp_data data = {
+			869,	/* Code */
+			10415,	/* Vendor */
+			"Volume-Quota-Threshold",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WAG-Address */
+	{
+		struct dict_avp_data data = {
+			890,	/* Code */
+			10415,	/* Vendor */
+			"WAG-Address",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* WAG-PLMN-Id */
+	{
+		struct dict_avp_data data = {
+			891,	/* Code */
+			10415,	/* Vendor */
+			"WAG-PLMN-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WLAN-Information */
+	{
+		struct dict_avp_data data = {
+			875,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WLAN-Radio-Container */
+	{
+		struct dict_avp_data data = {
+			892,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-Radio-Container",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WLAN-Session-Id */
+	{
+		struct dict_avp_data data = {
+			1246,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-Session-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* WLAN-Technology */
+	{
+		struct dict_avp_data data = {
+			893,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-Technology",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WLAN-UE-Local-IPAddress */
+	{
+		struct dict_avp_data data = {
+			894,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-UE-Local-IPAddress",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
+	};
+
+	/* 3GPP 29.329-b50 (11.5.0 2012.12.21)                          */
+	/* User-Identity */
+	{
+		struct dict_avp_data data = {
+			700,	/* Code */
+			10415,	/* Vendor */
+			"User-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MSISDN */
+	{
+		struct dict_avp_data data = {
+			701,	/* Code */
+			10415,	/* Vendor */
+			"MSISDN",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Name conflict with 29.229 User-Data (606), renamed           */
+	/* User-Data-Sh */
+	{
+		struct dict_avp_data data = {
+			702,	/* Code */
+			10415,	/* Vendor */
+			"User-Data-Sh",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Data-Reference */
+	{
+		struct dict_avp_data data = {
+			703,	/* Code */
+			10415,	/* Vendor */
+			"Data-Reference",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Data-Reference)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Service-Indication */
+	{
+		struct dict_avp_data data = {
+			704,	/* Code */
+			10415,	/* Vendor */
+			"Service-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Subs-Req-Type */
+	{
+		struct dict_avp_data data = {
+			705,	/* Code */
+			10415,	/* Vendor */
+			"Subs-Req-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Subs-Req-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Requested-Domain */
+	{
+		struct dict_avp_data data = {
+			706,	/* Code */
+			10415,	/* Vendor */
+			"Requested-Domain",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Requested-Domain)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Current-Location */
+	{
+		struct dict_avp_data data = {
+			707,	/* Code */
+			10415,	/* Vendor */
+			"Current-Location",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Current-Location)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Identity-Set */
+	{
+		struct dict_avp_data data = {
+			708,	/* Code */
+			10415,	/* Vendor */
+			"Identity-Set",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Identity-Set)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Expiry-Time */
+	{
+		struct dict_avp_data data = {
+			709,	/* Code */
+			10415,	/* Vendor */
+			"Expiry-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Send-Data-Indication */
+	{
+		struct dict_avp_data data = {
+			710,	/* Code */
+			10415,	/* Vendor */
+			"Send-Data-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Send-Data-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* in 29.229                                                    */
+	/* Server-Name                                                  */
+	/* Supported-Features                                           */
+	/* Feature-List-ID                                              */
+	/* Feature-List                                                 */
+	/* Supported-Applications                                       */
+	/* Public-Identity                                              */
+	/* DSAI-Tag */
+	{
+		struct dict_avp_data data = {
+			711,	/* Code */
+			10415,	/* Vendor */
+			"DSAI-Tag",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* in 29.229                                                    */
+	/* Wildcarded-Public-Identity                                   */
+	/* Wildcarded-IMPU */
+	{
+		struct dict_avp_data data = {
+			636,	/* Code */
+			10415,	/* Vendor */
+			"Wildcarded-IMPU",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* in 29.229                                                    */
+	/* Session-Priority                                             */
+	/* One-Time-Notification */
+	{
+		struct dict_avp_data data = {
+			712,	/* Code */
+			10415,	/* Vendor */
+			"One-Time-Notification",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(One-Time-Notification)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Requested-Nodes */
+	{
+		struct dict_avp_data data = {
+			713,	/* Code */
+			10415,	/* Vendor */
+			"Requested-Nodes",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Serving-Node-Indication */
+	{
+		struct dict_avp_data data = {
+			714,	/* Code */
+			10415,	/* Vendor */
+			"Serving-Node-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object		*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Serving-Node-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Repository-Data-ID */
+	{
+		struct dict_avp_data data = {
+			715,	/* Code */
+			10415,	/* Vendor */
+			"Repository-Data-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Sequence-Number */
+	{
+		struct dict_avp_data data = {
+			716,	/* Code */
+			10415,	/* Vendor */
+			"Sequence-Number",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* UDR-Flags */
+	{
+		struct dict_avp_data data = {
+			719,	/* Code */
+			10415,	/* Vendor */
+			"UDR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	
+	TRACE_DEBUG(INFO, "Extension 'Dictionary definitions for DCCA 3GPP' initialized");
+	return 0;
+}
+
+EXTENSION_ENTRY("dict_dcca_3gpp", dict_dcca_3gpp_entry, "dict_dcca");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org	Wed Mar 06 20:09:54 2013 +0100
@@ -0,0 +1,543 @@
+| Attribute Name                                                | Code | Section defined | Value Type       | MUST | MAY | SHLD NOT | MUST NOT | Encr |
+| # 3GPP 29.061-c00 (12.0.0 2012.12.20)                         |      |                 |                  |      |     |          |          |      |
+| # 3GPP 29.061 is not very clear and self-inconsistent about M |      |                 |                  |      |     |          |          |      |
+| # for this reason, other sources are assumed more trustworthy |      |                 |                  |      |     |          |          |      |
+| # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
+| 3GPP-IMSI                                                     |    1 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # 29.061 says OctetString; dumps say UInt32; manually changed |      |                 |                  |      |     |          |          |      |
+| # 29.061 says MUST NOT M; dumps say MUST                      |      |                 |                  |      |     |          |          |      |
+| 3GPP-Charging-Id                                              |    2 |          16.4.7 | Unsigned32       | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; dumps say MUST                      |      |                 |                  |      |     |          |          |      |
+| 3GPP-PDP-Type                                                 |    3 |          16.4.7 | Enumerated       | M,V  | P   |          |          |      |
+| 3GPP-CG-Address                                               |    4 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-GPRS-Negotiated-QoS-Profile                              |    5 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # M inconsistently specified; old contrib/3gg says MUST NOT   |      |                 |                  |      |     |          |          |      |
+| 3GPP-SGSN-Address                                             |    6 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| 3GPP-GGSN-Address                                             |    7 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| # 29.061 says MUST NOT M; dumps say MUST                      |      |                 |                  |      |     |          |          |      |
+| 3GPP-IMSI-MCC-MNC                                             |    8 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-GGSN-MCC-MNC                                             |    9 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-NSAPI                                                    |   10 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # added manually, missing in AVP table                        |      |                 |                  |      |     |          |          |      |
+| 3GPP-Session-Stop-Indicator                                   |   11 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-Selection-Mode                                           |   12 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-Charging-Characteristics                                 |   13 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-CG-IPv6-Address                                          |   14 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-SGSN-IPv6-Address                                        |   15 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-GGSN-IPv6-Address                                        |   16 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-IPv6-DNS-Servers                                         |   17 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # 29.061 says MUST NOT M; old contrib/3gpp says MUST          |      |                 |                  |      |     |          |          |      |
+| 3GPP-SGSN-MCC-MNC                                             |   18 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
+| # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
+| 3GPP-IMEISV                                                   |   20 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
+| 3GPP-RAT-Type                                                 |   21 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
+| 3GPP-User-Location-Info                                       |   22 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
+| 3GPP-MS-TimeZone                                              |   23 |          16.4.7 | OctetString      | M,V  | P   |          |          |      |
+| 3GPP-CAMEL-Charging-Info                                      |   24 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| 3GPP-Packet-Filter                                            |   25 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| 3GPP-Negotiated-DSCP                                          |   26 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| 3GPP-Allocate-IP-Type                                         |   27 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| # added manually, missing in AVP table                        |      |                 |                  |      |     |          |          |      |
+| External-Identifier                                           |   28 |          16.4.7 | OctetString      | V    | P   |          | M        |      |
+| TMGI                                                          |  900 |        17.07.02 | OctetString      | M,V  | P   |          |          |      |
+| Required-MBMS-Bearer-Capabilities                             |  901 |        17.07.03 | UTF8String       | M,V  | P   |          |          |      |
+| MBMS-StartStop-Indication                                     |  902 |        17.07.05 | Enumerated       | M,V  | P   |          |          |      |
+| MBMS-Service-Area                                             |  903 |        17.07.06 | OctetString      | M,V  | P   |          |          |      |
+| MBMS-Session-Duration                                         |  904 |        17.07.07 | OctetString      | M,V  | P   |          |          |      |
+| Alternative-APN                                               |  905 |        17.07.08 | UTF8String       | M,V  | P   |          |          |      |
+| MBMS-Service-Type                                             |  906 |        17.07.09 | Enumerated       | M,V  | P   |          |          |      |
+| MBMS-2G-3G-Indicator                                          |  907 |        17.07.10 | Enumerated       | M,V  | P   |          |          |      |
+| MBMS-Session-Identity                                         |  908 |        17.07.11 | OctetString      | M.V  | P   |          |          |      |
+| RAI                                                           |  909 |        17.07.12 | UTF8String       | M,V  | P   |          |          |      |
+| Additional-MBMS-Trace-Info                                    |  910 |        17.07.13 | OctetString      | M,V  | P   |          |          |      |
+| MBMS-Time-To-Data-Transfer                                    |  911 |        17.07.14 | OctetString      | M,V  | P   |          |          |      |
+| MBMS-Session-Repetition-Number                                |  912 |        17.07.15 | OctetString      | M.V  | P   |          |          |      |
+| MBMS-Required-QoS                                             |  913 |        17.07.16 | UTF8String       | M.V  | P   |          |          |      |
+| MBMS-Counting-Information                                     |  914 |        17.07.17 | Enumerated       | M.V  | P   |          |          |      |
+| MBMS-User-Data-Mode-Indication                                |  915 |        17.07.18 | Enumerated       | M.V  | P   |          |          |      |
+| MBMS-GGSN-Address                                             |  916 |        17.07.19 | OctetString      | M.V  | P   |          |          |      |
+| MBMS-GGSN-IPv6-Address                                        |  917 |        17.07.20 | OctetString      | M.V  | P   |          |          |      |
+| MBMS-BMSC-SSM-IP-Address                                      |  918 |        17.07.21 | OctetString      | M.V  | P   |          |          |      |
+| MBMS-BMSC-SSM-IPv6-Address                                    |  919 |        17.07.22 | OctetString      | M.V  | P   |          |          |      |
+| MBMS-Flow-Identifier                                          |  920 |         17.7.23 | OctetString      | M,V  | P   |          |          |      |
+| CN-IP-Multicast-Distribution                                  |  921 |         17.7.24 | Enumerated       | M,V  | P   |          |          |      |
+| MBMS-HC-Indicator                                             |  922 |         17.7.25 | Enumerated       | M,V  | P   |          |          |      |
+| # 3GPP 29.212-b70 (11.7.0 2012.12.20)                         |      |                 |                  |      |     |          |          |      |
+| ADC-Revalidation-Time                                         | 2801 |          5.3.93 | Time             | V    | P   |          | M        | Y    |
+| ADC-Rule-Install                                              | 1092 |          5.3.85 | Grouped          | V    | P   |          | M        | Y    |
+| ADC-Rule-Remove                                               | 1093 |          5.3.86 | Grouped          | V    | P   |          | M        | Y    |
+| ADC-Rule-Definition                                           | 1094 |          5.3.87 | Grouped          | V    | P   |          | M        | Y    |
+| ADC-Rule-Base-Name                                            | 1095 |          5.3.88 | UTF8String       | V    | P   |          | M        | Y    |
+| ADC-Rule-Name                                                 | 1096 |          5.3.89 | OctetString      | V    | P   |          | M        | Y    |
+| ADC-Rule-Report                                               | 1097 |          5.3.90 | Grouped          | V    | P   |          | M        | Y    |
+| Application-Detection-Information                             | 1098 |          5.3.91 | Grouped          | V    | P   |          | M        | Y    |
+| Access-Network-Charging-Identifier-Gx                         | 1022 |          5.3.22 | Grouped          | M,V  | P   |          |          | Y    |
+| Allocation-Retention-Priority                                 | 1034 |          5.3.32 | Grouped          | V    | P   |          | M        | Y    |
+| AN-GW-Address                                                 | 1050 |          5.3.49 | Address          | V    | P   |          | M        | Y    |
+| APN-Aggregate-Max-Bitrate-DL                                  | 1040 |          5.3.39 | Unsigned32       | V    | P   |          | M        | Y    |
+| APN-Aggregate-Max-Bitrate-UL                                  | 1041 |          5.3.40 | Unsigned32       | V    | P   |          | M        | Y    |
+| Bearer-Control-Mode                                           | 1023 |          5.3.23 | Enumerated       | M,V  | P   |          |          | Y    |
+| Bearer-Identifier                                             | 1020 |          5.3.20 | OctetString      | M,V  | P   |          |          | Y    |
+| Bearer-Operation                                              | 1021 |          5.3.21 | Enumerated       | M,V  | P   |          |          | Y    |
+| Bearer-Usage                                                  | 1000 |           5.3.1 | Enumerated       | M,V  | P   |          |          | Y    |
+| Charging-Rule-Install                                         | 1001 |           5.3.2 | Grouped          | M,V  | P   |          |          | Y    |
+| Charging-Rule-Remove                                          | 1002 |           5.3.3 | Grouped          | M,V  | P   |          |          | Y    |
+| Charging-Rule-Definition                                      | 1003 |           5.3.4 | Grouped          | M,V  | P   |          |          | Y    |
+| Charging-Rule-Base-Name                                       | 1004 |           5.3.5 | UTF8String       | M,V  | P   |          |          | Y    |
+| Charging-Rule-Name                                            | 1005 |           5.3.6 | OctetString      | M,V  | P   |          |          | Y    |
+| Charging-Rule-Report                                          | 1018 |          5.3.18 | Grouped          | M,V  | P   |          |          | Y    |
+| Charging-Correlation-Indicator                                | 1073 |          5.3.67 | Enumerated       | V    | P   |          | M        | Y    |
+| CoA-IP-Address                                                | 1035 |          5.3.33 | Address          | V    | P   |          | M        | Y    |
+| CoA-Information                                               | 1039 |          5.3.37 | Grouped          | V    | P   |          | M        | Y    |
+| CSG-Information-Reporting                                     | 1071 |          5.3.64 | Enumerated       | V    | P   |          | M        | Y    |
+| Default-EPS-Bearer-QoS                                        | 1049 |          5.3.48 | Grouped          | V    | P   |          | M        | Y    |
+| Event-Report-Indication                                       | 1033 |          5.3.30 | Grouped          | V    | P   |          | M        | Y    |
+| Event-Trigger                                                 | 1006 |           5.3.7 | Enumerated       | M,V  | P   |          |          | Y    |
+| Flow-Direction                                                | 1080 |          5.3.65 | Enumerated       | V    | P   |          | M        | Y    |
+| Flow-Information                                              | 1058 |          5.3.53 | Grouped          | V    | P   |          | M        | Y    |
+| Flow-Label                                                    | 1057 |          5.3.52 | OctetString      | V    | P   |          | M        | Y    |
+| IP-CAN-Type                                                   | 1027 |          5.3.27 | Enumerated       | M,V  | P   |          |          | Y    |
+| Guaranteed-Bitrate-DL                                         | 1025 |          5.3.25 | Unsigned32       | M,V  | P   |          |          | Y    |
+| Guaranteed-Bitrate-UL                                         | 1026 |          5.3.26 | Unsigned32       | M,V  | P   |          |          | Y    |
+| HeNB-BBF-FQDN                                                 | 2803 |          5.3.94 | UTF8String       | V    | P   |          | M        | Y    |
+| HeNB-Local-IP-Address                                         | 2804 |          5.3.95 | Address          | V    | P   |          | M        | Y    |
+| Metering-Method                                               | 1007 |           5.3.8 | Enumerated       | M,V  | P   |          |          | Y    |
+| Monitoring-Key                                                | 1066 |          5.3.59 | OctetString      | V    | P   |          | M        | Y    |
+| Mute-Notification                                             | 2809 |          5.3.98 | Enumerated       | V    | P   |          | M        | Y    |
+| Monitoring-Time                                               | 2810 |          5.3.99 | Time             | V    | P   |          | M        | Y    |
+| Network-Request-Support                                       | 1024 |          5.3.24 | Enumerated       | M,V  | P   |          |          | Y    |
+| Offline                                                       | 1008 |           5.3.9 | Enumerated       | M,V  | P   |          |          | Y    |
+| Online                                                        | 1009 |          5.3.10 | Enumerated       | M,V  | P   |          |          | Y    |
+| Packet-Filter-Content                                         | 1059 |          5.3.54 | IPFilterRule     | V    | P   |          | M        | Y    |
+| Packet-Filter-Identifier                                      | 1060 |          5.3.55 | OctetString      | V    | P   |          | M        | Y    |
+| Packet-Filter-Information                                     | 1061 |          5.3.56 | Grouped          | V    | P   |          | M        | Y    |
+| Packet-Filter-Operation                                       | 1062 |          5.3.57 | Enumerated       | V    | P   |          | M        | Y    |
+| Packet-Filter-Usage                                           | 1072 |          5.3.66 | Enumerated       | V    | P   |          | M        | Y    |
+| PDN-Connection-ID                                             | 1065 |          5.3.58 | OctetString      | V    | P   |          |          | Y    |
+| Precedence                                                    | 1010 |          5.3.11 | Unsigned32       | M,V  | P   |          |          | Y    |
+| Pre-emption-Capability                                        | 1047 |          5.3.46 | Enumerated       | V    | P   |          | M        | Y    |
+| Pre-emption-Vulnerability                                     | 1048 |          5.3.47 | Enumerated       | V    | P   |          | M        | Y    |
+| Priority-Level                                                | 1046 |          5.3.45 | Unsigned32       | V    | P   |          | M        | Y    |
+| Redirect-Information                                          | 1085 |          5.3.82 | Grouped          | V    | P   |          | M        | Y    |
+| Redirect- Support                                             | 1086 |          5.3.83 | Enumerated       | V    | P   |          | M        | Y    |
+| Reporting-Level                                               | 1011 |          5.3.12 | Enumerated       | M,V  | P   |          |          | Y    |
+| Routing-Filter                                                | 1078 |          5.3.72 | Grouped          | V    | P   |          | M        | Y    |
+| Routing-IP-Address                                            | 1079 |          5.3.73 | Address          | V    | P   |          | M        | Y    |
+| Routing-Rule-Definition                                       | 1076 |          5.3.70 | Grouped          | V    | P   |          | M        | Y    |
+| Routing-Rule-Identifier                                       | 1077 |          5.3.71 | OctetString      | V    | P   |          | M        | Y    |
+| Routing-Rule-Install                                          | 1081 |          5.3.68 | Grouped          | V    | P   |          | M        | Y    |
+| Routing-Rule-Remove                                           | 1075 |          5.3.69 | Grouped          | V    | P   |          | M        | Y    |
+| PCC-Rule-Status                                               | 1019 |          5.3.19 | Enumerated       | M,V  | P   |          |          | Y    |
+| Session-Release-Cause                                         | 1045 |          5.3.44 | Enumerated       | M,V  | P   |          |          | Y    |
+| TDF-Information                                               | 1087 |          5.3.78 | Grouped          | V    | P   |          | M        | Y    |
+| TDF-Application-Identifier                                    | 1088 |          5.3.77 | OctetString      | V    | P   |          | M        | Y    |
+| TDF-Application-Instance-Identifier                           | 2802 |          5.3.92 | OctetString      | V    | P   |          | M        | Y    |
+| TDF-Destination-Host                                          | 1089 |          5.3.80 | DiameterIdentity | V    | P   |          | M        | Y    |
+| TDF-Destination-Realm                                         | 1090 |          5.3.79 | DiameterIdentity | V    | P   |          | M        | Y    |
+| TDF-IP-address                                                | 1091 |          5.3.81 | Address          | V    | P   |          | M        | Y    |
+| QoS-Class-Identifier                                          | 1028 |          5.3.17 | Enumerated       | M,V  | P   |          |          | Y    |
+| QoS-Information                                               | 1016 |          5.3.16 | Grouped          | M.V  | P   |          |          | Y    |
+| QoS-Negotiation                                               | 1029 |          5.3.28 | Enumerated       | M,V  | P   |          |          | Y    |
+| Qos-Upgrade                                                   | 1030 |          5.3.29 | Enumerated       | M.V  | P   |          |          | Y    |
+| PS-to-CS-Session-Continuity                                   | 1099 |          5.3.84 | Enumerated       | V    | P   |          |          | Y    |
+| Resource-Allocation-Notification                              | 1063 |          5.3.50 | Enumerated       | V    | P   |          | M        | Y    |
+| Rule-Failure-Code                                             | 1031 |          5.3.38 | Enumerated       | M.V  | P   |          |          | Y    |
+| Security-Parameter-Index                                      | 1056 |          5.3.51 | OctetString      | V    | P   |          | M        | Y    |
+| TFT-Filter                                                    | 1012 |          5.3.13 | IPFilterRule     | M,V  | P   |          |          | Y    |
+| TFT-Packet-Filter-Information                                 | 1013 |          5.3.14 | Grouped          | M,V  | P   |          |          | Y    |
+| ToS-Traffic-Class                                             | 1014 |          5.3.15 | OctetString      | M,V  | P   |          |          | Y    |
+| Tunnel-Header-Filter                                          | 1036 |          5.3.34 | IPFilterRule     | V    | P   |          | M        | Y    |
+| Tunnel-Header-Length                                          | 1037 |          5.3.35 | Unsigned32       | V    | P   |          | M        | Y    |
+| Tunnel-Information                                            | 1038 |          5.3.36 | Grouped          | V    | P   |          | M        | Y    |
+| RAT-Type                                                      | 1032 |          5.3.31 | Enumerated       | V    | P   |          | M        | Y    |
+| Revalidation-Time                                             | 1042 |          5.3.41 | Time             | M,V  | P   |          |          | Y    |
+| Rule-Activation-Time                                          | 1043 |          5.3.42 | Time             | M,V  | P   |          |          | Y    |
+| UDP-Source-Port                                               | 2806 |          5.3.97 | Unsigned32       | V    | P   |          | M        | Y    |
+| UE-Local-IP-Address                                           | 2805 |          5.3.96 | Address          | V    | P   |          | M        | Y    |
+| Usage-Monitoring-Information                                  | 1067 |          5.3.60 | Grouped          | V    | P   |          | M        | Y    |
+| Rule-DeActivation-Time                                        | 1044 |          5.3.43 | Time             | M,V  | P   |          |          | Y    |
+| Usage-Monitoring-Level                                        | 1068 |          5.3.61 | Enumerated       | V    | P   |          | M        | Y    |
+| Usage-Monitoring-Report                                       | 1069 |          5.3.62 | Enumerated       | V    | P   |          | M        | Y    |
+| Usage-Monitoring-Support                                      | 1070 |          5.3.63 | Enumerated       | V    | P   |          | M        | Y    |
+| QoS-Rule-Install                                              | 1051 |          5a.3.1 | Grouped          | M,V  | P   |          |          | Y    |
+| QoS-Rule-Remove                                               | 1052 |          5a.3.2 | Grouped          | M,V  | P   |          |          | Y    |
+| QoS-Rule-Definition                                           | 1053 |          5a.3.3 | Grouped          | M,V  | P   |          |          | Y    |
+| QoS-Rule-Name                                                 | 1054 |          5a.3.4 | OctetString      | M,V  | P   |          |          | Y    |
+| QoS-Rule-Base-Name                                            | 1074 |          5a.3.7 | UTF8String       | V    | P   |          | M        | Y    |
+| QoS-Rule-Report                                               | 1055 |          5a.3.5 | Grouped          | M,V  | P   |          |          | Y    |
+| Session-Linking-Indicator                                     | 1064 |          5a.3.6 | Enumerated       | M,V  | P   |          |          | Y    |
+| CS-Service-Qos-Request-Identifier                             | 2807 |         E.6.3.2 | OctetString      | M,V  | P   |          |          | Y    |
+| CS-Service-QoS-Request-Operation                              | 2808 |         E.6.3.3 | Enumerated       | M.V  | P   |          |          | Y    |
+| # 3GPP 29.229-b20 (11.2.0 2012.12.21)                         |      |                 |                  |      |     |          |          |      |
+| Associated-Identities                                         |  632 |          6.3.33 | Grouped          | V    |     |          | M        | N    |
+| Associated-Registered-Identities                              |  647 |          6.3.50 | Grouped          | V    |     |          | M        | N    |
+| Call-ID-SIP-Header                                            |  643 |        6.3.49.1 | OctetString      | V    |     |          | M        | N    |
+| Charging-Information                                          |  618 |          6.3.19 | Grouped          | M,V  |     |          |          | N    |
+| Confidentiality-Key                                           |  625 |          6.3.27 | OctetString      | M,V  |     |          |          | N    |
+| Contact                                                       |  641 |          6.3.48 | OctetString      | V    |     |          | M        | N    |
+| Deregistration-Reason                                         |  615 |          6.3.16 | Grouped          | M,V  |     |          |          | N    |
+| Digest-Algorithm                                              |  111 |          6.3.39 | UTF8String       | M    |     |          | V        | N    |
+| Digest-HA1                                                    |  121 |          6.3.41 | UTF8String       | M    |     |          | V        | N    |
+| Digest-QoP                                                    |  110 |          6.3.40 | UTF8String       | M    |     |          | V        | N    |
+| Digest-Realm                                                  |  104 |          6.3.37 | UTF8String       | M    |     |          | V        | N    |
+| Feature-List                                                  |  630 |          6.3.31 | Unsigned32       | V    |     |          | M        | N    |
+| Feature-List-ID                                               |  629 |          6.3.30 | Unsigned32       | V    |     |          | M        | N    |
+| From-SIP-Header                                               |  644 |        6.3.49.2 | OctetString      | V    |     |          | M        | N    |
+| Identity-with-Emergency-Registration                          |  651 |          6.3.57 | Grouped          | V    |     |          | M        | N    |
+| Integrity-Key                                                 |  626 |          6.3.28 | OctetString      | M,V  |     |          |          | N    |
+| LIA-Flags                                                     |  653 |          6.3.59 | Unsigned32       | V    |     |          | M        | N    |
+| Loose-Route-Indication                                        |  638 |          6.3.45 | Enumerated       | V    |     |          | M        | N    |
+| Mandatory-Capability                                          |  604 |           6.3.5 | Unsigned32       | M,V  |     |          |          | N    |
+| Multiple-Registration-Indication                              |  648 |          6.3.51 | Enumerated       | V    |     |          | M        | N    |
+| Optional-Capability                                           |  605 |           6.3.6 | Unsigned32       | M,V  |     |          |          | N    |
+| Originating-Request                                           |  633 |          6.3.34 | Enumerated       | M,V  |     |          |          | N    |
+| Path                                                          |  640 |          6.3.47 | OctetString      | V    |     |          | M        | N    |
+| Primary-Charging-Collection-Function-Name                     |  621 |          6.3.22 | DiameterURI      | M,V  |     |          |          | N    |
+| Primary-Event-Charging-Function-Name                          |  619 |          6.3.20 | DiameterURI      | M,V  |     |          |          | N    |
+| Priviledged-Sender-Indication                                 |  652 |          6.3.58 | Enumerated       | V    |     |          | M        | N    |
+| Public-Identity                                               |  601 |           6.3.2 | UTF8String       | M,V  |     |          |          | N    |
+| Reason-Code                                                   |  616 |          6.3.17 | Enumerated       | M,V  |     |          |          | N    |
+| Reason-Info                                                   |  617 |          6.3.18 | UTF8String       | M,V  |     |          |          | N    |
+| Record-Route                                                  |  646 |        6.3.49.4 | OctetString      | V    |     |          | M        | N    |
+| Restoration-Info                                              |  649 |          6.3.52 | Grouped          | V    |     |          | M        | N    |
+| SCSCF-Restoration-Info                                        |  639 |          6.3.46 | Grouped          | V    |     |          | M        | N    |
+| SIP-Auth-Data-Item                                            |  612 |          6.3.13 | Grouped          | M,V  |     |          |          | N    |
+| SIP-Authenticate                                              |  609 |          6.3.10 | OctetString      | M,V  |     |          |          | N    |
+| SIP-Authentication-Context                                    |  611 |          6.3.12 | OctetString      | M,V  |     |          |          | N    |
+| SIP-Authentication-Scheme                                     |  608 |           6.3.9 | UTF8String       | M,V  |     |          |          | N    |
+| SIP-Authorization                                             |  610 |          6.3.11 | OctetString      | M,V  |     |          |          | N    |
+| SIP-Digest-Authenticate                                       |  635 |          6.3.36 | Grouped          | V    |     |          | M        | N    |
+| SIP-Item-Number                                               |  613 |          6.3.14 | Unsigned32       | M,V  |     |          |          | N    |
+| SIP-Number-Auth-Items                                         |  607 |           6.3.8 | Unsigned32       | M,V  |     |          |          | N    |
+| Secondary-Charging-Collection-Function-Name                   |  622 |          6.3.23 | DiameterURI      | M,V  |     |          |          | N    |
+| Secondary-Event-Charging-Function-Name                        |  620 |          6.3.21 | DiameterURI      | M,V  |     |          |          | N    |
+| Server-Assignment-Type                                        |  614 |          6.3.15 | Enumerated       | M,V  |     |          |          | N    |
+| Server-Capabilities                                           |  603 |           6.3.4 | Grouped          | M,V  |     |          |          | N    |
+| Server-Name                                                   |  602 |           6.3.3 | UTF8String       | M,V  |     |          |          | N    |
+| Session-Priority                                              |  650 |          6.3.56 | Enumerated       | V    |     |          | M        | N    |
+| Subscription-Info                                             |  642 |          6.3.49 | Grouped          | V    |     |          | M        | N    |
+| Supported-Applications                                        |  631 |          6.3.32 | Grouped          | V    |     |          | M        | N    |
+| Supported-Features                                            |  628 |          6.3.29 | Grouped          | V    | M   |          |          | N    |
+| To-SIP-Header                                                 |  645 |        6.3.49.3 | OctetString      | V    |     |          | M        | N    |
+| UAR-Flags                                                     |  637 |          6.3.44 | Unsigned32       | V    |     |          | M        | N    |
+| User-Authorization-Type                                       |  623 |          6.3.24 | Enumerated       | M,V  |     |          |          | N    |
+| User-Data                                                     |  606 |           6.3.7 | OctetString      | M,V  |     |          |          | N    |
+| User-Data-Already-Available                                   |  624 |          6.3.26 | Enumerated       | M,V  |     |          |          | N    |
+| Visited-Network-Identifier                                    |  600 |           6.3.1 | OctetString      | M,V  |     |          |          | N    |
+| Wildcarded-Public-Identity                                    |  634 |          6.3.35 | UTF8String       | V    |     |          | M        | N    |
+| # 3GPP 32.299-b60 (11.6.0 2012.12.21)                         |      |                 |                  |      |     |          |          |      |
+| AF-Correlation-Information                                    | 1276 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Access-Network-Information                                    | 1263 |                 | OctetString      | M,V  | P   |          |          | N    |
+| Access-Transfer-Information                                   | 2709 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Access-Transfer-Type                                          | 2710 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Account-Expiration                                            | 2309 |                 | Time             | M,V  | P   |          |          | N    |
+| Accumulated-Cost                                              | 2052 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Adaptations                                                   | 1217 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Additional-Content-Information                                | 1207 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Additional-Type-Information                                   | 1205 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Address-Data                                                  |  897 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Address-Domain                                                |  898 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Address-Type                                                  |  899 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Addressee-Type                                                | 1208 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Alternate-Charged-Party-Address                               | 1280 |                 | UTF8String       | V.M  | P   |          |          | N    |
+| AoC-Cost-Information                                          | 2053 |                 | Grouped          | M,V  | P   |          |          | N    |
+| AoC-Format                                                    | 2310 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| AoC-Information                                               | 2054 |                 | Grouped          | V.M  | P   |          |          | N    |
+| AoC-Request-Type                                              | 2055 |                 | Enumerated       | V.M  | P   |          |          | N    |
+| AoC-Service                                                   | 2311 |                 | Grouped          | M,V  | P   |          |          | N    |
+| AoC-Service-Obligatory-Type                                   | 2312 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| AoC-Service-Type                                              | 2313 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| AoC-Subscription-Information                                  | 2314 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Applic-ID                                                     | 1218 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Application-Server                                            |  836 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Application-Server-Information                                |  850 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Application-provided-called-party-address                     |  837 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Associated-Party-Address                                      | 2035 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Associated-URI                                                |  856 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Aux-Applic-Info                                               | 1219 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Base-Time-Interval                                            | 1265 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Bearer-Service                                                |  854 |                 | OctetString      | M,V  | P   |          |          | N    |
+| CG-Address                                                    |  846 |                 | Address          | M,V  | P   |          |          | Y    |
+| CSG-Access-Mode                                               | 2317 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| CSG-Membership-Indication                                     | 2318 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| CUG-Information                                               | 2304 |                 | OctetString      | M,V  | P   |          |          | N    |
+| Called-Asserted-Identity                                      | 1250 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Called-Party-Address                                          |  832 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Calling-Party-Address                                         |  831 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Carrier-Select-Routing-Information                            | 2023 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Cause-Code                                                    |  861 |                 | Integer32        | M,V  | P   |          |          | N    |
+| Change-Condition                                              | 2037 |                 | Integer32        | M,V  | P   |          |          | N    |
+| Change-Time                                                   | 2038 |                 | Time             | M,V  | P   |          |          | N    |
+| Charge-Reason-Code                                            | 2118 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Charged-Party                                                 |  857 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Charging-Characteristics-Selection-Mode                       | 2066 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Class-Identifier                                              | 1214 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Client-Address                                                | 2018 |                 | Address          | M,V  | P   |          |          | N    |
+| Content-Class                                                 | 1220 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Content-Disposition                                           |  828 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Content-Length                                                |  827 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Content-Size                                                  | 1206 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Content-Type                                                  |  826 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Current-Tariff                                                | 2056 |                 | Grouped          | M,V  | P   |          |          | N    |
+| DRM-Content                                                   | 1221 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Data-Coding-Scheme                                            | 2001 |                 | Integer32        | M,V  | P   |          |          | N    |
+| Deferred-Location-Event-Type                                  | 1230 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Delivery-Report-Requested                                     | 1216 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Destination-Interface                                         | 2002 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Diagnostics                                                   | 2039 |                 | Integer32        | M,V  | P   |          |          | N    |
+| Domain-Name                                                   | 1200 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Dynamic-Address-Flag                                          | 2051 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Dynamic-Address-Flag-Extension                                | 2068 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Early-Media-Description                                       | 1272 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Envelope                                                      | 1266 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Envelope-End-Time                                             | 1267 |                 | Time             | M,V  | P   |          |          | N    |
+| Envelope-Reporting                                            | 1268 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Envelope-Start-Time                                           | 1269 |                 | Time             | M,V  | P   |          |          | N    |
+| Event                                                         |  825 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Event-Charging-TimeStamp                                      | 1258 |                 | Time             | M,V  | P   |          |          | N    |
+| Event-Type                                                    |  823 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Expires                                                       |  888 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| File-Repair-Supported                                         | 1224 |                 | Enumerated       | M,V  | P   |          |          | Y    |
+| From-Address                                                  | 2708 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| GGSN-Address                                                  |  847 |                 | Address          | M,V  | P   |          |          | N    |
+| IMS-Application-Reference-Identifier                          | 2601 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| IMS-Charging-Identifier                                       |  841 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| IMS-Communication-Service-Identifier                          | 1281 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| IMS-Emergency-Indicator                                       | 2322 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| IMS-Information                                               |  876 |                 | Grouped          | M,V  | P   |          |          | N    |
+| IMSI-Unauthenticated-Flag                                     | 2308 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| IP-Realm-Default-Indication                                   | 2603 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Incoming-Trunk-Group-Id                                       |  852 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Incremental-Cost                                              | 2062 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Initial-IMS-Charging-Identifier                               | 2321 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Inter-Operator-Identifier                                     |  838 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Interface-Id                                                  | 2003 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Interface-Port                                                | 2004 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Interface-Text                                                | 2005 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Interface-Type                                                | 2006 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| LCS-APN                                                       | 1231 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| LCS-Client-Dialed-By-MS                                       | 1233 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| LCS-Client-External-ID                                        | 1234 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| LCS-Client-Id                                                 | 1232 |                 | Grouped          | M,V  | P   |          |          | N    |
+| LCS-Client-Name                                               | 1235 |                 | Grouped          | M,V  | P   |          |          | N    |
+| LCS-Client-Type                                               | 1241 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| LCS-Data-Coding-Scheme                                        | 1236 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| LCS-Format-Indicator                                          | 1237 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| LCS-Information                                               |  878 |                 | Grouped          | M,V  | P   |          |          | N    |
+| LCS-Name-String                                               | 1238 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| LCS-Requestor-Id                                              | 1239 |                 | Grouped          | M,V  | P   |          |          | N    |
+| LCS-Requestor-Id-String                                       | 1240 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Local-GW-Inserted-Indication                                  | 2604 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Local-Sequence-Number                                         | 2063 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Location-Estimate                                             | 1242 |                 | OctetString      | M,V  | P   |          |          | N    |
+| Location-Estimate-Type                                        | 1243 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Location-Type                                                 | 1244 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Low-Balance-Indication                                        | 2020 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Low-Priority-Indicator                                        | 2602 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| MBMS GW-Address                                               | 2307 |                 | Address          | M,V  | P   |          |          | N    |
+| MBMS-Information                                              |  880 |                 | Grouped          | M,V  | P   |          |          | N    |
+| MBMS-User-Service-Type                                        | 1225 |                 | Enumerated       | M,V  | P   |          |          | Y    |
+| MM-Content-Type                                               | 1203 |                 | Grouped          | M,V  | P   |          |          | N    |
+| MMBox-Storage-Requested                                       | 1248 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| MMS-Information                                               |  877 |                 | Grouped          | M,V  | P   |          |          | N    |
+| MMTel-Information                                             | 2030 |                 | Grouped          | M,V  | P   |          |          | N    |
+| MMTel-SService-Type                                           | 2031 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Media-Initiator-Flag                                          |  882 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Media-Initiator-Party                                         | 1288 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Message-Body                                                  |  889 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Message-Class                                                 | 1213 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Message-ID                                                    | 1210 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Message-Size                                                  | 1212 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Message-Type                                                  | 1211 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| NNI-Information                                               | 2703 |                 | Grouped          | M,V  | P   |          |          | N    |
+| NNI-Type                                                      | 2704 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Neighbour-Node-Address                                        | 2705 |                 | Address          | M,V  | P   |          |          | N    |
+| Next-Tariff                                                   | 2057 |                 | Grouped          | V/M  | P   |          |          | N    |
+| Node-Functionality                                            |  862 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Node-Id                                                       | 2064 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Number-Of-Diversions                                          | 2034 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Number-Of-Messages-Sent                                       | 2019 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Number-Of-Participants                                        |  885 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Number-Of-Received-Talk-Bursts                                | 1282 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Number-Of-Talk-Bursts                                         | 1283 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Number-Portability-Routing-Information                        | 2024 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Offline-Charging                                              | 1278 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Online-Charging-Flag                                          | 2303 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Originating-IOI                                               |  839 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Originator                                                    |  864 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Originator-Address                                            |  886 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Originator-Interface                                          | 2009 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Originator-Received-Address                                   | 2027 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Originator-SCCP-Address                                       | 2008 |                 | Address          | M,V  | P   |          |          | N    |
+| Outgoing-Session-Id                                           | 2320 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Outgoing-Trunk-Group-Id                                       |  853 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| PDG-Address                                                   |  895 |                 | Address          | M,V  | P   |          |          | N    |
+| PDG-Charging-Id                                               |  896 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| PDN-Connection-Charging-ID                                    | 2050 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| PDP-Address                                                   | 1227 |                 | Address          | M,V  | P   |          |          | Y    |
+| PDP-Address-Prefix-Length                                     | 2606 |                 | Unsigned32       | M,V  | P   |          |          | Y    |
+| PDP-Context-Type                                              | 1247 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PS-Append-Free-Format-Data                                    |  867 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PS-Free-Format-Data                                           |  866 |                 | OctetString      | M,V  | P   |          |          | N    |
+| PS-Furnish-Charging-Information                               |  865 |                 | Grouped          | M,V  | P   |          |          | N    |
+| PS-Information                                                |  874 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Participant-Access-Priority                                   | 1259 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Participant-Action-Type                                       | 2049 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Participant-Group                                             | 1260 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Participants-Involved                                         |  887 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| PoC-Change-Condition                                          | 1261 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PoC-Change-Time                                               | 1262 |                 | Time             | M,V  | P   |          |          | N    |
+| PoC-Controlling-Address                                       |  858 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| PoC-Event-Type                                                | 2025 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PoC-Group-Name                                                |  859 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| PoC-Information                                               |  879 |                 | Grouped          | M,V  | P   |          |          | N    |
+| PoC-Server-Role                                               |  883 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PoC-Session-Id                                                | 1229 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| PoC-Session-Initiation-type                                   | 1277 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PoC-Session-Type                                              |  884 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| PoC-User-Role                                                 | 1252 |                 | Grouped          | M,V  | P   |          |          | N    |
+| PoC-User-Role-IDs                                             | 1253 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| PoC-User-Role-info-Units                                      | 1254 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Positioning-Data                                              | 1245 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Preferred-AoC-Currency                                        | 2315 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Priority                                                      | 1209 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Quota-Consumption-Time                                        |  881 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Quota-Holding-Time                                            |  871 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Rate-Element                                                  | 2058 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Read-Reply-Report-Requested                                   | 1222 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Real-Time-Tariff-Information                                  | 2305 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Received-Talk-Burst-Time                                      | 1284 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Received-Talk-Burst-Volume                                    | 1285 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Recipient-Address                                             | 1201 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Recipient-Info                                                | 2026 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Recipient-Received-Address                                    | 2028 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Recipient-SCCP-Address                                        | 2010 |                 | Address          | M,V  | P   |          |          | N    |
+| Refund-Information                                            | 2022 |                 | OctetString      | M,V  | P   |          |          | N    |
+| Relationship-Mode                                             | 2706 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Remaining-Balance                                             | 2021 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Reply-Applic-ID                                               | 1223 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Reply-Path-Requested                                          | 2011 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Reporting-Reason                                              |  872 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Requested-Party-Address                                       | 1251 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Role-Of-Node                                                  |  829 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| SDP-Answer-Timestamp                                          | 1275 |                 | Time             | M,V  | P   |          |          | N    |
+| SDP-Media-Component                                           |  843 |                 | Grouped          | M,V  | P   |          |          | N    |
+| SDP-Media-Description                                         |  845 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| SDP-Media-Name                                                |  844 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| SDP-Offer-Timestamp                                           | 1274 |                 | Time             | M,V  | P   |          |          | N    |
+| SDP-Session-Description                                       |  842 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| SDP-TimeStamps                                                | 1273 |                 | Grouped          | M,V  | P   |          |          | N    |
+| SDP-Type                                                      | 2036 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| SGSN-Address                                                  | 1228 |                 | Address          | M,V  | P   |          |          | N    |
+| SGW-Address                                                   | 2067 |                 | Address          | M,V  | P   |          |          | N    |
+| SGW-Change                                                    | 2065 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| SIP-Method                                                    |  824 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| SIP-Request-Timestamp                                         |  834 |                 | Time             | M,V  | P   |          |          | N    |
+| SIP-Request-Timestamp-Fraction                                | 2301 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| SIP-Response-Timestamp                                        |  835 |                 | Time             | M,V  | P   |          |          | N    |
+| SIP-Response-Timestamp-Fraction                               | 2302 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| SM-Discharge-Time                                             | 2012 |                 | Time             | M,V  | P   |          |          | N    |
+| SM-Message-Type                                               | 2007 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| SM-Protocol-ID                                                | 2013 |                 | OctetString      | M,V  | P   |          |          | N    |
+| SM-Service-Type                                               | 2029 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| SM-Status                                                     | 2014 |                 | OctetString      | M,V  | P   |          |          | N    |
+| SM-User-Data-Header                                           | 2015 |                 | OctetString      | M,V  | P   |          |          | N    |
+| SMS-Information                                               | 2000 |                 | Grouped          | M,V  | P   |          |          | N    |
+| SMS-Node                                                      | 2016 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| SMSC-Address                                                  | 2017 |                 | Address          | M,V  | P   |          |          | N    |
+| Scale-Factor                                                  | 2059 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Served-Party-IP-Address                                       |  848 |                 | Address          | M,V  | P   |          |          | N    |
+| Service-Data-Container                                        | 2040 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Service-Id                                                    |  855 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Service-Information                                           |  873 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Service-Mode                                                  | 2032 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Service-Specific-Data                                         |  863 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Service-Specific-Info                                         | 1249 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Service-Specific-Type                                         | 1257 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Serving-Node-Type                                             | 2047 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Session-Direction                                             | 2707 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Start-Time                                                    | 2041 |                 | Time             | M,V  | P   |          |          | N    |
+| Status                                                        | 2702 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Stop-Time                                                     | 2042 |                 | Time             | M,V  | P   |          |          | N    |
+| Submission-Time                                               | 1202 |                 | Time             | M,V  | P   |          |          | N    |
+| Subscriber-Role                                               | 2033 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Supplementary-Service                                         | 2048 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Talk-Burst-Exchange                                           | 1255 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Talk-Burst-Time                                               | 1286 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Talk-Burst-Volume                                             | 1287 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Tariff-Information                                            | 2060 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Tariff-XML                                                    | 2306 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Terminating-IOI                                               |  840 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Time-First-Usage                                              | 2043 |                 | Time             | M,V  | P   |          |          | N    |
+| Time-Last-Usage                                               | 2044 |                 | Time             | M,V  | P   |          |          | N    |
+| Time-Quota-Mechanism                                          | 1270 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Time-Quota-Threshold                                          |  868 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Time-Quota-Type                                               | 1271 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Time-Stamps                                                   |  833 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Time-Usage                                                    | 2045 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| Token-Text                                                    | 1215 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Traffic-Data-Volumes                                          | 2046 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Transcoder-Inserted-Indication                                | 2605 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Transit-IOI-List                                              | 2701 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Trigger                                                       | 1264 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Trigger-Type                                                  |  870 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Trunk-Group-Id                                                |  851 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Type-Number                                                   | 1204 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| Unit-Cost                                                     | 2061 |                 | Grouped          | M,V  | P   |          |          | N    |
+| Unit-Quota-Threshold                                          | 1226 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| User-CSG-Information                                          | 2319 |                 | Grouped          | M,V  | P   |          |          | N    |
+| User-Participating-Type                                       | 1279 |                 | Enumerated       | M,V  | P   |          |          | N    |
+| User-Session-Id                                               |  830 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| Volume-Quota-Threshold                                        |  869 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| WAG-Address                                                   |  890 |                 | Address          | M,V  | P   |          |          | N    |
+| WAG-PLMN-Id                                                   |  891 |                 | OctetString      | M,V  | P   |          |          | N    |
+| WLAN-Information                                              |  875 |                 | Grouped          | M,V  | P   |          |          | N    |
+| WLAN-Radio-Container                                          |  892 |                 | Grouped          | M,V  | P   |          |          | N    |
+| WLAN-Session-Id                                               | 1246 |                 | UTF8String       | M,V  | P   |          |          | N    |
+| WLAN-Technology                                               |  893 |                 | Unsigned32       | M,V  | P   |          |          | N    |
+| WLAN-UE-Local-IPAddress                                       |  894 |                 | Address          | M,V  | P   |          |          | N    |
+| # 3GPP 29.329-b50 (11.5.0 2012.12.21)                         |      |                 |                  |      |     |          |          |      |
+| User-Identity                                                 |  700 |           6.3.1 | Grouped          | M,V  |     |          |          | N    |
+| MSISDN                                                        |  701 |           6.3.2 | OctetString      | M,V  |     |          |          | N    |
+| # Name conflict with 29.229 User-Data (606), renamed          |      |                 |                  |      |     |          |          |      |
+| User-Data-Sh                                                  |  702 |           6.3.3 | OctetString      | M,V  |     |          |          | N    |
+| Data-Reference                                                |  703 |           6.3.4 | Enumerated       | M,V  |     |          |          | N    |
+| Service-Indication                                            |  704 |           6.3.5 | OctetString      | M,V  |     |          |          | N    |
+| Subs-Req-Type                                                 |  705 |           6.3.6 | Enumerated       | M,V  |     |          |          | N    |
+| Requested-Domain                                              |  706 |           6.3.7 | Enumerated       | M,V  |     |          |          | N    |
+| Current-Location                                              |  707 |           6.3.8 | Enumerated       | M,V  |     |          |          | N    |
+| Identity-Set                                                  |  708 |          6.3.10 | Enumerated       | V    |     |          | M        | N    |
+| Expiry-Time                                                   |  709 |          6.3.16 | Time             | V    |     |          | M        | N    |
+| Send-Data-Indication                                          |  710 |          6.3.17 | Enumerated       | V    |     |          | M        | N    |
+| # in 29.229                                                   |      |                 |                  |      |     |          |          |      |
+| # Server-Name                                                 |  602 |           6.3.9 | UTF8String       | M,V  |     |          |          | N    |
+| # Supported-Features                                          |  628 |          6.3.11 | Grouped          | V    | M   |          |          | N    |
+| # Feature-List-ID                                             |  629 |          6.3.12 | Unsigned32       | V    |     |          | M        | N    |
+| # Feature-List                                                |  630 |          6.3.13 | Unsigned32       | V    |     |          | M        | N    |
+| # Supported-Applications                                      |  631 |          6.3.14 | Grouped          | V    |     |          | M        | N    |
+| # Public-Identity                                             |  601 |          6.3.15 | UTF8String       | M,V  |     |          |          | N    |
+| DSAI-Tag                                                      |  711 |          6.3.18 | OctetString      | M,V  |     |          |          | N    |
+| # in 29.229                                                   |      |                 |                  |      |     |          |          |      |
+| # Wildcarded-Public-Identity                                  |  634 |          6.3.19 | UTF8String       | V    |     |          | M        | N    |
+| Wildcarded-IMPU                                               |  636 |          6.3.20 | UTF8String       | V    |     |          | M        | N    |
+| # in 29.229                                                   |      |                 |                  |      |     |          |          |      |
+| # Session-Priority                                            |  650 |          6.3.21 | Enumerated       | V    |     |          | M        | N    |
+| One-Time-Notification                                         |  712 |          6.3.22 | Enumerated       | V    |     |          | M        | N    |
+| Requested-Nodes                                               |  713 |          6.3.7A | Unsigned32       | V    |     |          | M        | N    |
+| Serving-Node-Indication                                       |  714 |          6.3.23 | Enumerated       | V    |     |          | M        | N    |
+| Repository-Data-ID                                            |  715 |          6.3.24 | Grouped          | V    |     |          | M        | N    |
+| Sequence-Number                                               |  716 |          6.3.25 | Unsigned32       | V    |     |          | M        | N    |
+| UDR-Flags                                                     |  719 |          6.3.28 | Unsigned32       | V    |     |          | M        | N    |
--- a/extensions/rt_default/CMakeLists.txt	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/rt_default/CMakeLists.txt	Wed Mar 06 20:09:54 2013 +0100
@@ -30,15 +30,6 @@
 
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
 
-# Overwrite the debug level for the extension code if configured, example: cmake -DDEBUG_LEVEL_RT_DEFAULT:STATIC=CALL ...
-OPTION(DEBUG_LEVEL_RT_DEFAULT "Overwrite debug level for the extension rt_default if defined (valid values: FULL, ANNOYING, CALL...)" OFF)
-IF (DEBUG_LEVEL_RT_DEFAULT)
-     ADD_DEFINITIONS(-DTRACE_LEVEL=${DEBUG_LEVEL_RT_DEFAULT})
-ENDIF (DEBUG_LEVEL_RT_DEFAULT)
-IF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-  MARK_AS_ADVANCED(DEBUG_LEVEL_RT_DEFAULT)
-ENDIF (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-
 # Compile these files as a freeDiameter extension
 FD_ADD_EXTENSION(rt_default ${RT_DEFAULT_SRC})
 
--- a/extensions/test_sip/test_sip.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/extensions/test_sip/test_sip.h	Wed Mar 06 20:09:54 2013 +0100
@@ -38,7 +38,9 @@
 #include <stdint.h>
 #include <stdlib.h>
 #include <stdio.h>
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #include <gcrypt.h>
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 #include <string.h>
 #include <mysql.h>
 
--- a/include/freeDiameter/libfdcore.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/include/freeDiameter/libfdcore.h	Wed Mar 06 20:09:54 2013 +0100
@@ -86,7 +86,7 @@
 const char *fd_core_version(void);
 
 /* Parse the freeDiameter.conf configuration file, load the extensions */
-int fd_core_parseconf(char * conffile);
+int fd_core_parseconf(const char * conffile);
 
 /* Start the server & client threads */
 int fd_core_start(void);
@@ -110,7 +110,7 @@
 struct fd_config {
 	int		 cnf_eyec;	/* Eye catcher: EYEC_CONFIG */
 	
-	char		*cnf_file;	/* Configuration file to parse, default is DEFAULT_CONF_FILE */
+	const char	*cnf_file;	/* Configuration file to parse, default is DEFAULT_CONF_FILE */
 	
 	DiamId_t  	 cnf_diamid;	/* Diameter Identity of the local peer (FQDN -- ASCII) */
 	size_t		 cnf_diamid_len;/* cached length of the previous string */
@@ -349,7 +349,7 @@
  *  (other standard errors may be returned, too, with their standard meaning. Example:
  *    ENOMEM 	: Memory allocation for the new object element failed.)
  */
-int fd_peer_add ( struct peer_info * info, char * orig_dbg, void (*cb)(struct peer_info *, void *), void * cb_data );
+int fd_peer_add ( struct peer_info * info, const char * orig_dbg, void (*cb)(struct peer_info *, void *), void * cb_data );
 
 /*
  * FUNCTION:	fd_peer_getbyid
--- a/include/freeDiameter/libfdproto.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/include/freeDiameter/libfdproto.h	Wed Mar 06 20:09:54 2013 +0100
@@ -109,24 +109,25 @@
 
 
 /*
- * FUNCTION:	fd_log_debug_fstr
+ * FUNCTION:	fd_log
  * MACRO:	fd_log_debug
  *
  * PARAMETERS:
- *  fstr	: Stream where the text will be sent (default: stdout) 
+ *  loglevel	: Integer, how important the message is
  *  format 	: Same format string as in the printf function
  *  ...		: Same list as printf
  *
  * DESCRIPTION: 
- *  Log internal information for use of developpers only.
+ * Write information to log.
  * The format and arguments may contain UTF-8 encoded data. The
- * output medium (file or console) is expected to support this encoding.
+ * output medium is expected to support this encoding.
  *
  * RETURN VALUE:
  *  None.
  */
-void fd_log_debug_fstr ( FILE * fstr, const char * format, ... );
-#define fd_log_debug(format,args...) fd_log_debug_fstr(NULL, format, ## args)
+void fd_log ( int, const char *, ... );
+#define fd_log_debug(format,args...) fd_log(FD_LOG_DEBUG, format, ## args)
+void fd_log_debug_fstr( FILE *, const char *, ... );
 
 /* these are internal objects of the debug facility, 
 might be useful to control the behavior from outside */
@@ -173,7 +174,7 @@
  * MACRO:
  *
  * PARAMETERS:
- *  fstr        : Stream where the text will be sent to (default: stdout)
+ *  loglevel    : priority of the message
  *  format      : Same format string as in the printf function
  *  va_list     : Argument list
  *
@@ -183,7 +184,7 @@
  * RETURN VALUE:
  * int          : Success or failure
  */
-int fd_log_handler_register ( void (*logger)(const char * format, va_list *args) );
+int fd_log_handler_register ( void (*logger)(int loglevel, const char * format, va_list args) );
 
 /*
  * FUNCTION:    fd_log_handler_unregister
@@ -208,7 +209,11 @@
 #define ASSERT(x) assert(x)
 #endif /* ASSERT */
 
-/* levels definitions */
+/* log levels definitions */
+#define FD_LOG_DEBUG 0
+#define FD_LOG_ERROR 5
+
+/* print level definitions */
 #define NONE 0	/* Display no debug message */
 #define INFO 1	/* Display errors only */
 #define FULL 2  /* Display additional information to follow code execution */
@@ -216,14 +221,6 @@
 #define FCTS 6  /* Display entry parameters of most functions */
 #define CALL 9  /* Display calls to most functions (with CHECK macros) */
 
-/* Increment the debug level for a file at compilation time by defining -DTRACE_LEVEL=FULL for example. */
-#ifndef TRACE_LEVEL 
-#define TRACE_LEVEL NONE
-#endif /* TRACE_LEVEL */
-
-/* The level of the file being compiled. */
-static int local_debug_level = TRACE_LEVEL;
-
 /* A global level, changed by configuration or cmd line for example. Default is INFO (in libfdproto/log.c). */
 extern int fd_g_debug_lvl;
 
@@ -246,14 +243,15 @@
 
 /* Boolean for tracing at a certain level */
 #ifdef DEBUG
-#define TRACE_BOOL(_level_) ( ((_level_) <= local_debug_level + fd_g_debug_lvl) 					\
+#define TRACE_BOOL(_level_) ( ((_level_) <= fd_g_debug_lvl) 					\
 				|| (fd_debug_one_function && !strcmp(fd_debug_one_function, __PRETTY_FUNCTION__)) 	\
 				|| (fd_debug_one_file && !strcmp(fd_debug_one_file, __STRIPPED_FILE__) ) )
 #else /* DEBUG */
-#define TRACE_BOOL(_level_) ((_level_) <= local_debug_level + fd_g_debug_lvl)
+#define TRACE_BOOL(_level_) ((_level_) <= fd_g_debug_lvl)
 #endif /* DEBUG */
 
 
+#define STD_TRACE_FMT_STRING "thread %s in %s@%s:%d: "
 /*************
  The general debug macro, each call results in two lines of debug messages (change the macro for more compact output) 
  *************/
@@ -261,12 +259,9 @@
 /* In DEBUG mode, we add (a lot of) meta-information along each trace. This makes multi-threading problems easier to debug. */
 #define TRACE_DEBUG(level,format,args... ) {											\
 	if ( TRACE_BOOL(level) ) {												\
-		char __buf[25];													\
 		const char * __thn = ((char *)pthread_getspecific(fd_log_thname) ?: "unnamed");					\
-		fd_log_debug("\t | tid:%-20s\t%s\tin %s@%s:%d\n"								\
-			  "\t%s|%*s" format "\n",  										\
-					__thn, fd_log_time(NULL, __buf, sizeof(__buf)), __PRETTY_FUNCTION__, __FILE__, __LINE__,\
-					(level < FULL)?"@":" ",level, "", ## args); 						\
+		fd_log(level, STD_TRACE_FMT_STRING format, \
+					__thn, __PRETTY_FUNCTION__, __FILE__, __LINE__, ## args); 						\
 	}															\
 }
 #else /* DEBUG */
@@ -274,14 +269,11 @@
 #define TRACE_DEBUG(level,format,args... ) {												\
 	if ( TRACE_BOOL(level) ) {													\
 		if (fd_g_debug_lvl > FULL) {												\
-			char __buf[25];													\
 			const char * __thn = ((char *)pthread_getspecific(fd_log_thname) ?: "unnamed");					\
-			fd_log_debug("\t | tid:%-20s\t%s\tin %s@%s:%d\n"								\
-				  "\t%s|%*s" format "\n",  										\
-						__thn, fd_log_time(NULL, __buf, sizeof(__buf)), __PRETTY_FUNCTION__, __FILE__, __LINE__,\
-						(level < FULL)?"@":" ",level, "", ## args); 						\
+                        fd_log(level, STD_TRACE_FMT_STRING format,      \
+                               __thn, __PRETTY_FUNCTION__, __FILE__, __LINE__, ## args);  \
 		} else {														\
-			fd_log_debug(format "\n", ## args); 										\
+			fd_log(level, format, ## args);           \
 		}															\
 	}																\
 }
@@ -315,19 +307,16 @@
 /* Trace a binary buffer content */
 #define TRACE_DEBUG_BUFFER(level, prefix, buf, bufsz, suffix ) {								\
 	if ( TRACE_BOOL(level) ) {												\
-		char __ts[25];													\
 		int __i;													\
 		size_t __sz = (size_t)(bufsz);											\
 		uint8_t * __buf = (uint8_t *)(buf);										\
 		char * __thn = ((char *)pthread_getspecific(fd_log_thname) ?: "unnamed");					\
-		fd_log_debug("\t | tid:%-20s\t%s\tin %s@%s:%d\n"								\
-			  "\t%s|%*s" prefix ,  											\
-					__thn, fd_log_time(NULL, __ts, sizeof(__ts)), __PRETTY_FUNCTION__, __FILE__, __LINE__,	\
-					(level < FULL)?"@":" ",level, ""); 							\
+                fd_log(level, STD_TRACE_FMT_STRING prefix,              \
+                       __thn, __PRETTY_FUNCTION__, __FILE__, __LINE__);	\
 		for (__i = 0; __i < __sz; __i++) {										\
-			fd_log_debug("%02.2hhx", __buf[__i]);									\
+			fd_log(level, "%02.2hhx", __buf[__i]);         \
 		}														\
-		fd_log_debug(suffix "\n");											\
+		fd_log(level, suffix);                        \
 	}															\
 }
 
@@ -344,7 +333,7 @@
 					0 ) ) )
 
 /* Dump one sockaddr Node information */
-#define sSA_DUMP_NODE( sa, flag ) {				\
+#define sSA_DUMP_NODE( buf, bufsize, sa, flag ) {                \
 	sSA * __sa = (sSA *)(sa);				\
 	char __addrbuf[INET6_ADDRSTRLEN];			\
 	if (__sa) {						\
@@ -356,15 +345,15 @@
 			0,					\
 			flag);					\
 	  if (__rc)						\
-	  	fd_log_debug("%s", (char *)gai_strerror(__rc));	\
+		snprintf(buf, bufsize, "%s", gai_strerror(__rc));	\
 	  else							\
-	  	fd_log_debug("%s", &__addrbuf[0]);		\
+		snprintf(buf, bufsize, "%s", &__addrbuf[0]);       \
 	} else {						\
-		fd_log_debug("(NULL / ANY)");			\
+		snprintf(buf, bufsize, "(NULL / ANY)");             \
 	}							\
 }
 /* Same but with the port (service) also */
-#define sSA_DUMP_NODE_SERV( sa, flag ) {				\
+#define sSA_DUMP_NODE_SERV( buf, bufsize, sa, flag ) {                  \
 	sSA * __sa = (sSA *)(sa);					\
 	char __addrbuf[INET6_ADDRSTRLEN];				\
 	char __servbuf[32];						\
@@ -377,25 +366,22 @@
 			sizeof(__servbuf),				\
 			flag);						\
 	  if (__rc)							\
-	  	fd_log_debug("%s", (char *)gai_strerror(__rc));		\
+		snprintf(buf, bufsize, "%s", gai_strerror(__rc));  \
 	  else								\
-	  	fd_log_debug("[%s]:%s", &__addrbuf[0],&__servbuf[0]);	\
+		snprintf(buf, bufsize, "[%s]:%s", &__addrbuf[0],&__servbuf[0]); \
 	} else {							\
-		fd_log_debug("(NULL / ANY)");				\
+		snprintf(buf, bufsize,"(NULL / ANY)");         \
 	}								\
 }
 
 /* Inside a debug trace */
 #define TRACE_DEBUG_sSA(level, prefix, sa, flags, suffix ) {										\
 	if ( TRACE_BOOL(level) ) {												\
-		char __buf[25];													\
+		char buf[1024]; \
 		char * __thn = ((char *)pthread_getspecific(fd_log_thname) ?: "unnamed");					\
-		fd_log_debug("\t | tid:%-20s\t%s\tin %s@%s:%d\n"								\
-			  "\t%s|%*s" prefix ,  											\
-					__thn, fd_log_time(NULL, __buf, sizeof(__buf)), __PRETTY_FUNCTION__, __FILE__, __LINE__,\
-					(level < FULL)?"@":" ",level, ""); 							\
-		sSA_DUMP_NODE_SERV( sa, flags );										\
-		fd_log_debug(suffix "\n");											\
+		sSA_DUMP_NODE_SERV(buf, sizeof(buf), sa, flags );       \
+		fd_log(level, STD_TRACE_FMT_STRING "%s%s%s",              \
+                       __thn, __PRETTY_FUNCTION__, __FILE__, __LINE__, prefix, buf, suffix); \
 	}															\
 }
 
@@ -417,7 +403,7 @@
 #define TRACE_DEBUG_BUFFER(level, prefix, buf, bufsz, suffix )
 #define TRACE_DEBUG_sSA(level, prefix, sa, flags, suffix )
 #define TRACE_DEBUG_ERROR(format,args... ) {	\
-	fd_log_debug(format "\n", ## args); 	\
+	fd_log(FD_LOG_ERROR, format, ## args); 	\
 }
 #endif /* STRIP_DEBUG_CODE */
 
@@ -1444,6 +1430,9 @@
 	 ret = fd_dict_search ( dict, DICT_AVP, AVP_BY_NAME, "User-Name", &avp_username, ENOENT);
 	 
 	 ret = fd_dict_search ( dict, DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avpvendorboolean, &avp_sampleboolean, ENOENT);
+
+	 -- this would also work, but be slower, because it has to search all vendor dictionaries --
+	 ret = fd_dict_search ( dict, DICT_AVP, AVP_BY_NAME_ALL_VENDORS, "Sample-Boolean", &avp_sampleboolean, ENOENT);
 	 
  }
  
--- a/libfdcore/cnxctx.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdcore/cnxctx.c	Wed Mar 06 20:09:54 2013 +0100
@@ -228,9 +228,9 @@
 	CHECK_SYS_DO( cli_sock = accept(serv->cc_socket, (sSA *)&ss, &ss_len), return NULL );
 	
 	if (TRACE_BOOL(INFO)) {
-		fd_log_debug("%s : accepted new client [", fd_cnx_getid(serv));
-		sSA_DUMP_NODE( &ss, NI_NUMERICHOST );
-		fd_log_debug("].\n");
+		char buf[1024];
+		sSA_DUMP_NODE( buf, sizeof(buf), &ss, NI_NUMERICHOST );
+		fd_log_debug("%s : accepted new client [%s].\n", fd_cnx_getid(serv), buf);
 	}
 	
 	CHECK_MALLOC_DO( cli = fd_cnx_init(1), { shutdown(cli_sock, SHUT_RDWR); close(cli_sock); return NULL; } );
@@ -311,9 +311,9 @@
 	}
 	
 	if (TRACE_BOOL(INFO)) {
-		fd_log_debug("Connection established to server '");
-		sSA_DUMP_NODE_SERV( sa, NI_NUMERICSERV);
-		fd_log_debug("' (TCP:%d).\n", sock);
+		char buf[1024];
+		sSA_DUMP_NODE_SERV( buf, sizeof(buf), sa, NI_NUMERICSERV);
+		fd_log_debug("Connection established to server '%s' (TCP:%d).\n", buf, sock);
 	}
 	
 	/* Once the socket is created successfuly, prepare the remaining of the cnx */
@@ -403,9 +403,9 @@
 		cnx->cc_sctp_para.pairs = cnx->cc_sctp_para.str_in;
 	
 	if (TRACE_BOOL(INFO)) {
-		fd_log_debug("Connection established to server '");
-		sSA_DUMP_NODE_SERV( &primary, NI_NUMERICSERV);
-		fd_log_debug("' (SCTP:%d, %d/%d streams).\n", sock, cnx->cc_sctp_para.str_in, cnx->cc_sctp_para.str_out);
+		char buf[1024];
+		sSA_DUMP_NODE_SERV( buf, sizeof(buf), &primary, NI_NUMERICSERV);
+		fd_log_debug("Connection established to server '%s' (SCTP:%d, %d/%d streams).\n", buf, sock, cnx->cc_sctp_para.str_in, cnx->cc_sctp_para.str_out);
 	}
 	
 	/* Generate the names for the object */
--- a/libfdcore/config.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdcore/config.c	Wed Mar 06 20:09:54 2013 +0100
@@ -229,7 +229,7 @@
 int fd_conf_parse()
 {
 	extern FILE * fddin;
-	char * orig = NULL;
+	const char * orig = NULL;
 	
 	/* Attempt to find the configuration file */
 	if (!fd_g_config->cnf_file)
@@ -237,23 +237,18 @@
 	
 	fddin = fopen(fd_g_config->cnf_file, "r");
 	if ((fddin == NULL) && (*fd_g_config->cnf_file != '/')) {
+		char * new_cnf = NULL;
 		/* We got a relative path, attempt to add the default directory prefix */
 		orig = fd_g_config->cnf_file;
-		CHECK_MALLOC( fd_g_config->cnf_file = malloc(strlen(orig) + strlen(DEFAULT_CONF_PATH) + 2) ); /* we will not free it, but not important */
-		sprintf( fd_g_config->cnf_file, DEFAULT_CONF_PATH "/%s", orig );
+		CHECK_MALLOC( new_cnf = malloc(strlen(orig) + strlen(DEFAULT_CONF_PATH) + 2) ); /* we will not free it, but not important */
+		sprintf( new_cnf, DEFAULT_CONF_PATH "/%s", orig );
+		fd_g_config->cnf_file = new_cnf;
 		fddin = fopen(fd_g_config->cnf_file, "r");
 	}
 	if (fddin == NULL) {
 		int ret = errno;
-		if (orig) {
-			fprintf(stderr, "Unable to open configuration file for reading\n"
-					"Tried the following locations:\n"
-					" - %s\n"
-					" - %s\n"
-					"Error: %s\n", orig, fd_g_config->cnf_file, strerror(ret));
-		} else {
-			fprintf(stderr, "Unable to open '%s' for reading: %s\n", fd_g_config->cnf_file, strerror(ret));
-		}
+		TRACE_DEBUG_ERROR("Unable to open configuration file for reading; tried the following locations: %s%s%s; Error: %s\n",
+				  orig ?: "", orig? " and " : "", fd_g_config->cnf_file, strerror(ret));
 		return ret;
 	}
 	
@@ -351,9 +346,9 @@
 				li = li->prev;
 				fd_list_unlink(&ep->chain);
 				if (TRACE_BOOL(INFO)) {
-					fd_log_debug("Info: Removing local address conflicting with the flags no_IP / no_IP6 : ");
-					sSA_DUMP_NODE( &ep->sa, NI_NUMERICHOST );
-					fd_log_debug("\n");
+					char buf[1024];
+					sSA_DUMP_NODE( buf, sizeof(buf), &ep->sa, NI_NUMERICHOST );
+					fd_log_debug("Info: Removing local address conflicting with the flags no_IP / no_IP6 : %s\n", buf);
 				}
 				free(ep);
 			}
--- a/libfdcore/core.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdcore/core.c	Wed Mar 06 20:09:54 2013 +0100
@@ -225,7 +225,7 @@
 }
 
 /* Parse the freeDiameter.conf configuration file, load the extensions */
-int fd_core_parseconf(char * conffile)
+int fd_core_parseconf(const char * conffile)
 {
 	TRACE_ENTRY("%p", conffile);
 	
--- a/libfdcore/endpoints.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdcore/endpoints.c	Wed Mar 06 20:09:54 2013 +0100
@@ -58,12 +58,12 @@
 	}
 	
 	if (TRACE_BOOL(ANNOYING + 1)) {
+		char buf[1024];
+		sSA_DUMP_NODE_SERV( buf, sizeof(buf), sa, NI_NUMERICHOST | NI_NUMERICSERV );
 		TRACE_DEBUG(ANNOYING, "  DEBUG:fd_ep_add_merge  Current list:");
 		fd_ep_dump( 4, list );
 		TRACE_DEBUG(ANNOYING, "  DEBUG:fd_ep_add_merge  Adding:");
-		fd_log_debug("    ");
-		sSA_DUMP_NODE_SERV( sa, NI_NUMERICHOST | NI_NUMERICSERV );
-		fd_log_debug(" {%s%s%s%s}\n", 
+		fd_log_debug("    %s {%s%s%s%s}\n", buf,
 				(flags & EP_FL_CONF) 	? "C" : "-",
 				(flags & EP_FL_DISC)	    ? "D" : "-",
 				(flags & EP_FL_ADV)	    ? "A" : "-",
@@ -335,18 +335,16 @@
 
 void fd_ep_dump_one( char * prefix, struct fd_endpoint * ep, char * suffix )
 {
-	if (prefix)
-		fd_log_debug("%s", prefix);
+	char buf[1024];
 	
-	sSA_DUMP_NODE_SERV( &ep->sa, NI_NUMERICHOST | NI_NUMERICSERV );
-	fd_log_debug(" {%s%s%s%s}", 
+	sSA_DUMP_NODE_SERV( buf, sizeof(buf), &ep->sa, NI_NUMERICHOST | NI_NUMERICSERV );
+	fd_log_debug("%s%s {%s%s%s%s}%s", prefix ?: "", buf,
 			(ep->flags & EP_FL_CONF) 	? "C" : "-",
 			(ep->flags & EP_FL_DISC) 	? "D" : "-",
 			(ep->flags & EP_FL_ADV) 	? "A" : "-",
 			(ep->flags & EP_FL_LL) 		? "L" : "-",
-			(ep->flags & EP_FL_PRIMARY) 	? "P" : "-");
-	if (suffix)
-		fd_log_debug("%s", suffix);
+			(ep->flags & EP_FL_PRIMARY) 	? "P" : "-",
+			suffix ?: "");
 }
 
 void fd_ep_dump( int indent, struct fd_list * eps )
--- a/libfdcore/peers.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdcore/peers.c	Wed Mar 06 20:09:54 2013 +0100
@@ -90,7 +90,7 @@
 }
 
 /* Add a new peer entry */
-int fd_peer_add ( struct peer_info * info, char * orig_dbg, void (*cb)(struct peer_info *, void *), void * cb_data )
+int fd_peer_add ( struct peer_info * info, const char * orig_dbg, void (*cb)(struct peer_info *, void *), void * cb_data )
 {
 	struct fd_peer *p = NULL;
 	struct fd_list * li, *li_inf;
--- a/libfdcore/sctp.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdcore/sctp.c	Wed Mar 06 20:09:54 2013 +0100
@@ -908,6 +908,8 @@
 		return ENOTSUP;
 	}
 	if (TRACE_BOOL(SCTP_LEVEL)) {
+		char buf[1024];
+		sSA_DUMP_NODE_SERV(buf, sizeof(buf), &status.sstat_primary.spinfo_address, NI_NUMERICHOST | NI_NUMERICSERV );
 		fd_log_debug( "SCTP_STATUS : sstat_state                  : %i\n" , status.sstat_state);
 		fd_log_debug( "              sstat_rwnd  	          : %u\n" , status.sstat_rwnd);
 		fd_log_debug( "		     sstat_unackdata	          : %hu\n", status.sstat_unackdata);
@@ -915,9 +917,7 @@
 		fd_log_debug( "		     sstat_instrms  	          : %hu\n", status.sstat_instrms);
 		fd_log_debug( "		     sstat_outstrms 	          : %hu\n", status.sstat_outstrms);
 		fd_log_debug( "		     sstat_fragmentation_point    : %u\n" , status.sstat_fragmentation_point);
-		fd_log_debug( "		     sstat_primary.spinfo_address : ");
-		sSA_DUMP_NODE_SERV(&status.sstat_primary.spinfo_address, NI_NUMERICHOST | NI_NUMERICSERV );
-		fd_log_debug( "\n" );
+		fd_log_debug( "		     sstat_primary.spinfo_address : %s\n" , buf);
 		fd_log_debug( "		     sstat_primary.spinfo_state   : %d\n" , status.sstat_primary.spinfo_state);
 		fd_log_debug( "		     sstat_primary.spinfo_cwnd    : %u\n" , status.sstat_primary.spinfo_cwnd);
 		fd_log_debug( "		     sstat_primary.spinfo_srtt    : %u\n" , status.sstat_primary.spinfo_srtt);
--- a/libfdproto/dictionary.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdproto/dictionary.c	Wed Mar 06 20:09:54 2013 +0100
@@ -1277,8 +1277,6 @@
 	else
 		_OBINFO(obj).dump_data(&obj->data);
 	
-	fd_log_debug("\n");
-	
 	if (depth) {
 		int i;
 		for (i=0; i<NB_LISTS_PER_OBJ; i++) {
@@ -1469,7 +1467,6 @@
 	}
 	
 	/* Done! */
-	CHECK_FCT( dump_add_str(outstr, offset, outlen, "\n") );
 	return 0;
 }
 
@@ -1724,6 +1721,7 @@
 		/* We have a duplicate key in locref. Check if the pointed object is the same or not */
 		switch (type) {
 			case DICT_VENDOR:
+				TRACE_DEBUG(FULL, "Vendor %s already in dictionary", new->data.vendor.vendor_name);
 				/* if we are here, it means the two vendors id are identical */
 				if (fd_os_cmp(locref->data.vendor.vendor_name, locref->datastr_len, 
 						new->data.vendor.vendor_name, new->datastr_len)) {
@@ -1735,6 +1733,7 @@
 				break;
 
 			case DICT_APPLICATION:
+				TRACE_DEBUG(FULL, "Application %s already in dictionary", new->data.application.application_name);
 				/* got same id */
 				if (fd_os_cmp(locref->data.application.application_name, locref->datastr_len, 
 						new->data.application.application_name, new->datastr_len)) {
@@ -1745,6 +1744,7 @@
 				break;
 
 			case DICT_TYPE:
+				TRACE_DEBUG(FULL, "Type %s already in dictionary", new->data.type.type_name);
 				/* got same name */
 				if (locref->data.type.type_base != new->data.type.type_base) {
 					TRACE_DEBUG(FULL, "Conflicting base type");
@@ -1767,6 +1767,7 @@
 				break;
 
 			case DICT_ENUMVAL:
+				TRACE_DEBUG(FULL, "Enum %s already in dictionary", new->data.enumval.enum_name);
 				/* got either same name or same value. We check that both are true */
 				if (order_enum_by_name(locref, new)) {
 					TRACE_DEBUG(FULL, "Conflicting enum name");
@@ -1780,6 +1781,7 @@
 				break;
 
 			case DICT_AVP:
+				TRACE_DEBUG(FULL, "AVP %s already in dictionary", new->data.avp.avp_name);
 				/* got either same name or code */
 				if (order_avp_by_code(locref, new)) {
 					TRACE_DEBUG(FULL, "Conflicting AVP code");
@@ -1809,6 +1811,7 @@
 				break;
 
 			case DICT_COMMAND:
+				TRACE_DEBUG(FULL, "Command %s already in dictionary", new->data.cmd.cmd_name);
 				/* We got either same name, or same code + R flag */
 				if (order_cmd_by_name(locref, new)) {
 					TRACE_DEBUG(FULL, "Conflicting command name");
--- a/libfdproto/log.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdproto/log.c	Wed Mar 06 20:09:54 2013 +0100
@@ -43,6 +43,8 @@
 pthread_key_t	fd_log_thname;
 int fd_g_debug_lvl = INFO;
 
+static void fd_internal_logger( int, const char *, va_list );
+
 /* These may be used to pass specific debug requests via the command-line parameters */
 char * fd_debug_one_function = NULL;
 char * fd_debug_one_file = NULL;
@@ -52,28 +54,29 @@
 int fd_breakhere(void) { return ++fd_breaks; }
 
 /* Allow passing of the log and debug information from base stack to extensions */
-void (*fd_external_logger)( const char * format, va_list *args ) = NULL;
+void (*fd_logger)( int loglevel, const char * format, va_list args ) = fd_internal_logger;
 
-/* Register an dexternal call back for tracing and debug */
-int fd_log_handler_register( void (*logger)(const char * format, va_list *args))
+/* Register an external call back for tracing and debug */
+int fd_log_handler_register( void (*logger)(int loglevel, const char * format, va_list args) )
 {
         CHECK_PARAMS( logger );
 
-        if ( fd_external_logger != NULL )
+        if ( fd_logger != fd_internal_logger )
         {
                return EALREADY; /* only one registration allowed */
         }
         else
         {
-               fd_external_logger = logger;
+               fd_logger = logger;
         }
+
         return 0;
 }
 
 /* Implement a simple reset function here */
 int fd_log_handler_unregister ( void )
 {
-        fd_external_logger = NULL;
+        fd_logger = fd_internal_logger;
         return 0; /* Successfull in all cases. */
 }
 
@@ -82,8 +85,25 @@
 	(void)pthread_mutex_unlock((pthread_mutex_t *)mutex);
 }
 
+
+static void fd_internal_logger( int loglevel, const char *format, va_list ap )
+{
+    char buf[25];
+    FILE *fstr = fd_g_debug_fstr ?: stdout;
+
+    /* logging has been decided by macros outside already */
+
+    /* add timestamp */
+    fprintf(fd_g_debug_fstr, "%s\t", fd_log_time(NULL, buf, sizeof(buf)));
+    vfprintf(fd_g_debug_fstr, format, ap);
+    if (format && (format[strlen(format)-1] != '\n')) {
+        fprintf(fd_g_debug_fstr, "\n");
+    }
+    fflush(fd_g_debug_fstr);
+}
+
 /* Log a debug message */
-void fd_log_debug_fstr ( FILE * fstr, const char * format, ... )
+void fd_log ( int loglevel, const char * format, ... )
 {
 	va_list ap;
 	
@@ -92,15 +112,7 @@
 	pthread_cleanup_push(fd_cleanup_mutex_silent, &fd_log_lock);
 	
 	va_start(ap, format);
-        if ( fd_external_logger != NULL )
-        {
-               fd_external_logger( format, &ap );
-        }
-        else
-        {
-               vfprintf( fstr ?: stdout, format, ap);
-               fflush(fstr ?: stdout);
-        }
+	fd_logger(loglevel, format, ap);
 	va_end(ap);
 
 	pthread_cleanup_pop(0);
@@ -108,6 +120,16 @@
 	(void)pthread_mutex_unlock(&fd_log_lock);
 }
 
+/* Log debug message to file. */
+void fd_log_debug_fstr( FILE * fstr, const char * format, ... )
+{
+	va_list ap;
+	
+	va_start(ap, format);
+	vfprintf(fstr, format, ap);
+	va_end(ap);
+}
+
 /* Function to set the thread's friendly name */
 void fd_log_threadname ( const char * name )
 {
--- a/libfdproto/messages.c	Wed Mar 06 16:39:07 2013 +0100
+++ b/libfdproto/messages.c	Wed Mar 06 20:09:54 2013 +0100
@@ -682,27 +682,27 @@
 	size_t tsoffset = 0;
 	struct tm tm;
 	
-	CHECK_FCT( dump_add_str(outstr, offset, outlen, "%*sMSG: %p\n", INOBJHDRVAL, msg) );
+	CHECK_FCT( dump_add_str(outstr, offset, outlen, "%*sMSG: %p|", INOBJHDRVAL, msg) );
 	
 	if (!CHECK_MSG(msg)) {
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "INVALID!\n", INOBJHDRVAL) );
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "INVALID!", INOBJHDRVAL) );
 		return 0;
 	}
 	
 	if ((msg->msg_ts_rcv.tv_sec != 0) || (msg->msg_ts_rcv.tv_nsec != 0)) {
 		tsoffset += strftime(buftime + tsoffset, sizeof(buftime) - tsoffset, "%D,%T", localtime_r( &msg->msg_ts_rcv.tv_sec , &tm ));
 		tsoffset += snprintf(buftime + tsoffset, sizeof(buftime) - tsoffset, ".%6.6ld", msg->msg_ts_rcv.tv_nsec / 1000);
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "Received: %s\n", INOBJHDRVAL, buftime) );
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "Received: %s|", INOBJHDRVAL, buftime) );
 	}
 	if ((msg->msg_ts_sent.tv_sec != 0) || (msg->msg_ts_sent.tv_nsec != 0)) {
 		tsoffset += strftime(buftime + tsoffset, sizeof(buftime) - tsoffset, "%D,%T", localtime_r( &msg->msg_ts_sent.tv_sec , &tm ));
 		tsoffset += snprintf(buftime + tsoffset, sizeof(buftime) - tsoffset, ".%6.6ld", msg->msg_ts_sent.tv_nsec / 1000);
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "Sent    : %s\n", INOBJHDRVAL, buftime) );
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "Sent    : %s|", INOBJHDRVAL, buftime) );
 	}
 	
 	if (!msg->msg_model) {
 		
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(no model)\n", INOBJHDRVAL) );
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(no model)|", INOBJHDRVAL) );
 		
 	} else {
 		
@@ -710,19 +710,19 @@
 		struct dict_cmd_data  dictdata;
 		ret = fd_dict_gettype(msg->msg_model, &dicttype);
 		if (ret || (dicttype != DICT_COMMAND)) {
-			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(invalid model: %d %d)\n", INOBJHDRVAL, ret, dicttype) );
+			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(invalid model: %d %d)|", INOBJHDRVAL, ret, dicttype) );
 			goto public;
 		}
 		ret = fd_dict_getval(msg->msg_model, &dictdata);
 		if (ret != 0) {
-			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(error getting model data: %s)\n", INOBJHDRVAL, strerror(ret)) );
+			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(error getting model data: %s)|", INOBJHDRVAL, strerror(ret)) );
 			goto public;
 		}
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "model : v/m:" DUMP_CMDFL_str "/" DUMP_CMDFL_str ", %u \"%s\"\n", INOBJHDRVAL, 
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "model : v/m:" DUMP_CMDFL_str "/" DUMP_CMDFL_str ", %u \"%s\"|", INOBJHDRVAL, 
 			DUMP_CMDFL_val(dictdata.cmd_flag_val), DUMP_CMDFL_val(dictdata.cmd_flag_mask), dictdata.cmd_code, dictdata.cmd_name) );
 	}
 public:	
-	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "public: V:%d L:%d fl:" DUMP_CMDFL_str " CC:%u A:%d hi:%x ei:%x\n", INOBJHDRVAL, 
+	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "public: V:%d L:%d fl:" DUMP_CMDFL_str " CC:%u A:%d hi:%x ei:%x|", INOBJHDRVAL, 
 		msg->msg_public.msg_version,
 		msg->msg_public.msg_length,
 		DUMP_CMDFL_val(msg->msg_public.msg_flags),
@@ -731,7 +731,7 @@
 		msg->msg_public.msg_hbhid,
 		msg->msg_public.msg_eteid
 		) );
-	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "intern: rwb:%p rt:%d cb:%p(%p) qry:%p asso:%d sess:%p src:%s(%zd)\n", 
+	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "intern: rwb:%p rt:%d cb:%p(%p) qry:%p asso:%d sess:%p src:%s(%zd)|", 
 			INOBJHDRVAL, msg->msg_rawbuffer, msg->msg_routable, msg->msg_cb.fct, msg->msg_cb.data, msg->msg_query, msg->msg_associated, msg->msg_sess, msg->msg_src_id?:"(nil)", msg->msg_src_id_len) );
 	return 0;
 }
@@ -742,13 +742,13 @@
 	int ret = 0;
 	
 	if (!CHECK_AVP(avp)) {
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "INVALID!\n", INOBJHDRVAL) );
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "INVALID!", INOBJHDRVAL) );
 		return 0;
 	}
 	
 	if (!avp->avp_model) {
 		
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(no model resolved)\n", INOBJHDRVAL) );
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(no model resolved)|", INOBJHDRVAL) );
 		
 	} else {
 		
@@ -756,15 +756,15 @@
 		struct dict_avp_data dictdata;
 		ret = fd_dict_gettype(avp->avp_model, &dicttype);
 		if (ret || (dicttype != DICT_AVP)) {
-			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(invalid model: %d %d)\n", INOBJHDRVAL, ret, dicttype) );
+			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(invalid model: %d %d)|", INOBJHDRVAL, ret, dicttype) );
 			goto public;
 		}
 		ret = fd_dict_getval(avp->avp_model, &dictdata);
 		if (ret != 0) {
-			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(error getting model data: %s)\n", INOBJHDRVAL, strerror(ret)) );
+			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(error getting model data: %s)|", INOBJHDRVAL, strerror(ret)) );
 			goto public;
 		}
-		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "model : v/m:" DUMP_AVPFL_str "/" DUMP_AVPFL_str ", %12s, %u \"%s\"\n", INOBJHDRVAL, 
+		CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "model : v/m:" DUMP_AVPFL_str "/" DUMP_AVPFL_str ", %12s, %u \"%s\"|", INOBJHDRVAL, 
 			DUMP_AVPFL_val(dictdata.avp_flag_val), 
 			DUMP_AVPFL_val(dictdata.avp_flag_mask), 
 			type_base_name[dictdata.avp_basetype], 
@@ -772,7 +772,7 @@
 			dictdata.avp_name ) );
 	}
 public:	
-	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "public: C:%u fl:" DUMP_AVPFL_str " L:%d V:%u  data:@%p\n", INOBJHDRVAL, 
+	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "public: C:%u fl:" DUMP_AVPFL_str " L:%d V:%u  data:@%p|", INOBJHDRVAL, 
 		avp->avp_public.avp_code,
 		DUMP_AVPFL_val(avp->avp_public.avp_flags),
 		avp->avp_public.avp_len,
@@ -782,13 +782,13 @@
 	/* Dump the value if set */
 	if (avp->avp_public.avp_value) {
 		if (!avp->avp_model) {
-			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(data set but no model: ERROR)\n", INOBJHDRVAL) );
+			CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "(data set but no model: ERROR)|", INOBJHDRVAL) );
 		} else {
 			CHECK_FCT( fd_dict_dump_avp_value(avp->avp_public.avp_value, avp->avp_model, indent, outstr, offset, outlen) );
 		}
 	}
 
-	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "intern: src:%p mf:%d raw:%p(%d)\n", INOBJHDRVAL, avp->avp_source, avp->avp_mustfreeos, avp->avp_rawdata, avp->avp_rawlen) );
+	CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "intern: src:%p mf:%d raw:%p(%d)|", INOBJHDRVAL, avp->avp_source, avp->avp_mustfreeos, avp->avp_rawdata, avp->avp_rawlen) );
 	return 0;
 }
 
@@ -879,7 +879,7 @@
 	
 	/* now really output this in one shot, so it is not interrupted */
 	TRACE_DEBUG(level, "------ Dumping object %p (w)-------", obj);
-	fd_log_debug_fstr(fd_g_debug_fstr, "%s", outstr);
+	TRACE_DEBUG(level, "%s", outstr);
 	TRACE_DEBUG(level, "------ /end of object %p -------", obj);
 	
 	free(outstr);
@@ -895,7 +895,7 @@
 	CHECK_FCT_DO(  msg_dump_intern ( level, obj, 1, &outstr, &offset, &outlen ),
 			fd_log_debug_fstr(fd_g_debug_fstr, "Error while dumping %p\n", obj) );
 	TRACE_DEBUG(level, "------ Dumping object %p (s)-------", obj);
-	fd_log_debug_fstr(fd_g_debug_fstr, "%s", outstr);
+	TRACE_DEBUG(level, "%s", outstr);
 	TRACE_DEBUG(level, "------ /end of object %p -------", obj);
 	free(outstr);
 }
--- a/tests/CMakeLists.txt	Wed Mar 06 16:39:07 2013 +0100
+++ b/tests/CMakeLists.txt	Wed Mar 06 20:09:54 2013 +0100
@@ -35,7 +35,6 @@
 # Some parameters for the tests
 
 ADD_DEFINITIONS(-DTEST_DEBUG)
-ADD_DEFINITIONS(-DTRACE_LEVEL=NONE)
 ADD_DEFINITIONS(-DBUILD_DIR="${CMAKE_BINARY_DIR}")
 
 INCLUDE_DIRECTORIES( "../libfdproto" )
--- a/tests/tests.h	Wed Mar 06 16:39:07 2013 +0100
+++ b/tests/tests.h	Wed Mar 06 20:09:54 2013 +0100
@@ -46,7 +46,9 @@
 
 #include <pthread.h>
 #include <errno.h>
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #include <gcrypt.h>
+#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 
 /* Test timeout duration, unless -n is passed on the command line */
 #ifndef TEST_TIMEOUT
"Welcome to our mercurial repository"