From e50fe483d288d0a21a7dea0fb2835fa8eea3f41c Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Tue, 14 May 2019 17:16:32 +0200 Subject: erts: Document new EPMD response ALIVE2_X_RESP with 32-bit creation. This reverts revert-commit bf6110a9de0fbfc34754ee1aac325e9b1df2b095. --- erts/doc/src/erl_dist_protocol.xml | 28 +++++++++++++++++++++++----- erts/doc/src/erl_ext_fig.gif | Bin 3834 -> 3840 bytes 2 files changed, 23 insertions(+), 5 deletions(-) (limited to 'erts/doc') diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml index f924c8a70b..5dfe34cfae 100644 --- a/erts/doc/src/erl_dist_protocol.xml +++ b/erts/doc/src/erl_dist_protocol.xml @@ -109,7 +109,8 @@ Register a Node in EPMD

When a distributed node is started it registers itself in the EPMD. The message ALIVE2_REQ described below is sent from the node to - the EPMD. The response from the EPMD is ALIVE2_RESP.

+ the EPMD. The response from the EPMD is ALIVE2_X_RESP (or + ALIVE2_RESP).

@@ -155,12 +156,12 @@ HighestVersion

The highest distribution version that this node can handle. - The value in Erlang/OTP R6B and later is 5.

+ The value in OTP 23 and later is 6.

LowestVersion

The lowest distribution version that this node can handle. - The value in Erlang/OTP R6B and later is 5.

+ The value in OTP 23 and later is 5.

Nlen @@ -184,7 +185,24 @@ node is a distributed node. When the connection is closed, the node is automatically unregistered from the EPMD.

-

The response message ALIVE2_RESP is as follows:

+

The response message is either ALIVE2_X_RESP or + ALIVE2_RESP depending on distribution version. If both the node + and EPMD support distribution version 6 then response is + ALIVE2_X_RESP otherwise it is the older ALIVE2_RESP:

+ +
+ + 1 + 1 + 4 + + + 118 + Result + Creation + + ALIVE2_X_RESP (118) with 32 bit creation +
@@ -197,7 +215,7 @@ Result Creation - ALIVE2_RESP (121) + ALIVE2_RESP (121) with 16-bit creation

Result = 0 -> ok, result > 0 -> error.

diff --git a/erts/doc/src/erl_ext_fig.gif b/erts/doc/src/erl_ext_fig.gif index 14d6bbc871..40dd17bd5e 100644 Binary files a/erts/doc/src/erl_ext_fig.gif and b/erts/doc/src/erl_ext_fig.gif differ -- cgit v1.2.3 From f5dcbc36d01caa27bcf09003daa7b4c3a08bb234 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Fri, 28 Jun 2019 16:55:52 +0200 Subject: erts: Fix docs for new pid,port,ref external tags to reflect DFLAG_BIG_CREATION now is mandatory in OTP 23. --- erts/doc/src/erl_ext_dist.xml | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'erts/doc') diff --git a/erts/doc/src/erl_ext_dist.xml b/erts/doc/src/erl_ext_dist.xml index 3730f0e8ac..5d6605b69a 100644 --- a/erts/doc/src/erl_ext_dist.xml +++ b/erts/doc/src/erl_ext_dist.xml @@ -637,11 +637,13 @@ NEW_PID_EXT. Port operations are not allowed across node boundaries.

-

Introduced in OTP 19, but only to be decoded and echoed back. Not - encoded for local ports. Planned to supersede - PORT_EXT in OTP 23 when - DFLAG_BIG_CREATON - becomes mandatory. +

NEW_PORT_EXT was introduced in OTP 19, but only to be decoded + and echoed back. Not encoded for local ports. +

+

In OTP 23 distribution flag + DFLAG_BIG_CREATION became mandatory. All ports are now + encoded using NEW_PORT_EXT, even external ports received as PORT_EXT from older nodes.

@@ -719,11 +721,13 @@ erlang:list_to_pid/1).

-

Introduced in OTP 19, but only to be decoded and echoed back. Not - encoded for local processes. Planned to supersede - PID_EXT in OTP 23 when - DFLAG_BIG_CREATON - becomes mandatory. +

NEW_PID_EXT was introduced in OTP 19, but only to be decoded + and echoed back. Not encoded for local processes. +

+

In OTP 23 distribution flag + DFLAG_BIG_CREATION became mandatory. All pids are now + encoded using NEW_PID_EXT, even external pids received as PID_EXT from older nodes.

@@ -1047,11 +1051,14 @@ NEW_PID_EXT.

-

Introduced in OTP 19, but only to be decoded and echoed back. Not - encoded for local references. Planned to supersede - NEW_REFERENCE_EXT in OTP 23 when - DFLAG_BIG_CREATON - becomes mandatory. +

NEWER_REFERENCE_EXT was introduced in OTP 19, but only to be decoded + and echoed back. Not encoded for local references. +

+

In OTP 23 distribution flag + DFLAG_BIG_CREATION became mandatory. All references are now + encoded using NEWER_REFERENCE_EXT, even external references + received as NEW_REFERENCE_EXT + from older nodes.

