CONTENTS

 Introduction     
 1     Scope  
 2     Normative references  
        2.1     Identical Recommendations | International Standards 
        2.2     Additional references  
 3     Definitions  
        3.1     ASN.1 definitions 
        3.2     ECN‑specific definitions  
 4     Abbreviations  
 5     Definition of ECN syntax  
 6     Encoding conventions and notation  
 7     The ECN character set
 8     ECN lexical items  
        8.1     Encoding object references  
        8.2     Encoding object set references  
        8.3     Encoding class references  
        8.4     Reserved word items  
        8.5     Reserved encoding class name items  
        8.6     Non-ECN item   
 9     ECN Concepts  
        9.1     Encoding Control Notation (ECN) specifications  
        9.2     Encoding classes  
        9.3     Encoding structures  
        9.4     Encoding objects  
        9.5     Encoding object sets  
        9.6     Defining new encoding classes  
        9.7     Defining encoding objects  
        9.8     Differential encoding-decoding  
        9.9     Encoders options in encodings  
       9.10     Properties of encoding objects  
       9.11     Parameterization  
       9.12     Governors
       9.13     General aspects of encodings  
       9.14     Identification of information elements  
       9.15     Reference fields and determinants  
       9.16     Replacement classes and structures  
       9.17     Mapping abstract values onto fields of encoding structures  
       9.18     Transforms and transform composites  
       9.19     Contents of Encoding Definition Modules  
       9.20     Contents of the Encoding Link Module  
       9.21     Defining encodings for primitive encoding classes  
       9.22     Application of encodings  
       9.23     Combined encoding object set
       9.24     Application point
       9.25     Conditional encodings  
       9.26     Changes to ASN.1 Recommendations | International Standards  
10     Identifying encoding classes, encoding objects, and encoding object sets  
11     Encoding ASN.1 types  
       11.1     General
       11.2     Built‑in encoding classes used for implicitly generated encoding structures  
       11.3     Simplification and expansion of ASN.1 notation for encoding purposes  
       11.4     The implicitly generated encoding structure  
12     The Encoding Link Module (ELM)
       12.1     Structure of the ELM    
       12.2     Encoding types  
13     Application of encodings  
       13.1     General
       13.2     The combined encoding object set and its application  
14     The Encoding Definition Module (EDM)
15     The renames clause  
       15.1     Explicitly generated and exported structures  
       15.2     Name changes  
       15.3     Specifying the region for name changes  
16     Encoding class assignments  
       16.1     General
       16.2     Encoding structure definition  
       16.3     Alternative encoding structure  
       16.4     Repetition encoding structure  
       16.5     Concatenation encoding structure  
17     Encoding object assignments  
       17.1     General
       17.2     Encoding with a defined syntax  
       17.3     Encoding with encoding object sets  
       17.4     Encoding using value mappings  
       17.5     Encoding an encoding structure  
       17.6     Differential encoding-decoding  
       17.7     Encoding options  
       17.8     Non-ECN definition of encoding objects  
18     Encoding object set assignments  
       18.1     General
       18.2     Built‑in encoding object sets  
19     Mapping values  
       19.1     General
       19.2     Mapping by explicit values  
       19.3     Mapping by matching fields  
       19.4     Mapping by #TRANSFORM encoding objects  
       19.5     Mapping by abstract value ordering  
       19.6     Mapping by value distribution  
       19.7     Mapping integer values to bits  
20     Defining encoding objects using defined syntax  
21     Types used in defined syntax specification  
       21.1     The Unit type  
       21.2     The EncodingSpaceSize type  
       21.3     The EncodingSpaceDetermination type  
       21.4     The UnusedBitsDetermination type  
       21.5     The OptionalityDetermination type  
       21.6     The AlternativeDetermination type  
       21.7     The RepetitionSpaceDetermination type  
       21.8     The Justification type  
       21.9     The Padding type  
      21.10     The Pattern and Non-Null-Pattern types  
      21.11     The RangeCondition type  
      21.12     The SizeRangeCondition type  
      21.13     The ReversalSpecification type  
      21.14     The ResultSize type  
      21.15     The HandleValue type  
