The start function required by diameter_transport(3).
The only diameter_tcp-specific argument is the options list.
Options raddr and rport specify the remote address
and port for a connecting transport and are not valid for a listening
transport.
Option ssl_options specifies options to be passed
to ssl:connect/2 of ssl:ssl_accept/2 in case capabilities exchange
results in TLS being chosen for inband security.
Remaining options are any accepted by gen_tcp:connect/3 for
a connecting transport, or gen_tcp:listen/2 for a listening transport,
with the exception of binary, packet and active.
Also, option port can be specified for a listening transport
to specify the local listening port, the default being the standardized
3868 if unspecified.
Note that option ip specifies the local address.
The ssl_options option must be specified if and only if
the transport in question has specified an Inband-Security-Id
AVP with value TLS on the relevant call to
start_service/2 or
add_transport/2,
so that the transport process will receive notification of
whether or not to commence with a TLS handshake following capabilities
exchange.
Failing to specify ssl_options on a TLS-capable transport
for which TLS is negotiated will cause TLS handshake to fail.
Failing to specify TLS capability when ssl_options has been
specified will cause the transport process to wait for a notification
that will not be forthcoming, which will eventually cause the RFC 3539
watchdog to take down the connection.
If the service specifies more than one Host-IP-Address and
option ip is unspecified then then the
first of the service's addresses is used as the local address.
The returned local address list has length one.