summaryrefslogtreecommitdiff
path: root/erts/doc/src/erl_dist_protocol.xml
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2021-06-10 09:44:56 +0200
committerBjörn Gustavsson <bjorn@erlang.org>2021-06-23 08:22:14 +0200
commit318ed4605ccf4dc402623c6cd94ddb8547cb9875 (patch)
tree443f73bd23f51d1d03bf0c88c63f55f24f7b0fd5 /erts/doc/src/erl_dist_protocol.xml
parentb94fde09ec9be03cc0a17e6d16a397f18680eb76 (diff)
downloaderlang-318ed4605ccf4dc402623c6cd94ddb8547cb9875.tar.gz
Introduce a scheme for reusing mandatory distribution flags
During distribution connect setup between two nodes, the nodes exchange flags words encoding their capabilities. The connection setup is aborted if one of the node lacks a capability that the other node requires. In version 5 of the protocol (introduced in OTP R6), there are 32 possible capabilities (each encoded in a single bit). Since it seemed that we would soon run out of capabilitiy bits, protocol version 6 (introduced in OTP 23) expanded the number of possible capability bits to 64. To avoid having to extend the number of capabilites yet again from 64 to 128 in some future release, this commit introduces a scheme to allow reusing the bit numbers for capabilities that are now mandatory. The scheme is described in lib/kernel/include/dist.hrl. There are 10 mandatory capability bits as of OTP 25. This scheme will allow reusing 9 of those capability bits as early as in OTP 27.
Diffstat (limited to 'erts/doc/src/erl_dist_protocol.xml')
-rw-r--r--erts/doc/src/erl_dist_protocol.xml6
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml
index 0f3319d032..29027f0eeb 100644
--- a/erts/doc/src/erl_dist_protocol.xml
+++ b/erts/doc/src/erl_dist_protocol.xml
@@ -1115,6 +1115,12 @@ DiB == gen_digest(ChA, ICA)?
<seeguide marker="#old_link_protocol">old link protocol</seeguide>
will be used as a fallback.</p>
</item>
+ <tag><c>-define(DFLAG_MANDATORY_25_DIGEST, (1 bsl 36)).</c></tag>
+ <item>
+ <p>The node supports all capabilities that are mandatory in OTP 25.
+ Introduced in OTP 25.</p>
+ <note><p>This flag will become mandatory in OTP 27.</p></note>
+ </item>
<tag><marker id="DFLAG_SPAWN"/><c>-define(DFLAG_SPAWN, (1 bsl 32)).</c></tag>
<item>
<p>Set if the <seeguide marker="#SPAWN_REQUEST"><c>SPAWN_REQUEST</c></seeguide>,