22     Commonly used encoding property groups  
       22.1     Replacement specification  
                 22.1.1     Encoding properties, syntax, and purpose     
                 22.1.2     Specification restrictions  
                 22.1.3     Encoder actions  
                 22.1.4     Decoder actions  
       22.2     Pre-alignment and padding specification  
                 22.2.1     Encoding properties, syntax, and purpose     
                 22.2.2     Specification constraints  
                 22.2.3     Encoder actions  
                 22.2.4     Decoder actions  
       22.3     Start pointer specification  
                 22.3.1     Encoding properties, syntax, and purpose     
                 22.3.2     Specification constraints  
                 22.3.3     Encoder actions  
                 22.3.4     Decoder actions  
       22.4     Encoding space specification  
                 22.4.1     Encoding properties, syntax, and purpose     
                 22.4.2     Specification restrictions  
                 22.4.3     Encoder actions  
                 22.4.4     Decoder actions  
       22.5     Optionality determination  
                 22.5.1     Encoding properties, syntax, and purpose     
                 22.5.2     Specification restrictions  
                 22.5.3     Encoder actions  
                 22.5.4     Decoder actions  
       22.6     Alternative determination  
                 22.6.1     Encoding properties, syntax, and purpose     
                 22.6.2     Specification restrictions  
                 22.6.3     Encoder actions  
                 22.6.4     Decoder actions  
       22.7     Repetition space specification  
                 22.7.1     Encoding properties, syntax, and purpose     
                 22.7.2     Specification constraints  
                 22.7.3     Encoder actions  
                 22.7.4     Decoder actions  
       22.8     Value padding and justification  
                 22.8.1    Encoding properties, syntax, and purpose     
                 22.8.2     Specification restrictions  
                 22.8.3     Encoder actions  
                 22.8.4     Decoder actions  
       22.9     Identification handle specification  
                 22.9.1     Encoding properties, syntax, and purpose     
                 22.9.2     Specification constraints  
                 22.9.3     Encoders actions  
                 22.9.4     Decoders actions 
      22.10     Concatenation specification  
                22.10.1     Encoding properties, syntax, and purpose     
                22.10.2     Specification constraints  
                22.10.3     Encoder actions  
                22.10.4     Decoder actions  
      22.11     Contained type encoding specification  
                22.11.1     Encoding properties, syntax, and purpose     
                22.11.2     Encoder actions  
                22.11.3     Decoder actions  
      22.12     Bit reversal specification  
                22.12.1     Encoding properties, syntax, and purpose     
                22.12.2     Specification constraints  
                22.12.3     Encoder actions  
                22.12.4     Decoder actions  
23     Defined syntax specification for bitfield and constructor classes  
       23.1     Defining encoding objects for classes in the alternatives category  
                 23.1.1     The defined syntax  
                 23.1.2     Purpose and restrictions  
                 23.1.3     Encoder actions  
                 23.1.4     Decoder actions  
       23.2     Defining encoding objects for classes in the bitstring category  
                 23.2.1     The defined syntax  
                 23.2.2     Model for the encoding of classes in the bitstring category  
                 23.2.3     Purpose and restrictions  
                 23.2.4     Encoder actions  
                 23.2.5     Decoder actions  
       23.3     Defining encoding objects for classes in the boolean category  
                 23.3.1     The defined syntax  
                 23.3.2     Purpose and restrictions  
                 23.3.3     Encoder actions  
                 23.3.4     Decoder actions  
       23.4     Defining encoding objects for classes in the characterstring category  
                 23.4.1     The defined syntax  
                 23.4.2     Model for the encoding of classes in the characterstring category  
                 23.4.3     Purpose and restrictions  
                 23.4.4     Encoder actions 
                 23.4.5     Decoder actions  
       23.5     Defining encoding objects for classes in the concatenation category  
                 23.5.1     The defined syntax 
                 23.5.2     Purpose and restrictions  
                 23.5.3     Encoder actions  
                 23.5.4     Decoder actions  
       23.6     Defining encoding objects for classes in the integer category  
                 23.6.1     The defined syntax  
                 23.6.2     Purpose and restrictions  
                 23.6.3     Encoder actions  
                 23.6.4     Decoder actions  
       23.7     Defining encoding objects for the #CONDITIONAL-INT class  
                 23.7.1    The defined syntax  
                 23.7.2     Purpose and restrictions  
                 23.7.3     Encoder actions  
                 23.7.4     Decoder actions  
       23.8     Defining encoding objects for classes in the null category  
                 23.8.1     The defined syntax  
                 23.8.2     Purpose and restrictions  
                 23.8.3     Encoder actions  
                 23.8.4     Decoder actions  
       23.9     Defining encoding objects for classes in the octetstring category  
                 23.9.1     The defined syntax  
                 23.9.2     Model for the encoding of classes in the octetstring category  
                 23.9.3     Purpose and restrictions  
                 23.9.4     Encoder actions  
                 23.9.5     Decoder actions  
      23.10     Defining encoding objects for classes in the optionality category  
                23.10.1     The defined syntax  
                23.10.2     Purpose and restrictions  
                23.10.3     Encoder actions  
                23.10.4     Decoder actions  
      23.11     Defining encoding objects for classes in the pad category  
                23.11.1     The defined syntax  
                23.11.2     Purpose and restrictions  
                23.11.3     Encoder actions  
                23.11.4     Decoder actions  
      23.12     Defining encoding objects for classes in the repetition category  
                23.12.1     The defined syntax  
                23.12.2     Purpose and restrictions 
                23.12.3     Encoder actions  
                23.12.4     Decoder actions  
      23.13     Defining encoding objects for the #CONDITIONAL-REPETITION class  
                23.13.1     The defined syntax  
                23.13.2     Purpose and restrictions  
                23.13.3     Encoder actions  
                23.13.4     Decoder actions  
      23.14     Defining encoding objects for classes in the tag category  
                23.14.1     The defined syntax  
                23.14.2     Purpose and restrictions  
                23.14.3     Encoder actions  
                23.14.4     Decoder actions  
      23.15     Defining encoding objects for classes in the other categories  
