From 3c15ff32e89e401b4dde2b8acc9699be2614b996 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Wed, 18 May 2011 18:29:12 +0200 Subject: Initial commit of the diameter application. The application provides an implementation of the Diameter protocol as defined in RFC 3588. --- lib/diameter/doc/src/diameter_sctp.xml | 133 +++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 lib/diameter/doc/src/diameter_sctp.xml (limited to 'lib/diameter/doc/src/diameter_sctp.xml') diff --git a/lib/diameter/doc/src/diameter_sctp.xml b/lib/diameter/doc/src/diameter_sctp.xml new file mode 100644 index 0000000000..d0377f4b38 --- /dev/null +++ b/lib/diameter/doc/src/diameter_sctp.xml @@ -0,0 +1,133 @@ + + + + +
+ +2011 +Ericsson AB. All Rights Reserved. + + +The contents of this file are subject to the Erlang Public License, +Version 1.1, (the "License"); you may not use this file except in +compliance with the License. You should have received a copy of the +Erlang Public License along with this software. If not, it can be +retrieved online at http://www.erlang.org/. + +Software distributed under the License is distributed on an "AS IS" +basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +the License for the specific language governing rights and limitations +under the License. + + + +diameter_sctp(3) +Anders Svensson + + + + + + +diameter_sctp.xml +
+ +diameter_sctp +Diameter transport over SCTP. + + + +

+This module implements diameter transport over SCTP using gen_sctp. +It can be specified as the value of a transport_module option to +diameter:add_transport/2 +and implements the behaviour documented in +diameter_transport(3).

+ + +
+ + + + + + +start({Type, Ref}, Svc, [Opt]) + -> {ok, Pid, [LAddr]} | {error, Reason} +Start a transport process. + +Type = connect | accept +Ref = reference() +Svc = #diameter_service{} +Opt = {raddr, ip_address()} | {rport, integer()} | term() +Pid = pid() +LAddr = ip_address() +Reason = term() + + + +

+The start function required by 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 connector and not valid for a listener. +The former is required while latter defaults to 3868 if unspecified. +More than one raddr option can be specified, in which case the +connector in question attempts each in sequence until an association +is established. +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 +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.) +Option port defaults to 3868 for a listener and 0 for a connector.

+ +

+diameter_sctp uses the transport_data field of +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 +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.

+ + + + +
+
+ +
+ + + + +
+SEE ALSO + +

+diameter_transport(3)

+ +
+ +
-- cgit v1.2.3