<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/diameter/src, branch OTP-20.0.1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Update copyright year</title>
<updated>2017-06-14T13:36:21+00:00</updated>
<author>
<name>Hans Nilsson</name>
<email>hans@erlang.org</email>
</author>
<published>2017-06-14T13:36:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=43718d3b81d7f3d08e25047e22d579801bbe5044'/>
<id>43718d3b81d7f3d08e25047e22d579801bbe5044</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/20.0/OTP-14398'</title>
<updated>2017-06-14T07:30:41+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-06-14T07:30:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f7c9c43c08fd46d89f2a5bf1d055f431dd3812dc'/>
<id>f7c9c43c08fd46d89f2a5bf1d055f431dd3812dc</id>
<content type='text'>
* anders/diameter/20.0/OTP-14398:
  vsn -&gt; 2.0
  Update appup for 20.0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/20.0/OTP-14398:
  vsn -&gt; 2.0
  Update appup for 20.0
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/capx_vs_dpr/OTP-14338'</title>
<updated>2017-06-14T07:30:30+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-06-14T07:30:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5ef0555f4a696e6cc5a927bc6d8f469a725c0ef1'/>
<id>5ef0555f4a696e6cc5a927bc6d8f469a725c0ef1</id>
<content type='text'>
* anders/diameter/capx_vs_dpr/OTP-14338:
  Let candidate peers be passed to diameter:call/4
  Comment on RFC ambiguity regarding application identifiers
  Remove trailing whitespace
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/capx_vs_dpr/OTP-14338:
  Let candidate peers be passed to diameter:call/4
  Comment on RFC ambiguity regarding application identifiers
  Remove trailing whitespace
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/performance/OTP-14343'</title>
<updated>2017-06-14T07:30:16+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-06-14T07:30:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4850f0cae2c46d6584fe3926a715fe08eae25176'/>
<id>4850f0cae2c46d6584fe3926a715fe08eae25176</id>
<content type='text'>
* anders/diameter/performance/OTP-14343: (50 commits)
  Let spawn_opt config replace erlang:spawn_opt/2 for request processes
  Move (most of) diameter_gen.hrl to diameter_gen.erl
  Change signature associated with dictionary @custom_type/@codecs
  Avoid sending answer terms between processes unnecessarily
  Refactor handling of incoming requests
  Restore diameter_codec:decode/2, update diameter_codec(3)
  Add diameter_codec option ordered_encode
  Restore undocumented Failed-AVP setting convenience
  Fix/simplify setting of one Failed-AVP
  Avoid recreating records
  Avoid recreating records
  Avoid recreating records
  Avoid recreating records
  Adapt test suites to modified encode/decode
  Simplify diameter_caps construction
  Don't compute URI defaults unnecessarily
  Don't deconstruct {TPid, Caps} unnecessarily
  Remove use of process dictionary in decode
  Remove minor diameter_config bloat
  Fix maximum AVP arity check
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/performance/OTP-14343: (50 commits)
  Let spawn_opt config replace erlang:spawn_opt/2 for request processes
  Move (most of) diameter_gen.hrl to diameter_gen.erl
  Change signature associated with dictionary @custom_type/@codecs
  Avoid sending answer terms between processes unnecessarily
  Refactor handling of incoming requests
  Restore diameter_codec:decode/2, update diameter_codec(3)
  Add diameter_codec option ordered_encode
  Restore undocumented Failed-AVP setting convenience
  Fix/simplify setting of one Failed-AVP
  Avoid recreating records
  Avoid recreating records
  Avoid recreating records
  Avoid recreating records
  Adapt test suites to modified encode/decode
  Simplify diameter_caps construction
  Don't compute URI defaults unnecessarily
  Don't deconstruct {TPid, Caps} unnecessarily
  Remove use of process dictionary in decode
  Remove minor diameter_config bloat
  Fix maximum AVP arity check
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/transport/ERL-332'</title>
<updated>2017-06-14T07:29:05+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-06-14T07:29:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1bf842f3cd603ddd6246d874e188e4f75b0cc692'/>
<id>1bf842f3cd603ddd6246d874e188e4f75b0cc692</id>
<content type='text'>
* anders/diameter/transport/ERL-332: (35 commits)
  Capitulate on SCTP vs sparc-sun-solaris2.10
  Remove obsolete traffic testcase
  Fix dialyzer warnings
  Remove client/server string decode from traffic suite
  Add diameter_sctp option packet
  Add diameter_sctp send/recv callbacks
  Let diameter_tcp send/recv callbacks deal in diameter_packet
  Randomly select traffic testcases
  Exercise diameter_tcp message callbacks in traffic suite
  Exercise diameter_{tcp,sctp} sender in traffic suite
  Remove upgrade from diameter_traffic
  Add diameter_tcp send/recv callbacks
  Make diameter_{tcp,sctp} sender configurable
  Remove upgrade from diameter_sctp; tweak diameter_tcp to match
  Fix incomprehensible dialyzer warning
  Simplify acks to transport processes
  Strip throttling callbacks from diameter_tcp
  Deal with (another) SCTP association id quirk on Solaris
  Use binary:copy/2 when generating largish data in test suites
  Deal with SCTP association id quirk on Solaris
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/transport/ERL-332: (35 commits)
  Capitulate on SCTP vs sparc-sun-solaris2.10
  Remove obsolete traffic testcase
  Fix dialyzer warnings
  Remove client/server string decode from traffic suite
  Add diameter_sctp option packet
  Add diameter_sctp send/recv callbacks
  Let diameter_tcp send/recv callbacks deal in diameter_packet
  Randomly select traffic testcases
  Exercise diameter_tcp message callbacks in traffic suite
  Exercise diameter_{tcp,sctp} sender in traffic suite
  Remove upgrade from diameter_traffic
  Add diameter_tcp send/recv callbacks
  Make diameter_{tcp,sctp} sender configurable
  Remove upgrade from diameter_sctp; tweak diameter_tcp to match
  Fix incomprehensible dialyzer warning
  Simplify acks to transport processes
  Strip throttling callbacks from diameter_tcp
  Deal with (another) SCTP association id quirk on Solaris
  Use binary:copy/2 when generating largish data in test suites
  Deal with SCTP association id quirk on Solaris
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>Update appup for 20.0</title>
<updated>2017-06-13T14:27:16+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-05-09T13:58:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=04ebdcf5e9555a75c5d8c1ca4774e9a079c3ba7f'/>
<id>04ebdcf5e9555a75c5d8c1ca4774e9a079c3ba7f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Let spawn_opt config replace erlang:spawn_opt/2 for request processes</title>
<updated>2017-06-13T13:30:24+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-06-12T19:54:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fd2850798f68c9a3c502ad9d66ef46561816ab6f'/>
<id>fd2850798f68c9a3c502ad9d66ef46561816ab6f</id>
<content type='text'>
By accepting an MFA that is applied to the fun that is otherwise spawned
for each incoming request, to allow handler processes to be reused. This
is not yet documented and may change, but the motivation is to let spawn
be replaced by process pool, from which the MFA selects. A list-valued
spawn_opt is equivalent to {erlang, spawn_opt, [Opts]}.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By accepting an MFA that is applied to the fun that is otherwise spawned
for each incoming request, to allow handler processes to be reused. This
is not yet documented and may change, but the motivation is to let spawn
be replaced by process pool, from which the MFA selects. A list-valued
spawn_opt is equivalent to {erlang, spawn_opt, [Opts]}.
</pre>
</div>
</content>
</entry>
<entry>
<title>Let candidate peers be passed to diameter:call/4</title>
<updated>2017-06-13T12:03:58+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-04-13T08:26:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c74b1c4a46c71bd3b258477ca4bf1b5d39c5095e'/>
<id>c74b1c4a46c71bd3b258477ca4bf1b5d39c5095e</id>
<content type='text'>
To solve the problem of being able to send messages to a peer that
hasn't advertised support for the application in question, as discussed
in the parent commit. diameter:call/4 can be passed 'peer' options to
identify candidates, and the only requirement is that an appropriate
dictionary be configured for encode. Filters are applied as if
candidates had been selected by advertised application.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To solve the problem of being able to send messages to a peer that
hasn't advertised support for the application in question, as discussed
in the parent commit. diameter:call/4 can be passed 'peer' options to
identify candidates, and the only requirement is that an appropriate
dictionary be configured for encode. Filters are applied as if
candidates had been selected by advertised application.
</pre>
</div>
</content>
</entry>
<entry>
<title>Comment on RFC ambiguity regarding application identifiers</title>
<updated>2017-06-13T12:03:58+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-04-12T09:23:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2013b1c55e2c199e59610cf9bb7e0cb60424f276'/>
<id>2013b1c55e2c199e59610cf9bb7e0cb60424f276</id>
<content type='text'>
It is tempting to regard remote support for the common application as
implicit, but that leads to the problems noted, and a node could never
then expect non-intersecting application support to result in 5010. It
probably can't anyway given the different ways the RFC's intent can be
interpreted, but it's not unreasonable that a node should be able to
advertise a single Diameter application and get 5010 if the peer doesn't
support it.

