trusty (3) diameter_sctp.3erl.gz

Provided by: erlang-manpages_16.b.3-dfsg-1ubuntu2.2_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.

              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/3   or   handle_answer/4  callback.  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/3 (typically by retaining the value passed into this function) or
              prepare_request/3. 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.

SEE ALSO

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