<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-text-flowed" style="font-family: -moz-fixed;
font-size: 12px;" lang="x-unicode">Patch Package: OTP
17.5.6.3
<br>
Git Tag: OTP-17.5.6.3
<br>
Date: 2015-08-13
<br>
Trouble Report Id: OTP-12871, OTP-12879, OTP-12891,
OTP-12902,
<br>
OTP-12912, OTP-12929, OTP-12930
<br>
Seq num:
<br>
System: OTP
<br>
Release: 17
<br>
Application: diameter-1.9.2.1
<br>
Predecessor: OTP 17.5.6.2
<br>
<br>
Check out the git tag OTP-17.5.6.3, and build a full OTP system
<br>
including documentation. Apply one or more applications from this
<br>
build as patches to your installation using the 'otp_patch_apply'
<br>
tool. For information on install requirements, see descriptions
for
<br>
each application version below.
<br>
<br>
---------------------------------------------------------------------
<br>
--- diameter-1.9.2.1
------------------------------------------------
<br>
---------------------------------------------------------------------
<br>
<br>
The diameter-1.9.2.1 application can be applied independently of
<br>
other applications on a full OTP 17 installation.
<br>
<br>
--- Fixed Bugs and Malfunctions ---
<br>
<br>
OTP-12871 Application(s): diameter
<br>
<br>
Don't report 5005 (DIAMETER_AVP_MISSING) errors
<br>
unnecessarily.
<br>
<br>
An AVP whose decode failed was reported as missing,
<br>
despite having been reported with another error as
a
<br>
consequence of the failure.
<br>
<br>
<br>
OTP-12879 Application(s): diameter
<br>
Related Id(s): OTP-12475
<br>
<br>
Fix relay encode of nested, Grouped AVPs.
<br>
<br>
A fault in OTP-12475 caused encode to fail if the
first
<br>
AVP in a Grouped AVP was itself Grouped.
<br>
<br>
<br>
OTP-12891 Application(s): diameter
<br>
<br>
Improve decode performance.
<br>
<br>
The time required to decode a message increased
<br>
quadratically with the number of AVPs in the worst
<br>
case, leading to extremely long execution times.
<br>
<br>
<br>
OTP-12902 Application(s): diameter
<br>
<br>
Match acceptable peer addresses case insensitively.
<br>
<br>
Regular expressions passed in an 'accept' tuple to
<br>
diameter_tcp or diameter_sctp inappropriately
matched
<br>
case.
<br>
<br>
<br>
OTP-12912 Application(s): diameter
<br>
<br>
Improve watchdog and statistics performance.
<br>
<br>
Inefficient use of timers contributed to poor
<br>
performance at high load, as did ordering of the
table
<br>
statistics are written to.
<br>
<br>
<br>
OTP-12929 Application(s): diameter
<br>
<br>
Fix start order of alternate transports.
<br>
<br>
A transport configured with
diameter:add_transport/2
<br>
can be passed multiple
<br>
transport_module/transport_config tuples in order
to
<br>
specify alternate configuration, modules being
<br>
attempted in order until one succeeds. This is
<br>
primarily for the connecting case; for example, to
<br>
allow a transport to be configured to first attempt
<br>
connection over SCTP, and then TCP in case SCTP
fails.
<br>
Multiple module tuples can be paired with a single
<br>
config tuple, but in this case the start order was
<br>
reversed relative to the order in which the modules
<br>
were specifed.
<br>
<br>
<br>
OTP-12930 Application(s): diameter
<br>
<br>
Fix decode of Grouped AVPs containing errors.
<br>
<br>
RFC 6733 says this of Failed-AVP in 7.5:
<br>
<br>
-- In the case where the offending AVP is embedded
<br>
within a Grouped AVP, the Failed-AVP MAY contain
the
<br>
grouped AVP, which in turn contains the single
<br>
offending AVP. The same method MAY be employed if
the
<br>
grouped AVP itself is embedded in yet another
grouped
<br>
AVP and so on. In this case, the Failed-AVP MAY
contain
<br>
the grouped AVP hierarchy up to the single
offending
<br>
AVP. This enables the recipient to detect the
location
<br>
of the offending AVP when embedded in a group.
<br>
<br>
It says this of DIAMETER_INVALID_AVP_LENGTH in
7.1.5:
<br>
<br>
-- The request contained an AVP with an invalid
length.
<br>
A Diameter message indicating this error MUST
include
<br>
the offending AVPs within a Failed-AVP AVP. In
cases
<br>
where the erroneous AVP length value exceeds the
<br>
message length or is less than the minimum AVP
header
<br>
length, it is sufficient to include the offending
AVP
<br>
header and a zero filled payload of the minimum
<br>
required length for the payloads data type. If the
AVP
<br>
is a Grouped AVP, the Grouped AVP header with an
empty
<br>
payload would be sufficient to indicate the
offending
<br>
AVP. In the case where the offending AVP header
cannot
<br>
be fully decoded when the AVP length is less than
the
<br>
minimum AVP header length, it is sufficient to
include
<br>
an offending AVP header that is formulated by
padding
<br>
the incomplete AVP header with zero up to the
minimum
<br>
AVP header length.
<br>
<br>
The AVPs placed in the errors field of a
<br>
diameter_packet record are intended to be
appropriate
<br>
for inclusion in a Failed-AVP, but neither of the
above
<br>
paragraphs has been followed in the Grouped case:
the
<br>
entire faulty AVP (non-faulty components and all)
has
<br>
been included. This made it difficult to identify
the
<br>
actual faulty AVP in all but simple cases.
<br>
<br>
The decode is now adapted to the RFC, and
implements
<br>
the suggested single faulty AVP, nested in as many
<br>
Grouped containers as required.
<br>
<br>
<br>
Full runtime dependencies of diameter-1.9.2.1: erts-6.0,
kernel-3.0,
<br>
ssl-5.3.4, stdlib-2.0
<br>
<br>
<br>
<br>
</div>
</body>
</html>