The problem we have currently is that peer selection is based on the
support advertised by the peer. The application id of an outgoing
request is used to lookup peers that have advertised support, so if the
peer hasn't advertised support for Diameter common messages then the
user won't be able to send DPR and more: diameter:call/4 will just
return {error, no_connection}. This commit doesn't solve the problem.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is tempting to regard remote support for the common application as
implicit, but that leads to the problems noted, and a node could never
then expect non-intersecting application support to result in 5010. It
probably can't anyway given the different ways the RFC's intent can be
interpreted, but it's not unreasonable that a node should be able to
advertise a single Diameter application and get 5010 if the peer doesn't
support it.

The problem we have currently is that peer selection is based on the
support advertised by the peer. The application id of an outgoing
request is used to lookup peers that have advertised support, so if the
peer hasn't advertised support for Diameter common messages then the
user won't be able to send DPR and more: diameter:call/4 will just
return {error, no_connection}. This commit doesn't solve the problem.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move (most of) diameter_gen.hrl to diameter_gen.erl</title>
<updated>2017-06-13T11:50:07+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2017-06-11T11:59:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=205521d3927ed6f53c9a6fa3095f8a879bdca929'/>
<id>205521d3927ed6f53c9a6fa3095f8a879bdca929</id>
<content type='text'>
To remove the requirement that dictionary modules be recompiled whenever
the encode/decode implementation changes. The included diameter_gen.hrl
now only contains trivial functions that call info diameter_gen.erl.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To remove the requirement that dictionary modules be recompiled whenever
the encode/decode implementation changes. The included diameter_gen.hrl
now only contains trivial functions that call info diameter_gen.erl.
</pre>
</div>
</content>
</entry>
</feed>
