Provided by: erlang-manpages_25.3.2.8+dfsg-1ubuntu4_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} | {unordered,
                 boolean() | pos_integer()} | {packet,  boolean()  |  raw}  |  {message_cb,  diameter:eval()}  |
                 {sender, boolean()}
                 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.

              Option unordered specifies whether or not to use unordered delivery, integer N being equivalent to
              N =< OS, where OS is the number of outbound streams negotiated on  the  association  in  question.
              Regardless  of  configuration, sending is ordered on stream 0 until reception of a second incoming
              message, to ensure that a peer receives capabilities exchange messages before any other.  Defaults
              to false.

              Option  packet determines how/if an incoming message is packaged into a diameter_packet record. If
              false then messages are received as binary(). If true then as a record with the  binary()  message
              in  the bin field and a {stream, Id} tuple in the transport_data field, where Id is the identifier
              of the inbound stream the message was received on. If raw then  as  a  record  with  the  received
              ancillary sctp_sndrcvinfo record in the transport_data field. Defaults to true.

              Options  message_cb and sender have semantics identical to those documented in diameter_tcp(3erl),
              but with the message argument to a recv callback being as directed by the packet option.

              An {outstream, Id} tuple in the transport_data field of a outgoing diameter_packet record sets the
              outbound  stream  on  which the message is sent, modulo the negotiated number of outbound streams.
              Any other value causes successive such sends to cycle though all outbound streams.

              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. Option port defaults to 3868 for a
              listening transport and 0 for a connecting transport.

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

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

SEE ALSO

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