anchor.diff:           packet = true :: boolean()        %% legacy transport_data?
                           | raw,
            message_cb = false :: false | diameter:eval(),
  -         unordered = false :: boolean() | 0 | 1,   %% send unordered?
  +         unordered = 1 :: boolean() | 0 | 1,       %% send unordered?
            send = false :: pid() | boolean()}).      %% sending process
   
   %% Monitor process state.
  
positive.code:      = S) ->
      send(SId rem OS, Msg, S);
  
  %% ... or not: send unordered on a lone stream ...
  send(Msg, #transport{unordered = true} = S) ->
      send(0, Msg, S);
  
  %% ... or rotate through all.
  send(Msg, #transport{streams = {_, OS},
                       os = N}
            = S) ->
      send(N, Msg, S#transport{os = (N + 1) rem OS}).
  
  %% send/3
  
  
negative.code:   when is_boolean(B) ->
      S;
  
  recv(#transport{unordered = 0, streams = {_, 1}, socket = Sock} = S) ->
      ok = inet:setopts(Sock, [{sctp_default_send_param,
                                #sctp_sndrcvinfo{flags = [unordered]}}]),
      S#transport{unordered = true};
  
  recv(#transport{unordered = 0} = S) ->
      S#transport{unordered = false};
  
  recv(#transport{unordered = N} = S) ->
      S#transport{unordered = N-1}.
  