anchor.diff:      %% Deal with different association id after peeloff on Solaris by
       %% taking the id from the first reception.
       up(S#transport{assoc_id = T == accept orelse Id,
  -                   unordered = 1 == OS andalso 1,
                      streams = {IS, OS}});
   
   %% ... or not: try the next address.
  
positive.code:   when is_boolean(B) ->
      S;
  
  recv(#transport{unordered = 0, socket = Sock} = S) ->
      ok = inet:setopts(Sock, [{sctp_default_send_param,
                                #sctp_sndrcvinfo{flags = [unordered]}}]),
      S#transport{unordered = true};
  
  recv(#transport{unordered = N} = S) ->
      S#transport{unordered = N-1}.
  
negative.code:      = S) ->
      send(SId rem OS, Msg, S);
  
  %% ... or not: rotate when sending ordered ...
  send(Msg, #transport{unordered = false,
                       streams = {_, OS},
                       os = N}
            = S) ->
      send(N, Msg, S#transport{os = (N + 1) rem OS});
  
  %% ... or send only on the first stream, possibly unordered.
  send(Msg, S) ->
      send(0, Msg, S).
  
  %% send/3
  
  