[Css-csts] Issues regarding Cyclic Data Delivery Procedure

John Pietras john.pietras at gst.com
Thu Jul 5 13:52:13 EDT 2007


Members of the CSTSWG --
In reviewing the latest Cyclic Data Delivery Procedure Working Note
(Issue 1, Rev 2, dated 13 June 2007), I've come across what appear to be
several inconsistencies and/or errors. I've tried to go back through the
Minutes of Meetings, etc., for previous discussions and decisions, but
found none that explained or resolved these issues.

A. List-of-parameter member validity as a condition for positive result
of the START operation

In the Behavior section, paragraph 2.2.3 states "If at least one of the
parameters of the list is unknown then the START operation shall return
a negative result and the diagnostic shall contain the list of unknown
parameters." 

However, the subsequent definition of the START operation has an
extended diagnostic value 'all parameter names undefined' (paragraph
3.1.6.1 (b)) but makes *no* mention of containing a list of unknown
parameters.

It is my impression that the intention is to allow the START (and thus
the procedure itself) to succeed if *any* of the named parameters in the
list-of-parameters is defined. This interpretation is consistent with
the way the START operation itself is defined in section 3.1, but
counter to the way the behavior of the START operation is defined in
2.2.

The behavior of the TRANSFER-DATA operation as stated in paragraph 2.3.4
- "If the value of a parameter of the 'list-of-parameters' is currently
unknown then the returned qualifier value of the parameter shall be
'unknown value'." - can be strictly interpreted as supporting the
"positive result only if *all* of the parameters are valid" approach.
However, by adding another qualifier value -'unknown parameter'- the
"positive result if *any* of the parameters are valid" approach can also
be supported.


B. Number of parameter values reported in a single TRANSFER-DATA
invocation

As currently defined in section 3.3.2.2, each cyclically-reported
parameter from the list-of-parameters is reported in it's own
TRANSFER-DATA invocation. This is a lot of protocol overhead.
Furthermore, it is not consistent with the way that the current SLE
Status Report operations work, in which multiple parameters are reported
in a single operation invocation. Was this an intentional change?  

If we wanted to report sets of parameters corresponding to the
list-of-parameters, the data parameter could be extended as a
set-of-parameter-records parameter and extension parameter, where the
set-of-parameter-records is defined as a set of parameter-record
(elements? parameters?), each of which consists of a parameter-name,
parameter-value, engineering-unit, value-qualifier, and
record-extension-parameter.

 
C. Conflict between cyclic reporting and 'live data' concept in the
underlying Unbuffered Data Delivery procedure

The Cyclic Data Reporting procedure is built around the notion of
reporting data periodically. Section 2.3.2 states" The provider shall
arm a periodic timer to deliver data periodically at the interval of
seconds defined by the value of the parameter 'delivery-cycle'."

However, this procedure is derived from the Unbuffered Data Delivery
procedure(the most recent version of which is called "1.7" in the file
name but "Issue 1 Rev 5" on the cover page), which states in section 1.2
" The provider transmits live data...  Transmission of 'live data'
implies that data units are transmitted as soon as possible after their
production."

There is a conflict between stating that the data are delivered both "as
soon as possible after their production" and waiting to "deliver data
periodically at the interval ... defined." This conflict might seem like
a simple issue of phrasing, but taken in conjunction the two statements
could be strictly interpreted as requiring that the data that is being
*reported* at time X be *sampled* at time X. In fact, I have been a
party to a status reporting system design review process where that
exact issue was a point of contention (customer thought he was getting a
sample that was only a few milliseconds old, vendor was actually only
planning to deliver something that had been sampled sometime since the
last (5 second) report was sent), so it is not merely a philosophical
exercise.

My understanding is that for many systems, actually sampling the
measurands within mere microseconds before the report is generated is
not always (or even often) a requirement, and we probably don't want to
implicitly build that into our Cyclic Data Delivery procedure. Some
derived services, or specific implementations of derived services, may
have such split-second requirements, but those can be added for those
cases.

I think the simplest way to solve this problem would be to loosen the
"as soon as generated" wording in the Unbuffered Data Delivery procedure
and find alternate ways to express what is really happening. But there
might be other approaches, also.
 

D. Ambiguity about data discard policy in the underlying Unbuffered Data
Delivery procedure

This is really an issue regarding the Unbuffered Data Delivery
procedure, but I'll raise it here because it affects (by derivation) the
Cyclic Data Delivery procedure. 

Section 2.3.3 of the CSTS Unbuffered Data Delivery Procedure states that
"If the underlying communications service generates backpressure because
of congestion, the service provider shall discard the data and/or
notification." The amount of data to be discarded is ambiguous -
although the intent is to discard only the data that is available for
transmission, it is possible to misinterpret this statement to apply to
all data generated after the congestion occurs. 

Contrary to its name, I believe that the Unbuffered procedure really
does have a transfer buffer (although it is constrained to be only one
invocation deep), and that the procedure essentially acts like the
Timely mode of the Buffered procedure. If this is a correct
interpretation, then if the Timely material from the Buffered procedure
specification could be trimmed down to contain only what applies to the
Unbuffered procedure it would provide a much clearer definition of what
is to be discarded (and when) that the current wording of the procedure.


E. Redundant parameters of Unbuffered TRANSFER-DATA and base operation.

Again, this is really an issue regarding the Unbuffered Data Delivery
procedure. 

The base TRANSFER-DATA operation is defined in the February draft of the
CSTS Procedures Definition as having generation-time and
sequence-counter parameters. However, the TRANSFER-DATA operation in the
Unbuffered Data Delivery procedure has generation-time and
sequence-counter extension parameters, which are redundant with those of
the base operation.  


F. Various typographical errors and editorial issues in the Cyclic Data
Delivery Working Note

a. The file name is CSTS Cyclic Data Delivery Procedure 1.4, but the
cover sheet is "SLE Transfer Service Cyclic Data Delivery Procedure
Working Note Issue 1, Rev 2". The cover sheet name should change to CSTS
(Note - this is a common issue across multiple working notes). What, if
anything, is the relationship between the numbering conventions used in
the file name (e.g., 1.4) and on the cover sheets? (Note - this is a
common issue across multiple working notes)

b. The page header on each page is "CSTS PROCEDURE: STATUS REPORT"

c. The delivery-cycle (section 3.1.3), list-of-parameters (3.1.4),
extension-parameters (3.1.5), and diagnostic (3.1.6) sections should be
under section 3.1.2 (Invocation, Return, and Parameters), not peer with
it. Also, the parameter names should not be enclosed by single quotes -
single quotes are used for parameter values.

Best regards,
John

John Pietras
Global Science & Technology, Inc. (GST)
7855 Walker Drive
Suite 200
Greenbelt, Maryland, USA
20770-3239
Direct:   +1-240-542-1155
GST Main: +1-301-474-9696
Fax:      +1-301-474-5970




More information about the Css-csts mailing list