# HG changeset patch # User Luke Mewburn # Date 1582587728 -39600 # Node ID 6029afe9bacbd9e10c4f2561c0fb38f6982ea956 # Parent d6469b0f21110cd162efdd2564679c76bbaff55e Update to 3GPP TS 29.214 V15.7.0 (2019-09) Add GCS-Identifier, OctetString, code 538, section 5.3.36 Add Sharing-Key-DL, Unsigned32, code 539, section 5.3.37 Add Sharing-Key-UL, Unsigned32, code 540, section 5.3.38 Add Retry-Interval, Unsigned32, code 541, section 5.3.39 Add Sponsoring-Action, Enumerated, code 542, section 5.3.40 Add Max-Supported-Bandwidth-DL, Unsigned32, code 543, section 5.3.41 Add Max-Supported-Bandwidth-UL, Unsigned32, code 544, section 5.3.42 Add Min-Desired-Bandwidth-DL, Unsigned32, code 545, section 5.3.43 Add Min-Desired-Bandwidth-UL, Unsigned32, code 546, section 5.3.44 Add MCPTT-Identifier, OctetString, code 547, section 5.3.45 Add Service-Authorization-Info, Unsigned32, code 548, section 5.3.46 Add Media-Component-Status, Unsigned32, code 549, section 5.3.48 Add Priority-Sharing-Indicator, Enumerated, code 550, section 5.3.47 Add AF-Requested-Data, Unsigned32, code 551, section 5.3.50 Add Content-Version, Unsigned64, code 552, section 5.3.49 Add Pre-emption-Control-Info, Unsigned32, code 553, section 5.3.51 Add Extended-Max-Requested-BW-DL, Unsigned32, code 554, section 5.3.52 Add Extended-Max-Requested-BW-UL, Unsigned32, code 555, section 5.3.53 Add Extended-Max-Supported-BW-DL, Unsigned32, code 556, section 5.3.54 Add Extended-Max-Supported-BW-UL, Unsigned32, code 557, section 5.3.55 Add Extended-Min-Desired-BW-DL, Unsigned32, code 558, section 5.3.56 Add Extended-Min-Desired-BW-UL, Unsigned32, code 559, section 5.3.57 Add Extended-Min-Requested-BW-DL, Unsigned32, code 560, section 5.3.58 Add Extended-Min-Requested-BW-UL, Unsigned32, code 561, section 5.3.59 Add MCVideo-Identifier, OctetString, code 562, section 5.3.45a Add IMS-Content-Identifier, OctetString, code 563, section 5.3.60 with missing M assumed to be MUST-NOT. Add IMS-Content-Type, Enumerated, code 564, section 5.3.61 with missing M assumed to be MUST-NOT. diff -r d6469b0f2111 -r 6029afe9bacb extensions/dict_dcca_3gpp/dict_dcca_3gpp.c --- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c Tue Feb 25 09:58:59 2020 +1100 +++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c Tue Feb 25 10:42:08 2020 +1100 @@ -2798,7 +2798,10 @@ CHECK_dict_new(DICT_AVP, &data, type, NULL); }; - /* 3GPP 29.214-b80 (11.8.0 2013.03.15) */ + + /* 3GPP TS 29.214 V15.7.0 (2019-09) */ + /* From 3GPP 29214-f70.doc */ + /* Abort-Cause, Enumerated, code 500, section 5.3.1 */ { struct dict_avp_data data = { @@ -2893,6 +2896,35 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* AF-Requested-Data, Unsigned32, code 551, section 5.3.50 */ + { + struct dict_avp_data data = { + 551, /* Code */ + 10415, /* Vendor */ + "AF-Requested-Data", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* AF-Signalling-Protocol, Enumerated, code 529, section 5.3.26 */ + { + struct dict_avp_data data = { + 529, /* Code */ + 10415, /* Vendor */ + "AF-Signalling-Protocol", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_INTEGER32 /* base type of data */ + }; + struct dict_object *type; + struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/AF-Signalling-Protocol)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); + }; + /* Application-Service-Provider-Identity, UTF8String, code 532, section 5.3.29 */ { struct dict_avp_data data = { @@ -2919,6 +2951,123 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* Content-Version, Unsigned64, code 552, section 5.3.49 */ + { + struct dict_avp_data data = { + 552, /* Code */ + 10415, /* Vendor */ + "Content-Version", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED64 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Max-Requested-BW-DL, Unsigned32, code 554, section 5.3.52 */ + { + struct dict_avp_data data = { + 554, /* Code */ + 10415, /* Vendor */ + "Extended-Max-Requested-BW-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Max-Requested-BW-UL, Unsigned32, code 555, section 5.3.53 */ + { + struct dict_avp_data data = { + 555, /* Code */ + 10415, /* Vendor */ + "Extended-Max-Requested-BW-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Max-Supported-BW-DL, Unsigned32, code 556, section 5.3.54 */ + { + struct dict_avp_data data = { + 556, /* Code */ + 10415, /* Vendor */ + "Extended-Max-Supported-BW-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Max-Supported-BW-UL, Unsigned32, code 557, section 5.3.55 */ + { + struct dict_avp_data data = { + 557, /* Code */ + 10415, /* Vendor */ + "Extended-Max-Supported-BW-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Min-Desired-BW-DL, Unsigned32, code 558, section 5.3.56 */ + { + struct dict_avp_data data = { + 558, /* Code */ + 10415, /* Vendor */ + "Extended-Min-Desired-BW-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Min-Desired-BW-UL, Unsigned32, code 559, section 5.3.57 */ + { + struct dict_avp_data data = { + 559, /* Code */ + 10415, /* Vendor */ + "Extended-Min-Desired-BW-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Min-Requested-BW-DL, Unsigned32, code 560, section 5.3.58 */ + { + struct dict_avp_data data = { + 560, /* Code */ + 10415, /* Vendor */ + "Extended-Min-Requested-BW-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Extended-Min-Requested-BW-UL, Unsigned32, code 561, section 5.3.59 */ + { + struct dict_avp_data data = { + 561, /* Code */ + 10415, /* Vendor */ + "Extended-Min-Requested-BW-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + /* Flow-Description, IPFilterRule, code 507, section 5.3.8 */ { struct dict_avp_data data = { @@ -2990,33 +3139,63 @@ CHECK_dict_new(DICT_AVP, &data, type, NULL); }; - /* Service-URN, OctetString, code 525, section 5.3.23 */ - { - struct dict_avp_data data = { - 525, /* Code */ - 10415, /* Vendor */ - "Service-URN", /* 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); - }; - - /* Specific-Action, Enumerated, code 513, section 5.3.13 */ - { - struct dict_avp_data data = { - 513, /* Code */ - 10415, /* Vendor */ - "Specific-Action", /* 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(3GPP/Specific-Action)", NULL, NULL, NULL }; - CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); - CHECK_dict_new(DICT_AVP, &data, type, NULL); + /* GCS-Identifier, OctetString, code 538, section 5.3.36 */ + { + struct dict_avp_data data = { + 538, /* Code */ + 10415, /* Vendor */ + "GCS-Identifier", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_OCTETSTRING /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* 3GPP TS 29.214 table 5.3.0.1 row IMS-Content-Identifier */ + /* missing M, assume MUST NOT. */ + /* IMS-Content-Identifier, OctetString, code 563, section 5.3.60 */ + { + struct dict_avp_data data = { + 563, /* Code */ + 10415, /* Vendor */ + "IMS-Content-Identifier", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_OCTETSTRING /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* 3GPP TS 29.214 table 5.3.0.1 row IMS-Content */ + /* missing M, assume MUST NOT. */ + /* IMS-Content-Type, Enumerated, code 564, section 5.3.61 */ + { + struct dict_avp_data data = { + 564, /* Code */ + 10415, /* Vendor */ + "IMS-Content-Type", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_INTEGER32 /* base type of data */ + }; + struct dict_object *type; + struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/IMS-Content-Type)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); + }; + + /* IP-Domain-Id, OctetString, code 537, section 5.3.35 */ + { + struct dict_avp_data data = { + 537, /* Code */ + 10415, /* Vendor */ + "IP-Domain-Id", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_OCTETSTRING /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; /* Max-Requested-Bandwidth-DL, Unsigned32, code 515, section 5.3.14 */ @@ -3045,6 +3224,58 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* Max-Supported-Bandwidth-DL, Unsigned32, code 543, section 5.3.41 */ + { + struct dict_avp_data data = { + 543, /* Code */ + 10415, /* Vendor */ + "Max-Supported-Bandwidth-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Max-Supported-Bandwidth-UL, Unsigned32, code 544, section 5.3.42 */ + { + struct dict_avp_data data = { + 544, /* Code */ + 10415, /* Vendor */ + "Max-Supported-Bandwidth-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* MCPTT-Identifier, OctetString, code 547, section 5.3.45 */ + { + struct dict_avp_data data = { + 547, /* Code */ + 10415, /* Vendor */ + "MCPTT-Identifier", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_OCTETSTRING /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* MCVideo-Identifier, OctetString, code 562, section 5.3.45a */ + { + struct dict_avp_data data = { + 562, /* Code */ + 10415, /* Vendor */ + "MCVideo-Identifier", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_OCTETSTRING /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + /* Media-Component-Description, Grouped, code 517, section 5.3.16 */ { struct dict_avp_data data = { @@ -3071,6 +3302,19 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* Media-Component-Status, Unsigned32, code 549, section 5.3.48 */ + { + struct dict_avp_data data = { + 549, /* Code */ + 10415, /* Vendor */ + "Media-Component-Status", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + /* Media-Sub-Component, Grouped, code 519, section 5.3.18 */ { struct dict_avp_data data = { @@ -3113,6 +3357,32 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* Min-Desired-Bandwidth-DL, Unsigned32, code 545, section 5.3.43 */ + { + struct dict_avp_data data = { + 545, /* Code */ + 10415, /* Vendor */ + "Min-Desired-Bandwidth-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Min-Desired-Bandwidth-UL, Unsigned32, code 546, section 5.3.44 */ + { + struct dict_avp_data data = { + 546, /* Code */ + 10415, /* Vendor */ + "Min-Desired-Bandwidth-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + /* Min-Requested-Bandwidth-DL, Unsigned32, code 534, section 5.3.32 */ { struct dict_avp_data data = { @@ -3139,6 +3409,80 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* Priority-Sharing-Indicator, Enumerated, code 550, section 5.3.47 */ + { + struct dict_avp_data data = { + 550, /* Code */ + 10415, /* Vendor */ + "Priority-Sharing-Indicator", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_INTEGER32 /* base type of data */ + }; + struct dict_object *type; + struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Priority-Sharing-Indicator)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); + }; + + /* Pre-emption-Control-Info, Unsigned32, code 553, section 5.3.51 */ + { + struct dict_avp_data data = { + 553, /* Code */ + 10415, /* Vendor */ + "Pre-emption-Control-Info", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Required-Access-Info, Enumerated, code 536, section 5.3.34 */ + { + struct dict_avp_data data = { + 536, /* Code */ + 10415, /* Vendor */ + "Required-Access-Info", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_INTEGER32 /* base type of data */ + }; + struct dict_object *type; + struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Required-Access-Info)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); + }; + + /* Retry-Interval, Unsigned32, code 541, section 5.3.39 */ + { + struct dict_avp_data data = { + 541, /* Code */ + 10415, /* Vendor */ + "Retry-Interval", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Rx-Request-Type, Enumerated, code 533, section 5.3.31 */ + { + struct dict_avp_data data = { + 533, /* Code */ + 10415, /* Vendor */ + "Rx-Request-Type", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_INTEGER32 /* base type of data */ + }; + struct dict_object *type; + struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Rx-Request-Type)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); + }; + /* RR-Bandwidth, Unsigned32, code 521, section 5.3.20 */ { struct dict_avp_data data = { @@ -3165,6 +3509,32 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; + /* Service-Authorization-Info, Unsigned32, code 548, section 5.3.46 */ + { + struct dict_avp_data data = { + 548, /* Code */ + 10415, /* Vendor */ + "Service-Authorization-Info", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Service-URN, OctetString, code 525, section 5.3.23 */ + { + struct dict_avp_data data = { + 525, /* Code */ + 10415, /* Vendor */ + "Service-URN", /* 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); + }; + /* Service-Info-Status, Enumerated, code 527, section 5.3.25 */ { struct dict_avp_data data = { @@ -3181,6 +3551,48 @@ CHECK_dict_new(DICT_AVP, &data, type, NULL); }; + /* Sharing-Key-DL, Unsigned32, code 539, section 5.3.37 */ + { + struct dict_avp_data data = { + 539, /* Code */ + 10415, /* Vendor */ + "Sharing-Key-DL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Sharing-Key-UL, Unsigned32, code 540, section 5.3.38 */ + { + struct dict_avp_data data = { + 540, /* Code */ + 10415, /* Vendor */ + "Sharing-Key-UL", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_UNSIGNED32 /* base type of data */ + }; + CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + }; + + /* Specific-Action, Enumerated, code 513, section 5.3.13 */ + { + struct dict_avp_data data = { + 513, /* Code */ + 10415, /* Vendor */ + "Specific-Action", /* 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(3GPP/Specific-Action)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); + }; + /* SIP-Forking-Indication, Enumerated, code 523, section 5.3.22 */ { struct dict_avp_data data = { @@ -3223,65 +3635,20 @@ CHECK_dict_new(DICT_AVP, &data, NULL, NULL); }; - /* AF-Signalling-Protocol, Enumerated, code 529, section 5.3.26 */ - { - struct dict_avp_data data = { - 529, /* Code */ - 10415, /* Vendor */ - "AF-Signalling-Protocol", /* Name */ - AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ - AVP_FLAG_VENDOR, /* Fixed flag values */ - AVP_TYPE_INTEGER32 /* base type of data */ - }; - struct dict_object *type; - struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/AF-Signalling-Protocol)", NULL, NULL, NULL }; - CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); - CHECK_dict_new(DICT_AVP, &data, type, NULL); - }; - - /* Required-Access-Info, Enumerated, code 536, section 5.3.34 */ - { - struct dict_avp_data data = { - 536, /* Code */ - 10415, /* Vendor */ - "Required-Access-Info", /* Name */ - AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ - AVP_FLAG_VENDOR, /* Fixed flag values */ - AVP_TYPE_INTEGER32 /* base type of data */ - }; - struct dict_object *type; - struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Required-Access-Info)", NULL, NULL, NULL }; - CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); - CHECK_dict_new(DICT_AVP, &data, type, NULL); - }; - - /* Rx-Request-Type, Enumerated, code 533, section 5.3.31 */ - { - struct dict_avp_data data = { - 533, /* Code */ - 10415, /* Vendor */ - "Rx-Request-Type", /* Name */ - AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ - AVP_FLAG_VENDOR, /* Fixed flag values */ - AVP_TYPE_INTEGER32 /* base type of data */ - }; - struct dict_object *type; - struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Rx-Request-Type)", NULL, NULL, NULL }; - CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); - CHECK_dict_new(DICT_AVP, &data, type, NULL); - }; - - /* IP-Domain-Id, OctetString, code 537, section 5.3.35 */ - { - struct dict_avp_data data = { - 537, /* Code */ - 10415, /* Vendor */ - "IP-Domain-Id", /* Name */ - AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ - AVP_FLAG_VENDOR, /* Fixed flag values */ - AVP_TYPE_OCTETSTRING /* base type of data */ - }; - CHECK_dict_new(DICT_AVP, &data, NULL, NULL); + /* Sponsoring-Action, Enumerated, code 542, section 5.3.40 */ + { + struct dict_avp_data data = { + 542, /* Code */ + 10415, /* Vendor */ + "Sponsoring-Action", /* Name */ + AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */ + AVP_FLAG_VENDOR, /* Fixed flag values */ + AVP_TYPE_INTEGER32 /* base type of data */ + }; + struct dict_object *type; + struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Sponsoring-Action)", NULL, NULL, NULL }; + CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type); + CHECK_dict_new(DICT_AVP, &data, type, NULL); }; /* 3GPP 29.229-b20 (11.2.0 2012.12.21) */ diff -r d6469b0f2111 -r 6029afe9bacb extensions/dict_dcca_3gpp/dict_dcca_3gpp.org --- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org Tue Feb 25 09:58:59 2020 +1100 +++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org Tue Feb 25 10:42:08 2020 +1100 @@ -227,7 +227,10 @@ | # 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) | | | | | | | | | +| # | | | | | | | | | +| # 3GPP TS 29.214 V15.7.0 (2019-09) | | | | | | | | | +| # From 3GPP 29214-f70.doc | | | | | | | | | +| # | | | | | | | | | | 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 | @@ -235,34 +238,65 @@ | 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 | +| AF-Requested-Data | 551 | 5.3.50 | Unsigned32 | V | P | | M | Y | +| AF-Signalling-Protocol | 529 | 5.3.26 | Enumerated | V | P | | M | 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 | +| Content-Version | 552 | 5.3.49 | Unsigned64 | V | P | | M | Y | +| Extended-Max-Requested-BW-DL | 554 | 5.3.52 | Unsigned32 | V | P | | M | Y | +| Extended-Max-Requested-BW-UL | 555 | 5.3.53 | Unsigned32 | V | P | | M | Y | +| Extended-Max-Supported-BW-DL | 556 | 5.3.54 | Unsigned32 | V | P | | M | Y | +| Extended-Max-Supported-BW-UL | 557 | 5.3.55 | Unsigned32 | V | P | | M | Y | +| Extended-Min-Desired-BW-DL | 558 | 5.3.56 | Unsigned32 | V | P | | M | Y | +| Extended-Min-Desired-BW-UL | 559 | 5.3.57 | Unsigned32 | V | P | | M | Y | +| Extended-Min-Requested-BW-DL | 560 | 5.3.58 | Unsigned32 | V | P | | M | Y | +| Extended-Min-Requested-BW-UL | 561 | 5.3.59 | Unsigned32 | V | P | | M | 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 | +| GCS-Identifier | 538 | 5.3.36 | OctetString | V | P | | M | Y | +| # 3GPP TS 29.214 table 5.3.0.1 row IMS-Content-Identifier | | | | | | | | | +| # missing M, assume MUST NOT. | | | | | | | | | +| IMS-Content-Identifier | 563 | 5.3.60 | OctetString | V | P | | M | Y | +| # 3GPP TS 29.214 table 5.3.0.1 row IMS-Content | | | | | | | | | +| # missing M, assume MUST NOT. | | | | | | | | | +| IMS-Content-Type | 564 | 5.3.61 | Enumerated | V | P | | M | Y | +| IP-Domain-Id | 537 | 5.3.35 | OctetString | V | P | | M | 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 | +| Max-Supported-Bandwidth-DL | 543 | 5.3.41 | Unsigned32 | V | P | | M | Y | +| Max-Supported-Bandwidth-UL | 544 | 5.3.42 | Unsigned32 | V | P | | M | Y | +| MCPTT-Identifier | 547 | 5.3.45 | OctetString | V | P | | M | Y | +| MCVideo-Identifier | 562 | 5.3.45a | OctetString | V | P | | M | 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-Component-Status | 549 | 5.3.48 | Unsigned32 | V | P | | M | 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-Desired-Bandwidth-DL | 545 | 5.3.43 | Unsigned32 | V | P | | M | | +| Min-Desired-Bandwidth-UL | 546 | 5.3.44 | Unsigned32 | V | P | | M | | | 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 | +| Priority-Sharing-Indicator | 550 | 5.3.47 | Enumerated | V | P | | M | Y | +| Pre-emption-Control-Info | 553 | 5.3.51 | Unsigned32 | V | P | | M | Y | +| Required-Access-Info | 536 | 5.3.34 | Enumerated | V | P | | M | Y | +| Retry-Interval | 541 | 5.3.39 | Unsigned32 | V | P | | M | Y | +| Rx-Request-Type | 533 | 5.3.31 | Enumerated | 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-Authorization-Info | 548 | 5.3.46 | Unsigned32 | V | P | | M | Y | +| Service-URN | 525 | 5.3.23 | OctetString | M,V | P | | | Y | | Service-Info-Status | 527 | 5.3.25 | Enumerated | M,V | P | | | Y | +| Sharing-Key-DL | 539 | 5.3.37 | Unsigned32 | V | P | | M | Y | +| Sharing-Key-UL | 540 | 5.3.38 | Unsigned32 | V | P | | M | Y | +| Specific-Action | 513 | 5.3.13 | 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 | +| Sponsoring-Action | 542 | 5.3.40 | Enumerated | 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 |