-- cgit v1.2.3 From ac568ebbe879e74e8d3a1d052f0f2fc3117051f0 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Fri, 28 Jun 2019 17:55:14 +0200 Subject: doc: Add links between dist flags and external tags (DTD updated) DTD updated to allow seealso-marker inside taglist. --- erts/doc/src/erl_dist_protocol.xml | 32 ++++++++++++++++++++++++++------ erts/doc/src/erl_ext_dist.xml | 33 ++++++++++++++++++--------------- 2 files changed, 44 insertions(+), 21 deletions(-) (limited to 'erts/doc') diff --git a/erts/doc/src/erl_dist_protocol.xml b/erts/doc/src/erl_dist_protocol.xml index 5dfe34cfae..0c1100d394 100644 --- a/erts/doc/src/erl_dist_protocol.xml +++ b/erts/doc/src/erl_dist_protocol.xml @@ -811,7 +811,8 @@ DiB == gen_digest(ChA, ICA)? -define(DFLAG_NEW_FUN_TAGS,16#80). -

The node understand new fun tags.

+

The node understands the + NEW_FUN_EXT tag.

-define(DFLAG_EXTENDED_PIDS_PORTS,16#100). @@ -820,13 +821,18 @@ DiB == gen_digest(ChA, ICA)? -define(DFLAG_EXPORT_PTR_TAG,16#200). +

The node understands the + EXPORT_EXT tag.

-define(DFLAG_BIT_BINARIES,16#400). +

The node understands the + BIT_BINARY_EXT tag.

-define(DFLAG_NEW_FLOATS,16#800). -

The node understands new float format.

+

The node understands the + NEW_FLOAT_EXT tag.

-define(DFLAG_UNICODE_IO,16#1000). @@ -835,21 +841,34 @@ DiB == gen_digest(ChA, ICA)?

The node implements atom cache in distribution header.

+ -define(DFLAG_SMALL_ATOM_TAGS, 16#4000). -

The node understand the SMALL_ATOM_EXT tag.

+

The node understands the + SMALL_ATOM_EXT tag.

+ -define(DFLAG_UTF8_ATOMS, 16#10000). -

The node understand UTF-8 encoded atoms.

+

The node understands UTF-8 atoms encoded with + + ATOM_UTF8_EXT and + + SMALL ATOM_UTF8_EXT.

-define(DFLAG_MAP_TAG, 16#20000). -

The node understand the map tag.

+

The node understands the map tag + MAP_EXT.

+ -define(DFLAG_BIG_CREATION, 16#40000). -

The node understand big node creation.

+

The node understands big node creation tags + NEW_PID_EXT, + NEW_PORT_EXT and + NEWER_REFERENCE_EXT. +

-define(DFLAG_SEND_SENDER, 16#80000). @@ -873,6 +892,7 @@ DiB == gen_digest(ChA, ICA)? control messages instead of the non-PAYLOAD variants.

+ -define(DFLAG_FRAGMENTS, 16#800000).

Use fragmented diff --git a/erts/doc/src/erl_ext_dist.xml b/erts/doc/src/erl_ext_dist.xml index 5d6605b69a..1b736813af 100644 --- a/erts/doc/src/erl_ext_dist.xml +++ b/erts/doc/src/erl_ext_dist.xml @@ -264,7 +264,7 @@ consists of. Length is a 2 byte big-endian integer if flag LongAtoms has been set, otherwise a 1 byte integer. When distribution flag - + DFLAG_UTF8_ATOMS has been exchanged between both nodes in the @@ -316,8 +316,8 @@

Fragmented distribution messages are only used if the receiving node signals that it supports them via the - DFLAG_FRAGMENTS distribution - flag.

+ DFLAG_FRAGMENTS + distribution flag.

A process must complete the sending of a fragmented message before it can start sending any other message on the same distribution channel.

@@ -640,8 +640,9 @@

NEW_PORT_EXT was introduced in OTP 19, but only to be decoded and echoed back. Not encoded for local ports.

-

In OTP 23 distribution flag - DFLAG_BIG_CREATION became mandatory. All ports are now +

In OTP 23 distribution flag + DFLAG_BIG_CREATION + became mandatory. All ports are now encoded using NEW_PORT_EXT, even external ports received as PORT_EXT from older nodes.

@@ -724,10 +725,11 @@

NEW_PID_EXT was introduced in OTP 19, but only to be decoded and echoed back. Not encoded for local processes.

-

In OTP 23 distribution flag - DFLAG_BIG_CREATION became mandatory. All pids are now - encoded using NEW_PID_EXT, even external pids received as PID_EXT from older nodes. +

In OTP 23 distribution flag + DFLAG_BIG_CREATION + became mandatory. All pids are now encoded using NEW_PID_EXT, + even external pids received as + PID_EXT from older nodes.

@@ -1054,11 +1056,12 @@

NEWER_REFERENCE_EXT was introduced in OTP 19, but only to be decoded and echoed back. Not encoded for local references.

-

In OTP 23 distribution flag - DFLAG_BIG_CREATION became mandatory. All references are now - encoded using NEWER_REFERENCE_EXT, even external references - received as NEW_REFERENCE_EXT - from older nodes. +

In OTP 23 distribution flag + DFLAG_BIG_CREATION + became mandatory. All references are now encoded using + NEWER_REFERENCE_EXT, even external references received as + NEW_REFERENCE_EXT + from older nodes.

@@ -1415,7 +1418,7 @@

SMALL_ATOM_EXT was introduced in ERTS 5.7.2 and require an exchange of distribution flag - + DFLAG_SMALL_ATOM_TAGS in the distribution handshake. -- cgit v1.2.3