move fd/extensions to freeDiameter-1.2.1/extensions

This commit is contained in:
Sukchan Lee 2017-11-06 10:14:14 +00:00
parent 4ef15728a0
commit 8b916d15f4
32 changed files with 861 additions and 23943 deletions

View File

@ -416,15 +416,6 @@ AC_CONFIG_FILES([lib/base/Makefile])
AC_CONFIG_FILES([lib/s1ap/asn1c/Makefile])
AC_CONFIG_FILES([lib/s1ap/Makefile])
AC_CONFIG_FILES([lib/nas/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dbg_msg_dumps/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_rfc5777/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_mip6i/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_nasreq/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_nas_mipv6/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_dcca/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_dcca_3gpp/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/dict_s6a/Makefile])
AC_CONFIG_FILES([lib/fd/extensions/Makefile])
AC_CONFIG_FILES([lib/fd/Makefile])
AC_CONFIG_FILES([lib/gtp/Makefile])
AC_CONFIG_FILES([lib/ipfw/Makefile])

View File

@ -2,8 +2,6 @@
AUTOMAKE_OPTIONS = subdir-objects
SUBDIRS = extensions
pkglib_LTLIBRARIES = libfd.la
libfd_la_SOURCES = \

View File

@ -1,395 +0,0 @@
/*********************************************************************************************************
* Software License Agreement (BSD License) *
* Author: Sebastien Decugis <sdecugis@freediameter.net> *
* *
* Copyright (c) 2013, WIDE Project and NICT *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
* permitted provided that the following conditions are met: *
* *
* * Redistributions of source code must retain the above *
* copyright notice, this list of conditions and the *
* following disclaimer. *
* *
* * Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the *
* following disclaimer in the documentation and/or other *
* materials provided with the distribution. *
* *
* * Neither the name of the WIDE Project or NICT nor the *
* names of its contributors may be used to endorse or *
* promote products derived from this software without *
* specific prior written permission of WIDE Project and *
* NICT. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
*********************************************************************************************************/
/* This extension uses the hooks mechanism to display the full content of received and sent messages, for
learning & debugging purpose.
Do NOT use this extension in production environment because it will slow down all operation. */
/* You can add a configuration parameter on the LoadExtension line, e.g.
LoadExtension="dbg_msg_dump.fdx":"0x149";
The value is an hexadecimal value with the following bits meaning: */
#define HK_ERRORS_QUIET 0x0001 /* errors are not dumped -- removes the default handling as well */
#define HK_ERRORS_COMPACT 0x0002 /* errors in compact mode */
#define HK_ERRORS_FULL 0x0004 /* errors in full mode (1 line with all the data) */
#define HK_ERRORS_TREE 0x0008 /* errors in treeview mode (message split over multiple lines) */
#define HK_SNDRCV_QUIET 0x0010 /* send+rcv are not dumped -- removes the default handling as well */
#define HK_SNDRCV_COMPACT 0x0020 /* send+rcv in compact mode */
#define HK_SNDRCV_FULL 0x0040 /* send+rcv in full mode */
#define HK_SNDRCV_TREE 0x0080 /* send+rcv in tree mode */
#define HK_ROUTING_QUIET 0x0100 /* routing decisions are not dumped -- removes the default handling as well */
#define HK_ROUTING_COMPACT 0x0200 /* routing decisions in compact mode */
#define HK_ROUTING_FULL 0x0400 /* routing decisions in full mode */
#define HK_ROUTING_TREE 0x0800 /* routing decisions in tree mode */
#define HK_PEERS_QUIET 0x1000 /* peers connections events are not dumped -- removes the default handling as well */
#define HK_PEERS_COMPACT 0x2000 /* peers connections events in compact mode */
#define HK_PEERS_FULL 0x4000 /* peers connections events in full mode */
#define HK_PEERS_TREE 0x8000 /* peers connections events in tree mode */
/*
Default value is HK_ERRORS_TREE + HK_SNDRCV_TREE + HK_PEERS_TREE
*/
#include <freeDiameter/extension.h>
static struct fd_hook_hdl *md_hdl[4] = {NULL,NULL,NULL,NULL};
static uint32_t dump_level = HK_ERRORS_TREE | HK_SNDRCV_TREE | HK_PEERS_TREE; /* default */
static char * buf = NULL;
static size_t len;
static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
/* The callback called when messages are received and sent */
static void md_hook_cb_tree(enum fd_hook_type type, struct msg * msg, struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd, void * regdata)
{
char * peer_name = peer ? peer->info.pi_diamid : "<unknown peer>";
CHECK_POSIX_DO( pthread_mutex_lock(&mtx), );
if (msg) {
CHECK_MALLOC_DO( fd_msg_dump_treeview(&buf, &len, NULL, msg, fd_g_config->cnf_dict, (type == HOOK_MESSAGE_PARSING_ERROR) ? 0 : 1, 1),
{ LOG_E("Error while dumping a message"); pthread_mutex_unlock(&mtx); return; } );
}
switch (type) {
/* errors */
case HOOK_MESSAGE_FAILOVER:
LOG_E("FAILOVER from '%s':", peer_name);
LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL);
break;
case HOOK_MESSAGE_PARSING_ERROR:
if (msg) {
DiamId_t id = NULL;
if (!fd_msg_source_get( msg, &id, NULL ))
id = (DiamId_t)"<error getting source>";
if (!id)
id = (DiamId_t)"<local>";
LOG_E("PARSING ERROR: '%s' from '%s': ", (char *)other, (char *)id);
LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL);
} else {
struct fd_cnx_rcvdata *rcv_data = other;
CHECK_MALLOC_DO(fd_dump_extend_hexdump(&buf, &len, NULL, rcv_data->buffer, rcv_data->length, 0, 0), break);
LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf);
}
break;
case HOOK_MESSAGE_ROUTING_ERROR:
LOG_E("ROUTING ERROR '%s' for: ", (char *)other);
LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL);
break;
case HOOK_MESSAGE_DROPPED:
LOG_E("DROPPED '%s'", (char *)other);
LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL);
break;
/* send receive */
case HOOK_MESSAGE_RECEIVED:
LOG_N("RCV from '%s':", peer_name);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
case HOOK_MESSAGE_SENT:
LOG_N("SND to '%s':", peer_name);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
/* routing */
case HOOK_MESSAGE_LOCAL:
LOG_N("ISSUED:");
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
case HOOK_MESSAGE_ROUTING_FORWARD:
LOG_N("FORWARDING: %s", buf);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
case HOOK_MESSAGE_ROUTING_LOCAL:
LOG_N("DISPATCHING: %s", buf);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
/* peers */
case HOOK_PEER_CONNECT_FAILED:
LOG_N("CONNECT FAILED to %s: %s", peer_name, (char *)other);
break;
case HOOK_PEER_CONNECT_SUCCESS:
{
char protobuf[40];
if (peer) {
CHECK_FCT_DO(fd_peer_cnx_proto_info(peer, protobuf, sizeof(protobuf)), break );
} else {
protobuf[0] = '-';
protobuf[1] = '\0';
}
LOG_N("CONNECTED TO '%s' (%s):", peer_name, protobuf);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
}
break;
/* Not handled */
default:
break;
}
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
}
static void md_hook_cb_full(enum fd_hook_type type, struct msg * msg, struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd, void * regdata)
{
char * peer_name = peer ? peer->info.pi_diamid : "<unknown peer>";
CHECK_POSIX_DO( pthread_mutex_lock(&mtx), );
if (msg) {
CHECK_MALLOC_DO( fd_msg_dump_full(&buf, &len, NULL, msg, fd_g_config->cnf_dict, (type == HOOK_MESSAGE_PARSING_ERROR) ? 0 : 1, 1),
{ LOG_E("Error while dumping a message"); pthread_mutex_unlock(&mtx); return; } );
}
switch (type) {
/* errors */
case HOOK_MESSAGE_FAILOVER:
LOG_E("FAILOVER from '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_PARSING_ERROR:
if (msg) {
DiamId_t id = NULL;
if (!fd_msg_source_get( msg, &id, NULL ))
id = (DiamId_t)"<error getting source>";
if (!id)
id = (DiamId_t)"<local>";
LOG_E("PARSING ERROR: '%s' from '%s': %s", (char *)other, (char *)id, buf);
} else {
struct fd_cnx_rcvdata *rcv_data = other;
CHECK_MALLOC_DO(fd_dump_extend_hexdump(&buf, &len, NULL, rcv_data->buffer, rcv_data->length, 0, 0), break);
LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf);
}
break;
case HOOK_MESSAGE_ROUTING_ERROR:
LOG_E("ROUTING ERROR '%s' for: %s", (char *)other, buf);
break;
case HOOK_MESSAGE_DROPPED:
LOG_E("DROPPED '%s' %s", (char *)other, buf);
break;
/* send receive */
case HOOK_MESSAGE_RECEIVED:
LOG_N("RCV from '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_SENT:
LOG_N("SND to '%s': %s", peer_name, buf);
break;
/* routing */
case HOOK_MESSAGE_LOCAL:
LOG_N("ISSUED: %s", buf);
break;
case HOOK_MESSAGE_ROUTING_FORWARD:
LOG_N("FORWARDING: %s", buf);
break;
case HOOK_MESSAGE_ROUTING_LOCAL:
LOG_N("DISPATCHING: %s", buf);
break;
/* peers */
case HOOK_PEER_CONNECT_FAILED:
LOG_N("CONNECT FAILED to %s: %s", peer_name, (char *)other);
break;
case HOOK_PEER_CONNECT_SUCCESS: {
char protobuf[40];
if (peer) {
CHECK_FCT_DO(fd_peer_cnx_proto_info(peer, protobuf, sizeof(protobuf)), break );
} else {
protobuf[0] = '-';
protobuf[1] = '\0';
}
LOG_N("CONNECTED TO '%s' (%s): %s", peer_name, protobuf, buf);
}
break;
/* Not handled */
default:
break;
}
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
}
static void md_hook_cb_compact(enum fd_hook_type type, struct msg * msg, struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd, void * regdata)
{
char * peer_name = peer ? peer->info.pi_diamid : "<unknown peer>";
CHECK_POSIX_DO( pthread_mutex_lock(&mtx), );
if (msg) {
CHECK_MALLOC_DO( fd_msg_dump_summary(&buf, &len, NULL, msg, fd_g_config->cnf_dict, 0, 0),
{ LOG_E("Error while dumping a message"); pthread_mutex_unlock(&mtx); return; } );
}
switch (type) {
/* errors */
case HOOK_MESSAGE_FAILOVER:
LOG_E("FAILOVER from '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_PARSING_ERROR:
if (msg) {
DiamId_t id = NULL;
if (!fd_msg_source_get( msg, &id, NULL ))
id = (DiamId_t)"<error getting source>";
if (!id)
id = (DiamId_t)"<local>";
LOG_E("PARSING ERROR: '%s' from '%s': %s", (char *)other, (char *)id, buf);
} else {
struct fd_cnx_rcvdata *rcv_data = other;
CHECK_MALLOC_DO(fd_dump_extend_hexdump(&buf, &len, NULL, rcv_data->buffer, rcv_data->length, 0, 0), break);
LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf);
}
break;
case HOOK_MESSAGE_ROUTING_ERROR:
LOG_E("ROUTING ERROR '%s' for: %s", (char *)other, buf);
break;
case HOOK_MESSAGE_DROPPED:
LOG_E("DROPPED '%s' %s", (char *)other, buf);
break;
/* send receive */
case HOOK_MESSAGE_RECEIVED:
LOG_N("RCV from '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_SENT:
LOG_N("SND to '%s': %s", peer_name, buf);
break;
/* routing */
case HOOK_MESSAGE_LOCAL:
LOG_N("ISSUED: %s", buf);
break;
case HOOK_MESSAGE_ROUTING_FORWARD:
LOG_N("FORWARDING: %s", buf);
break;
case HOOK_MESSAGE_ROUTING_LOCAL:
LOG_N("DISPATCHING: %s", buf);
break;
/* peers */
case HOOK_PEER_CONNECT_FAILED:
LOG_N("CONNECT FAILED to %s: %s", peer_name, (char *)other);
break;
case HOOK_PEER_CONNECT_SUCCESS: {
char protobuf[40];
if (peer) {
CHECK_FCT_DO(fd_peer_cnx_proto_info(peer, protobuf, sizeof(protobuf)), break );
} else {
protobuf[0] = '-';
protobuf[1] = '\0';
}
LOG_N("CONNECTED TO '%s' (%s)", peer_name, protobuf);
}
break;
/* Not handled */
default:
break;
}
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
}
static void md_hook_cb_quiet(enum fd_hook_type type, struct msg * msg, struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd, void * regdata)
{
}
/* Entry point */
static int md_main(char * conffile)
{
uint32_t mask_errors, mask_sndrcv, mask_routing, mask_peers;
uint32_t mask_quiet, mask_compact, mask_full, mask_tree;
TRACE_ENTRY("%p", conffile);
if (conffile != NULL) {
char * endp;
dump_level = (uint32_t)strtoul(conffile, &endp, 16);
CHECK_PARAMS_DO( *endp == '\0', {
LOG_E("Configuration parameter must be in the form \"0xNNNN\"");
return EINVAL; });
}
mask_errors = HOOK_MASK( HOOK_MESSAGE_FAILOVER, HOOK_MESSAGE_PARSING_ERROR, HOOK_MESSAGE_ROUTING_ERROR, HOOK_MESSAGE_DROPPED );
mask_sndrcv = HOOK_MASK( HOOK_MESSAGE_RECEIVED, HOOK_MESSAGE_SENT );
mask_routing= HOOK_MASK( HOOK_MESSAGE_LOCAL, HOOK_MESSAGE_ROUTING_FORWARD, HOOK_MESSAGE_ROUTING_LOCAL );
mask_peers = HOOK_MASK( HOOK_PEER_CONNECT_FAILED, HOOK_PEER_CONNECT_SUCCESS );
mask_quiet = (dump_level & HK_ERRORS_QUIET) ? mask_errors : 0;
mask_quiet |= (dump_level & HK_SNDRCV_QUIET) ? mask_sndrcv : 0;
mask_quiet |= (dump_level & HK_ROUTING_QUIET) ? mask_routing : 0;
mask_quiet |= (dump_level & HK_PEERS_QUIET) ? mask_peers : 0;
mask_compact = (dump_level & HK_ERRORS_COMPACT) ? mask_errors : 0;
mask_compact |= (dump_level & HK_SNDRCV_COMPACT) ? mask_sndrcv : 0;
mask_compact |= (dump_level & HK_ROUTING_COMPACT) ? mask_routing : 0;
mask_compact |= (dump_level & HK_PEERS_COMPACT) ? mask_peers : 0;
mask_full = (dump_level & HK_ERRORS_FULL) ? mask_errors : 0;
mask_full |= (dump_level & HK_SNDRCV_FULL) ? mask_sndrcv : 0;
mask_full |= (dump_level & HK_ROUTING_FULL) ? mask_routing : 0;
mask_full |= (dump_level & HK_PEERS_FULL) ? mask_peers : 0;
mask_tree = (dump_level & HK_ERRORS_TREE) ? mask_errors : 0;
mask_tree |= (dump_level & HK_SNDRCV_TREE) ? mask_sndrcv : 0;
mask_tree |= (dump_level & HK_ROUTING_TREE) ? mask_routing : 0;
mask_tree |= (dump_level & HK_PEERS_TREE) ? mask_peers : 0;
if (mask_quiet) {
CHECK_FCT( fd_hook_register( mask_quiet, md_hook_cb_quiet, NULL, NULL, &md_hdl[0]) );
}
if (mask_compact) {
CHECK_FCT( fd_hook_register( mask_compact, md_hook_cb_compact, NULL, NULL, &md_hdl[1]) );
}
if (mask_full) {
CHECK_FCT( fd_hook_register( mask_full, md_hook_cb_full, NULL, NULL, &md_hdl[2]) );
}
if (mask_tree) {
CHECK_FCT( fd_hook_register( mask_tree, md_hook_cb_tree, NULL, NULL, &md_hdl[3]) );
}
return 0;
}
/* Cleanup */
void fd_ext_fini(void)
{
TRACE_ENTRY();
if (md_hdl[0]) { CHECK_FCT_DO( fd_hook_unregister( md_hdl[0] ), ); }
if (md_hdl[1]) { CHECK_FCT_DO( fd_hook_unregister( md_hdl[1] ), ); }
if (md_hdl[2]) { CHECK_FCT_DO( fd_hook_unregister( md_hdl[2] ), ); }
if (md_hdl[2]) { CHECK_FCT_DO( fd_hook_unregister( md_hdl[3] ), ); }
return ;
}
EXTENSION_ENTRY("dbg_msg_dumps", md_main);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,789 +0,0 @@
| 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.140-700 (7.0.0 2007.07.05) | | | | | | | | |
| Served-User-Identity | 1100 | 6.3.1 | Grouped | M,V | | | | N |
| # reuses: MSISDN | 701 | 6.3.2 | OctetString | M,V | | | | N |
| VASP-ID | 1101 | 6.3.3 | UTF8String | M,V | | | | N |
| VAS-ID | 1102 | 6.3.4 | UTF8String | M,V | | | | N |
| Trigger-Event | 1103 | 6.3.5 | Enumerated | M,V | | | | N |
| # reuses: 3GPP-IMSI | 1 | 6.3.6 | UTF8String | M,V | | | | N |
| Sender-Address | 1104 | 6.3.7 | UTF8String | M,V | | | | N |
| Initial-Recipient-Address | 1105 | 6.3.8 | Grouped | M,V | | | | N |
| Result-Recipient-Address | 1106 | 6.3.9 | Grouped | M,V | | | | N |
| # conflicts with one in (more common) 32.329 | | | | | | | | |
| Sequence-Number-29.140 | 1107 | 6.3.10 | Unsigned32 | M,V | | | | N |
| # conflicts with one in (more common) 32.299 | | | | | | | | |
| Recipient-Address-29.140 | 1108 | 6.3.11 | UTF8String | M,V | | | | N |
| Routeing-Address | 1109 | 6.3.12 | UTF8String | M,V | | | | N |
| Originating-Interface | 1110 | 6.3.13 | Enumerated | M,V | | | | N |
| Delivery-Report | 1111 | 6.3.14 | Enumerated | M,V | | | | N |
| Read-Reply | 1112 | 6.3.15 | Enumerated | M,V | | | | N |
| Sender-Visibility | 1113 | 6.3.16 | Enumerated | M,V | | | | N |
| Service-Key | 1114 | 6.3.17 | UTF8String | M,V | | | | N |
| Billing-Information | 1115 | 6.3.18 | UTF8String | M,V | | | | N |
| # conflicts with one in (more common) 32.299 | | | | | | | | |
| Status-29.140 | 1116 | 6.3.19 | Grouped | M,V | | | | N |
| Status-Code | 1117 | 6.3.20 | UTF8String | M,V | | | | N |
| Status-Text | 1118 | 6.3.21 | UTF8String | M,V | | | | N |
| Routeing-Address-Resolution | 1119 | 6.3.22 | Enumerated | M,V | | | | N |
| # 3GPP 29.173-c00 (12.0.0 2013.03.13) | | | | | | | | |
| LMSI | 2400 | 6.4.2 | OctetString | M,V | | | | N |
| Serving-Node | 2401 | 6.4.3 | Grouped | M,V | | | | N |
| MME-Name | 2402 | 6.4.4 | DiameterIdentity | M,V | | | | N |
| MSC-Number | 2403 | 6.4.5 | OctetString | M,V | | | | N |
| LCS-Capabilities-Sets | 2404 | 6.4.6 | Unsigned32 | M,V | | | | N |
| GMLC-Address | 2405 | 6.4.7 | Address | M,V | | | | N |
| Additional-Serving-Node | 2406 | 6.4.8 | Grouped | M,V | | | | N |
| PPR-Address | 2407 | 6.4.9 | Address | M,V | | | | N |
| MME-Realm | 2408 | 6.4.12 | DiameterIdentity | V | | | M | N |
| SGSN-Name | 2409 | 6.4.13 | DiameterIdentity | V | | | M | N |
| SGSN-Realm | 2410 | 6.4.14 | DiameterIdentity | V | | | M | N |
| # 3GPP 29.210-670 (6.7.0 2006-12-18) | | | | | | | | |
| PDP-Session-Operation | 1015 | 5.2.21 | Enumerated | M,V | P | | | Y |
| # 3GPP 29.212-c00 (12.0.0 2013.03.15) | | | | | | | | |
| # Gx-specific | | | | | | | | |
| 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-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 |
| # Gxx-specific | | | | | | | | |
| 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 |
| # S15-specific | | | | | | | | |
| 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.214-b80 (11.8.0 2013.03.15) | | | | | | | | |
| Abort-Cause | 500 | 5.3.1 | Enumerated | M,V | P | | | Y |
| Access-Network-Charging-Address | 501 | 5.3.2 | Address | M,V | P | | | Y |
| Access-Network-Charging-Identifier | 502 | 5.3.3 | Grouped | M,V | P | | | Y |
| Access-Network-Charging-Identifier-Value | 503 | 5.3.4 | OctetString | M,V | P | | | Y |
| Acceptable-Service-Info | 526 | 5.3.24 | Grouped | M,V | P | | | Y |
| AF-Application-Identifier | 504 | 5.3.5 | OctetString | M,V | P | | | Y |
| AF-Charging-Identifier | 505 | 5.3.6 | OctetString | M,V | P | | | Y |
| Application-Service-Provider-Identity | 532 | 5.3.29 | UTF8String | V | P | | M | Y |
| Codec-Data | 524 | 5.3.7 | OctetString | M,V | P | | | Y |
| Flow-Description | 507 | 5.3.8 | IPFilterRule | M,V | P | | | Y |
| Flow-Number | 509 | 5.3.9 | Unsigned32 | M,V | P | | | Y |
| Flows | 510 | 5.3.10 | Grouped | M,V | P | | | Y |
| Flow-Status | 511 | 5.3.11 | Enumerated | M,V | P | | | Y |
| Flow-Usage | 512 | 5.3.12 | Enumerated | M,V | P | | | Y |
| Service-URN | 525 | 5.3.23 | OctetString | M,V | P | | | Y |
| Specific-Action | 513 | 5.3.13 | Enumerated | M,V | P | | | Y |
| Max-Requested-Bandwidth-DL | 515 | 5.3.14 | Unsigned32 | M,V | P | | | Y |
| Max-Requested-Bandwidth-UL | 516 | 5.3.15 | Unsigned32 | M,V | P | | | Y |
| Media-Component-Description | 517 | 5.3.16 | Grouped | M,V | P | | | Y |
| Media-Component-Number | 518 | 5.3.17 | Unsigned32 | M,V | P | | | Y |
| Media-Sub-Component | 519 | 5.3.18 | Grouped | M,V | P | | | Y |
| Media-Type | 520 | 5.3.19 | Enumerated | M,V | P | | | Y |
| MPS-Identifier | 528 | 5.3.30 | OctetString | V | P | | M | Y |
| Min-Requested-Bandwidth-DL | 534 | 5.3.32 | Unsigned32 | V | P | | M | Y |
| Min-Requested-Bandwidth-UL | 535 | 5.3.33 | Unsigned32 | V | P | | M | Y |
| RR-Bandwidth | 521 | 5.3.20 | Unsigned32 | M,V | P | | | Y |
| RS-Bandwidth | 522 | 5.3.21 | Unsigned32 | M,V | P | | | Y |
| Service-Info-Status | 527 | 5.3.25 | Enumerated | M,V | P | | | Y |
| SIP-Forking-Indication | 523 | 5.3.22 | Enumerated | M,V | P | | | Y |
| Sponsor-Identity | 531 | 5.3.28 | UTF8String | V | P | | M | Y |
| Sponsored-Connectivity-Data | 530 | 5.3.27 | Grouped | V | P | | M | Y |
| AF-Signalling-Protocol | 529 | 5.3.26 | Enumerated | V | P | | M | Y |
| Required-Access-Info | 536 | 5.3.34 | Enumerated | V | P | | M | Y |
| Rx-Request-Type | 533 | 5.3.31 | Enumerated | V | P | | M | Y |
| IP-Domain-Id | 537 | 5.3.35 | OctetString | V | P | | M | 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.272-c00 (12.0.0 2013.03.13) | | | | | | | | |
| Subscription-Data | 1400 | 7.3.2 | Grouped | M,V | | | | N |
| Terminal-Information | 1401 | 7.3.3 | Grouped | M,V | | | | N |
| IMEI | 1402 | 7.3.4 | UTF8String | M,V | | | | N |
| Software-Version | 1403 | 7.3.5 | UTF8String | M,V | | | | N |
| QoS-Subscribed | 1404 | 7.3.77 | OctetString | M,V | | | | N |
| ULR-Flags | 1405 | 7.3.7 | Unsigned32 | M,V | | | | N |
| ULA-Flags | 1406 | 7.3.8 | Unsigned32 | M,V | | | | N |
| Visited-PLMN-Id | 1407 | 7.3.9 | OctetString | M,V | | | | N |
| Requested-EUTRAN-Authentication-Info | 1408 | 7.3.11 | Grouped | M,V | | | | N |
| Requested-UTRAN- GERAN-Authentication-Info | 1409 | 7.3.12 | Grouped | M,V | | | | N |
| Number-Of-Requested-Vectors | 1410 | 7.3.14 | Unsigned32 | M,V | | | | N |
| Re-Synchronization-Info | 1411 | 7.3.15 | OctetString | M,V | | | | N |
| Immediate-Response-Preferred | 1412 | 7.3.16 | Unsigned32 | M,V | | | | N |
| Authentication-Info | 1413 | 7.3.17 | Grouped | M,V | | | | N |
| E-UTRAN-Vector | 1414 | 7.3.18 | Grouped | M,V | | | | N |
| UTRAN-Vector | 1415 | 7.3.19 | Grouped | M,V | | | | N |
| GERAN-Vector | 1416 | 7.3.20 | Grouped | M,V | | | | N |
| Network-Access-Mode | 1417 | 7.3.21 | Enumerated | M,V | | | | N |
| HPLMN-ODB | 1418 | 7.3.22 | Unsigned32 | M,V | | | | N |
| Item-Number | 1419 | 7.3.23 | Unsigned32 | M,V | | | | N |
| Cancellation-Type | 1420 | 7.3.24 | Enumerated | M,V | | | | N |
| DSR-Flags | 1421 | 7.3.25 | Unsigned32 | M,V | | | | N |
| DSA-Flags | 1422 | 7.3.26 | Unsigned32 | M,V | | | | N |
| Context-Identifier | 1423 | 7.3.27 | Unsigned32 | M,V | | | | N |
| Subscriber-Status | 1424 | 7.3.29 | Enumerated | M,V | | | | N |
| Operator-Determined-Barring | 1425 | 7.3.30 | Unsigned32 | M,V | | | | N |
| Access-Restriction-Data | 1426 | 7.3.31 | Unsigned32 | M,V | | | | N |
| APN-OI-Replacement | 1427 | 7.3.32 | UTF8String | M,V | | | | N |
| All-APN-Configurations-Included-Indicator | 1428 | 7.3.33 | Enumerated | M,V | | | | N |
| APN-Configuration-Profile | 1429 | 7.3.34 | Grouped | M,V | | | | N |
| APN-Configuration | 1430 | 7.3.35 | Grouped | M,V | | | | N |
| EPS-Subscribed-QoS-Profile | 1431 | 7.3.37 | Grouped | M,V | | | | N |
| VPLMN-Dynamic-Address-Allowed | 1432 | 7.3.38 | Enumerated | M,V | | | | N |
| STN-SR | 1433 | 7.3.39 | OctetString | M,V | | | | N |
| Alert-Reason | 1434 | 7.3.83 | Enumerated | M,V | | | | N |
| AMBR | 1435 | 7.3.41 | Grouped | M,V | | | | N |
| CSG-Subscription-Data | 1436 | 7.3.78 | Grouped | M. V | | | | N |
| CSG-Id | 1437 | 7.3.79 | Unsigned32 | M,V | | | | N |
| PDN-GW-Allocation-Type | 1438 | 7.3.44 | Enumerated | M,V | | | | N |
| Expiration-Date | 1439 | 7.3.80 | Time | M,V | | | | N |
| RAT-Frequency-Selection-Priority-ID | 1440 | 7.3.46 | Unsigned32 | M,V | | | | N |
| IDA-Flags | 1441 | 7.3.47 | Unsigned32 | M,V | | | | N |
| PUA-Flags | 1442 | 7.3.48 | Unsigned32 | M,V | | | | N |
| NOR-Flags | 1443 | 7.3.49 | Unsigned32 | M,V | | | | N |
| User-Id | 1444 | 7.3.50 | UTF8String | V | | | M | N |
| Equipment-Status | 1445 | 7.3.51 | Enumerated | M,V | | | | N |
| Regional-Subscription-Zone-Code | 1446 | 7.3.52 | OctetString | M,V | | | | N |
| RAND | 1447 | 7.3.53 | OctetString | M,V | | | | N |
| XRES | 1448 | 7.3.54 | OctetString | M,V | | | | N |
| AUTN | 1449 | 7.3.55 | OctetString | M,V | | | | N |
| KASME | 1450 | 7.3.56 | OctetString | M,V | | | | N |
| Trace-Collection-Entity | 1452 | 7.3.98 | Address | M,V | | | | N |
| Kc | 1453 | 7.3.59 | OctetString | M,V | | | | N |
| SRES | 1454 | 7.3.60 | OctetString | M,V | | | | N |
| PDN-Type | 1456 | 7.3.62 | Enumerated | M,V | | | | N |
| Roaming-Restricted-Due-To-Unsupported-Feature | 1457 | 7.3.81 | Enumerated | M,V | | | | N |
| Trace-Data | 1458 | 7.3.63 | Grouped | M,V | | | | N |
| Trace-Reference | 1459 | 7.3.64 | OctetString | M,V | | | | N |
| Trace-Depth | 1462 | 7.3.67 | Enumerated | M,V | | | | N |
| Trace-NE-Type-List | 1463 | 7.3.68 | OctetString | M,V | | | | N |
| Trace-Interface-List | 1464 | 7.3.69 | OctetString | M,V | | | | N |
| Trace-Event-List | 1465 | 7.3.70 | OctetString | M,V | | | | N |
| OMC-Id | 1466 | 7.3.71 | OctetString | M,V | | | | N |
| GPRS-Subscription-Data | 1467 | 7.3.72 | Grouped | M,V | | | | N |
| Complete-Data-List-Included-Indicator | 1468 | 7.3.73 | Enumerated | M,V | | | | N |
| PDP-Context | 1469 | 7.3.74 | Grouped | M,V | | | | N |
| PDP-Type | 1470 | 7.3.75 | OctetString | M,V | | | | N |
| 3GPP2-MEID | 1471 | 7.3.6 | OctetString | M,V | | | | N |
| Specific-APN-Info | 1472 | 7.3.82 | Grouped | M,V | | | | N |
| LCS-Info | 1473 | 7.3.84 | Grouped | M,V | | | | N |
| GMLC-Number | 1474 | 7.3.85 | OctetString | M,V | | | | N |
| LCS-PrivacyException | 1475 | 7.3.86 | Grouped | M,V | | | | N |
| SS-Code | 1476 | 7.3.87 | OctetString | M,V | | | | N |
| SS-Status | 1477 | 7.3.88 | Grouped | M,V | | | | N |
| Notification-To-UE-User | 1478 | 7.3.89 | Enumerated | M,V | | | | N |
| External-Client | 1479 | 7.3.90 | Grouped | M,V | | | | N |
| Client-Identity | 1480 | 7.3.91 | OctetString | M,V | | | | N |
| GMLC-Restriction | 1481 | 7.3.92 | Enumerated | M,V | | | | N |
| PLMN-Client | 1482 | 7.3.93 | Enumerated | M,V | | | | N |
| Service-Type | 1483 | 7.3.94 | Grouped | M,V | | | | N |
| ServiceTypeIdentity | 1484 | 7.3.95 | Unsigned32 | M,V | | | | N |
| MO-LR | 1485 | 7.3.96 | Grouped | M,V | | | | N |
| Teleservice-List | 1486 | 7.3.99 | Grouped | M,V | | | | N |
| TS-Code | 1487 | 7.3.100 | OctetString | M,V | | | | N |
| Call-Barring-Infor-List | 1488 | 7.3.101 | Grouped | M,V | | | | N |
| SGSN-Number | 1489 | 7.3.102 | OctetString | M,V | | | | N |
| IDR-Flags | 1490 | 7.3.103 | Unsigned32 | M,V | | | | N |
| ICS-Indicator | 1491 | 7.3.104 | Enumerated | V | | | M | N |
| IMS-Voice-Over-PS-Sessions-Supported | 1492 | 7.3.106 | Enumerated | V | | | M | N |
| Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions | 1493 | 7.3.107 | Enumerated | V | | | M | N |
| Last-UE-Activity-Time | 1494 | 7.3.108 | Time | V | | | M | N |
| EPS-User-State | 1495 | 7.3.110 | Grouped | V | | | M | N |
| EPS-Location-Information | 1496 | 7.3.111 | Grouped | V | | | M | N |
| MME-User-State | 1497 | 7.3.112 | Grouped | V | | | M | N |
| SGSN-User-State | 1498 | 7.3.113 | Grouped | V | | | M | N |
| User-State | 1499 | 7.3.114 | Enumerated | V | | | M | N |
| MME-Location Information | 1600 | 7.3.115 | Grouped | V | | | M | N |
| SGSN-Location-Information | 1601 | 7.3.116 | Grouped | V | | | M | N |
| E-UTRAN-Cell-Global-Identity | 1602 | 7.3.117 | OctetString | V | | | M | N |
| Tracking-Area-Identity | 1603 | 7.3.118 | OctetString | V | | | M | N |
| Cell-Global-Identity | 1604 | 7.3.119 | OctetString | V | | | M | N |
| Routing-Area-Identity | 1605 | 7.3.120 | OctetString | V | | | M | N |
| Location-Area-Identity | 1606 | 7.3.121 | OctetString | V | | | M | N |
| Service-Area-Identity | 1607 | 7.3.122 | OctetString | V | | | M | N |
| Geographical-Information | 1608 | 7.3.123 | OctetString | V | | | M | N |
| Geodetic-Information | 1609 | 7.3.124 | OctetString | V | | | M | N |
| Current-Location-Retrieved | 1610 | 7.3.125 | Enumerated | V | | | M | N |
| Age-Of-Location-Information | 1611 | 7.3.126 | Unsigned32 | V | | | M | N |
| Active-APN | 1612 | 7.3.127 | Grouped | V | | | M | N |
| Error-Diagnostic | 1614 | 7.3.128 | Enumerated | V | | | M | N |
| Ext-PDP-Address | 1621 | 7.3.129 | Address | V | | | M | N |
| UE-SRVCC-Capability | 1615 | 7.3.130 | Enumerated | V | | | M | N |
| MPS-Priority | 1616 | 7.3.131 | Unsigned32 | V | | | M | N |
| VPLMN-LIPA-Allowed | 1617 | 7.3.132 | Enumerated | V | | | M | N |
| LIPA-Permission | 1618 | 7.3.133 | Enumerated | V | | | M | N |
| Subscribed-Periodic-RAU-TAU-Timer | 1619 | 7.3.134 | Unsigned32 | V | | | M | N |
| Ext-PDP-Type | 1620 | 7.3.75A | OctetString | V | | | M | N |
| SIPTO-Permission | 1613 | 7.3.135 | Enumerated | V | | | M | N |
| MDT-Configuration | 1622 | 7.3.136 | Grouped | V | | | M | N |
| Job-Type | 1623 | 7.3.137 | Enumerated | V | | | M | N |
| Area-Scope | 1624 | 7.3.138 | Grouped | V | | | M | N |
| List-Of-Measurements | 1625 | 7.3.139 | Unsigned32 | V | | | M | N |
| Reporting-Trigger | 1626 | 7.3.140 | Unsigned32 | V | | | M | N |
| Report-Interval | 1627 | 7.3.141 | Enumerated | V | | | M | N |
| Report-Amount | 1628 | 7.3.142 | Enumerated | V | | | M | N |
| Event-Threshold-RSRP | 1629 | 7.3.143 | Unsigned32 | V | | | M | N |
| Event-Threshold-RSRQ | 1630 | 7.3.144 | Unsigned32 | V | | | M | N |
| Logging-Interval | 1631 | 7.3.145 | Enumerated | V | | | M | N |
| Logging-Duration | 1632 | 7.3.146 | Enumerated | V | | | M | N |
| Relay-Node-Indicator | 1633 | 7.3.147 | Enumerated | V | | | M | N |
| MDT-User-Consent | 1634 | 7.3.148 | Enumerated | V | | | M | N |
| PUR-Flags | 1635 | 7.3.149 | Unsigned32 | V | | | M | N |
| Subscribed-VSRVCC | 1636 | 7.3.150 | Enumerated | V | | | M | N |
| Equivalent-PLMN-List | 1637 | 7.3.151 | Grouped | V | | | M | N |
| CLR-Flags | 1638 | 7.3.152 | Unsigned32 | V | | | M | N |
| UVR-Flags | 1639 | 7.3.153 | Unsigned32 | M,V | | | | N |
| UVA-Flags | 1640 | 7.3.154 | Unsigned32 | M,V | | | | N |
| VPLMN-CSG-Subscription-Data | 1641 | 7.3.155 | Grouped | M,V | | | | N |
| Time-Zone | 1642 | 7.3.163 | UTF8String | V | | | M | N |
| A-MSISDN | 1643 | 7.3.157 | OctetString | V | | | M | N |
| MME-Number-for-MT-SMS | 1645 | 7.3.159 | OctetString | V | | | M | N |
| SMS-Register-Request | 1648 | 7.3.162 | Enumerated | V | | | M | N |
| Local-Time-Zone | 1649 | 7.3.156 | Grouped | V | | | M | N |
| Daylight-Saving-Time | 1650 | 7.3.164 | Enumerated | V | | | M | N |
| Subscription-Data-Flags | 1654 | 7.3.165 | Unsigned32 | V | | | M | N |
| Measurement-Period-UMTS | 1655 | 7.3.166 | Enumerated | V | | | M | N |
| Measurement-Period-LTE | 1656 | 7.3.167 | Enumerated | V | | | M | N |
| Collection-Period-RRM-LTE | 1657 | 7.3.168 | Enumerated | V | | | M | N |
| Collection-Period-RRM-UMTS | 1658 | 7.3.169 | Enumerated | V | | | M | N |
| Positioning-Method | 1659 | 7.3.170 | OctetString | V | | | M | N |
| Measurement-Quantity | 1660 | 7.3.171 | OctetString | V | | | M | N |
| Event-Threshold-Event-1F | 1661 | 7.3.172 | Integer32 | V | | | M | N |
| Event-Threshold-Event-1I | 1662 | 7.3.173 | Integer32 | V | | | M | 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-29.329 | 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 |
| # OMA DDS Charging_Data V1.0 20110201-A | | | | | | | | |
| Application-Server-Id | 2101 | 8.4 | UTF8String | M,V | | | | Y |
| Application-Service-Type | 2102 | 8.4 | UTF8String | M,V | | | | Y |
| Application-Session-Id | 2103 | 8.4 | UTF8String | M,V | | | | Y |
| Content-ID | 2116 | 8.4 | UTF8String | M,V | | | | Y |
| Content-provider-ID | 2117 | 8.4 | UTF8String | M,V | | | | Y |
| DCD-Information | 2115 | 8.5.5 | Grouped | M,V | | | | Y |
| Delivery-Status | 2104 | 8.4 | UTF8String | M,V | | | | Y |
| IM-Information | 2110 | 8.5.6 | Grouped | M,V | | | | Y |
| Number-Of-Messages-Successfully-Exploded | 2111 | 8.4 | Unsigned32 | M,V | | | | Y |
| Number-Of-Messages-Successfully-Sent | 2112 | 8.4 | Unsigned32 | M,V | | | | Y |
| Service-Generic-Information | 1256 | 8.5.10 | Grouped | M,V | | | | Y |
| Total-Number-Of-Messages-Exploded | 2113 | 8.4 | Unsigned32 | M,V | | | | Y |
| Total-Number-Of-Messages-Sent | 2114 | 8.4 | Unsigned32 | M,V | | | | Y |

View File

@ -1,32 +0,0 @@
## Process this file with automake to produce Makefile.in
pkglib_LTLIBRARIES = dict_legacy_xml.la
dict_legacy_xml_la_SOURCES = \
dict_lxml.tab.y lex.dict_lxml.l dict_lxml.c dict_lxml_xml.c
dict_legacy_xml_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
dict_legacy_xml_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
AM_YFLAGS = -p dict_lxml -d
AM_LFLAGS = -p -Cem -Pdict_lxml
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/fd/gx \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include \
@LIBXML2_CFLAGS@
AM_CFLAGS = \
-Wall -Werror
MAINTAINERCLEANFILES = Makefile.in
MOSTLYCLEANFILES = *.stackdump

View File

@ -1,54 +0,0 @@
/*********************************************************************************************************
* Software License Agreement (BSD License) *
* Author: Sebastien Decugis <sdecugis@freediameter.net> *
* *
* Copyright (c) 2011, WIDE Project and NICT *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
* permitted provided that the following conditions are met: *
* *
* * Redistributions of source code must retain the above *
* copyright notice, this list of conditions and the *
* following disclaimer. *
* *
* * Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the *
* following disclaimer in the documentation and/or other *
* materials provided with the distribution. *
* *
* * Neither the name of the WIDE Project or NICT nor the *
* names of its contributors may be used to endorse or *
* promote products derived from this software without *
* specific prior written permission of WIDE Project and *
* NICT. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
*********************************************************************************************************/
/*
* Legacy XML dictionary files support for freeDiameter.
*/
#include "dict_lxml.h"
/* entry point */
static int dict_lxml_entry(char * conffile)
{
TRACE_ENTRY("%p", conffile);
/* Parse the configuration file -- everything happens there */
CHECK_FCT( dict_lxml_handle(conffile) );
/* We're done */
return 0;
}
EXTENSION_ENTRY("dict_legacy_xml", dict_lxml_entry);

View File

@ -1,48 +0,0 @@
/*********************************************************************************************************
* Software License Agreement (BSD License) *
* Author: Sebastien Decugis <sdecugis@freediameter.net> *
* *
* Copyright (c) 2011, WIDE Project and NICT *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
* permitted provided that the following conditions are met: *
* *
* * Redistributions of source code must retain the above *
* copyright notice, this list of conditions and the *
* following disclaimer. *
* *
* * Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the *
* following disclaimer in the documentation and/or other *
* materials provided with the distribution. *
* *
* * Neither the name of the WIDE Project or NICT nor the *
* names of its contributors may be used to endorse or *
* promote products derived from this software without *
* specific prior written permission of WIDE Project and *
* NICT. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
*********************************************************************************************************/
/* Header file for the dict_legacy_xml extension.
*
* See the dict_legacy_xml.conf.sample file for the format of the configuration file.
*/
/* FreeDiameter's common include file */
#include <freeDiameter/extension.h>
/* Parse the configuration file */
int dict_lxml_handle(char * conffile);
/* Parse an XML file and return the number of dictionary objects or -1 on error */
int dict_lxml_parse(char * xmlfilename);

View File

@ -1,141 +0,0 @@
/*********************************************************************************************************
* Software License Agreement (BSD License) *
* Author: Sebastien Decugis <sdecugis@freediameter.net> *
* *
* Copyright (c) 2013, WIDE Project and NICT *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
* permitted provided that the following conditions are met: *
* *
* * Redistributions of source code must retain the above *
* copyright notice, this list of conditions and the *
* following disclaimer. *
* *
* * Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the *
* following disclaimer in the documentation and/or other *
* materials provided with the distribution. *
* *
* * Neither the name of the WIDE Project or NICT nor the *
* names of its contributors may be used to endorse or *
* promote products derived from this software without *
* specific prior written permission of WIDE Project and *
* NICT. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
*********************************************************************************************************/
/* Yacc extension's configuration parser.
* See doc/dict_legacy_xml.conf.sample for configuration file format
*/
/* For development only : */
%debug
%error-verbose
/* The parser receives the configuration file filename as parameter */
%parse-param {char * conffile}
/* Keep track of location */
%locations
%pure-parser
%{
#include "dict_lxml.h"
#include "dict_lxml.tab.h" /* bison is not smart enough to define the YYLTYPE before including this code, so... */
/* Forward declaration */
int yyparse(char * conffile);
static int nb_files = 0;
static int nb_dict = 0;
/* Parse the configuration file */
int dict_lxml_handle(char * conffile)
{
extern FILE * dict_lxmlin;
int ret;
TRACE_ENTRY("%p", conffile);
TRACE_DEBUG (FULL, "Parsing configuration file: %s...", conffile);
dict_lxmlin = fopen(conffile, "r");
if (dict_lxmlin == NULL) {
ret = errno;
fd_log_debug("Unable to open extension configuration file %s for reading: %s", conffile, strerror(ret));
TRACE_DEBUG (INFO, "Error occurred, message logged -- configuration file.");
return ret;
}
ret = yyparse(conffile);
fclose(dict_lxmlin);
if (ret != 0) {
TRACE_DEBUG (INFO, "Unable to parse the configuration file.");
return EINVAL;
} else {
TRACE_DEBUG(FULL, "%d XML dictionary files parsed successfully, %d dictionary objects added.", nb_files, nb_dict);
}
return 0;
}
/* The Lex parser prototype */
int dict_lxmllex(YYSTYPE *lvalp, YYLTYPE *llocp);
/* Function to report the errors */
void yyerror (YYLTYPE *ploc, char * conffile, char const *s)
{
TRACE_DEBUG(INFO, "Error in configuration parsing");
if (ploc->first_line != ploc->last_line)
fd_log_debug("%s:%d.%d-%d.%d : %s", conffile, ploc->first_line, ploc->first_column, ploc->last_line, ploc->last_column, s);
else if (ploc->first_column != ploc->last_column)
fd_log_debug("%s:%d.%d-%d : %s", conffile, ploc->first_line, ploc->first_column, ploc->last_column, s);
else
fd_log_debug("%s:%d.%d : %s", conffile, ploc->first_line, ploc->first_column, s);
}
%}
/* Values returned by lex for token */
%union {
char *string; /* The string is allocated by strdup in lex.*/
}
/* In case of error in the lexical analysis */
%token LEX_ERROR
/* A (de)quoted string (malloc'd in lex parser; it must be freed after use) */
%token <string> QSTRING
/* -------------------------------------- */
%%
/* The grammar definition */
conffile: /* empty grammar is OK */
| conffile xmlfile
;
/* a RULE entry */
xmlfile: QSTRING ';'
{
int ret = dict_lxml_parse($1);
if (ret < 0) {
yyerror (&yylloc, conffile, "An error occurred while parsing a file, aborting...");
YYERROR;
}
nb_files++;
nb_dict += ret;
}
;

File diff suppressed because it is too large Load Diff

View File

@ -1,98 +0,0 @@
/*********************************************************************************************************
* Software License Agreement (BSD License) *
* Author: Sebastien Decugis <sdecugis@freediameter.net> *
* *
* Copyright (c) 2013, WIDE Project and NICT *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
* permitted provided that the following conditions are met: *
* *
* * Redistributions of source code must retain the above *
* copyright notice, this list of conditions and the *
* following disclaimer. *
* *
* * Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the *
* following disclaimer in the documentation and/or other *
* materials provided with the distribution. *
* *
* * Neither the name of the WIDE Project or NICT nor the *
* names of its contributors may be used to endorse or *
* promote products derived from this software without *
* specific prior written permission of WIDE Project and *
* NICT. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
*********************************************************************************************************/
/* Tokenizer
*
*/
%{
#include "dict_lxml.h"
/* Include yacc tokens definitions */
#include "dict_lxml.tab.h"
/* Update the column information */
#define YY_USER_ACTION { \
yylloc->first_column = yylloc->last_column + 1; \
yylloc->last_column = yylloc->first_column + yyleng - 1; \
}
/* Avoid warning with newer flex */
#define YY_NO_INPUT
%}
qstring \"[^\"\n]*\"
%option bison-bridge bison-locations
%option noyywrap
%option nounput
%%
/* Update the line count */
\n {
yylloc->first_line++;
yylloc->last_line++;
yylloc->last_column=0;
}
/* Eat all spaces but not new lines */
([[:space:]]{-}[\n])+ ;
/* Eat all comments */
#.*$ ;
/* Recognize quoted strings */
{qstring} {
/* Match a quoted string. */
CHECK_MALLOC_DO( yylval->string = strdup(yytext+1),
{
TRACE_DEBUG(INFO, "Unable to copy the string '%s': %s", yytext, strerror(errno));
return LEX_ERROR; /* trig an error in yacc parser */
} );
yylval->string[strlen(yytext) - 2] = '\0';
return QSTRING;
}
/* Valid single characters for yyparse */
[;] { return yytext[0]; }
/* Unrecognized sequence, if it did not match any previous pattern */
[^[:space:]\";\n]+ {
fd_log_debug("Unrecognized text on line %d col %d: '%s'.", yylloc->first_line, yylloc->first_column, yytext);
return LEX_ERROR;
}
%%

File diff suppressed because it is too large Load Diff

View File

@ -1,258 +0,0 @@
/*********************************************************************************************************
* Software License Agreement (BSD License) *
* Author: Francois Bard <francois@tera.ics.keio.ac.jp> *
* *
* Copyright (c) 2010, Teraoka Laboratory, Keio University *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
* permitted provided that the following conditions are met: *
* *
* * Redistributions of source code must retain the above *
* copyright notice, this list of conditions and the *
* following disclaimer. *
* *
* * Redistributions in binary form must reproduce the above *
* copyright notice, this list of conditions and the *
* following disclaimer in the documentation and/or other *
* materials provided with the distribution. *
* *
* * Neither the name of the Teraoka Laboratory nor the *
* names of its contributors may be used to endorse or *
* promote products derived from this software without *
* specific prior written permission of Teraoka Laboratory *
* *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
*********************************************************************************************************/
/*
The following table lists the AVPs needed for the NAS to HAAA server interaction.
We try to keep the structure of the grouped AVP by declaring the contained AVPs just before the grouped AVP they depend on.
The number of '+' indicates the depth of the contained AVP.
DEPTH NAME AVP CODE RFC TYPE IMPLEMENTED NOTES
MIP6-Feature-Vector 124 5447 Unsigned64 yes
+ MIP-Home-Agent-Address 334 4004 Address not yet
++ Destination-Host 293 3588 DiameterIdentity no (Base)
++ Destination-Realm 283 3588 DiameterIdentity no (Base)
+ MIP-Home-Agent-Host 348 4004 Grouped not yet
+ MIP6-Home-Link-Prefix 125 5447 OctetString yes
MIP6-Agent-Info 486 5447 Grouped yes
*/
#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_ }}}
/* Defines if there are any */
/* Define Flags for MIP6-Feature-Vector*/
#define MIP6_INTEGRATED 0x0000000000000001
#define LOCAL_HOME_AGENT_ASSIGNMENT 0x0000000000000002
/* Dictionary */
int dict_nas_mipv6_init(char * conffile)
{
struct dict_object * nas_mipv6;
{
struct dict_application_data data = { 5447, "MIPv6 NAS-to-HAAA Interaction" };
CHECK_dict_new( DICT_APPLICATION, &data , NULL, &nas_mipv6);
}
/* AVP section */
{
/* Loading the derived data formats */
struct dict_object * Address_type;
CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Address", &Address_type);
/* MIP6-Feature-Vector */
{
/*
*/
struct dict_avp_data data = {
124, /* Code */
0, /* Vendor */
"MIP6-Feature-Vector", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED64 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, NULL);
}
/* MIP-Home-Agent-Address - RFC 4004 */
{
/*
*/
struct dict_avp_data data = {
334, /* Code */
0, /* Vendor */
"MIP-Home-Agent-Address", /* 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 , Address_type, NULL);
}
/* Destination-Host - Base Protocol */
/* Destination-Realm - Base Protocol */
/* MIP-Home-Agent-Host - RFC 4004 */
{
/*
The MIP-Home-Agent-Host AVP (AVP Code 348) is of type Grouped and
contains the identity of the assigned Home Agent. If the MIP-Home-
Agent-Host AVP is present in the AMR, the AAAH MUST copy it into the
HAR.
MIP-Home-Agent-Host ::= < AVP Header: 348 >
{ Destination-Realm }
{ Destination-Host }
* [ AVP ]
*/
struct dict_object * avp;
struct dict_avp_data data = {
348, /* Code */
0, /* Vendor */
"MIP-Home-Agent-Host", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
struct local_rules_definition rules[] =
{ { "Destination-Realm", RULE_REQUIRED, -1, 1 }
,{ "Destination-Host", RULE_REQUIRED, -1, 1 }
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
PARSE_loc_rules( rules, avp );
}
/* MIP6-Home-Link-Prefix */
{
/*
*/
struct dict_avp_data data = {
125, /* Code */
0, /* Vendor */
"MIP6-Home-Link-Prefix", /* 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 , NULL, NULL);
}
/* MIP6-Agent-Info */
{
/*
*/
struct dict_object * avp;
struct dict_avp_data data = {
486, /* Code */
0, /* Vendor */
"MIP6-Agent-Info", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
struct local_rules_definition rules[] =
{ { "MIP-Home-Agent-Address", RULE_OPTIONAL, -1, 2 }
,{ "MIP-Home-Agent-Host", RULE_OPTIONAL, -1, 1 }
,{ "MIP6-Home-Link-Prefix", RULE_OPTIONAL, -1, 1 }
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
PARSE_loc_rules( rules, avp );
}
}
LOG_D( "Dictionary Extension 'MIPv6 NAS-to-HAAA Interaction' initialized");
return 0;
}
EXTENSION_ENTRY("dict_nas_mipv6", dict_nas_mipv6_init);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = libfdproto libfdcore
SUBDIRS = libfdproto libfdcore extensions
MAINTAINERCLEANFILES = \
configure include/freeDiameter/config.h.in \

View File

@ -188,8 +188,17 @@ fi
#####################
AC_CONFIG_FILES([include/freeDiameter/freeDiameter-host.h:include/freeDiameter/freeDiameter-host.hin])
AC_CONFIG_FILES([libfdcore/Makefile])
AC_CONFIG_FILES([libfdproto/Makefile])
AC_CONFIG_FILES([libfdcore/Makefile])
AC_CONFIG_FILES([extensions/dbg_msg_dumps/Makefile])
AC_CONFIG_FILES([extensions/dict_rfc5777/Makefile])
AC_CONFIG_FILES([extensions/dict_mip6i/Makefile])
AC_CONFIG_FILES([extensions/dict_nasreq/Makefile])
AC_CONFIG_FILES([extensions/dict_nas_mipv6/Makefile])
AC_CONFIG_FILES([extensions/dict_dcca/Makefile])
AC_CONFIG_FILES([extensions/dict_dcca_3gpp/Makefile])
AC_CONFIG_FILES([extensions/dict_s6a/Makefile])
AC_CONFIG_FILES([extensions/Makefile])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@ -6,18 +6,18 @@ dbg_msg_dumps_la_SOURCES = \
dbg_msg_dumps.c
dbg_msg_dumps_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dbg_msg_dumps_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -2,7 +2,7 @@
* Software License Agreement (BSD License) *
* Author: Sebastien Decugis <sdecugis@freediameter.net> *
* *
* Copyright (c) 2015, WIDE Project and NICT *
* Copyright (c) 2013, WIDE Project and NICT *
* All rights reserved. *
* *
* Redistribution and use of this software in source and binary forms, with or without modification, are *
@ -92,7 +92,7 @@ static void md_hook_cb_tree(enum fd_hook_type type, struct msg * msg, struct pee
case HOOK_MESSAGE_PARSING_ERROR:
if (msg) {
DiamId_t id = NULL;
if (fd_msg_source_get( msg, &id, NULL ))
if (!fd_msg_source_get( msg, &id, NULL ))
id = (DiamId_t)"<error getting source>";
if (!id)
id = (DiamId_t)"<local>";
@ -104,10 +104,6 @@ static void md_hook_cb_tree(enum fd_hook_type type, struct msg * msg, struct pee
LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf);
}
break;
case HOOK_MESSAGE_PARSING_ERROR2:
LOG_E("PARSING ERROR, returning:");
LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL);
break;
case HOOK_MESSAGE_ROUTING_ERROR:
LOG_E("ROUTING ERROR '%s' for: ", (char *)other);
LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL);
@ -122,10 +118,6 @@ static void md_hook_cb_tree(enum fd_hook_type type, struct msg * msg, struct pee
LOG_N("RCV from '%s':", peer_name);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
case HOOK_MESSAGE_SENDING:
LOG_N("SNDING to '%s':", peer_name);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
break;
case HOOK_MESSAGE_SENT:
LOG_N("SND to '%s':", peer_name);
LOG_SPLIT(FD_LOG_NOTICE, " ", buf, NULL);
@ -164,8 +156,8 @@ static void md_hook_cb_tree(enum fd_hook_type type, struct msg * msg, struct pee
break;
/* Not handled */
case HOOK_DATA_RECEIVED:
break;
default:
break;
}
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
@ -190,7 +182,7 @@ static void md_hook_cb_full(enum fd_hook_type type, struct msg * msg, struct pee
case HOOK_MESSAGE_PARSING_ERROR:
if (msg) {
DiamId_t id = NULL;
if (fd_msg_source_get( msg, &id, NULL ))
if (!fd_msg_source_get( msg, &id, NULL ))
id = (DiamId_t)"<error getting source>";
if (!id)
id = (DiamId_t)"<local>";
@ -201,9 +193,6 @@ static void md_hook_cb_full(enum fd_hook_type type, struct msg * msg, struct pee
LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf);
}
break;
case HOOK_MESSAGE_PARSING_ERROR2:
LOG_E("PARSING ERROR, returning: %s", buf);
break;
case HOOK_MESSAGE_ROUTING_ERROR:
LOG_E("ROUTING ERROR '%s' for: %s", (char *)other, buf);
break;
@ -215,9 +204,6 @@ static void md_hook_cb_full(enum fd_hook_type type, struct msg * msg, struct pee
case HOOK_MESSAGE_RECEIVED:
LOG_N("RCV from '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_SENDING:
LOG_N("SNDING to '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_SENT:
LOG_N("SND to '%s': %s", peer_name, buf);
break;
@ -249,8 +235,8 @@ static void md_hook_cb_full(enum fd_hook_type type, struct msg * msg, struct pee
}
break;
/* Not handled */
case HOOK_DATA_RECEIVED:
break;
default:
break;
}
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
@ -275,7 +261,7 @@ static void md_hook_cb_compact(enum fd_hook_type type, struct msg * msg, struct
case HOOK_MESSAGE_PARSING_ERROR:
if (msg) {
DiamId_t id = NULL;
if (fd_msg_source_get( msg, &id, NULL ))
if (!fd_msg_source_get( msg, &id, NULL ))
id = (DiamId_t)"<error getting source>";
if (!id)
id = (DiamId_t)"<local>";
@ -286,9 +272,6 @@ static void md_hook_cb_compact(enum fd_hook_type type, struct msg * msg, struct
LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf);
}
break;
case HOOK_MESSAGE_PARSING_ERROR2:
LOG_E("PARSING ERROR, returning: %s", buf);
break;
case HOOK_MESSAGE_ROUTING_ERROR:
LOG_E("ROUTING ERROR '%s' for: %s", (char *)other, buf);
break;
@ -300,9 +283,6 @@ static void md_hook_cb_compact(enum fd_hook_type type, struct msg * msg, struct
case HOOK_MESSAGE_RECEIVED:
LOG_N("RCV from '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_SENDING:
LOG_N("SNDING to '%s': %s", peer_name, buf);
break;
case HOOK_MESSAGE_SENT:
LOG_N("SND to '%s': %s", peer_name, buf);
break;
@ -334,8 +314,8 @@ static void md_hook_cb_compact(enum fd_hook_type type, struct msg * msg, struct
}
break;
/* Not handled */
case HOOK_DATA_RECEIVED:
break;
default:
break;
}
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
@ -360,8 +340,8 @@ static int md_main(char * conffile)
return EINVAL; });
}
mask_errors = HOOK_MASK( HOOK_MESSAGE_FAILOVER, HOOK_MESSAGE_PARSING_ERROR, HOOK_MESSAGE_PARSING_ERROR2, HOOK_MESSAGE_ROUTING_ERROR, HOOK_MESSAGE_DROPPED );
mask_sndrcv = HOOK_MASK( HOOK_MESSAGE_RECEIVED, HOOK_MESSAGE_SENT ); /* We don t access SENDING hook here */
mask_errors = HOOK_MASK( HOOK_MESSAGE_FAILOVER, HOOK_MESSAGE_PARSING_ERROR, HOOK_MESSAGE_ROUTING_ERROR, HOOK_MESSAGE_DROPPED );
mask_sndrcv = HOOK_MASK( HOOK_MESSAGE_RECEIVED, HOOK_MESSAGE_SENT );
mask_routing= HOOK_MASK( HOOK_MESSAGE_LOCAL, HOOK_MESSAGE_ROUTING_FORWARD, HOOK_MESSAGE_ROUTING_LOCAL );
mask_peers = HOOK_MASK( HOOK_PEER_CONNECT_FAILED, HOOK_PEER_CONNECT_SUCCESS );

View File

@ -6,18 +6,18 @@ dict_dcca_la_SOURCES = \
dict_dcca.c
dict_dcca_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_dcca_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -69,11 +69,25 @@ static int dict_dcca_entry(char * conffile)
/* Applications section */
{
#if 0 /* modified by acetcom */
/* DCCA */
{
struct dict_application_data data = { 4, "Diameter Credit Control Application" };
CHECK_dict_new( DICT_APPLICATION, &data, NULL, &dcca);
}
#else
/* 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 * vendor;
CHECK_FCT(fd_dict_search(fd_g_config->cnf_dict, DICT_VENDOR, VENDOR_BY_NAME, "3GPP", &vendor, ENOENT));
struct dict_application_data app_data = { 16777238, "Gx" };
CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_APPLICATION, &app_data, vendor, &dcca));
}
#endif /* end of modification */
}
/* Result codes */
@ -1362,7 +1376,7 @@ static int dict_dcca_entry(char * conffile)
{ "Origin-Realm", RULE_REQUIRED, -1, 1 },
{ "Destination-Realm", RULE_REQUIRED, -1, 1 },
{ "Auth-Application-Id", RULE_REQUIRED, -1, 1 },
{ "Service-Context-Id", RULE_REQUIRED, -1, 1 },
{ "Service-Context-Id", RULE_OPTIONAL, -1, 1 },
{ "CC-Request-Type", RULE_REQUIRED, -1, 1 },
{ "CC-Request-Number", RULE_REQUIRED, -1, 1 },
{ "Destination-Host", RULE_OPTIONAL, -1, 1 },
@ -1446,7 +1460,7 @@ static int dict_dcca_entry(char * conffile)
struct local_rules_definition rules[] =
{
{ "Session-Id", RULE_FIXED_HEAD, -1, 1 },
{ "Result-Code", RULE_REQUIRED, -1, 1 },
{ "Result-Code", RULE_OPTIONAL, -1, 1 },
{ "Origin-Host", RULE_REQUIRED, -1, 1 },
{ "Origin-Realm", RULE_REQUIRED, -1, 1 },
{ "Auth-Application-Id", RULE_REQUIRED, -1, 1 },

View File

@ -6,18 +6,18 @@ dict_dcca_3gpp_la_SOURCES = \
dict_dcca_3gpp.c
dict_dcca_3gpp_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_dcca_3gpp_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -6,18 +6,18 @@ dict_mip6i_la_SOURCES = \
dict_mip6i.c
dict_mip6i_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_mip6i_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -6,18 +6,18 @@ dict_nas_mipv6_la_SOURCES = \
dict_nas_mipv6.c
dict_nas_mipv6_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_nas_mipv6_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -6,18 +6,18 @@ dict_nasreq_la_SOURCES = \
dict_nasreq.c
dict_nasreq_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_nasreq_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -3013,7 +3013,7 @@ static int dnr_entry(char * conffile)
,{ "Origin-Host", RULE_REQUIRED, -1, 1 }
,{ "Origin-Realm", RULE_REQUIRED, -1, 1 }
,{ "Destination-Realm", RULE_REQUIRED, -1, 1 }
,{ "Auth-Request-Type", RULE_REQUIRED, -1, 1 }
,{ "Auth-Request-Type", RULE_OPTIONAL, -1, 1 }
,{ "Destination-Host", RULE_OPTIONAL, -1, 1 }
,{ "NAS-Identifier", RULE_OPTIONAL, -1, 1 }
,{ "NAS-IP-Address", RULE_OPTIONAL, -1, 1 }
@ -3169,7 +3169,7 @@ static int dnr_entry(char * conffile)
{ { "Session-Id", RULE_FIXED_HEAD, -1, 1 }
,{ "Auth-Application-Id", RULE_REQUIRED, -1, 1 }
,{ "Auth-Request-Type", RULE_REQUIRED, -1, 1 }
,{ "Result-Code", RULE_REQUIRED, -1, 1 }
,{ "Result-Code", RULE_OPTIONAL, -1, 1 }
,{ "Origin-Host", RULE_REQUIRED, -1, 1 }
,{ "Origin-Realm", RULE_REQUIRED, -1, 1 }
,{ "User-Name", RULE_OPTIONAL, -1, 1 }

View File

@ -6,18 +6,18 @@ dict_rfc5777_la_SOURCES = \
dict_rfc5777.c
dict_rfc5777_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_rfc5777_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror

View File

@ -6,18 +6,18 @@ dict_s6a_la_SOURCES = \
dict_s6a.c
dict_s6a_la_DEPENDENCIES = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
dict_s6a_la_LIBADD = \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdcore/libfdcore.la \
$(top_srcdir)/lib/@FREEDIAMETER_DIR@/libfdproto/libfdproto.la
$(top_srcdir)/libfdcore/libfdcore.la \
$(top_srcdir)/libfdproto/libfdproto.la
AM_LDFLAGS = \
-module -avoid-version -shared
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/@FREEDIAMETER_DIR@/include
-I$(top_srcdir)/include
AM_CFLAGS = \
-Wall -Werror