Provided by: erlang-manpages_18.3-dfsg-1ubuntu3.1_all bug

NAME

       diameter_sctp - Diameter transport over SCTP.

DESCRIPTION

       This  module  implements  diameter  transport  over  SCTP  using gen_sctp(3erl). 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(3erl).

EXPORTS

       start({Type, Ref}, Svc, [Opt]) -> {ok, Pid, [LAddr]} | {error, Reason}

              Types:

                 Type = connect | accept
                 Ref = diameter:transport_ref()
                 Svc = #diameter_service{}
                 Opt = OwnOpt | SctpOpt
                 Pid = pid()
                 LAddr = inet:ip_address()
                 Reason = term()
                 OwnOpt = {raddr, inet:ip_address()} | {rport, integer()} | {accept, Match}
                 SctpOpt = term()
                 Match = inet:ip_address() | string() | [Match]

              The start function required by diameter_transport(3erl).

              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. Multiple raddr options can be specified, in
              which case the connecting transport in question attempts each in sequence until  an
              association is established.

              Option accept specifies remote addresses for a listening transport and is not valid
              for a connecting transport. If specified, a remote address that does not match  one
              of  the  specified  addresses causes the association to be aborted. Multiple accept
              options can be specified. A string-valued Match that does not parse as  an  address
              is interpreted as a regular expression.

              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 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.

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

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

              The transport_data field of record  diameter_packet  is  used  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} for  an  inbound
              message  passed  to a handle_request/3 or handle_answer/4 callback. For an outbound
              message,  {outstream,  Id}   in   the   return   value   of   handle_request/3   or
              prepare_retransmit/3  sets  the  outbound  stream,  the stream id being interpreted
              modulo the number of outbound streams. Any other value, or  not  setting  a  value,
              causes successive such sends to cycle though all outbound streams.

SEE ALSO

       diameter(3erl), diameter_transport(3erl), gen_sctp(3erl), inet(3erl)