ISO/IEC 8825-3:2002/Amd 1:2005
(Amendment)Information technology — ASN.1 encoding rules: Specification of Encoding Control Notation (ECN) — Part 3: — Amendment 1: Extensibility support
Information technology — ASN.1 encoding rules: Specification of Encoding Control Notation (ECN) — Part 3: — Amendment 1: Extensibility support
Technologies de l'information — Règles de codage ASN.1: Spécification de la notation de contrôle de codage (ECN) — Partie 3: — Amendement 1: Prise en charge de l'extensibilité
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 8825-3
First edition
2002-12-15
AMENDMENT 1
2005-11-15
Information technology — ASN.1
encoding rules: Specification of
Encoding Control Notation (ECN)
AMENDMENT 1: Extensibility support
Technologies de l'information — Règles de codage ASN.1:
Spécification de la notation de contrôle de codage (ECN)
AMENDEMENT 1: Prise en charge de l'extensibilité
Reference number
ISO/IEC 8825-3:2002/Amd.1:2005(E)
©
ISO/IEC 2005
---------------------- Page: 1 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO/IEC 2005
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2005 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005(E)
CONTENTS
Page
1 Subclause 3.2.8. 1
2 New subclauses 9.25 bis and 9.25 ter. 1
9.25 bis Other conditions for applying encodings . 1
9.25 ter Encoding control for the open type . 1
3 Subclause 13.2.9. 2
4 Subclause 13.2.10.5. 2
5 Subclause 17.5.15. 2
6 Subclause 18.2.6. 3
7 Subclause 21.11.1. 3
8 Subclause 21.11.4. 3
9 New subclause 21.11.5. 4
10 New subclause 21.11 bis . 4
21.11 bis The Comparison type. 4
11 Subclause 21.12.1. 4
12 Subclause 21.12.4. 5
13 New subclause 21.12.5. 5
14 New subclause 21.16. 5
21.16 The IntegerMapping type . 5
15 Subclause 23.2.3.8. 5
16 Subclause 23.4.3.8. 5
17 Subclause 23.6.2.3. 5
18 Subclause 23.7.1. 6
19 Subclause 23.7.2.2. 7
20 Subclause 23.7.2.4. 8
21 Subclauses 23.7.2.6, 23.7.2.7 and 23.7.2.8. 8
22 Subclause 23.9.3.8. 8
23 New subclause 23.9 bis . 8
23.9 bis Defining encoding objects for classes in the open type category. 8
24 Subclause 23.12.2.3. 11
25 Subclause 23.13.1. 11
23.13.1 The defined syntax . 11
26 Subclauses 23.13.2.1 and 23.13.2.2. 13
27 Subclause 23.15. 13
23.15 Defining encoding objects for classes in the other categories. 13
28 Subclause 24.3.1. 13
29 New subclause 24.3.2 bis . 13
30 New subclause 24.3.8 bis . 13
31 Table 6. 14
32 Subclause C.1 . 14
33 Subclause C.4 . 14
34 Subclause G.2.4. 15
© ISO/IEC 2005 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
Amendment 1 to International Standard ISO/IEC 8825-3:2002 was prepared by Joint Technical Committee
ISO/IEC JTC 1, Information technology, Subcommittee SC 6, Telecommunications and information exchange
between systems, in collaboration with ITU-T. The identical text is published as Amendment 1 to ITU-T
Rec. X.692.
iv © ISO/IEC 2005 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
Information technology –
ASN.1 encoding rules:
Specification of Encoding Control Notation (ECN)
Amendment 1
Extensibility support
NOTE – All new or changed text in this amendment is underlined in clauses being replaced. When new clauses with a heading
are inserted, only the heading is underlined. Deleted text is present but marked with a strike-through. When merging all such text
into the base Recommendation | International standard, the underlining is to be removed and struck-through text taken out.
1 Subclause 3.2.8
Replace 3.2.8 with:
3.2.8 conditional encoding: An encoding which is to be applied only if some specified condition bounds condition
or size range condition is satisfied.
NOTE – The condition may be a bounds condition or a size range condition, or other more complex conditions.
2 New subclauses 9.25 bis and 9.25 ter
Insert new clauses 9.25 bis and 9.25 ter and update the contents:
9.25 bis Other conditions for applying encodings
9.25 bis.1 There are a number of different conditions that can be tested in order to select an appropriate encoding. These
include the actual value and the range of bounds.
9.25 bis.2 It is also possible to require that all of a given list of conditions are to be satisfied.
9.25 bis.3 A test for a condition uses either a single enumeration value (such as "bounded-without-negatives")
which contains the entire test in the specification of the one enumeration, or a triple of enumerations.
9.25 bis.4 If a triple is used, the first identifies (by an enumeration) the item that is being tested (for example
"test-upper-bound"), the second is the nature of the test (for example "greater-than"), and the third provides an
integer value for the test.
9.25 ter Encoding control for the open type
9.25 ter.1 Open types frequently provide a means of extensibility using an identification field, with new values for the
identification field and new types for the open type being added in successive versions (and often being available for
vendor-specific extensions).
9.25 ter.2 Both these features mean that a decoder may be asked to decode an open type when that particular
implementation has no knowledge of the type that has been encoded into it.
9.25 ter.3 The encoding support provided for the open type is the same as that for most other classes in the bitfield
category, but with the added ability to specify that a different encoding object set is to be applied to the type which is to
be encoded into the open type.
NOTE – This is in recognition that many protocols choose to use a different style of encoding (often based on a type-length-value
approach) for the type contained in an open type, while retaining a more compact style of encoding for the fields of the message
containing the open type.
ITU-T Rec. X.692 (2002)/Amd.1 (08/2004) 1
---------------------- Page: 5 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
9.25 ter.4 The model used for decoding an open type recognizes that a decoder will not know what type fills the open
type (table and relational constraints are not visible to either PER or to ECN), but that the application may be able to
determine this from some other field in the protocol, or in a previous message, or (for vendor-specific additions) based
on calling address.
9.25 ter.5 The model is therefore that, having dealt with any specified pre-padding, and determined the encoding space
and any value pre- and post-padding, the decoder will ask the application for the type which has been encoded. (In the
case of tools, the application will almost certainly have pre-configured the tool with a list of the known types that might
be present, and would simply return a pointer to one of these.) Decoding can now proceed normally.
9.25 ter.6 The application may, however, say "unknown" (see 9.25 ter.4), and the decoder then needs to know how to
determine the end of this unknown encoding. This is satisfied by enabling the ECN specifier in this case to provide an
encoding structure, and (optionally) an encoding object set to use with it, which is to be used by decoders for decoding
unknown types in the open type. There is syntax provided in clause 23 for this purpose.
NOTE – An example of such an encoding structure could be one that specifies an encoding that is commonly known as a "Type,
Length, Value" encoding, whose end can be determined without knowledge of the type being encoded.
3 Subclause 13.2.9
Replace subclause 13.2.9 with:
13.2.9 At later stages in these procedures, the application point may be on any of the following:
a) An encoding class name. This is completely encodable using the specification in an encoding object of
the same class (see 17.1.7).
b) An encoding constructor (see 16.2.12). The construction procedures can be determined by the
specification contained in an encoding object of the encoding constructor class, but that encoding object
does not determine the encoding of the components. The specification of the encoding object that is
applied may require that one or more of the components of the constructor are replaced by other
(parameterized) structures before the application point passes to the components.
c) A class in the bitstring or octetstring category that has a contained type as a property associated with the
values (see 11.3.4.3 d). The encoding of the contained type depends on whether there is an ENCODED BY
present, and on the specification of the encoding object being applied (see 22.11).
d) A class in the open type category. The encoding of the component of the open type depends on whether
there is an ENCODED WITH present, and on the specification of the encoding object being applied (see
23.9 bis.2).
e) A component which is an encoding class (possibly preceded by one or more classes in the tag category),
followed by an encoding class in the optionality category. The procedures and encodings for determining
presence or absence are determined by the specification contained in an encoding object of the class in
the optionality category. This encoding object may also require the replacement of the encoding class
(together with all its preceding classes in the tag category) with a (parameterized) replacement structure
before that class is encoded. The application point then passes to the first class in the tag category
(if any), or to the component, or to its replacement.
f) An encoding class preceded by an encoding class in the tag category. The tag number associated with the
class in the tag category is encoded using the specification in an encoding object of the class in the tag
category, and the application point then passes to the tagged class.
g) Any other built-in encoding class. This is completely encodable using the specification contained in an
encoding object of that class.
4 Subclause 13.2.10.5
Replace the Note in 13.2.10.5 with:
NOTE – If the encoding object being applied to a class in the open type category contains an ENCODED WITH, this determines
the encoding object set that is applied to the component, otherwise the combined encoding object set that is being applied to this
class is applied to the component (see 23.9 bis.2).
5 Subclause 17.5.15
Replace 17.5.15 with:
2 ITU-T Rec. X.692 (2002)/Amd.1 (08/2004)
---------------------- Page: 6 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
17.5.15 If a REFERENCE is needed as an actual parameter of any of the encoding objects or encoding object sets used
in this production, then it can either be supplied as a dummy parameter of the encoding object that is being defined, or it
can be supplied as a "ComponentIdList" (see 15.3.1 for the syntax of the "ComponentIdList" – the meaning of the
"ComponentIdList" in this context is specified below).
17.5.15 bis If the governor is not a constructor in the repetition category, then the first (or only) "identifier" in the
"ComponentIdList" shall be the "identifier" of a textually present "NamedType" (at some level of nesting – see
17.5.15 ter) of the construction that is obtained by de-referencing the governor. It identifies the entire definition of that
"NamedType" component, whether that definition is textually present or not.
17.5.15 ter If there is more than one such matching identifier, then the chosen matching identifier shall be
determined by the first match in a scan (in textual order) of the outer-level identifiers, then by a scan (in textual order)
of the second level identifiers, then by a scan (in textual order) of the third-level identifiers, and so on.
17.5.15 quat Each subsequent "identifier" of the "ComponentIdList" (if any) shall be an "identifier" in a
"NamedType" of the structure identified by the previous part of the "ComponentIdList", and identifies the entire
definition of that "NamedType" component, whether it is textually present or not in the definition of the structure
identified by the previous part of the "ComponentIdList".
17.5.15 quin If the governor is a constructor in the repetition category, then the actual parameter for the REFERENCE
shall be a "ComponentIdList" whose first "identifier" identifies a component that is textually present in the
"EncodingStructure" in the "RepetitionStructure" obtained by de-referencing the repetition (see 17.5.15 ter). Subclauses
17.5.15 ter and 17.5.15 quat then apply.
17.5.15 sex If the REFERENCE is required to identify a container, it can also be supplied as:
a) STRUCTURE (provided the constructor for the structure being encoded is not an alternatives category)
when it refers to that structure;
b) OUTER when it refers to the container of the complete encoding.
NOTE – The "EncodeStructure" is the only production in which REFERENCEs can be supplied, except through the use of
dummy parameters or the use of OUTER, or where references are in support of flag-to-be-used or flag-to-be-set in
the definition of an encoding object for a class in the repetition category which uses replacement.
6 Subclause 18.2.6
Replace the Note in 18.2.6 with:
NOTE – The combined encoding object set applied by these encoding objects to the type chosen for use with the #OPEN-TYPE
class is always the same as the combined encoding object set applied to the #OPEN-TYPE class as these encoding objects do not
contain an ENCODED WITH (see 13.2.10.5 and 13.2.9 d).
7 Subclause 21.11.1
Replace 21.11.1 with:
21.11.1 The "RangeCondition" type is:
RangeCondition ::= ENUMERATED
{unbounded-or-no-lower-bound,
semi-bounded-with-negatives,
bounded-with-negatives,
semi-bounded-without-negatives,
bounded-without-negatives,
test-lower-bound,
test-upper-bound,
test-range}
8 Subclause 21.11.4
Replace 21.11.4 with:
21.11.4 The predicate is satisfied for each of the first five enumeration values of 21.11.1 if and only if the following
conditions are satisfied by the bounds on the encoding class in the integer category:
a) unbounded-or-no-lower-bound: either there are no bounds, or else there is only an upper bound but
no lower bound.
ITU-T Rec. X.692 (2002)/Amd.1 (08/2004) 3
---------------------- Page: 7 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
b) semi-bounded-with-negatives: there is a lower bound that is less than zero, but no upper bound.
c) bounded-with-negatives: there is a lower bound that is less than zero, and an upper bound.
d) semi-bounded-without-negatives: there is a lower bound that is greater than or equal to zero, but
no upper bound.
e) bounded-without-negatives: there is a lower bound that is greater than or equal to zero, and an
upper bound.
NOTE – For any given set of bounds, exactly one predicate will be satisfied.
9 New subclause 21.11.5
Add a new subclause 21.11.5:
21.11.5 If the last three enumeration values of 21.11.1 are used, a value of the "Comparison" type (see 21.11 bis)
shall be provided, together with an integer comparator value. If the other enumeration values are used, these shall not
be provided.
10 New subclause 21.11 bis
Add a new subclause 21.11 bis after 21.11 and add to the contents list:
21.11 bis The Comparison type
21.11 bis.1 The "Comparison" type is:
Comparison ::= ENUMERATED
{equal-to,
not-equal-to,
greater-than,
less-than,
greater-than-or-equal-to,
less-than-or-equal-to}
21.11 bis.2 There is no default value for an encoding property of this type.
21.11 bis.3 An encoding property of type "Comparison" is used to test an identified property of a class against an
integer value (the comparator).
21.11 bis.4 The predicate using a "Comparison" is satisfied for each enumeration value if and only if the identified
property satisfies the following conditions:
a) equal-to: its value equals that of the specified integer comparator value.
b) not-equal-to: its value is different from that of the specified integer comparator value.
c) greater-than: its value is greater than that of the specified integer comparator value.
d) less-than: its value is less than that of the specified integer comparator value.
e) greater-than-or-equal-to: its value is greater than or equal to that of the specified integer
comparator value.
f) less-than-or-equal-to: its value is less than or equal to that of the specified integer comparator
value.
11 Subclause 21.12.1
Replace 21.12.1 with:
21.12.1 The "SizeRangeCondition" type is:
SizeRangeCondition ::= ENUMERATED
{no-ub-with-zero-lb,
ub-with-zero-lb,
no-ub-with-non-zero-lb,
ub-with-non-zero-lb,
fixed-size,
4 ITU-T Rec. X.692 (2002)/Amd.1 (08/2004)
---------------------- Page: 8 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
test-lower-bound,
test-upper-bound,
test-range}
12 Subclause 21.12.4
Replace 21.12.4 with:
21.12.4 The predicate is satisfied for each of the first five enumeration values of 21.12.1 if and only if the effective
size constraint satisfies the following conditions:
a) no-ub-with-zero-lb: there is no upper bound on the size and the lower bound is zero.
b) ub-with-zero-lb: there is an upper bound on the size and the lower bound is zero.
c) no-ub-with-non-zero-lb: there is no upper bound on the size and the lower bound is non-zero.
d) ub-with-non-zero-lb: there is an upper bound on the size and the lower bound is non-zero.
e) fixed-size: the lower bound and the upper bound on the size are the same value.
NOTE – Only the "fixed-size" case overlaps with other predicates.
13 New subclause 21.12.5
Add a new subclause 21.12.5 after 21.12.4:
21.12.5 If the last three enumeration values of 21.12.1 are used, a value of the "Comparison" type (see 21.11 bis)
shall be provided, together with an integer comparator value. If the other enumeration values are used, these shall not
be provided.
14 New subclause 21.16
Add a new subclause 21.16:
21.16 The IntegerMapping type
21.16.1 The "IntegerMapping" type is:
IntegerMapping ::= SET OF SEQUENCE {
source SET OF INTEGER,
result INTEGER} (CONSTRAINED BY {/* the intersection of the source
components shall be empty */})
21.16.2 The "IntegerMapping" is used to specify explicitly an ints-to-ints transform.
15 Subclause 23.2.3.8
Replace 23.2.3.8 with:
23.2.3.8 If an encoding object in the "REPETITION-ENCODINGS" ordered list is defined using "IF" or "IF-ALL", then
all preceding encoding objects in that list shall be defined using "IF" or "IF-ALL".
16 Subclause 23.4.3.8
Replace 23.4.3.8 with:
23.4.3.8 If an encoding object in the "REPETITION-ENCODINGS" ordered list is defined using "IF" or "IF-ALL", then
all preceding encoding objects in that list shall be defined using "IF" or "IF-ALL".
17 Subclause 23.6.2.3
Replace 23.6.2.3 with:
ITU-T Rec. X.692 (2002)/Amd.1 (08/2004) 5
---------------------- Page: 9 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
23.6.2.3 If an encoding object in the "ENCODINGS" ordered list is defined using "IF" or "IF-ALL", then all preceding
encoding objects in that list shall be defined using "IF" or "IF-ALL".
18 Subclause 23.7.1
Replace 23.7.1 with:
23.7.1 The defined syntax
The syntax for defining encoding objects for the #CONDITIONAL-INT class is defined as:
#CONDITIONAL-INT ::= ENCODING-CLASS {
-- Condition (see 21.11)
&range-condition RangeCondition OPTIONAL,
&comparison Comparison OPTIONAL,
&comparator INTEGER OPTIONAL,
&Range-conditions RangeCondition ORDERED OPTIONAL,
&Comparisons Comparison ORDERED OPTIONAL,
&Comparators INTEGER ORDERED OPTIONAL,
-- Structure-only replacement specification (see 22.1)
&#Replacement-structure OPTIONAL,
&replacement-structure-encoding-object &#Replacement-structure OPTIONAL,
-- Pre-alignment and padding specification (see 22.2)
&encoding-space-pre-alignment-unit Unit (ALL EXCEPT repetitions)
DEFAULT bit,
&encoding-space-pre-padding Padding DEFAULT zero,
&encoding-space-pre-pattern Non-Null-Pattern (ALL EXCEPT
different:any) DEFAULT bits:'0'B,
-- Start pointer specification (see 22.3)
&start-pointer REFERENCE OPTIONAL,
&start-pointer-unit Unit (ALL EXCEPT repetitions)
DEFAULT bit,
&Start-pointer-encoder-transforms #TRANSFORM ORDERED OPTIONAL,
-- Encoding space specification (see 22.4)
&encoding-space-size EncodingSpaceSize
DEFAULT self-delimiting-values,
&encoding-space-unit Unit (ALL EXCEPT repetitions)
DEFAULT bit,
&encoding-space-determination EncodingSpaceDetermination
DEFAULT field-to-be-set,
&encoding-space-reference REFERENCE OPTIONAL,
&Encoder-transforms #TRANSFORM ORDERED OPTIONAL,
&Decoder-transforms #TRANSFORM ORDERED OPTIONAL,
-- Value encoding
&Transform #TRANSFORM ORDERED OPTIONAL,
&encoding ENUMERATED
{positive-int, twos-complement,
reverse-positive-int,
reverse-twos-complement}
DEFAULT twos-complement,
-- Value padding and justification (see 22.8)
&value-justification Justification DEFAULT right:0,
&value-pre-padding Padding DEFAULT zero,
&value-pre-pattern Non-Null-Pattern DEFAULT bits:'0'B,
&value-post-padding Padding DEFAULT zero,
&value-post-pattern Non-Null-Pattern DEFAULT bits:'0'B,
&unused-bits-determination UnusedBitsDetermination
DEFAULT field-to-be-set,
&unused-bits-reference REFERENCE OPTIONAL,
&Unused-bits-encoder-transforms #TRANSFORM ORDERED OPTIONAL,
&Unused-bits-decoder-transforms #TRANSFORM ORDERED OPTIONAL,
-- Identification handle specification (see 22.9)
6 ITU-T Rec. X.692 (2002)/Amd.1 (08/2004)
---------------------- Page: 10 ----------------------
ISO/IEC 8825-3:2002/Amd.1:2005 (E)
&exhibited-handle PrintableString OPTIONAL,
&Handle-positions INTEGER (0.MAX) OPTIONAL,
&Handle-value HandleValue DEFAULT tag:any,
-- Bit reversal specification (see 22.12)
&bit-reversal ReversalSpecification
DEFAULT no-reversal
}
WITH SYNTAX {
[IF &range-condition [&comparison &comparator]]
[IF-ALL &Range-conditions [&Comparisons &Comparators]]
[ELSE]
[REPLACE
[STRUCTURE]
WITH &#Replacement-structure
[ENCODED BY &replacement-structure-encoding-object]]
[ALIGNED TO
[NEXT]
[ANY]
&encoding-space-pre-alignment-unit
[PADDING &encoding-space-pre-padding
[PATTERN &encoding-space-pre-pattern]]]
[START-POINTER &start-pointer
[MULTIPLE OF &start-pointer-unit]
[ENCODER-TRANSFORMS
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.