Mercurial > hg > freeDiameter
view extensions/dict_dcca_starent/add_avps.c @ 1499:71cc2c59e7dc
move generated AVPs into separate source files
Refactor dict_dcca_3gpp and dict_dcca_starent so
the generated source is in a separate add_avps.c.
Easier to maintain, and also compiles faster.
Improve the error logging for DICT_RULE failure.
author | Luke Mewburn <luke@mewburn.net> |
---|---|
date | Fri, 03 Apr 2020 12:11:11 +1100 |
parents | |
children |
line wrap: on
line source
/* Generated by: csv_to_fd -p fdc dict_dcca_starent.csv Do not modify; modify the source .csv files instead. */ #include <freeDiameter/extension.h> #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) ); int add_avps() { struct dict_object * UTF8String_type = NULL; CHECK_dict_search(DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type); struct dict_object * Time_type = NULL; CHECK_dict_search(DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type); /*==================================================================*/ /* Cisco ASR 5000 Series AAA Interface */ /* Administration and Reference */ /* Release 8.x and 9.0 */ /* Last Updated June 30, 2010 */ /* updated using v15 docs from Jan 2014 */ /* www.cisco.com/c/dam/en/us/td/docs/wireless/asr_5000/15-0/15-0-AAA-Reference.pdf */ /*==================================================================*/ /* SN-Volume-Quota-Threshold, Unsigned32, code 501 */ { struct dict_avp_data data = { 501, /* Code */ 8164, /* Vendor */ "SN-Volume-Quota-Threshold", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_UNSIGNED32 /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Unit-Quota-Threshold, Unsigned32, code 502 */ { struct dict_avp_data data = { 502, /* Code */ 8164, /* Vendor */ "SN-Unit-Quota-Threshold", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_UNSIGNED32 /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Time-Quota-Threshold, Unsigned32, code 503 */ { struct dict_avp_data data = { 503, /* Code */ 8164, /* Vendor */ "SN-Time-Quota-Threshold", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_UNSIGNED32 /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Total-Used-Service-Unit, Grouped, code 504 */ { struct dict_avp_data data = { 504, /* Code */ 8164, /* Vendor */ "SN-Total-Used-Service-Unit", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_GROUPED /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Absolute-Validity-Time, Time, code 505 */ { struct dict_avp_data data = { 505, /* Code */ 8164, /* Vendor */ "SN-Absolute-Validity-Time", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, Time_type, NULL); }; /* SN-Bandwidth-Control, Enumerated, code 512 */ { struct dict_avp_data data = { 512, /* Code */ 8164, /* Vendor */ "SN-Bandwidth-Control", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_INTEGER32 /* base type of data */ }; struct dict_object *type; struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Starent/SN-Bandwidth-Control)", NULL, NULL, NULL }; CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); CHECK_dict_new(DICT_AVP, &data, type, NULL); }; /* SN-Transparent-Data, OctetString, code 513 */ { struct dict_avp_data data = { 513, /* Code */ 8164, /* Vendor */ "SN-Transparent-Data", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Traffic-Policy, UTF8String, code 514 */ { struct dict_avp_data data = { 514, /* Code */ 8164, /* Vendor */ "SN-Traffic-Policy", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); }; /* SN-Firewall-Policy, UTF8String, code 515 */ { struct dict_avp_data data = { 515, /* Code */ 8164, /* Vendor */ "SN-Firewall-Policy", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); }; /* SN-Usage-Monitoring-Control, Grouped, code 517 */ { struct dict_avp_data data = { 517, /* Code */ 8164, /* Vendor */ "SN-Usage-Monitoring-Control", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_GROUPED /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Monitoring-Key, Unsigned32, code 518 */ { struct dict_avp_data data = { 518, /* Code */ 8164, /* Vendor */ "SN-Monitoring-Key", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_UNSIGNED32 /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Usage-Volume, Unsigned64, code 519 */ { struct dict_avp_data data = { 519, /* Code */ 8164, /* Vendor */ "SN-Usage-Volume", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_UNSIGNED64 /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Service-Flow-Detection, Enumerated, code 520 */ { struct dict_avp_data data = { 520, /* Code */ 8164, /* Vendor */ "SN-Service-Flow-Detection", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_INTEGER32 /* base type of data */ }; struct dict_object *type; struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Starent/SN-Service-Flow-Detection)", NULL, NULL, NULL }; CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); CHECK_dict_new(DICT_AVP, &data, type, NULL); }; /* SN-Usage-Monitoring, Enumerated, code 521 */ { struct dict_avp_data data = { 521, /* Code */ 8164, /* Vendor */ "SN-Usage-Monitoring", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_INTEGER32 /* base type of data */ }; struct dict_object *type; struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Starent/SN-Usage-Monitoring)", NULL, NULL, NULL }; CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); CHECK_dict_new(DICT_AVP, &data, type, NULL); }; /* SN-Session-Start-Indicator, OctetString, code 522 */ { struct dict_avp_data data = { 522, /* Code */ 8164, /* Vendor */ "SN-Session-Start-Indicator", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Phase0-PSAPName, UTF8String, code 523 */ { struct dict_avp_data data = { 523, /* Code */ 8164, /* Vendor */ "SN-Phase0-PSAPName", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); }; /* SN-Charging-Id, OctetString, code 525 */ { struct dict_avp_data data = { 525, /* Code */ 8164, /* Vendor */ "SN-Charging-Id", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Remaining-Service-Unit, Grouped, code 526 */ { struct dict_avp_data data = { 526, /* Code */ 8164, /* Vendor */ "SN-Remaining-Service-Unit", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_GROUPED /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Service-Start-Timestamp, Time, code 527 */ { struct dict_avp_data data = { 527, /* Code */ 8164, /* Vendor */ "SN-Service-Start-Timestamp", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, Time_type, NULL); }; /* SN-Rulebase-Id, UTF8String, code 528 */ { struct dict_avp_data data = { 528, /* Code */ 8164, /* Vendor */ "SN-Rulebase-Id", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); }; /* SN-CF-Policy-ID, Unsigned32, code 529 */ { struct dict_avp_data data = { 529, /* Code */ 8164, /* Vendor */ "SN-CF-Policy-ID", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_UNSIGNED32 /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Charging-Collection-Function-Name, UTF8String, code 530 */ { struct dict_avp_data data = { 530, /* Code */ 8164, /* Vendor */ "SN-Charging-Collection-Function-Name", /* Name */ AVP_FLAG_VENDOR, /* Fixed flags */ AVP_FLAG_VENDOR, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL); }; /* SN-Fast-Reauth-Username, OctetString, code 11010 */ { struct dict_avp_data data = { 11010, /* Code */ 8164, /* Vendor */ "SN-Fast-Reauth-Username", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* SN-Pseudonym-Username, OctetString, code 11011 */ { struct dict_avp_data data = { 11011, /* Code */ 8164, /* Vendor */ "SN-Pseudonym-Username", /* Name */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */ AVP_TYPE_OCTETSTRING /* base type of data */ }; CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; return 0; } /* add_avps() */