24     Defined syntax specification for the #TRANSFORM encoding class  
       24.1     Summary of encoding properties and defined syntax  
       24.2     Source and target of transforms  
       24.3     The int-to-int transform   
       24.4     The bool-to-bool transform   
       24.5     The bool-to-int transform   
       24.6     The int-to-bool transform   
       24.7     The int-to-chars transform   
       24.8     The int-to-bits transform   
       24.9     The bits-to-int transform   
      24.10     The char-to-bits transform   
      24.11     The bits-to-char transform   
      24.12     The bit-to-bits transform   
      24.13     The bits-to-bits transform   
      24.14     The chars-to-composite-char transform   
      24.15     The bits-to-composite-bits transform   
      24.16     The octets-to-composite-bits transform   
      24.17     The composite-char-to-chars transform   
      24.18     The composite-bits-to-bits transform   
      24.19     The composite-bits-to-octets transform   
25     Complete encodings and the #OUTER class  
       25.1     Encoding properties, syntax, and purpose for the #OUTER class     
       25.2     Encoder actions for #OUTER   
       25.3     Decoder actions for #OUTER   
Annex A – Addendum to ITU‑T Rec. X.680 | ISO/IEC 8824‑1     
        A.1     Exports and imports clauses  
        A.2     Addition of "REFERENCE"
        A.3     Notation for character string values  
Annex B –Addendum to ITU‑T Rec. X.681 | ISO/IEC 8824‑2     
        B.1     Definitions  
        B.2     Additional lexical items  
        B.3     Addition of "ENCODING‑CLASS"
        B.4     FieldSpec additions  
        B.5     Fixed-type ordered value list field spec  
        B.6     Fixed-class encoding object field spec  
        B.7     Variable-class encoding object field spec  
        B.8     Fixed-class encoding object set field spec  
        B.9     Fixed-class ordered encoding object list field spec  
       B.10     Encoding class field spec  
       B.11     Ordered value list notation  
       B.12     Ordered encoding object list notation  
       B.13     Primitive field names  
       B.14     Additional reserved words  
       B.15     Definition of encoding objects  
       B.16     Additions to "Setting"
       B.17     Encoding class field type  
Annex C – Addendum to ITU‑T Rec. X.683 | ISO/IEC 8824‑4     
Annex C – Addendum to ITU‑T Rec. X.683 | ISO/IEC 8824‑4     
        C.1     Parameterized assignments  
        C.2     Parameterized encoding assignments  
        C.3     Referencing parameterized definitions  
        C.4     Actual parameter list
Annex D – Examples     
        D.1     General examples  
        D.2     Specialization examples  
        D.3     Explicitly generated structure examples  
        D.4     A more-bit encoding example  
        D.5     Legacy protocol specified with tabular notation  
Annex E – Support for Huffman encodings     
Annex F – Additional information on the Encoding Control Notation (ECN)     
Annex G – Summary of the ECN notation