diff options
Diffstat (limited to 'lib/diameter/doc/src/notes.xml')
-rw-r--r-- | lib/diameter/doc/src/notes.xml | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/lib/diameter/doc/src/notes.xml b/lib/diameter/doc/src/notes.xml index eafddd7d1e..6e364a3200 100644 --- a/lib/diameter/doc/src/notes.xml +++ b/lib/diameter/doc/src/notes.xml @@ -36,6 +36,249 @@ first.</p> <!-- ===================================================================== --> +<section><title>Diameter 1.0</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fix faulty cleanup after diameter:remove_transport/2.</p> + <p> + Removing a transport removed the configuration but did + not prevent the transport process from being restarted.</p> + <p> + Own Id: OTP-9756</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Add support for TLS over TCP.</p> + <p> + RFC 3588 requires that a Diameter server support TLS. In + practice this seems to mean TLS over SCTP since there are + limitations with running over SCTP: see RFC 6083 (DTLS + over SCTP), which is a response to RFC 3436 (TLS over + SCTP). The current RFC 3588 draft acknowledges this by + equating TLS with TLS/TCP and DTLS/SCTP.</p> + <p> + TLS handshaking can take place either following a CER/CEA + that negotiates TLS using the Inband-Security-Id AVP (the + method documented in RFC 3588) or immediately following + connection establishment (the method added to the current + draft).</p> + <p> + Own Id: OTP-9605</p> + </item> + <item> + <p> + Improvements to the dictionary parser.</p> + <p> + The dictionary parser now emits useful error messages in + case of faults in the input file, also identifying the + line number at which the fault was detected. There are + semantic checks that were missing in the previous parser, + a fault in the interpretation of vendor id's in + combination with @inherits has been fixed and @end can be + used to terminate parsing explicitly instead of always + parsing to end of file.</p> + <p> + Own Id: OTP-9639</p> + </item> + <item> + <p> + Improve dictionary reusability.</p> + <p> + Reusing a dictionary just to get a different generated + module name or prefix previously required taking a copy + of the source, which may consist of several files if + inheritance is used, just to edit a couple of lines which + don't affect the semantics of the Diameter application + being defined. Options --name, --prefix and --inherits + have been added to diameterc to allow corresponding + values to be set at compile time.</p> + <p> + Own Id: OTP-9641</p> + </item> + <item> + <p> + Add capabilities_cb transport option.</p> + <p> + Its value is a function that's applied to the transport + reference and capabilities record after capabilities + exchange. If a callback returns anything but 'ok' then + the connection is closed. In the case of an incoming CER, + the callback can return a result code with which to + answer. Multiple callbacks can be specified and are + applied until either all return 'ok' or one doesn't.</p> + <p> + This provides a way to reject a peer connection.</p> + <p> + Own Id: OTP-9654</p> + </item> + <item> + <p> + Add @codecs to dictionary format.</p> + <p> + The semantics are similar to @custom_types but results in + codec functions of the form TypeName(encode|decode, + AvpName, Data) rather than AvpName(encode|decode, + TypeName, Data). That is, the role of the AVP name and + Diameter type name are reversed. This eliminates the need + for exporting one function for each AVP sharing a common + specialized encode/decode.</p> + <p> + Own Id: OTP-9708 Aux Id: OTP-9639 </p> + </item> + <item> + <p> + Add #diameter_callback{} for more flexible callback + configuration.</p> + <p> + The record allows individual functions to be configured + for each of the diameter_app(3) callbacks, as well as a + default callback.</p> + <p> + Own Id: OTP-9777</p> + </item> + </list> + </section> + +</section> + +<section><title>Diameter 0.10</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Handle #sctp_paddr_change and #sctp_pdapi_event from + gen_sctp.</p> + <p> + The events are enabled by default but diameter_sctp + neither disabled nor dealt with them. Reception of such + an event caused a transport process to crash.</p> + <p> + Own Id: OTP-9538</p> + </item> + <item> + <p> + Fix header folding bug.</p> + <p> + A prepare_request callback from diameter can return a + diameter_header record in order to set values in the + header of an outgoing request. A fault in + diameter_lib:fold_tuple/3 caused the subsequent encode of + the outgoing request to fail.</p> + <p> + Own Id: OTP-9577</p> + </item> + <item> + <p> + Fix bugs in sending of answer-message replies.</p> + <p> + 3001 (DIAMETER_COMMAND_UNSUPPORTED) was not sent since + the decode placed the AVP list in the wrong field of the + diameter_packet, causing the subsequent encode to fail. + Session-Id was also set improperly, causing encode to + fail even in this case.</p> + <p> + Own Id: OTP-9578</p> + </item> + <item> + <p> + Fix improper use of error_logger:info_report/2.</p> + <p> + Function doesn't take a format string and arguments as it + was called. Instead use error_logger:info_report/1 and + use the same report format as used for warning and error + reports.</p> + <p> + Own Id: OTP-9579</p> + </item> + <item> + <p> + Fix and clarify semantics of peer filters.</p> + <p> + An eval filter returning a non-true value caused the call + process to fail and the doc was vague on how an exception + was treated. Clarify that the non-tuple host/realm + filters assume messages of a certain form.</p> + <p> + Own Id: OTP-9580</p> + </item> + <item> + <p> + Fix and clarify relay behaviour.</p> + <p> + Implicit filtering of the sending peer in relaying a + request could cause loop detection to be preempted in a + manner not specified by RFC3588. Reply with 3002 + (DIAMETER_UNABLE_TO_DELIVER) on anything but an answer to + a relayed request.</p> + <p> + Own Id: OTP-9583</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + @id required in dictionary files only when @messages is + specified.</p> + <p> + @id defines an application identifier and this is used + only when sending or receiving messages. A dictionary can + define only AVP's however, to be included by other + dictionaries using @inherits, in which case it makes no + sense to require @id.</p> + <p> + Note that message definitions are not inherited with + @inherits, only AVP's</p> + <p> + Own Id: OTP-9467</p> + </item> + <item> + <p> + Allow @enum when AVP is defined in an inherited + dictionary.</p> + <p> + 3GPP standards (for one) extend the values allowed for + RFC 3588 AVP's of type Enumerated. Previously, extending + an AVP was only possible by completely redefining the + AVP.</p> + <p> + Own Id: OTP-9469</p> + </item> + <item> + <p> + Migrate testsuites to pure common test and add both + suites and testcases.</p> + <p> + Own Id: OTP-9553</p> + </item> + <item> + <p> + Requests of arbitrary form.</p> + <p> + diameter:call/4 can be passed anything, as long as the + subsequent prepare_request callback returns a term that + can be encoded.</p> + <p> + Own Id: OTP-9581</p> + </item> + </list> + </section> + +</section> + <section> <title>diameter 0.9</title> |