aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/doc/src/notes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/diameter/doc/src/notes.xml')
-rw-r--r--lib/diameter/doc/src/notes.xml440
1 files changed, 433 insertions, 7 deletions
diff --git a/lib/diameter/doc/src/notes.xml b/lib/diameter/doc/src/notes.xml
index d241e2bd19..e750b56f1e 100644
--- a/lib/diameter/doc/src/notes.xml
+++ b/lib/diameter/doc/src/notes.xml
@@ -11,7 +11,7 @@
<header>
<copyright>
<year>2011</year>
-<year>2012</year>
+<year>2013</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -42,7 +42,433 @@ first.</p>
<!-- ===================================================================== -->
-<section><title>Diameter 1.3.1</title>
+<section><title>diameter 1.4.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fix handling of 5014 (INVALID_AVP_LENGTH) errors.</p>
+ <p>
+ This was in some cases reported as 3009
+ (INVALID_AVP_BITS).</p>
+ <p>
+ Note that the correction is partially implemented in
+ modules generated by diameterc(1): a dictionary file must
+ be recompiled for the correction to apply to any messages
+ it defines.</p>
+ <p>
+ Own Id: OTP-11007</p>
+ </item>
+ <item>
+ <p>
+ Fix faulty capitalization in release notes.</p>
+ <p>
+ Diameter = the protocol.<br/> diameter = the Erlang
+ application.</p>
+ <p>
+ Own Id: OTP-11014</p>
+ </item>
+ <item>
+ <p>
+ Fix watchdog memory leak.</p>
+ <p>
+ Entries were not removed from a service-specific ets
+ table, causing them to be orphaned at connection
+ reestablishment for listening transports, and
+ diameter:remove_transport/2 for both listening and
+ connecting transports.</p>
+ <p>
+ The fault was introduced by OTP-10692 in diameter-1.4.1
+ (R16B).</p>
+ <p>
+ Own Id: OTP-11019 Aux Id: OTP-10692 </p>
+ </item>
+ <item>
+ <p>
+ Fix decode failure on AVP Length &lt; 8.</p>
+ <p>
+ The failure caused the message in question to be
+ discarded.</p>
+ <p>
+ Own Id: OTP-11026</p>
+ </item>
+ <item>
+ <p>
+ Respect Host-IP-Address configuration.</p>
+ <p>
+ Addresses returned from a transport module were always
+ used to populate Host-IP-Address AVP's in an outgoing
+ CER/CEA, which precluded the sending of a VIP address.
+ Transport addresses are now only used if Host-IP-Address
+ is unspecified.</p>
+ <p>
+ Own Id: OTP-11045</p>
+ </item>
+ <item>
+ <p>
+ Fix mkdir race.</p>
+ <p>
+ Install could fail if examples/code and examples/dict
+ were created in parallel. Noticed on FreeBSD.</p>
+ <p>
+ Own Id: OTP-11051</p>
+ </item>
+ <item>
+ <p>
+ Fix recognition of 5001 on mandatory AVP's.</p>
+ <p>
+ An AVP setting the M-bit was not regarded as erroneous if
+ it was defined in the dictionary in question and its
+ container (message or Grouped AVP) had an 'AVP' field.
+ It's now regarded as a 5001 error (AVP_UNSUPPORTED), as
+ in the case that the AVP is not defined.</p>
+ <p>
+ Note that the correction is partially implemented in
+ modules generated by diameterc(1): a dictionary file must
+ be recompiled for the correction to apply to any messages
+ it defines.</p>
+ <p>
+ Own Id: OTP-11087</p>
+ </item>
+ <item>
+ <p>
+ Fix setting of Failed-AVP on handle_request
+ {answer_message, 5xxx} return.</p>
+ <p>
+ Failed-AVP was never in the outgoing answer-message. It
+ is now set with the AVP from the first entry with the
+ specified Result-Code in the errors field of the incoming
+ diameter_packet, if found.</p>
+ <p>
+ Own Id: OTP-11092</p>
+ </item>
+ <item>
+ <p>
+ Fix watchdog function_clause</p>
+ <p>
+ A listening transport on a service that allowed multiple
+ connections to the same peer could result in a
+ function_clause error in module diameter_watchdog. The
+ resulting crash was harmless but unseemly.</p>
+ <p>
+ Thanks to Aleksander Nycz.</p>
+ <p>
+ Own Id: OTP-11115</p>
+ </item>
+ <item>
+ <p>
+ Fix population of Failed-AVP.</p>
+ <p>
+ In cases in which diameter populated this AVP, many
+ values were sent instead of one as suggested by RFC 6733.
+ This was partially corrected by OTP-11007.</p>
+ <p>
+ Own Id: OTP-11127 Aux Id: OTP-11007 </p>
+ </item>
+ <item>
+ <p>
+ Fix list-valued Vendor-Specific-Application-Id config</p>
+ <p>
+ R16B (specifically, OTP-10760) broke the handling of such
+ configuration, resulting in a function clause error if
+ the list was not of length 3, and faulty interpretation
+ of the list's contents otherwise. Only record-valued
+ configuration was properly interpreted.</p>
+ <p>
+ Own Id: OTP-11165</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Allow peer connections to be shared between Erlang nodes
+ for the purpose of sending outgoing requests.</p>
+ <p>
+ A diameter_app(3) pick_peer/4 callback gets a list of
+ remote candidates as argument, allowing a callback on one
+ node to select a transport connection established on
+ another node. The service_opt() share_peers controls the
+ extent to which local connections are shared with remote
+ nodes. The service_opt() use_shared_peers controls the
+ extent to which connections shared from remote nodes are
+ utilized on the local node.</p>
+ <p>
+ Own Id: OTP-9610</p>
+ </item>
+ <item>
+ <p>
+ Allow listening diameter_{tcp,sctp} transports to be
+ configured with remote addresses.</p>
+ <p>
+ Option 'accept' allows remote addresses to be configured
+ as tuples or regular expressions. Remote addresses are
+ matched against the configured values at connection
+ establishment, any non-matching address causing the
+ connection to be aborted.</p>
+ <p>
+ Own Id: OTP-10893</p>
+ </item>
+ <item>
+ <p>
+ Detect more transport_opt() configuration errors at
+ diameter:add_transport/2.</p>
+ <p>
+ Many errors would previously not be detected until
+ transport start, diameter:add_transport/2 returning 'ok'
+ but transport connections failing to be established. An
+ error tuple is now returned.</p>
+ <p>
+ Own Id: OTP-10972</p>
+ </item>
+ <item>
+ <p>
+ Make explicit local address configuration optional in
+ diameter_tcp:start/3.</p>
+ <p>
+ The default address (as determined by gen_tcp) is now
+ used when a local address is not explicitly configured.</p>
+ <p>
+ Own Id: OTP-10986</p>
+ </item>
+ <item>
+ <p>
+ Improve handling of unrecognized service options.</p>
+ <p>
+ Such options were silently ignored by
+ diameter:start_service/2. An error tuple is now returned.</p>
+ <p>
+ Own Id: OTP-11017</p>
+ </item>
+ <item>
+ <p>
+ Don't send default Inband-Security-Id in CER/CEA.</p>
+ <p>
+ RFC 6733 recommends against the use of
+ Inband-Security-Id. Only send a value that differs from
+ the default, NO_INBAND_SECURITY = 0.</p>
+ <p>
+ Own Id: OTP-11050</p>
+ </item>
+ <item>
+ <p>
+ Make spawn options for request processes configurable.</p>
+ <p>
+ Own Id: OTP-11060</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>diameter 1.4.1.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fix broken Vendor-Specific-Application-Id configuration.</p>
+ <p>
+ RFC 6733 changed the definition of this Grouped AVP,
+ changing the arity of Vendor-Id from 1* to 1. A component
+ Vendor-Id can now be either list- or integer-valued in
+ service and transport configuration, allowing it to be
+ used with both RFC 3588 and RFC 6733 dictionaries.</p>
+ <p>
+ Own Id: OTP-10942</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Add transport_opt() watchdog_config to allow non-standard
+ behaviour of the watchdog state machine.</p>
+ <p>
+ This can be useful during test but should not be used on
+ nodes that must conform to RFC 3539.</p>
+ <p>
+ Own Id: OTP-10898</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>diameter 1.4.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fix erroneous watchdog transition from DOWN to INITIAL.</p>
+ <p>
+ This transition took place when a peer connection was
+ reestablished following a failed capabilities exchange.
+ RFC 3539 requires DOWN to transition into REOPEN.</p>
+ <p>
+ Own Id: OTP-10692</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Add application_opt() request_errors to make the handling
+ of incoming requests containing decode errors
+ configurable.</p>
+ <p>
+ The value 'callback' ensures that a handle_request
+ callback takes place for all such requests, the default
+ being for diameter to answer 3xxx series errors itself.</p>
+ <p>
+ Own Id: OTP-10686</p>
+ </item>
+ <item>
+ <p>
+ Add transport_opt() length_errors.</p>
+ <p>
+ The value determines how messages received over the
+ transport interface with an incorrect Message Length are
+ dealt with.</p>
+ <p>
+ Own Id: OTP-10687</p>
+ </item>
+ <item>
+ <p>
+ Add commentary on RFC 6733 to Standards Compliance
+ chapter of the User's Guide.</p>
+ <p>
+ Own Id: OTP-10688</p>
+ </item>
+ <item>
+ <p>
+ Allow a 5xxx result code in an answer-message on peer
+ connections using the RFC 6733 common dictionary.</p>
+ <p>
+ RFC 6733 allows this while RFC 3588 does not. A
+ handle_request callback can return {answer_message,
+ 3000..3999|5000..5999} in the simplest case.</p>
+ <p>
+ Own Id: OTP-10759</p>
+ </item>
+ <item>
+ <p>
+ Add dictionaries for RFC 6733.</p>
+ <p>
+ Both the common and accounting dictionaries differ from
+ their RFC 3588 counterparts, which is reflected in
+ generated record definitions. Application configuration
+ on a service or transport determines the dictionary that
+ will be used on a given peer connection.</p>
+ <p>
+ Own Id: OTP-10760</p>
+ </item>
+ <item>
+ <p>
+ Allow a handle_request callback to control diameter's
+ setting of Result-Code and Failed-AVP.</p>
+ <p>
+ Setting errors = false in a returned #diameter_packet{}
+ disables the setting.</p>
+ <p>
+ Own Id: OTP-10761</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>diameter 1.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Add registered server names to the app file.</p>
+ <p>
+ Own Id: OTP-10442</p>
+ </item>
+ <item>
+ <p>
+ Fix #diameter_header{} handling broken by OTP-10445.</p>
+ <p>
+ The fault caused the the header of a [Header | Avps]
+ request to be ignored if both end_to_end_id and
+ hop_by_hop_id were undefined.</p>
+ <p>
+ Own Id: OTP-10609</p>
+ </item>
+ <item>
+ <p>
+ Fix error handling for handle_request callback.</p>
+ <p>
+ A callback that returned a #diameter_packet{} would fail
+ if the incoming request had decode errors.</p>
+ <p>
+ Own Id: OTP-10614</p>
+ </item>
+ <item>
+ <p>
+ Fix timing of service start event.</p>
+ <p>
+ The event did not necessarily precede other events as
+ documented.</p>
+ <p>
+ Own Id: OTP-10618</p>
+ </item>
+ <item>
+ <p>
+ Fix setting of header T flag at peer failover.</p>
+ <p>
+ The flag is now set in the diameter_header record passed
+ to a prepare_retransmit callback.</p>
+ <p>
+ Own Id: OTP-10619</p>
+ </item>
+ <item>
+ <p>
+ Fix sending of CER/CEA timeout event at capx_timeout.</p>
+ <p>
+ The event was not sent as documented.</p>
+ <p>
+ Own Id: OTP-10628</p>
+ </item>
+ <item>
+ <p>
+ Fix improper setting of Application-ID in the Diameter
+ header of an answer message whose E flag is set.</p>
+ <p>
+ The value should be that of the request in question. The
+ fault caused it always to be 0.</p>
+ <p>
+ Own Id: OTP-10655</p>
+ </item>
+ <item>
+ <p>
+ Fix faulty handling of AVP length errors.</p>
+ <p>
+ An incorrect AVP length but no other errors caused an
+ incoming request to fail.</p>
+ <p>
+ Own Id: OTP-10693</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>diameter 1.3.1</title>
<section><title>Known Bugs and Problems</title>
<list>
@@ -58,7 +484,7 @@ first.</p>
</section>
-<section><title>Diameter 1.3</title>
+<section><title>diameter 1.3</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
@@ -215,7 +641,7 @@ first.</p>
</section>
-<section><title>Diameter 1.2</title>
+<section><title>diameter 1.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
@@ -315,7 +741,7 @@ first.</p>
</section>
-<section><title>Diameter 1.1</title>
+<section><title>diameter 1.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
@@ -342,7 +768,7 @@ first.</p>
</section>
-<section><title>Diameter 1.0</title>
+<section><title>diameter 1.0</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
@@ -456,7 +882,7 @@ first.</p>
</section>
-<section><title>Diameter 0.10</title>
+<section><title>diameter 0.10</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>