From 6530d6b10490311d37080da982282a3b69bad059 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Wed, 29 Aug 2012 11:49:46 +0200 Subject: Add SCTP warning, more references --- lib/diameter/doc/src/diameter_sctp.xml | 48 +++++++++++++++++++--------- lib/diameter/doc/src/diameter_tcp.xml | 49 ++++++++++++++++++----------- lib/diameter/doc/src/diameter_transport.xml | 2 +- 3 files changed, 64 insertions(+), 35 deletions(-) diff --git a/lib/diameter/doc/src/diameter_sctp.xml b/lib/diameter/doc/src/diameter_sctp.xml index 03e2f1f6be..7e02a07bb4 100644 --- a/lib/diameter/doc/src/diameter_sctp.xml +++ b/lib/diameter/doc/src/diameter_sctp.xml @@ -60,9 +60,9 @@ and implements the behaviour documented in Type = connect | accept Ref = diameter:transport_ref() Svc = #diameter_service{} -Opt = {raddr, inet:ip_address()} | {rport, integer()} | term() +Opt = {raddr, inet:ip_address()} | {rport, integer()} | term() Pid = pid() -LAddr = inet:ip_address() +LAddr = inet:ip_address() Reason = term() @@ -75,12 +75,13 @@ marker="diameter_transport#start">diameter_transport(3).

The only diameter_sctp-specific argument is the options list. Options raddr and rport specify the remote address and port for a connecting transport and not valid for a listening -transport. -The former is required while latter defaults to 3868 if unspecified. +transport: the former is required while latter defaults to 3868 if +unspecified. More than one raddr option can be specified, in which case the connecting transport in question attempts each in sequence until an association is established. -Remaining options are any accepted by gen_sctp:open/1, with the exception +Remaining options are any accepted by gen_sctp:open/1, with the exception of options mode, binary, list, active and sctp_events. Note that options ip and port specify the local address @@ -88,30 +89,45 @@ and port respectively.

Multiple ip options can be specified for a multihomed peer. -If none are specified then the values of Host-IP-Address -on the service are used. (In particular, one of these must be specified.) +If none are specified then the values of Host-IP-Address +in the #diameter_service{} record are used. +(In particular, one of these must be specified.) Option port defaults to 3868 for a listening transport and 0 for a connecting transport.

+ +

+An insufficiently large receive buffer may result in a peer having to +resend incoming messages: set the inet option recbuf to increase +the buffer size.

+ +

+An insufficiently large send buffer may result in outgoing messages +being discarded: set the inet option sndbuf to increase +the buffer size.

+
+

diameter_sctp uses the transport_data field of -the diameter_packet record to communicate the stream on which an +the #diameter_packet{} record to communicate the stream on which an inbound message has been received, or on which an outbound message should be sent: the value will be of the form {stream, Id} on an inbound message passed to a handle_request or handle_answer callback. -For an outbound message, either undefined (explicitly of -by specifying the outbound message as a binary()) or a tuple +For an outbound message, either undefined (explicitly or +by receiving the outbound message as a binary()) or a tuple should be set in the return value of handle_request (typically by retaining the value passed into this function) or prepare_request. -The value undefined uses a "next outbound stream" id and then -increments this modulo the total number outbound streams. That -is, successive values of undefined cycle through all outbound -streams.

+The value undefined uses a "next outbound stream" id and +increments this modulo the total number outbound streams. +That is, successive values of undefined cycle through all +outbound streams.

@@ -128,7 +144,9 @@ streams.

SEE ALSO

-diameter_transport(3)

+diameter_transport(3), +gen_sctp(3), +inet(3)

diff --git a/lib/diameter/doc/src/diameter_tcp.xml b/lib/diameter/doc/src/diameter_tcp.xml index 6ad98c8640..b42d65701e 100644 --- a/lib/diameter/doc/src/diameter_tcp.xml +++ b/lib/diameter/doc/src/diameter_tcp.xml @@ -38,8 +38,9 @@ under the License.

-This module implements diameter transport over TCP using gen_tcp. -It can be specified as the value of a transport_module option to +This module implements diameter transport over TCP using gen_tcp. +It can be specified as the value of a transport_module option to diameter:add_transport/2 and implements the behaviour documented in @@ -67,15 +68,15 @@ before configuring TLS capability on diameter transports.

Type = connect | accept Ref = diameter:transport_ref() Svc = #diameter_service{} -Opt = OwnOpt | SslOpt | OtherOpt +Opt = OwnOpt | SslOpt | TcpOpt Pid = pid() -LAddr = inet:ip_address() +LAddr = inet:ip_address() Reason = term() -OwnOpt = {raddr, inet:ip_address()} +OwnOpt = {raddr, inet:ip_address()} | {rport, integer()} | {port, integer()} SslOpt = {ssl_options, true | list()} -OtherOpt = term() +TcpOpt = term() @@ -89,25 +90,32 @@ Options raddr and rport specify the remote address and port for a connecting transport and are not valid for a listening transport. Option ssl_options must be specified for a transport -that must be able to support TLS: a value of true results in a +that should support TLS: a value of true results in a TLS handshake immediately upon connection establishment while -list() specifies options to be passed to ssl:connect/2 of ssl:ssl_accept/2 +list() specifies options to be passed to ssl:connect/2 or +ssl:ssl_accept/2 after capabilities exchange if TLS is negotiated. -Remaining options are any accepted by ssl:connect/3 or gen_tcp:connect/3 for -a connecting transport, or ssl:listen/3 or gen_tcp:listen/2 for +Remaining options are any accepted by ssl:connect/3 or gen_tcp:connect/3 for +a connecting transport, or ssl:listen/3 or gen_tcp:listen/2 for a listening transport, depending on whether or not {ssl_options, true} has been specified. -Options binary, packet and active cannot be specified. +Options binary, +packet and active cannot be specified. Also, option port can be specified for a listening transport to specify the local listening port, the default being the standardized 3868 if unspecified. -Note that option ip specifies the local address.

+Note that the option ip specifies the local address.

An ssl_options list must be specified if and only if -the transport in question has specified an Inband-Security-Id -AVP with value TLS on the relevant call to -Inband-Security-Id to +1 (TLS), as +specified to either start_service/2 or add_transport/2, @@ -122,9 +130,9 @@ that will not be forthcoming, which will eventually cause the RFC 3539 watchdog to take down the connection.

-If the service specifies more than one Host-IP-Address and -option ip is unspecified then the -first of the service's addresses is used as the local address.

+If the #diameter_service{} record has more than one +Host-IP-Address and option ip is unspecified then the +first of the these addresses is used as the local address.

The returned local address list has length one.

@@ -142,7 +150,10 @@ The returned local address list has length one.

diameter(3), -diameter_transport(3)

+diameter_transport(3), +gen_tcp(3), +inet(3), +ssl(3)

diff --git a/lib/diameter/doc/src/diameter_transport.xml b/lib/diameter/doc/src/diameter_transport.xml index 4890333669..e852041278 100644 --- a/lib/diameter/doc/src/diameter_transport.xml +++ b/lib/diameter/doc/src/diameter_transport.xml @@ -63,7 +63,7 @@ parent).

Svc = #diameter_service{} Opts = term() Pid = pid() -LAddrs = [inet:ip_address()] +LAddrs = [inet:ip_address()] Reason = term() -- cgit v1.2.3