AW: Understanding the ROS{} type (from X.880)

Horvath Ernst ernst.horvath at SIEMENS.AT
Thu Jan 25 03:46:19 EST 2001


in ASN.1 notation parameters are enclosed in curly brackets. In the
particular case of the ROS type, each parameter represents a "value set",
which itself is indicated by curly brackets. Therefore the nesting of 2 (or
more) sets of brackets.

The parameters in the ROS type are used as constraints - indicated by round
brackets further down in the module. The meaning is actually quite
straightforward: the invoke ID must be within the limits of InvokeIdSet, the
operation value must be from the "Invokable" set, and only operations listed
also in the "Returnable" set can report a result or error. Valid error
values must further belong to the defined set "Errors", which itself is
constrained to apply only to the "Returnable" operations.

I admit that the notation is clumsy, but it allows you to declare your
application environment (i.e. the operations, or supplementary services,
that your software will support) in a formal way which is suitable for
processing by tools.

Ernst Horvath
Siemens AG

> -----Ursprüngliche Nachricht-----
> Von: Frank Derks [mailto:frank.derks at PHILIPS.COM]
> Gesendet am: Mittwoch, 24. Jänner 2001 19:06
> An: ITU-SG16 at
> Betreff: Understanding the ROS{} type (from X.880)
> When reading through H.450.1, I came across the definition
> for the ROS type
> (as defined in X.880):
> ROS {InvokeId:InvokeIdSet, OPERATION:Invokable,
> OPERATION:Returnable) ::= CHOICE
> {
>     invoke       [1]  Invoke {{InvokeIdSet},{Invokable}},
>     returnResult [2]  ReturnResult {{Returnable}},
>     returnError  [3]  ReturnError {{Errors{{Returnable}}}},
>     reject       [4]  Reject
> }
> I think I understand the lines with the "invoke" and the
> "returnResult"
> (apart from the fact that two curly braces are used in the
> latter, but I
> assume that this is just the way things are with the notation). Both
> Invoke and ReturnResult are parameterized sequences and their
> respective
> parameters are simply being "passed in".
> The line that follows beats me, however. How should I read:
> "{{Errors{{Returnable}}}}"
> First of all, I would expect a parameter of type "ERROR" to
> be "passed in",
> but it would seem that "Errors" is the name of the parameter for the
> parameterized "ReturnError" sequence and "Returnable" is of
> type. So what does that line actually mean?
> Regards,
> Frank
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> For help on this mail list, send "HELP ITU-SG16" in a message to
> listserv at

For help on this mail list, send "HELP ITU-SG16" in a message to
listserv at

More information about the sg16-avd mailing list