aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/doc/src/diameter.xml
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2013-02-12 12:52:15 +0100
committerAnders Svensson <[email protected]>2013-02-12 12:52:15 +0100
commitbbf692965470a9e993e1afd6f1a9375cbe832fcb (patch)
tree2c8fa685fd527b3190e1472b1257d3a0e1c1e47e /lib/diameter/doc/src/diameter.xml
parent117005a3ad1ddfd82891c13e65953dc8db9ae0d9 (diff)
parenta75772f2187e02e3efa8bdf972e8648cd64452a5 (diff)
downloadotp-bbf692965470a9e993e1afd6f1a9375cbe832fcb.tar.gz
otp-bbf692965470a9e993e1afd6f1a9375cbe832fcb.tar.bz2
otp-bbf692965470a9e993e1afd6f1a9375cbe832fcb.zip
Merge branch 'anders/diameter/message_length/OTP-10687'
* anders/diameter/message_length/OTP-10687: Add length suite for testing Message Length errors Fix test/depend.mk blunder Add transport_opt() length_errors Only start a fragment timer when there's something to flush Simplify and document diameter_tcp fragment timer Comment fix Remove upgrade code not needed after application restart
Diffstat (limited to 'lib/diameter/doc/src/diameter.xml')
-rw-r--r--lib/diameter/doc/src/diameter.xml36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/diameter/doc/src/diameter.xml b/lib/diameter/doc/src/diameter.xml
index 7e50f338d3..ba9225da8b 100644
--- a/lib/diameter/doc/src/diameter.xml
+++ b/lib/diameter/doc/src/diameter.xml
@@ -975,6 +975,42 @@ configured them.</p>
Defaults to a single callback returning <c>dpr</c>.</p>
</item>
+<marker id="length_errors"/>
+<tag><c>{length_errors, exit|handle|discard}</c></tag>
+<item>
+<p>
+Specifies how to deal with errors in the Message Length field of the
+Diameter Header in an incoming message.
+An error in this context is that the length is not at least 20 bytes
+(the length of a Header), is not a multiple of 4 (a valid length) or
+is not the length of the message in question, as received over the
+transport interface documented in &man_transport;.</p>
+
+<p>
+If <c>exit</c> then a warning report is emitted and the parent of the
+transport process in question exits, which causes the transport
+process itself to exit as described in &man_transport;.
+If <c>handle</c> then the message is processed as usual, a resulting
+&app_handle_request; or &app_handle_answer; callback (if one takes
+place) indicating the <c>5015</c> error (DIAMETER_INVALID_MESSAGE_LENGTH).
+If <c>discard</c> then the message in question is silently discarded.</p>
+
+<p>
+Defaults to <c>exit</c>.</p>
+
+<note>
+<p>
+The default value reflects the fact that a transport module for a
+stream-oriented transport like TCP may not be able to recover from a
+message length error since such a transport must use the Message
+Length header to divide the incoming byte stream into individual
+Diameter messages.
+An invalid length leaves it with no reliable way to rediscover message
+boundaries, which may result in the failure of subsequent messages.
+See &man_tcp; for the behaviour of that module.</p>
+</note>
+</item>
+
<marker id="reconnect_timer"/>
<tag><c>{reconnect_timer, Tc}</c></tag>
<item>