Skip to content

Commit 51f5ab9

Browse files
committed
rfcs: convert first issues
1 parent 4b930a8 commit 51f5ab9

10 files changed

+517
-0
lines changed

rfcs/RFC-001-issues.rst

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
- Feature: About SECoP Issues
2+
- Status: Obsolete
3+
- Submit Date: 2017-05-30
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
This issue describes the "SECoP Issues", the original format of documents that
13+
preceded the RFC system. As such, it is no longer relevant, please see
14+
:ref:`rfc-000` for the current rules for discussing SECoP extensions.
15+
16+
17+
Issue text
18+
==========
19+
20+
The idea behind SECoP Issues is to document properly what was proposed,
21+
what was discussed, what was decided and why it was decided.
22+
23+
An issue might take different states:
24+
25+
(u) unspecified
26+
---------------
27+
28+
A vague idea, but no proposal written down yet.
29+
30+
(p) proposed
31+
------------
32+
33+
A proposal should contain the motivation. As long as nobody else
34+
joins into a discussion, the state remains *proposed*.
35+
36+
(d) under discussion
37+
--------------------
38+
39+
This state is kept until a decision is taken.
40+
41+
(f) finalizing
42+
--------------
43+
44+
This state is kept until the specification change is agreed.
45+
46+
( ) closed
47+
----------
48+
49+
After a decision the state is *closed*. The issue is not deleted,
50+
even if the decision was to not follow further the proposal.
51+
This is helpful if somebody later raises a similar issue.
52+
However, it should be possible to reopen an issue, if new
53+
arguments arise.
54+
55+
Remark:
56+
-------
57+
58+
At the meeting in Lund (13th June 2018), it was agreed not to follow the proposal
59+
of creating a new state "extensible" for an issue containing an extensible
60+
list. Instead, an new issue should be created, containing the added elements.
61+
A full actual list should be added each time.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
- Feature: Equipment ID in Describing Message
2+
- Status: Rejected
3+
- Submit Date: 2017-05-30
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Could the equipment ID go into the "specifier" field of the "describing"
13+
message?
14+
15+
16+
Issue text
17+
==========
18+
19+
The equipment ID is a SEC node property, and it is therefore redundant
20+
to put it as the second item of the describe message.
21+
22+
However as the describe/describing message might be extended later, for
23+
example to get the description of single modules only, we should specify
24+
a fixed word for the second item of the describe message, for example the
25+
keyword "ALL" or "All".
26+
27+
At the meeting in Berlin (2017-05-30) this was discussed, but it was not
28+
yet decided the the keyword should be exactly. Until a final decision,
29+
SECoP clients should ignore the second item.
30+
31+
Opinions
32+
--------
33+
34+
We should use key keyword ALL (Markus Zolliker).
35+
36+
Decision
37+
--------
38+
39+
The decision was taken to use a bare period as placeholder:
40+
41+
.. code::
42+
43+
describing . {"modules": ...

rfcs/RFC-003-timestamps.rst

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
- Feature: Timestamp Format
2+
- Status: Final
3+
- Submit Date: 2017-05-30
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Which format should timestamps in value qualifiers take?
13+
14+
15+
Issue text
16+
==========
17+
18+
Proposals for the timestamp format are:
19+
20+
ISO time format
21+
---------------
22+
23+
A date+time string in ISO format like "2017-06-21T13:30:01.123456+02:00"
24+
25+
The fractional seconds are optional, but the timezone has to be given. Z is allowed instead of +00:00.
26+
27+
Advantages:
28+
29+
* human readable
30+
31+
Disadvantages:
32+
33+
* needs more conversion efforts, as the time is internally already stored as
34+
numbers on mosts systems (supporting math operations)
35+
* although the ISO standard is clearly defined, there is a risk that time zones
36+
and daylight saving time is not handled properly
37+
38+
Fractional Unix Time
39+
--------------------
40+
41+
Seconds since 1970-01-01T00:00:00+00:00, represented as a number. When converted
42+
to a IEEE double, a resolution of 1 usec can be kept for dates up to 2112.
43+
44+
Advantages:
45+
46+
* if a double is used as an internal representation, no conversion is
47+
needed. using a double as an internal time representation has the advantage,
48+
that math operations can be done for free.
49+
* relative times for systems with no synchronized clock can be represented
50+
easily
51+
52+
Disadvantages:
53+
54+
* not human readable (or at least not easily: time differences in seconds are
55+
still visible)
56+
57+
Discussion
58+
----------
59+
60+
1) Human readibility was judged less important than easy implementaion by the majority.
61+
62+
2) Implementing relative times is also easier.
63+
64+
Decision
65+
--------
66+
67+
At the meeting in Berlin (2017-05-30) the attendes decided for "Fractional Unix Time".
68+
The resolution of the timestamp depends on the hardware, but must be at least one second.

rfcs/RFC-004-timeout-property.rst

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
- Feature: The Timeout SEC Node Property
2+
- Status: Final
3+
- Submit Date: 2017-05-30
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Specifies how to select a suitable response timeout for a SEC node.
13+
14+
15+
Issue text
16+
==========
17+
18+
For a SECoP client, in order to detect that a connection to a SECoP server is dead,
19+
'ping' messages can be sent. When no 'pong' message is received within a specified
20+
time, then the client can consider the connection as dead.
21+
22+
If the server does not specify a the SEC node property 'timeout', the timeout
23+
is assumed to be 3s.
24+
25+
Opinions
26+
--------
27+
28+
On the meeting in Garching (2017-09-14) it was proposed to fix this a standard.
29+
30+
31+
Decision
32+
--------
33+
34+
It is assumed that when a SEC node is not replying within *timeout*
35+
seconds, the client may assume that the SEC node is dead or stuck.
36+
37+
If *timeout* is not specfied as a SEC node property. it is assumed to
38+
be 10 seconds.

