From 7721c6ab406aaf29cf1b2d782c5baf65d2b0e2da Mon Sep 17 00:00:00 2001
From: Anders Svensson
Date: Thu, 13 Oct 2011 01:34:07 +0200
Subject: Update documentation
---
lib/diameter/doc/src/diameter.xml | 123 +++++++++++++++++++++++++++++++++++---
1 file changed, 116 insertions(+), 7 deletions(-)
(limited to 'lib/diameter/doc')
diff --git a/lib/diameter/doc/src/diameter.xml b/lib/diameter/doc/src/diameter.xml
index 43c497f50a..2d8edb1301 100644
--- a/lib/diameter/doc/src/diameter.xml
+++ b/lib/diameter/doc/src/diameter.xml
@@ -431,7 +431,7 @@ eval(F) ->
-Evaluating an evaluable() E on an argument list A
+Applying an evaluable() E to an argument list A
is meant in the sense of eval([E|A]).
@@ -565,7 +565,7 @@ Pkt = #diameter_packet{}
-Reports that the RFC 3539 watchdog state machine has
+The RFC 3539 watchdog state machine has
transitioned into (up) or out of (down) the open
state.
If a diameter_packet record is present in an up tuple
@@ -576,9 +576,9 @@ connectivity.
Note that a single up/down event for a given peer corresponds to
-as many peer_up/down callbacks as there are Diameter
-applications shared by the peer, as determined during capablilities
-exchange.
+as many peer_up/peer_down
+callbacks as there are Diameter applications shared by the peer,
+as determined during capablilities exchange.
That is, the event communicates connectivity with the
peer as a whole while the callbacks communicate connectivity with
respect to individual Diameter applications.
@@ -597,12 +597,96 @@ transport connection with a peer following reconnect_timer or
watchdog_timer expiry.
+{closed, Ref, Reason, Config}
+-
+
+Ref = transport_ref()
+Config = {connect|listen, [transport_opt()]}
+
+
+
+Capabilities exchange has failed. Reason can be one of
+the following.
+
+
+
+{'CER', Result, Caps, Pkt}
+-
+
+Result = ResultCode | {capabilities_cb, CB, ResultCode|discard}
+Caps = #diameter_caps{}
+Pkt = #diameter_packet{}
+ResultCode = integer()
+CB = evaluable()
+
+
+
+An incoming CER has been answered with the indicated result code or
+discarded.
+The capabilities record contains pairs of values for the the local
+node and remote peer.
+The packet record contains the CER in question.
+In the case of rejection by a capabilities callback, the tuple
+indicates the rejecting callback.
+
+
+{'CER', Caps, {ResultCode, Pkt}}
+-
+
+ResultCode = integer()
+Caps = #diameter_caps{}
+Pkt = #diameter_packet{}
+
+
+
+An incoming CER contained errors and has been answered with the
+indicated result code.
+The capabilities record contains only values for the the local
+node.
+The packet record contains the CER in question.
+
+
+{'CEA', Result, Caps, Pkt}
+-
+
+Result = integer() | atom() | {capabilities_cb, CB, ResultCode|discard}
+Caps = #diameter_caps{}
+Pkt = #diameter_packet{}
+ResultCode = integer()
+
+
+
+An incoming CEA has been rejected for the indicated reason.
+An integer-valued Result indicates the result code sent
+by the peer.
+The capabilities record contains pairs of values for the the local
+node and remote peer.
+The packet record contains the CEA in question.
+In the case of rejection by a capabilities callback, the tuple
+indicates the rejecting callback.
+
+
+{'CEA', Caps, Pkt}
+-
+
+Caps = #diameter_caps{}
+Pkt = #diameter_packet{}
+
+
+
+An incoming CER contained errors and has been rejected.
+The capabilities record contains only values for the the local node.
+The packet record contains the CEA in question.
+
+
+
+
+
For forward compatibility, a subscriber should be prepared to receive
-diameter_event.info of forms other than those documented
-above.
+info fields of forms other than the above.
@@ -706,6 +790,31 @@ not over SCTP as implemented by
diameter_sctp(3).
+{capabilities_cb, evaluable()}
+-
+
+A callback invoked upon reception of CER/CEA during capabilities
+exchange in order to ask whether or not the connection should
+be accepted.
+Applied to the transport reference (as returned by add_transport/2) and
+diameter_caps record of the connection.
+Returning ok accepts the connection.
+Returning integer() causes an incoming
+CER to be answered with the specified Result-Code.
+Returning discard causes an incoming CER to
+be discarded.
+Returning unknown is equivalent to returning 3010,
+DIAMETER_UNKNOWN_PEER.
+Returning anything but ok or a 2xxx series result
+code causes the transport connection to be broken.
+
+
+Multiple capabilities_cb options can be specified, in which
+case the corresponding callbacks are applied until either all return
+ok or one does not.
+
+
{watchdog_timer, TwInit}
-
--
cgit v1.2.3