Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

diameter_sctp (3erl)

Name

diameter_sctp - Diameter transport over SCTP.

Synopsis

Please see following description for synopsis

Description

diameter_sctp(3)           Erlang Module Definition           diameter_sctp(3)



NAME
       diameter_sctp - Diameter transport over SCTP.

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

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(3).

              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 unspeci-
              fied. 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  trans-
              port  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  trans-
              port_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 trans-
              port_data field. Defaults to true.

              Options message_cb and sender have semantics identical to  those
              documented  in diameter_tcp(3), 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 outgo-
              ing 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(3) option recbuf to increase the
              buffer size.

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


SEE ALSO
       diameter(3), diameter_transport(3), gen_sctp(3), inet(3)



Ericsson AB                     diameter 2.2.4                diameter_sctp(3)