rfcs/RFC-005-qualifiers.rst

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
- Feature: Definition of the term 'Qualifier'
2+
- Status: Final
3+
- Submit Date: 2017-05-30
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Specifies qualifiers as the "properties" of live data.
13+
14+
15+
Issue text
16+
==========
17+
18+
The definition as in SECoP V2016-11-30 draft is not very consistent.
19+
20+
As decriptive data we have:
21+
22+
- SEC node properties
23+
- module properties
24+
- parameters properties
25+
- command properties
26+
27+
Live data may be:
28+
- value
29+
- timestamp 't'
30+
- sigma 'e'
31+
32+
It is confusing to use the same term 'property' for live data and for
33+
descriptive data.
34+
35+
The section with the definition of properties has to be rewritten.
36+
37+
Opinions
38+
--------
39+
40+
Enrico proposed to name live data like timestamps and sigma *qualifiers*.
41+
42+
Markus supports this. He would be happy also with a term other than
43+
*qualifiers*, but definitely does not like the terms *live properties* and
44+
*descriptive properties*, as two different things share the same name.
45+
46+
47+
Decision
48+
--------
49+
50+
Additional information transported with an update message like timestamps and
51+
sigma are called *qualifiers*.

rfcs/RFC-006-keepalive.rst

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
- Feature: Keep Alive
2+
- Status: Rejected
3+
- Submit Date: 2017-05-30
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Does the SEC node need a mechanism to detect "dead" client connections?
13+
14+
15+
Issue text
16+
==========
17+
18+
For a SECoP server, in order to detect that a client connection is dead,
19+
it might close a connection with no messages within a defined period of time.
20+
21+
The discussed mechanism is:
22+
23+
The SECoP client has to set the connection parameter 'keepalive' to a value
24+
representing the number of seconds it will send 'ping' (or other) messages.
25+
The SECoP server can close connections with no messages for a time period
26+
well above this value (more than 10% higher).
27+
28+
Opinions
29+
--------
30+
31+
Markus proposes to mention the 10 % in the specification.
32+
It should also be mentioned, that for keeping the connection alive
33+
any message might be sent instead of the ping message.
34+
35+
Decision
36+
--------
37+
38+
We close this issue, not defining such a mechanism.
39+
If in an implementation pending dead connections arise to be problem
40+
to the SEC node server, we might reopen the issue.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
- Feature: Time Synchronization
2+
- Status: Rejected
3+
- Submit Date: 2018-02-13
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Handling of timestamp clock differences between node and client.
13+
14+
15+
Issue text
16+
==========
17+
18+
As a SECoP server and a SECoP client might not run with a common clock,
19+
the SECoP client should be able to correct for time slips.
20+
21+
On the meetings in Berlin and Garching in 2017 it was proposed to put this into
22+
the standard, the exact wording has to be decided.
23+
24+
Agreement
25+
---------
26+
27+
The kind of SEC-node clock shall be noted as node property in the descriptive data.
28+
29+
Proposal
30+
--------
31+
32+
A SEC-node property called *clock* describes the kind of clock.
33+
34+
datatype: Enum(none=0, relative=1, absolute=2)
35+
36+
The default is *none*.
37+
38+
Discussion
39+
----------
40+
41+
It might happen that for some parameters no timestamps are delivered while
42+
on others there are.
43+
What should the client do when *none* is specified, but a timestamp
44+
is delivered on a parameter? Is this a violation of the protocol, or should the
45+
client ignore the timestamp?
46+
47+
Decision
48+
--------
49+
50+
The ECS can easily detect if the clock is accurate enough by sending a ping
51+
command. If the timestamp delivered by the pong message lies between the
52+
time the ping message was sent and the pong message was received, then the
53+
timestamp can be trusted, else the ECS might record the time shift and decide to
54+
use relative times. (Decision taken at the meeting 2018-02-13 in Grenoble)

rfcs/RFC-008-groups.rst

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
- Feature: Groups
2+
- Status: Final
3+
- Submit Date: 2018-02-13
4+
- Authors: SECoP committee
5+
- Type: Issue
6+
- PR:
7+
- Version: 1.0
8+
9+
Summary
10+
=======
11+
12+
Definition of the `group` property for modules and accessibles.
13+
14+
15+
Issue text
16+
==========
17+
18+
Proposal
19+
--------
20+
21+
Modules as well as parameters may have a property "group".
22+
If the client has the possibility to group modules and/or
23+
parameters, it should use this information for grouping.
24+
25+
The lowercase version of module group names must not clash
26+
with the lowercase version of a module name.
27+
The lowercase version of parameter group names must not clash
28+
with the lowercase version of a parameter names on the same module.
29+
30+
The "group" property may contain colons (':') as separator,
31+
in order to construct a hierarchy of more than one level.
32+
33+
Decision
34+
--------
35+
36+
Accepted at the meeting 2018-02-13 in Grenoble.

0 commit comments

Comments
 (0)