FR2857192A1 - SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS - Google Patents

SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS Download PDF

Info

Publication number
FR2857192A1
FR2857192A1 FR0402878A FR0402878A FR2857192A1 FR 2857192 A1 FR2857192 A1 FR 2857192A1 FR 0402878 A FR0402878 A FR 0402878A FR 0402878 A FR0402878 A FR 0402878A FR 2857192 A1 FR2857192 A1 FR 2857192A1
Authority
FR
France
Prior art keywords
protocol
description
abstract
data
receivers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0402878A
Other languages
French (fr)
Other versions
FR2857192B1 (en
Inventor
Michel Mouly
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARGUIN COMMUNICATIONS Inc
Original Assignee
ARGUIN COMMUNICATIONS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR0306368A external-priority patent/FR2855699B1/en
Application filed by ARGUIN COMMUNICATIONS Inc filed Critical ARGUIN COMMUNICATIONS Inc
Priority to FR0402878A priority Critical patent/FR2857192B1/en
Priority to PCT/FR2004/001310 priority patent/WO2004107714A1/en
Publication of FR2857192A1 publication Critical patent/FR2857192A1/en
Application granted granted Critical
Publication of FR2857192B1 publication Critical patent/FR2857192B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

L'invention concerne une spécification et une mise en oeuvre d'un protocole de gestion de communication et de transmission entre au moins un émetteur et au moins un récepteur, comprenant les étapes suivantes :- détermination d'un contexte commun (2);- identification des messages de protocole (3);- spécification des représentations de données stockées et/ou transmises à partir de la description d'un contexte commun et de la description des messages ;- spécification d'instructions d'implémentation du protocole; et- mise en oeuvre dudit protocole dans au moins un des émetteurs et au moins un des émetteurs.The invention relates to a specification and an implementation of a communication and transmission management protocol between at least one transmitter and at least one receiver, comprising the following steps: - determination of a common context (2); identification of the protocol messages (3); - specification of the representations of data stored and / or transmitted from the description of a common context and the description of the messages; - specification of protocol implementation instructions; and implementation of said protocol in at least one of the transmitters and at least one of the transmitters.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

Système de spécification et de mise en #uvre de protocole de communication et de transmission, procédé, spécification, dispositif de communication et programmes d'ordinateur correspondant.  System for specifying and implementing communication and transmission protocol, method, specification, communication device and corresponding computer programs.

La présente invention se rapporte au domaine des protocoles de communications.  The present invention relates to the field of communications protocols.

Plus précisément, l'invention concerne la génération automatique de spécification de protocoles de communication entre un ou plusieurs émetteurs et un ou plusieurs récepteurs.  More specifically, the invention relates to the automatic generation of specification of communication protocols between one or more transmitters and one or more receivers.

Le développement de protocoles de signalisation dans le domaine des télécommunications comporte une phase de spécifications, une phase de développement des logiciels dans les entités distantes qui communiquent en appliquant ces protocoles, suivi souvent d'une phase de test.  The development of signaling protocols in the telecommunications field comprises a specification phase, a software development phase in the remote entities that communicate by applying these protocols, often followed by a test phase.

Dans beaucoup de cas, les entités communicantes ne sont pas développées par les mêmes équipes ou entreprises (par exemple l'infrastructure fixe et les mobiles dans le cas d'un réseau de télécommunications pour mobiles). Dans ces cas, les spécifications ne sont pas, en général, rédigées par les équipes de développement, mais par des groupes composés de personnes venant de différentes entreprises, typiquement parmi celles qui vont développer les équipements, ou encore les acheter pour les mettre en #uvre.  In many cases, communicating entities are not developed by the same teams or companies (for example fixed infrastructure and mobiles in the case of a mobile telecommunications network). In these cases, the specifications are not usually written by the development teams, but by groups made up of people from different companies, typically those who will develop the equipment, or buy them to put them in # out.

On observe en pratique un décalage important entre les méthodes et approches des groupes de spécification, comparées avec celles des équipes de développement. Au pire, la spécification d'un protocole est rédigée en langage naturel, n'est pas complète, contient des incohérences, et demande pour être comprise de nombreuses informations dispersées dans d'autres documents.  In practice, there is a significant gap between the methods and approaches of the specification groups, compared with those of the development teams. At worst, the specification of a protocol is written in natural language, is not complete, contains inconsistencies, and requires to be understood many scattered information in other documents.

A l'opposé, un logiciel une fois réalisé est une instance formelle, complète et logiquement cohérente de la spécification du protocole, et ce tout en pouvant être erroné, au sens où il ne permet pas un interfonctionnement tel que prévu par  On the other hand, once a software is realized, it is a formal, complete and logically coherent instance of the protocol specification, and it can be erroneous in the sense that it does not allow interworking as provided by

<Desc/Clms Page number 2><Desc / Clms Page number 2>

le groupe de spécification avec une entité distante paire développée indépendamment.  the specification group with a remote entity pair developed independently.

Ce décalage, outre les risques de réalisation erronée, de problèmes de multiplicité de représentation et de problèmes d'évolution qu'il entraîne, est la source d'un important travail d'analyse et d'exégèse, et plus généralement d'efforts de compréhension de la part des équipes de développement.  This discrepancy, besides the risks of erroneous realization, problems of multiplicity of representation and problems of evolution that it entails, is the source of an important work of analysis and exegesis, and more generally of efforts of understanding on the part of the development teams.

Ce travail de reconstruction n'apparaît pas intrinsèquement nécessaire, et est dupliqué par chaque équipe de développement. Cela est une source de coûts inutiles, et d'inefficacité de la chaîne prise dans son ensemble.  This reconstruction work does not appear intrinsically necessary, and is duplicated by each development team. This is a source of unnecessary costs, and inefficiency of the chain as a whole.

Une autre source de surcoûts vient de ce que les spécifications de protocoles intéressant un même objet (par exemple, un portable GSM) ne sont pas rédigées par un seul groupe. La variété des approches rédactionnelles suivies par ces différents groupes limite fortement la possibilité d'unifier l'approche de développement. Cela est une source d'inefficacité du développement lui-même, des tests, ainsi que du volume de code généré (il est difficile de mettre en commun ce qui intrinsèquement peut l'être, simplement parce que spécifié différemment).  Another source of additional costs is that protocol specifications for a single object (for example, a GSM mobile phone) are not written by a single group. The variety of editorial approaches followed by these different groups greatly limits the possibility of unifying the development approach. This is a source of inefficiency for the development itself, tests, as well as the amount of code generated (it is difficult to share what inherently can be, simply because it is specified differently).

Il apparaît donc utile d'étudier comment réduire ce travail intermédiaire, par l'introduction de méthodes formelles et unificatrices. De telles méthodes peuvent être dans un premier temps appliquées à une équipe de développement, puis, dans la mesure du possible aux spécifications elles-mêmes.  It therefore seems useful to study how to reduce this intermediate work by introducing formal and unifying methods. Such methods can initially be applied to a development team and then, as far as possible, to the specifications themselves.

On connaît dans l'état de la technique quelques méthodes publiées allant dans ce sens, notamment : ASN.l, XML, CSN.l et SDT. Ces différentes méthodes et les langages formels associés ne correspondent pas tous aux mêmes parties de la spécification d'un protocole. Il est donc nécessaire de rentrer un peu plus dans le détail de ce qu'est un protocole et sa spécification.  In the state of the art, there are known published methods along these lines, in particular: ASN.l, XML, CSN.l and SDT. These different methods and the associated formal languages do not all correspond to the same parts of the specification of a protocol. It is therefore necessary to go into a little more detail about what a protocol and its specification.

Un protocole est essentiellement un langage permettant à deux machines distinctes et distantes d'échanger des informations en utilisant in fine un médium de transmission. En pratique ce langage est organisé en différentes parties plus ou moins indépendantes, chacune étant considérée elle-même comme un protocole.  A protocol is essentially a language that allows two separate and remote machines to exchange information by ultimately using a transmission medium. In practice this language is organized in different parts more or less independent, each being considered itself as a protocol.

Les protocoles sont alors arrangés en couches, chaque protocole à l'exception du The protocols are then arranged in layers, each protocol with the exception of

<Desc/Clms Page number 3><Desc / Clms Page number 3>

plus bas utilisant non pas directement le médium de transmission mais un service de transmission fourni par le protocole directement inférieur .    lower using not directly the transmission medium but a transmission service provided by the protocol directly lower.

A l'instar des langages humains, les protocoles peuvent être analysés du point de vue du vocabulaire ou lexique (liste de types de messages, listes de parties de message), de l'encodage (phonèmes et morphèmes pour les langages humains, formes d'onde et encodage numérique pour les protocoles), de la syntaxe (règles de grammaire), de la sémantique (sens des messages et des parties de message), des règles de procédure (règles régissant les dialogues entre les entités dialoguant ; c'est cette partie qu'évoque le mot protocole ), et enfin de la praxis (effet des messages).  Like human languages, protocols can be analyzed from the point of view of vocabulary or lexicon (list of types of messages, lists of parts of messages), of encoding (phonemes and morphemes for human languages, forms of wave and digital encoding for protocols), syntax (grammar rules), semantics (meaning of messages and message parts), rules of procedure (rules governing dialogues between dialoguing entities; this part that evokes the word protocol), and finally praxis (effect of the messages).

Certains de ces aspects sont bien déterminés, et apparaissent en clair dans la majorité des spécifications (le lexique, l'encodage, les règles de procédures). D'autres sont souvent mal perçus et, de ce fait, spécifiés sans méthode (sémantique et praxis).  Some of these aspects are well defined, and appear in the clear in the majority of the specifications (the lexicon, the encoding, the rules of procedures). Others are often badly perceived and, therefore, specified without any method (semantics and praxis).

Dans une majorité de spécifications, on peut identifier deux parties distinctes : le lexique et l'encodage d'une part, et la spécification des procédures . Le lexique apparaît sous la forme de listes des messages et de parties de messages ( élément d'information ), chacun avec la grammaire et l'encodage associé. Les règles de procédure sont spécifiées comme une liste de procédures plus ou moins indépendantes, décrites comme les actions entraînées par la réception de messages venant de l'entité paire ou de commandes venant d'autres logiciels dans la même machine. Cela couvre le plus souvent aussi bien les règles de procédure (actions et réactions visibles, et donc testables, dans le flot d'information circulant entre les entités paires) que la praxis plus générale (actions internes non nécessairement visibles). La spécification de la sémantique est dispersée dans la description des éléments lexicaux, dans la description des procédures, et souvent dans d'autres documents.  In a majority of specifications, two distinct parts can be identified: the lexicon and the encoding on the one hand, and the specification of the procedures. The lexicon appears in the form of lists of messages and parts of messages (information element), each with the associated grammar and encoding. The rules of procedure are specified as a list of more or less independent procedures, described as the actions caused by the receipt of messages from the peer entity or commands from other software in the same machine. This most often covers both the rules of procedure (actions and reactions visible, and therefore testable, in the flow of information circulating between the even entities) than the more general praxis (internal actions not necessarily visible). The specification of semantics is dispersed in the description of lexical elements, in the description of procedures, and often in other documents.

Les méthodes formelles qu'on peut trouver dans les publications se concentrent sur la formalisation de l'encodage et la syntaxe d'une part (ASN.l,  The formal methods that can be found in the publications focus on the formalization of the encoding and the syntax on the one hand (ASN.l,

<Desc/Clms Page number 4><Desc / Clms Page number 4>

CSN.l, XML), et sur les procédures vues comme des séquences temporelles d'action (SDT, SDL).  CSN.l, XML), and the procedures seen as action time sequences (SDT, SDL).

ASN.l (Abstract Notation 1) est un langage formel spécifié par l'ISO (série X. 680 et X. 690) permettant de décrire des structures de données en distinguant une description abstraite (i.e., pouvant s'appliquer à différentes méthodes d'encodage) et des méthodes d'encodage de ces structures de données. Il est appliqué couramment à la description de la structure des messages d'un protocole, chaque message étant considéré comme une structure de donnée. Parce que formelle, une spécification écrite en ASN.l peut être traduite automatiquement en un logiciel d'encodage et de décodage de messages.  ASN.l (Abstract Notation 1) is a formal language specified by ISO (series X. 680 and X. 690) for describing data structures by distinguishing an abstract description (ie, which can be applied to different methods of encoding) and methods of encoding these data structures. It is commonly applied to the description of the message structure of a protocol, each message being considered as a data structure. Because formal, a specification written in ASN.l can be automatically translated into a software of encoding and decoding of messages.

ASN.1 a été récemment étendu pour permettre la description formelle de méthodes d'encodage, dans le but d'appliquer ASN.l à des spécifications soit non écrite originellement en ASN.l, soit pour lesquelles les méthodes générales d'encodage spécifiées par l'ISO ne sont pas satisfaisantes pour une raison ou une autre.  ASN.1 has recently been extended to allow the formal description of encoding methods, with the aim of applying ASN.l to specifications either unwritten originally in ASN.l, or for which the general encoding methods specified by the ISO are unsatisfactory for one reason or another.

XML est un langage formel dont les buts sont proches de ceux d'ASN.l en ce qu'il permet de décrire des structures de données et donc des messages quand on les limite à une structure de données. Comme ASN.l, XML permet la génération automatique de logiciels d'encodage et décodage.  XML is a formal language whose goals are close to those of ASN.l in that it makes it possible to describe data structures and therefore messages when they are limited to a data structure. Like ASN.l, XML allows the automatic generation of encoding and decoding software.

CSN.l est un langage formel développé par l'inventeur, et utilisé dans quelques spécifications de protocoles de l'ETSI. Ce langage permet de décrire la grammaire de chaînes de bits (et s'apparente beaucoup plus aux langages de description de grammaire formelle comme la BNF, que des langages de description de données), et peut être utilisé pour décrire la structure en tant que chaîne de bits des messages de la majorité des protocoles de télécommunications.  CSN.l is a formal language developed by the inventor, and used in some ETSI protocol specifications. This language makes it possible to describe the grammar of bit strings (and is much more similar to formal grammar description languages such as BNF, than data description languages), and can be used to describe the structure as a string. bits of messages from the majority of telecommunication protocols.

Il se distingue dans ces buts de deux manières de l'ASN.l ou de XML : il peut être utilisé a posteriori, pour décrire des messages dont l'encodage est décrit de manière quelconque dans une spécification, et il ne cherche pas à aborder même partiellement la sémantique liée à la structure. Comme dans le cas des langages précédents, une spécification en CSN.l peut être utilisée pour la génération It differs for these purposes in two ways from ASN.l or XML: it can be used retrospectively to describe messages whose encoding is described in some way in a specification, and it does not attempt to address even partially the semantics linked to the structure. As in the case of previous languages, a specification in CSN.l can be used for generation

<Desc/Clms Page number 5><Desc / Clms Page number 5>

automatique de l'encodage et du décodage de messages. Par rapport à ASN.1 et XML, CSN.1 présente l'avantage de s'appliquer à tout protocole, et donc de permettre une réalisation unifiée de la partie correspondante de la réalisation du protocole. En contrepartie, CSN.l ne décrit pas les messages en tant que structures de données, et cette liaison ne peut donc pas être générée automatiquement.  automatic encoding and decoding of messages. Compared to ASN.1 and XML, CSN.1 has the advantage of being applicable to any protocol, and thus of allowing a unified realization of the corresponding part of the realization of the protocol. In return, CSN.l does not describe the messages as data structures, so this link can not be generated automatically.

Dans un tout autre domaine, SDT ou SDL (ainsi que d'autres méthodes apparentées) s'adressent à la formalisation des procédures vues comme séquences temporelles d'action. Ces méthodes sont centrées chacune autour d'un langage formel décrivant des événements (réception de messages ou de commandes internes) et des séquences d'action initiées par ces événements (envoi de messages ou de réponses internes, mémorisation de données, transition d'états, ...). Ces méthodes mettent l'accent principalement sur la vision des entités des protocoles comme des automates d'états, un état étant un résumé des aspects du contexte (données mémorisées) de chacune des entités paires qui interviennent dans le choix de l'action à entreprendre suite à chaque événement. Ainsi, ces méthodes permettent de formaliser principalement les règles de procédure et, dans une certaine mesure, la praxis, et enfin, indirectement, la sémantique des messages.  In a completely different domain, SDT or SDL (as well as other related methods) address the formalization of the procedures seen as temporal sequences of action. These methods are each centered around a formal language describing events (reception of messages or internal commands) and action sequences initiated by these events (sending messages or internal responses, storing data, transitioning states , ...). These methods focus mainly on the view of the entities of the protocols as automatons of states, a state being a summary of the aspects of the context (stored data) of each of the paired entities which intervene in the choice of the action to be undertaken following each event. Thus, these methods make it possible to formalize mainly the rules of procedure and, to a certain extent, the praxis, and finally, indirectly, the semantics of the messages.

Un inconvénient de cette technique de l' art antérieur est que les méthodes publiées jusqu'à présent souffrent de nombreuses limitations. En premier lieu elles ne permettent qu'une formalisation très partielle des spécifications de protocoles, principalement l'encodage des messages et parties de message.  A disadvantage of this prior art technique is that the methods published so far suffer from numerous limitations. Firstly, they allow only a very partial formalization of protocol specifications, mainly the encoding of messages and parts of messages.

Une autre limitation très importante, particulièrement visible dans le cas de l'ASN.l, est qu'elles ne permettent pas en général d'intégrer dans une même approche des protocoles qui ne sont pas spécifiés initialement suivant ladite méthode. CSN.1 est ici une exception.  Another very important limitation, particularly visible in the case of ASN.l, is that they generally do not allow to integrate in the same approach protocols that are not initially specified according to said method. CSN.1 is an exception here.

Quant à SDL et apparentées, ces méthodes ne capturent que la notion d'automate ; or les protocoles récents, à l'exemple de ceux faisant partie des spécifications de l'UMTS (de l'anglais Universal Mobile Télécommunications System ou Système de télécommunication Mobile Universel en français),  As for SDL and related, these methods only capture the notion of automaton; however, recent protocols, such as those included in the specifications of UMTS (Universal Mobile Telecommunications System or Universal Mobile Telecommunications System in French),

<Desc/Clms Page number 6><Desc / Clms Page number 6>

sont des automates très simples, la complexité étant plutôt dans les structures de données et les algorithmes d'encodage.  are very simple automata, the complexity being rather in data structures and encoding algorithms.

Un autre inconvénient des spécifications en langage formel selon l'état de l'art ne donnant pas de forme de signal est qu'elles conduisent généralement à des formes de signal inefficaces.  Another disadvantage of state-of-the-art formal-form language specifications is that they generally lead to inefficient signal forms.

L'invention selon ses différents aspects a notamment pour objectif de pallier ces inconvénients de l' art antérieur.  The invention in its various aspects is intended to overcome these disadvantages of the prior art.

Plus précisément, un objectif de l'invention est d'optimiser la spécification de protocole de communication et sa mise en #uvre concrète.  More specifically, an object of the invention is to optimize the communication protocol specification and its concrete implementation.

Un autre objectif de l'invention est de permettre un développement rapide et efficace de piles de protocoles de communication, notamment dans le domaine des communications mobiles.  Another object of the invention is to enable a rapid and efficient development of communication protocol stacks, particularly in the field of mobile communications.

L'invention a également pour objectif de permettre la génération automatique d'une partie substantielle des logiciels nécessaires à la mise en #uvre du protocole.  The invention also aims to allow the automatic generation of a substantial part of the software necessary for the implementation of the protocol.

L'invention a aussi pour objectif de limiter l'intervention humaine dans les différentes phases de mise en oeuvre d'un protocole de communication dans un émetteur et/ou un récepteur, afin notamment dans réduire la durée et de limiter les erreurs humaines pouvant entraîner un fonctionnement de l'émetteur et/ou de du récepteur non optimal.  The invention also aims to limit the human intervention in the various phases of implementation of a communication protocol in a transmitter and / or a receiver, in particular in order to reduce the duration and to limit the human errors that can lead to operation of the transmitter and / or the non-optimal receiver.

Dans ce but, l'invention propose un système de spécification et de mise en #uvre d'un protocole de gestion de communication et de transmission entre au moins un émetteur et au moins un récepteur, comprenant: - des moyens de détermination d'un contexte commun comprenant des moyens de description d'un ensemble de données gérées par le ou les émetteurs et/ou leou les récepteurs ; - des moyens d'identification des messages de protocole susceptibles d'être échangés entre le ou les émetteurs et le ou les récepteurs, l'identification étant indépendante de la ou des représentations utilisées pour les messages ;  For this purpose, the invention proposes a system for specifying and implementing a communication management and transmission protocol between at least one transmitter and at least one receiver, comprising: means for determining a common context comprising means for describing a set of data managed by the transmitter (s) and / or the receiver (s); means for identifying protocol messages that can be exchanged between the transmitter (s) and the receiver (s), the identification being independent of the representation (s) used for the messages;

<Desc/Clms Page number 7><Desc / Clms Page number 7>

- des moyens de définition de représentations de données stockées et/ou transmises par le ou les émetteurs et/ou le ou les récepteurs à partir de la détermination d'un contexte commun et de l'identification des messages, la définition de représentations permettant de déterminer des instructions d'implémentation du protocole dans au moins un des émetteurs et au moins un des récepteurs ; et - des moyens de mise en #uvre du protocole dans au moins un des émetteurs et au moins un des récepteurs à partir des instructions d'implémentation, de façon à ce que le ou les émetteurs soient aptes à communiquer avec le ou les récepteurs.  means for defining representations of data stored and / or transmitted by the transmitter (s) and / or the receiver (s) from the determination of a common context and the identification of the messages, the definition of representations allowing to determining implementation instructions for the protocol in at least one of the transmitters and at least one of the receivers; and means for implementing the protocol in at least one of the transmitters and at least one of the receivers from the implementation instructions, so that the transmitter or transmitters are able to communicate with the receiver or receivers.

On note qu'un protocole de gestion de communication s'entend ici au sens strict et ne comprend notamment pas les protocoles de synchronisation de bases de données qui ici ne sont pas considérés comme des protocoles de gestion de communication.  Note that a communication management protocol is understood here in the strict sense and does not include database synchronization protocols that are not considered here as communication management protocols.

Selon une caractéristique particulière, le système est remarquable en ce que les moyens de détermination d'un contexte commun comprennent eux-mêmes des moyens de description d'une structure du contexte, la description étant indépendante de la ou des représentations utilisées pour le stockage et/ou la transmission des données.  According to one particular characteristic, the system is remarkable in that the means for determining a common context themselves comprise means for describing a structure of the context, the description being independent of the representation or representations used for storage and / or the transmission of data.

La notion d'indépendance signifie ici qu'on peut changer et/ou modifier la représentation de stockage sans invalider la représentation abstraite.  The notion of independence means here that one can change and / or modify the storage representation without invalidating the abstract representation.

Selon une caractéristique particulière, le système est remarquable en ce que les moyens de détermination d'un contexte commun comprennent en outre des moyens d'identification et de description des types d'objets permettant d'analyser la structure du contexte, l'identification et la description des types d'objets étant indépendantes de la ou des représentations utilisées pour le stockage et/ou la transmission.  According to one particular characteristic, the system is remarkable in that the means for determining a common context further comprise means for identifying and describing the types of objects making it possible to analyze the structure of the context, the identification and the description of the types of objects being independent of the representation or representations used for storage and / or transmission.

Selon une caractéristique particulière, le système est remarquable en ce que tout ou partie des données gérées sont les données que le protocole vise à  According to a particular characteristic, the system is remarkable in that all or part of the data managed is the data that the protocol aims to

<Desc/Clms Page number 8><Desc / Clms Page number 8>

maintenir cohérent dans au moins un émetteur parmi le ou les émetteurs et au moins un récepteur parmi le ou les récepteurs.  maintain coherence in at least one transmitter among the transmitter (s) and at least one receiver among the receiver (s).

La notion de données cohérentes signifie ici que ces données ont une identité sémantique mais pas nécessairement une identité de représentation. Par exemple, une fréquence exprimée en MHz peut avoir la même signification qu'une fréquence exprimée en Hz alors que la représentation est différente.  The notion of coherent data here means that these data have a semantic identity but not necessarily an identity of representation. For example, a frequency expressed in MHz may have the same meaning as a frequency expressed in Hz while the representation is different.

Selon une caractéristique particulière, le système est remarquable en ce qu'au moins une partie de l'identification des messages est effectuée en termes d'actions et/ou de ses effets sur le contexte commun.  According to a particular characteristic, the system is remarkable in that at least a part of the message identification is performed in terms of actions and / or its effects on the common context.

Selon une caractéristique particulière, le système est remarquable en ce qu'il comprend des moyens de liaison entre : - une description de la forme de signal effectivement transmis ; et - l'identification des messages de protocole.  According to a particular characteristic, the system is remarkable in that it comprises connection means between: a description of the form of signal actually transmitted; and - the identification of the protocol messages.

Selon une caractéristique particulière, le système est remarquable en ce que la forme du signal appartient au groupe comprenant : - les suites de données binaires ; - les suites d'éléments pris dans un alphabet prédéterminé ; -les suites de formes d'ondes modulées.  According to a particular characteristic, the system is remarkable in that the form of the signal belongs to the group comprising: the binary data sequences; - the sequences of elements taken in a predetermined alphabet; the sequences of modulated waveforms.

Ainsi, le signal peut être associé à des types de symboles très divers.  Thus, the signal can be associated with very different types of symbols.

Selon une caractéristique particulière, le système est remarquable en ce que la liaison se fait dans un langage de spécification de données comprenant des fonctions permettant la description des données sous forme d'attributs d'objets abstraits et de fonctions s'appliquant sur des représentations concrètes.  According to one particular characteristic, the system is remarkable in that the link is in a data specification language comprising functions for describing data in the form of attributes of abstract objects and functions applying to concrete representations. .

Selon une caractéristique particulière, le système est remarquable en ce que la spécification de la forme de signal se fait en langage CSN1 enrichi de fonctions permettant la description des données sous forme d'attributs d'objets abstraits et de fonctions s'appliquant sur des représentations concrètes.  According to a particular characteristic, the system is remarkable in that the specification of the signal form is done in CSN1 language enriched with functions allowing the description of the data in the form of attributes of abstract objects and functions applying to representations. concrete.

Selon une caractéristique particulière, le système est remarquable en ce qu'il comprend des moyens d'utilisation des données de contexte dans une description formelle d'un encodage et/ou d'un décodage.  According to a particular characteristic, the system is remarkable in that it comprises means for using the context data in a formal description of an encoding and / or a decoding.

<Desc/Clms Page number 9> <Desc / Clms Page number 9>

Selon une caractéristique particulière, le système est remarquable en ce que les moyens de détermination d'un contexte commun, les moyens d'identification des messages de protocole et les moyens de définition de représentations de données mettent chacun en oeuvre un langage formel permettant une détermination automatique du logiciel de mise en #uvre du protocole.  According to one particular characteristic, the system is remarkable in that the means for determining a common context, the means for identifying the protocol messages and the means for defining data representations each implement a formal language allowing a determination. automatic protocol implementation software.

Selon une caractéristique particulière, le système est remarquable en ce qu'il comprend des moyens de détermination automatique du logiciel de mise en #uvre du protocole.  According to a particular characteristic, the system is remarkable in that it comprises means for automatically determining the software for implementing the protocol.

Selon une caractéristique particulière, le système est remarquable en ce qu'il comprend des moyens de détermination automatique de tests de dispositifs mettant en #uvre le protocole.  According to one particular characteristic, the system is remarkable in that it comprises means for automatic determination of device tests implementing the protocol.

Selon une caractéristique particulière, le système est remarquable en ce que les moyens de détermination d'un contexte commun comprennent des moyens de traduction d'un mode de représentation d'un protocole en la description d'un ensemble de données.  According to a particular characteristic, the system is remarkable in that the means for determining a common context include means for translating a representation mode of a protocol into the description of a set of data.

Selon une caractéristique particulière, le système est remarquable en ce que les moyens d'identification des messages de protocoles comprennent des moyens de traduction d'un mode de représentation de protocoles.  According to one particular characteristic, the system is remarkable in that the means for identifying the protocol messages comprise means for translating a protocol representation mode.

Cette caractéristique permet notamment le développement d'une description dans le formalisme de l'invention à partir d'une description existante, issue par exemple d'un comité de normalisation.  This feature allows the development of a description in the formalism of the invention from an existing description, for example from a standardization committee.

Ainsi, grâce à son universalité, l'invention permet avantageusement la réutilisation des parties communes à plusieurs protocoles et notamment l'invention offre la possibilité d'avoir un noyau de protocole que l'on enrichit de spécificités pour créer d'autres protocoles ayant chacun leur spécificité.  Thus, thanks to its universality, the invention advantageously allows the reuse of common parts to several protocols and in particular the invention offers the possibility of having a protocol core that is enriched with specificities to create other protocols each having their specificity.

Selon une caractéristique particulière, le système est remarquable en ce qu'il comprend en outre des moyens de visualisation de la sémantique des messages de protocoles échangés entre le ou les émetteurs et/ou le ou les récepteurs.  According to one particular characteristic, the system is remarkable in that it furthermore comprises means for displaying the semantics of the protocol messages exchanged between the transmitter (s) and / or the receiver (s).

<Desc/Clms Page number 10> <Desc / Clms Page number 10>

Cette étape est particulièrement utile et efficace pour tester un protocole de communication et/ou ses dispositifs de mise en #uvre.  This step is particularly useful and effective for testing a communication protocol and / or its implementation devices.

En outre, l'invention concerne un procédé de spécification et de mise en #uvre d'un protocole de gestion de communication et de transmission entre au moins un émetteur et au moins un récepteur, remarquable en ce qu'il comprend les étapes suivantes : - détermination d'un contexte commun comprenant une description d'un ensemble de données gérées par le ou les émetteurs et/ou le ou les récepteurs ; - identification des messages de protocole susceptibles d'être échangés entre le ou les émetteurs et le ou les récepteurs, l'identification étant indépendante de la ou des représentations utilisées pour les messages ; - définition de représentations de données stockées et/ou transmises par le ou les émetteurs et/ou le ou les récepteurs à partir de la détermination d'un contexte commun et de l'identification des messages, la définition de représentations permettant de déterminer des instructions d'implémentation du protocole dans au moins un des émetteurs et au moins un des récepteurs ; et - mise en #uvre du protocole dans au moins un des émetteurs et au moins un des récepteurs à partir des instructions d'implémentation, de façon à ce que le ou les émetteurs soient aptes à communiquer avec le ou les récepteurs.  In addition, the invention relates to a method for specifying and implementing a communication management and transmission protocol between at least one transmitter and at least one receiver, characterized in that it comprises the following steps: determining a common context comprising a description of a set of data managed by the transmitter (s) and / or the receiver (s); identification of the protocol messages that can be exchanged between the transmitter (s) and the receiver (s), the identification being independent of the representation (s) used for the messages; - definition of representations of data stored and / or transmitted by the transmitter (s) and / or the receiver (s) from the determination of a common context and the identification of the messages, the definition of representations making it possible to determine instructions implementing the protocol in at least one of the transmitters and at least one of the receivers; and implementing the protocol in at least one of the transmitters and at least one of the receivers from the implementation instructions, so that the transmitter or transmitters are able to communicate with the receiver or receivers.

De plus, l'invention concerne une spécification d'un protocole de communication, caractérisée en ce qu'elle est obtenue par la mise en #uvre du procédé décrit précédemment, de spécification et de mise en #uvre d'un protocole de gestion de communication et de transmission.  In addition, the invention relates to a specification of a communication protocol, characterized in that it is obtained by the implementation of the method described above, of specification and implementation of a management protocol. communication and transmission.

L'invention concerne également un langage formel de description d'au moins un élément de protocole de communication, remarquable en ce qu'il est adapté à la mise en #uvre du procédé précédemment décrit, de spécification et de mise en #uvre d'un protocole de gestion de communication et de transmission.  The invention also relates to a formal language for describing at least one communication protocol element, remarkable in that it is suitable for implementing the previously described method of specification and implementation of a communication and transmission management protocol.

<Desc/Clms Page number 11> <Desc / Clms Page number 11>

L'invention concerne aussi un dispositif de communication, remarquable en ce qu'il comprend des instructions permettant l'émission et/ou la réception de données vers ou d'un dispositif tiers un autre dispositif selon un protocole obtenu par la mise en #uvre du procédé tel que décrit précédemment.  The invention also relates to a communication device, remarkable in that it comprises instructions for the transmission and / or reception of data to or from a third-party device, another device according to a protocol obtained by the implementation of the method as described above.

De plus, l'invention concerne un produit programme d'ordinateur comprenant des éléments de programme, enregistrés sur un support lisible par au moins un microprocesseur, caractérisé en ce que les éléments de programme contrôlent le ou les microprocesseurs pour qu'ils effectuent les étapes suivantes adaptées à la spécification de protocole de communication et de transmission entre au moins un émetteur et au moins un récepteur: - détermination d'un contexte commun comprenant une description d'un ensemble de données gérées par le ou les émetteurs et/ou le ou les récepteurs ; - identification des messages de protocole susceptibles d'être échangés entre le ou les émetteurs et le ou les récepteurs, l'identification étant indépendante de la ou des représentations utilisées pour les messages ; - définition de représentations de données stockées et/ou transmises par le ou les émetteurs et/ou le ou les récepteurs à partir de la détermination d'un contexte commun et de l'identification des messages, la définition de représentations permettant de déterminer des instructions d'implémentation du protocole dans au moins un des émetteurs et au moins un des récepteurs ; et - mise en #uvre du protocole dans au moins un des émetteurs et au moins un des récepteurs à partir des instructions d'implémentation, de façon à ce que le ou les émetteurs soient aptes à communiquer avec le ou les récepteurs.  In addition, the invention relates to a computer program product comprising program elements, recorded on a medium readable by at least one microprocessor, characterized in that the program elements control the microprocessor (s) to perform the steps following adapted to the specification of communication protocol and transmission between at least one transmitter and at least one receiver: - determining a common context comprising a description of a set of data managed by the issuer (s) and / or the receivers; identification of the protocol messages that can be exchanged between the transmitter (s) and the receiver (s), the identification being independent of the representation (s) used for the messages; - definition of representations of data stored and / or transmitted by the transmitter (s) and / or the receiver (s) from the determination of a common context and the identification of the messages, the definition of representations making it possible to determine instructions implementing the protocol in at least one of the transmitters and at least one of the receivers; and implementing the protocol in at least one of the transmitters and at least one of the receivers from the implementation instructions, so that the transmitter or transmitters are able to communicate with the receiver or receivers.

L'invention concerne également un produit programme d'ordinateur, comprenant des séquences d'instructions adaptées à la mise en #uvre du procédé de spécification de protocole de communication entre au moins un émetteur et au moins un récepteur lorsque le programme est exécuté sur un ordinateur.  The invention also relates to a computer program product, comprising instruction sequences adapted to the implementation of the method of communication protocol specification between at least one transmitter and at least one receiver when the program is executed on a computer.

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

Les avantages du langage formel, de la spécification de protocole, du dispositif et des programmes d'ordinateur sont les mêmes que ceux du procédé de spécification de protocole, ils ne sont pas détaillés plus amplement.  The advantages of the formal language, the protocol specification, the device and the computer programs are the same as those of the protocol specification method, they are not detailed further.

D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels la figure 1 présente un synoptique de spécification d'un protocole conforme à l'invention selon un mode particulier de réalisation.  Other features and advantages of the invention will appear more clearly on reading the following description of a preferred embodiment, given as a simple illustrative and nonlimiting example, and the appended drawings, of which FIG. a mimic of specification of a protocol according to the invention according to a particular embodiment.

En préliminaire de la description de la nouvelle méthode proposée, il est utile de faire un détour par les méthodes de programmation mettant l'accent sur les données, et de décrire la relation entre données et protocoles.  As a preliminary to the description of the proposed new method, it is useful to make a detour via programming methods that emphasize data, and to describe the relationship between data and protocols.

Les deux dernières décennies ont vu un développement important de la programmation de logiciel partant des données plutôt que des algorithmes. Ces méthodes consistent à décrire d'abord les structures de données mémorisées par le logiciel, en mettant en évidence les objets et types d'objet gérés par le logiciel.  The last two decades have seen an important development of software programming based on data rather than algorithms. These methods consist of first describing the data structures stored by the software, highlighting the objects and object types managed by the software.

Un objet, à ce sens, peut être un objet concret, selon le sens commun, comme un écran ou un clavier, mais aussi quelque chose de plus abstrait comme une zone de l'écran ou un fichier, ou même très abstrait comme une file d'attente. Le point important de cette approche est qu'un type d'objet ne décrit pas seulement ses attributs, mais aussi les actions dont l'objet peut être l'objet. An object, in this sense, can be a concrete object, according to common sense, as a screen or a keyboard, but also something more abstract like a screen area or a file, or even very abstract like a queue wait. The important point of this approach is that an object type not only describes its attributes, but also the actions whose object can be the object.

Cette approche de la programmation a beaucoup d'avantages. Elle amène en particulier une modularité très efficace, centrée sur les types d'objet.  This approach to programming has a lot of advantages. It brings in particular a very effective modularity, centered on the types of object.

Jusqu'à présent, la présentation qui est faite des structures de données dans les protocoles, sous l'influence entre autres d'ASN.l est erronée. Ce qui est décrit comme des données sont les messages et parties de message, alors que les messages sont beaucoup plus proches des actions, au sens de la programmation par les objets, que des données.  So far, the presentation of the data structures in the protocols, under the influence among others of ASN.l is erroneous. What is described as data are messages and parts of messages, whereas messages are much closer to actions, in the sense of programming by objects, than data.

A l'instar de cette approche de la programmation, il faut chercher les données d'un protocole dans ce qui est mémorisé par chacune des entités paires,  Like this programming approach, we have to look for the data of a protocol in what is memorized by each of the even entities,

<Desc/Clms Page number 13><Desc / Clms Page number 13>

plutôt que dans ce qui est transmis. Cette réflexion amène à mettre en avant la notion de contexte du protocole.  rather than what is transmitted. This reflection leads to highlight the notion of context of the protocol.

Nous définissons ici le contexte d'une entité comme la structure de donnée mémorisée par cette entité et contenant les données qui interviennent dans la mise en #uvre du protocole. Ces interventions sont de différents ordres : il peut s'agir de données gérées (i. e., modifiées) par l'effet de la réception d'un message du protocole, ou de données qui influencent les actions du protocole (données d'état, dont, mais pas seulement, l'état au sens de SDL).  Here we define the context of an entity as the data structure stored by this entity and containing the data involved in the implementation of the protocol. These interventions are of different orders: they can be managed data (ie, modified) by the effect of the reception of a message of the protocol, or of data which influence the actions of the protocol (data of state, of which , but not only, the state in the sense of SDL).

Parmi les données apparaissant dans le contexte de chacune des entités, certaines sont identiques sémantiquement de part et d'autre, c'est-à-dire dans deux entités paires du protocole. Selon l'invention, la partie identique est appelée contexte commun . Le contexte commun peut être décrit de manière monolythique ou, au contraire, par morceaux séparés. Ces données sont les mêmes au sens qu'elles ont le même sens, et sont maintenues identiques, à l'exception de certains états transitoires. On peut présenter un protocole comme ayant pour rôle, entre autres, de maintenir l'égalité de ces données. Ainsi, une part importante de la fonction de n'importe quel protocole est la gestion de données répartie dans plusieurs dispositifs émetteurs et/ou récepteurs.  Among the data appearing in the context of each of the entities, some are semantically identical on both sides, that is to say in two even entities of the protocol. According to the invention, the identical part is called common context. The common context can be described monolithically or, on the contrary, in separate pieces. These data are the same in the sense that they have the same meaning, and are kept identical, with the exception of certain transient states. A protocol may be used to, among other things, maintain the equality of these data. Thus, an important part of the function of any protocol is the distributed data management in several sending and / or receiving devices.

On présente, en relation avec la figure 1, un procédé de spécification de protocole selon l'invention. Ce procédé est préférentiellement mis en #uvre par un micro-ordinateur.  In relation to FIG. 1, a protocol specification method according to the invention is presented. This method is preferably implemented by a microcomputer.

Ce procédé est divisé en étapes successives : - une première étape 1 de spécification d'encodage et du décodage ; - une seconde étape 2 de spécification du contexte ; et - une troisième étape 3 de spécification de messages.  This method is divided into successive steps: a first step 1 of encoding specification and decoding; a second step 2 of specifying the context; and a third step 3 of specifying messages.

L'étape 1 de spécification de l'encodage et du décodage est effectuée en CSN.l qui est connu en soi.  Step 1 of specification of the encoding and decoding is performed in CSN.l which is known per se.

Le premier aspect formalisé de la spécification d'un protocole suivant la méthode décrite est la spécification formelle de la structure des chaînes de bit échangées. Il s'agit de la description du lexique selon sa forme, comme une liste  The first formalized aspect of the specification of a protocol according to the method described is the formal specification of the structure of the exchanged bit strings. This is the description of the lexicon according to its form, as a list

<Desc/Clms Page number 14><Desc / Clms Page number 14>

de structures de messages ou d'éléments de message. Cette description spécifie des ensembles de chaînes de bit acceptables, ainsi que la structure (syntaxe) de ces chaînes. Elle permet de générer automatiquement un logiciel d'encodage et de décodage, ce dernier incluant la détection de chaînes erronées (i. e., n'appartenant pas à l'ensemble des chaînes acceptables).  message structures or message elements. This description specifies sets of acceptable bit strings, as well as the structure (syntax) of these strings. It automatically generates encoding and decoding software, the latter including the detection of erroneous strings (i.e., not belonging to the set of acceptable strings).

Cette spécification est faite en CSN.1 mais en variante, tout autre langage formel permettant de décrire la syntaxe de toute chaîne de bit est applicable.  This specification is made in CSN.1 but alternatively, any other formal language for describing the syntax of any bit string is applicable.

L'étape 2 consiste à décrire formellement la structure des données formant le contexte de chacune des entités paires. Cette description mettra en avant la partie commune des deux contextes, c'est-à-dire les données gérées comme une base de donnée répartie.  Step 2 consists in formally describing the structure of the data forming the context of each of the paired entities. This description will highlight the common part of the two contexts, that is, the data managed as a distributed database.

Cette description formelle peut utiliser n'importe quel langage formel de description de structure de donnée, comme ASN.l, des méthodes de description telles qu'on peut les trouver dans les langages de programmation comme C++, ou comme on peut les trouver dans les logiciels de gestion de bases de données.  This formal description can use any formal data structure description language, such as ASN.l, description methods such as can be found in programming languages such as C ++, or as can be found in database management software.

On utilise de manière préférentielle un langage spécialement développé à cet effet, permettant de faire aisément le pont entre les structures de données apparaissant dans les messages et les descriptions de structures de données telles qu'utilisée par les développeurs, comme celles permises par le langage de programmation C++.  A language specially developed for this purpose is preferably used, making it possible to easily bridge the data structures appearing in the messages and the data structure descriptions as used by the developers, such as those permitted by the language of the data. C ++ programming.

Au cours de l'étape 3, un message est décrit de manière abstraite (i.e., indépendamment de l'encodage utilisé effectivement pour le transport) comme une suite d'actions s'appliquant aux données du contexte commun. Ceci diffère fondamentalement des descriptions usuelles, où les messages ou parties de messages sont décrits comme des structures de données.  In step 3, a message is abstractly described (i.e., regardless of the encoding actually used for transport) as a sequence of actions applying to the common context data. This differs fundamentally from the usual descriptions, where messages or parts of messages are described as data structures.

Une description de message selon la méthode donne le sens du message, sous la forme de l'effet attendu de la réception du message par l'entité paire. Elle explicite aussi le sens des paramètres, en indiquant leur rôle dans la description de l'action attendue. Cela permet de formaliser de nombreux aspects de la  A message description according to the method gives the meaning of the message, in the form of the expected effect of receiving the message by the peer entity. It also explains the meaning of the parameters, indicating their role in the description of the expected action. This formalizes many aspects of the

<Desc/Clms Page number 15><Desc / Clms Page number 15>

spécification d'un protocole qui sont traditionnellement couverts dans les descriptions de procédures par un texte en langage naturel.  specification of a protocol that are traditionally covered in the procedure descriptions by a text in natural language.

L'action la plus courante est le changement d'une partie des données de contexte. Une telle action est nommée ci-après SET . Elle demande deux types de paramètres : - ceux décrivant la partie du contexte concernée ; et - ceux décrivant les nouvelles valeurs à affecter.  The most common action is to change some of the context data. Such an action is hereinafter called SET. It requires two types of parameters: - those describing the part of the context concerned; and - those describing the new values to be assigned.

La description traditionnelle ne fait pas la distinction entre les deux types, et omet des paramètres implicites .  The traditional description does not distinguish between the two types, and omits implicit parameters.

D'autres actions typiques sont CREATE ou ADD qui créent une partie des données (par exemple, création d'un nouveau contexte d'appel).  Other typical actions are CREATE or ADD that create some of the data (for example, creating a new call context).

Une description des messages ou parties de message en CSN.l n'adresse que la structure de ce qui est effectivement transmis. A l'opposé, une description abstraite d'un type message le décrit en termes sémantiques, plus liés à l'impact qu'a la réception du message qu'à la forme particulière utilisée pour la transmission.  A description of the messages or parts of the message in CSN.l only addresses the structure of what is actually transmitted. In contrast, an abstract description of a message type describes it in semantic terms, more related to the impact of receiving the message than to the particular form used for transmission.

Il est possible de décrire formellement la liaison entre les deux, de manière à permettre la génération automatique du logiciel depuis la réception de la chaîne de bit jusqu'à inclusivement la modification du contexte des données communes.  It is possible to formally describe the link between the two, so as to allow the automatic generation of the software from the reception of the bit string up to and including the modification of the context of the common data.

La description de cette liaison peut se faire de diverses manières. Une de ces manières est basée sur les principes suivants.  The description of this connection can be done in various ways. One of these ways is based on the following principles.

A chaque structure de chaîne de bit sont associées des fonctions nommées retournant des valeurs selon des types abstraits. Pour chaque fonction est décrit en détail l'algorithme permettant de calculer le résultat de la fonction à partir de la chaîne de bits reçue et, quand nécessaire, de la valeur courante du contexte commun. (Ce dernier point permet de formaliser des méthodes d'encodage dépendant du contexte, comme, par exemple, l'utilisation de tables d'index transmises au préalable.)  Each bit string structure is associated with named functions returning values according to abstract types. For each function is described in detail the algorithm for calculating the result of the function from the received bit string and, when necessary, the current value of the common context. (This last point makes it possible to formalize context-dependent encoding methods, such as, for example, the use of previously transmitted index tables.)

<Desc/Clms Page number 16> <Desc / Clms Page number 16>

Corrélativement, des règles permettent d'associer à une description abstraite une liste de fonctions nommées correspondant exactement à tous les paramètres nécessaires pour faire les actions demandées par le message. Correlatively, rules make it possible to associate with an abstract description a list of named functions corresponding exactly to all the parameters necessary to perform the actions requested by the message.

La méthode décrite a diverses applications, dont les principales sont les suivantes : - le développement automatique des logiciels de mise en #uvre de protocoles de communication ; - le développement de protocoles spécifiés selon des méthodes différentes ; - la spécification directe de protocoles de communication ; et - le développement de test de protocoles de communication.  The method described has various applications, the main ones of which are as follows: - the automatic development of software for implementing communication protocols; - the development of protocols specified by different methods; - the direct specification of communication protocols; and - the development of test of communication protocols.

L'un des buts principaux de l'invention est de permettre la génération automatique d'une partie substantielle des logiciels nécessaires à la mise en #uvre du protocole. Une formalisation complète du protocole selon l'invention permet la génération automatique d'un encodage et d'un décodage des messages, y compris la détection de chaînes erronées, et y compris les algorithmes d'encodage ou de décodage complexes prenant en compte des données de contexte.  One of the main aims of the invention is to allow the automatic generation of a substantial part of the software necessary for the implementation of the protocol. A complete formalization of the protocol according to the invention allows the automatic generation of encoding and decoding of messages, including the detection of erroneous strings, and including complex coding or decoding algorithms taking into account data. context.

Selon une variante de l'invention, une formalisation complète du protocole permet également la génération automatique des aspects suivants : - données de contextes ; et/ou - actions simples des messages (par exemple, le changement de valeur des données de contexte).  According to a variant of the invention, a complete formalization of the protocol also allows the automatic generation of the following aspects: context data; and / or - simple actions of the messages (for example, the change of value of the context data).

De plus, les aspects non générés automatiquement sont traités par ajout de blocs de programme attachés, selon l'approche de la programmation des données, aux classes de données (méthodes), éventuellement comme complément aux actions générées automatiquement.  In addition, non-automatically generated aspects are processed by adding program blocks attached, according to the data programming approach, to the data classes (methods), possibly as a complement to the automatically generated actions.

Une application de la méthode consiste à traduire des protocoles spécifiés autrement (c'est-à-dire selon des méthodes différentes) dans une description conforme à l'invention. Parmi les avantages par rapport aux méthodes traditionnelles de développement, on peut citer :  One application of the method is to translate otherwise specified protocols (i.e., according to different methods) into a description according to the invention. Among the advantages over traditional methods of development are:

<Desc/Clms Page number 17><Desc / Clms Page number 17>

- uniformisation des développements ; - réduction du code généré par mise en commun des moteurs génériques (e. g., moteurs de décodage) ; - meilleure modularisation, rendant plus aisées les modifications ultérieures.  - standardization of developments; - reduction of the code generated by generic engines (e.g., decoding engines); - better modularization, making easier the subsequent modifications.

L'invention permettant la spécification directe de protocoles peut aussi être mise en #uvre par des groupes de spécification.  The invention allowing the direct specification of protocols can also be implemented by specification groups.

Les descriptions formelles peuvent être utilisées pour générer directement des tests permettant de vérifier la conformité d'une réalisation avec la description.  Formal descriptions can be used to directly generate tests to verify the compliance of an implementation with the description.

La méthode complète de spécification selon le mode de réalisation décrit met en #uvre des syntaxes de description pouvant se décomposer en cinq groupes d'éléments syntaxiques (ou sous-langages formels): a) une syntaxe de description de structure de données, pour les éléments du contexte commun ; b) une syntaxe de description de l'encodage et du décodage de chaînes de symboles ; c) une syntaxe de programmation, adaptée en liaison avec les syntaxes a) et b); d) des éléments syntaxiques permettant de lier les descriptions selon les syntaxes a) et b) ; éléments peuvent être partie intégrante soit de la syntaxe a) soit de la syntaxe b), ou même se limiter à des règles de correspondance entre les descriptions selon les syntaxes a) et b) ; e) une syntaxe de description de messages comme actions agissant sur le contexte .  The complete method of specification according to the described embodiment implements description syntaxes that can be broken down into five groups of syntactic elements (or formal sub-languages): a) a data structure description syntax, for elements of the common context; b) a syntax for describing the encoding and decoding of symbol strings; c) a programming syntax, adapted in conjunction with the syntaxes a) and b); d) syntactic elements to link the descriptions according to the syntaxes a) and b); elements may be an integral part of either the syntax (a) or the syntax (b), or even be limited to rules of correspondence between the descriptions according to the syntaxes (a) and (b); e) message description syntax as actions acting on the context.

Selon une variante préférentielle de l'invention, la méthode de spécification met en #uvre les quatres premières syntaxes a) à d) sans utiliser la dernière syntaxe e) de description de messages.  According to a preferred variant of the invention, the specification method implements the first four syntaxes a) to d) without using the last message description syntax e).

Cette technique est décrite plus en détail dans les annexes 1 à 6, en relation avec la figure 1, de façon à ne pas surcharger la présente discussion. Il est clair cependant que ces annexes font partie intégrante de la description.  This technique is described in more detail in Annexes 1 to 6, in connection with Figure 1, so as not to overburden the present discussion. It is clear however that these appendices are an integral part of the description.

<Desc/Clms Page number 18> <Desc / Clms Page number 18>

Les annexes 1,4 et 5 décrivent des éléments de description formelle spécifiant un protocole de communication.  Annexes 1.4 and 5 describe elements of formal description specifying a communication protocol.

L'annexe 2 illustre une spécification de simple mise à jour de données.  Appendix 2 illustrates a specification of a simple data update.

Les annexes 3 et 6 illustrent un cas plus complexe de spécification d'un protocole GSM ( Global System for Mobile communication ) normalisé par l'ETSI (European Télécommunication Standard Institute) de gestion de mobilité entre une station mobile (MS) et une infrastructure de réseau.  Annexes 3 and 6 illustrate a more complex case of specification of a GSM (Global System for Mobile Communication) protocol standardized by the ETSI (European Telecommunication Standard Institute) for managing mobility between a mobile station (MS) and an infrastructure of network.

Les spécifications illustrées en regard des annexes 2 et 3 (respectivement 6) utilisent les éléments de description formelle de l'annexe 1 (respectivement 4) et permettent une génération automatique de code selon l'invention.  The specifications illustrated with respect to the annexes 2 and 3 (respectively 6) use the elements of formal description of the appendix 1 (respectively 4) and allow an automatic generation of code according to the invention.

Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus.  Of course, the invention is not limited to the embodiments mentioned above.

En particulier, l'homme du métier pourra apporter toute variante dans la mise en #uvre de l'invention qui peut s'appliquer non seulement au domaine des télécommunications mobiles mais à toute conception de réseau (fixe et/ou mobile) ou de lien de communications ainsi qu'à la définition des protocoles correspondant.  In particular, a person skilled in the art can make any variant in the implementation of the invention that can be applied not only to the field of mobile telecommunications but to any network design (fixed and / or mobile) or link as well as the definition of the corresponding protocols.

L'invention s'applique également à différents types d'éléments communiquant, notamment terminaux de télécommunications, éléments d'infrastructure de réseau, cartes ou composants communicants à l'intérieur d'un dispositif...  The invention also applies to different types of communicating elements, in particular telecommunications terminals, network infrastructure elements, cards or communicating components inside a device ...

L'invention peut, en outre, être mise en #uvre sur des machines ou outils de développement très variés, permettant, par exemple, la spécification de protocoles de communication, la génération de codes ou plus généralement la conception et la réalisation de protocoles de communication
On notera que l'invention est mise en #uvre sous la forme d'une séquence d'instructions d'un programme informatique. Aussi, la séquence d'instructions correspondante pourra être stockée dans un moyen de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce moyen de
The invention can, moreover, be implemented on a variety of machines or development tools, allowing, for example, the specification of communication protocols, the generation of codes or, more generally, the design and production of communication protocols. communication
Note that the invention is implemented in the form of a sequence of instructions of a computer program. Also, the corresponding instruction sequence can be stored in a removable storage means (such as for example a diskette, a CD-ROM or a DVD-ROM) or not, this means of

<Desc/Clms Page number 19><Desc / Clms Page number 19>

stockage étant lisible partiellement ou totalement par un ordinateur ou un microprocesseur.  storage being partially or fully readable by a computer or a microprocessor.

<Desc/Clms Page number 20> <Desc / Clms Page number 20>

ANNEXE 1.  ANNEX 1.

Module de description formelle de protocole
Un module décrit dans l'annexe 1 comprend des éléments de description formelle spécifiant un protocole de communication associés à des entités paires.
Formal Protocol Description Module
A module described in Appendix 1 includes formal description elements specifying a communication protocol associated with even entities.

Le module comprend trois types de description : - des descriptions abstraites de types d'objet (section 3); cela correspond à une syntaxe de type a) illustrée précédemment; - des descriptions de transfert s'appliquant soit à des messages, soit à des objets en tant que partie de message (section 6) ; correspond à une syntaxe de type b); - et des descriptions abstraites d'actions (messages par exemple), section 5 (syntaxe de type e)) ou des programmations d'actions, selon une syntaxe de type c).  The module includes three types of descriptions: - abstract descriptions of object types (section 3); this corresponds to a syntax of type a) illustrated previously; - transfer descriptions that apply to either messages or objects as part of a message (section 6); corresponds to a syntax of type b); - and abstract descriptions of actions (messages for example), section 5 (e-type syntax)) or action programming, according to a syntax of type c).

Selon une variante de l'invention, les descriptions abstraites d'actions gérées automatiquement par un système de spécification sont remplacées avantageusement par des programmations manuelles ou semi-automatiques d'actions.  According to a variant of the invention, the abstract descriptions of actions managed automatically by a specification system are advantageously replaced by manual or semi-automatic programming of actions.

A chaque type correspond un langage formel distinct.  To each type corresponds a distinct formal language.

Le module est essentiellement organisé comme une liste de types d'objets.  The module is essentially organized as a list of object types.

A chaque type d'objet, sont associées une description abstraite, éventuellement une ou plusieurs descriptions de transfert, et éventuellement une ou plusieurs actions. A chaque action, sont associées une description abstraite et éventuellement une ou plusieurs description de transfert. Each type of object is associated with an abstract description, possibly one or more transfer descriptions, and possibly one or more actions. Each action is associated with an abstract description and possibly one or more transfer descriptions.

Pour des raisons pratiques, l'organisation générale d'un module permet soit de grouper les descriptions selon la logique ci-dessus, soit de séparer les éléments (par exemple pour grouper tous les messages ensemble), auquel cas les liaisons sont explicitées (par exemple la description d'un message indique alors le type d'objet auquel il est associé).  For practical reasons, the general organization of a module makes it possible either to group the descriptions according to the above logic, or to separate the elements (for example to group all the messages together), in which case the links are explained (by example the description of a message indicates the type of object with which it is associated).

<Desc/Clms Page number 21> <Desc / Clms Page number 21>

1. Syntaxe de module
Le module est composé d'un en-tête, suivi d'une liste de descriptions de type d'objet, de descriptions autonomes d'actions et de descriptions autonomes de structure de transfert.
1. Module Syntax
The module consists of a header, followed by a list of object type descriptions, self-contained action descriptions, and autonomous structure descriptions.

1. 1 En-tête de module
L'en-tête de module comporte son nom et, éventuellement, d'autres informations.
1. 1 Module header
The module header has its name and possibly other information.

2. Spécifications de types d'objet
Une description (ou spécification) de type d'objet est constituée d'un nom suivi des caractères ' ::=', et terminée par un caractère ' ;'.
2. Object type specifications
An object type description (or specification) consists of a name followed by the ':: =' characters, and terminated with a ';' character.

Une description comporte : - une description abstraite, introduite par le mot clé 'abstract' ; - zéro, une ou plusieurs descriptions de transfert, introduites chacune par le mot clé 'transfer' ; - zéro, une ou plusieurs descriptions d'action, introduites chacune par le mot clé 'action'.  A description includes: - an abstract description, introduced by the keyword 'abstract'; - zero, one or more transfer descriptions, each introduced by the key word 'transfer'; - zero, one or more action descriptions, each introduced by the keyword 'action'.

Une description de transfert décrit une structure de chaîne de symboles (par exemple binaire ou décrite par une chaîne de caractères) qui peut représenter correctement la structure abstraite (voir le chapitre sur le sujet).  A transfer description describes a symbol string structure (for example binary or described by a string of characters) that can correctly represent the abstract structure (see chapter on the subject).

Une action (message) associé au type d'objet décrit des modifications pouvant être demandées à une instance dudit type d'objet.  An action (message) associated with the object type describes modifications that can be requested to an instance of said object type.

3. Descriptions abstraites de types d'objet
Une description abstraite de type d'objet se présente usuellement comme un ensemble de composants. Chaque composant est notamment caractérisé par :
3. Abstract descriptions of object types
An abstract description of object type is usually presented as a set of components. Each component is characterized in particular by:

<Desc/Clms Page number 22><Desc / Clms Page number 22>

- un nom de composant, - des informations de présence, et - une description de type.  - a component name, - presence information, and - a type description.

3. 1 Nom de composant
Le nom de composant est une chaîne libre utilisant les caractères disponibles à l'exception des caractères '[', '.',
3. 2 Informations de présence
Par défaut le composant n'est pas indexé. Un composant indexé (tableau) peut avoir un nombre variable de copie, distinguées par un index. Un composant indexé est indiqué par une spécification d'intervalle comprise entre '[' et ']'.
3. 1 Component name
The component name is a free string that uses the available characters except for the characters '[', '.',
3. 2 Presence information
By default the component is not indexed. An indexed component (array) can have a variable number of copies, distinguished by an index. An indexed component is indicated by an interval specification between '[' and ']'.

Différentes spécifications sont possibles : - Nombre fixe : cela est indiqué par un entier, qui est le nombre de copies. Different specifications are possible: - Fixed number: this is indicated by an integer, which is the number of copies.

- Nombre variable libre : cela est indiqué par un intervalle (deux entiers séparés par '..'). Un cas particulier est O..infinity qui indique un nombre quelconque de copies.  - Free variable number: this is indicated by an interval (two integers separated by '..'). A special case is O..infinity which indicates any number of copies.

- Nombre variable conditionnel : cela est indiqué par une expression de type 'iif', indiquant différents intervalles ou nombre fixes à sélectionner selon des expressions booléennes portant sur les valeurs d'autres éléments de la structure.  - Conditional variable number: this is indicated by an expression of type 'iif', indicating different intervals or fixed numbers to be selected according to Boolean expressions relating to the values of other elements of the structure.

3. 3 Description de type
Cette description indique la structure du composant lui-même. Différentes descriptions sont possibles.
3. 3 Type description
This description indicates the structure of the component itself. Different descriptions are possible.

3. 3.1 Composants élémentaires
Une telle description est introduite par un ' :'.
3. 3.1 Basic Components
Such a description is introduced by a ':'.

Cela inclus :  This includes:

<Desc/Clms Page number 23><Desc / Clms Page number 23>

- entiers (mot clé 'integer', suivi éventuellement d'un intervalle entre parenthèses) ; - type énuméré (mot clé 'enumerated' suivi d'une liste parenthésée d'identificateurs séparés par des virgules) ; - chaîne de bit (mot clé 'bit string', suivi éventuellement d'une taille ou d'un intervalle de taille entre parenthèses)
3. 3.2 Structure
Une structure est introduite par '{', et est décrite par une succession de lignes commençant par un '+' de plus que la ligne introduisant le composant, et terminée par un '}'.
- integer (keyword 'integer', possibly followed by an interval in parentheses); - enumerated type ('enumerated' keyword followed by a parenthesized list of comma separated identifiers); - bit string ('bit string' keyword, possibly followed by a size or size range in parentheses)
3.2 Structure
A structure is introduced by '{', and is described by a succession of lines beginning with a '+' more than the line introducing the component, and ending with a ''''.

3. 3.3 Union
Une union est une écriture abrégée pour un ensemble de composants de présence exclusive.
3.3 Union
A union is an abbreviated form for a set of exclusive presence components.

3. 3.4 Référence
Une référence est introduite par un caractère :', et est le nom d'un type de donnée décrit par ailleurs. Quand le module de description du type n'est pas le module englobant, il est indiqué entre parenthèse suivant le nom de type.
3. 3.4 Reference
A reference is introduced by a character: ', and is the name of a data type described elsewhere. When the type description module is not the enclosing module, it is indicated in parenthesis according to the type name.

3. 3.5 Index
Un type index est introduit par '->', suivi d'un nom de n#ud. Un nom de n#ud est composé d'un nom de type d'objet (éventuellement vide, auquel cas il s'agit du type courant), suivi d'une suite de nom de composants séparés par des '.', telle que chaque nom de composant existe dans la structure du composant ou type qui précède. Le dernier composant doit être indexé.
3. 3.5 Index
An index type is introduced by '->', followed by a name of n # ud. A n # ud name is composed of an object type name (possibly empty, in which case it is the current type), followed by a sequence of component names separated by '.', Such as each component name exists in the structure of the preceding component or type. The last component must be indexed.

Un nom de n#ud donne : - L'information statique du type indexé (le type du dernier composant) ;  A nname name gives: - The static information of the indexed type (the type of the last component);

<Desc/Clms Page number 24><Desc / Clms Page number 24>

- Un lien dynamique vers une instance particulière de la liste. Ce lien est résolu en remontant l'arborescence de l'instance jusqu'à trouver un objet du type indiqué.  - A dynamic link to a particular instance of the list. This link is resolved by going up the instance tree until you find an object of the specified type.

4. Description d'action
Une description d'action comporte le nom de l'action entre '<' et '>', suivi de '::=' puis d'une description abstraite d'action, suivie de zéro, une ou plusieurs descriptions de transfert, chacune introduite par le mot clé 'transfer'.
4. Description of action
An action description includes the name of the action between '<' and '>', followed by ':: =' followed by an abstract description of action, followed by zero, one or more transfer descriptions, each introduced by the key word 'transfer'.

Une description de transfert décrit une structure de chaîne de symboles qui peut représenter correctement la structure abstraite (voir le chapitre sur le sujet).  A transfer description describes a symbol string structure that can correctly represent the abstract structure (see chapter on the subject).

5. Description abstraite d'action
Une description abstraite d'action comporte éventuellement une liste de paramètres, et éventuellement une liste d'instructions.
5. Abstract action description
An abstract action description optionally includes a list of parameters, and possibly a list of instructions.

(Les instructions demandent en général des paramètres qui apparaissent par exemple dans la représentation de l'action. Ces paramètres ne sont pas listés dans la liste de paramètres : celle-ci ne contient les paramètres qui ne peuvent pas être décrits plus précisément comme liés à une instruction élémentaire.)
La liste de paramètres est introduite par le mot clé 'parameters' et est terminée par le mot clé 'end'. La liste suit la syntaxe de la description abstraite de type d'objet.
(The instructions generally require parameters that appear for example in the representation of the action.These parameters are not listed in the parameter list: it contains the parameters that can not be more precisely described as linked to an elementary instruction.)
The list of parameters is introduced by the keyword 'parameters' and is ended by the key word 'end'. The list follows the syntax of the abstract object type description.

La liste d'actions est constituée d'une ou plusieurs lignes. Chaque ligne est constituée d'une éventuelle indication de condition, suivie d'une instruction parmi celles listées ci-dessous.  The action list consists of one or more rows. Each line consists of a possible indication of condition, followed by an instruction from those listed below.

5.1 Indication de condition
Une indication de condition est soit le mot clé 'OPTIONAL', soit une instruction IF THEN.
5.1 Condition indication
A condition indication is either the 'OPTIONAL' keyword or an IF THEN statement.

<Desc/Clms Page number 25> <Desc / Clms Page number 25>

Le mot clé OPTIONAL indique que l'instruction, ou la liste d'instructions entre '{' et '}', qui suit peut ou non être demandée.  The OPTIONAL keyword indicates that the statement, or the statement list between '{' and '}', that follows may or may not be requested.

Une instruction IF THEN indique (entre les mots clé 'IF' et 'THEN') une condition, exprimée à partir de valeurs de paramètres, si l'instruction est à faire ou non.  An IF THEN statement indicates (between the key words 'IF' and 'THEN') a condition, expressed from parameter values, whether the instruction is to be done or not.

5. 2 Instruction de sélection
Une instruction de sélection est introduite par le mot clé 'on' suivi du nom d'un composant (typiquement une structure) sur lequel s'applique une liste d'instructions comprises entre '{' et '}'. Si le composant est indexé, une indication d'index peut suivre le nom de composant (voir section sur l'index).
5. 2 Selection Instruction
A selection statement is introduced by the keyword 'on' followed by the name of a component (typically a structure) to which a list of instructions between '{' and '}' applies. If the component is indexed, an index hint may follow the component name (see section on the index).

5. 3 Instruction SET
Une instruction SET est introduite par le mot clé 'set' suivi d'un nom de composant (éventuellement avec un index). Cette instruction demande l'affectation d'une nouvelle valeur au composant (dans son intégrité, ce qui peut être un sous-arbre assez important). Il y a plusieurs manière dont la nouvelle valeur peut être indiquée :
5. 3.1 Paramètre implicite de type implicite
Dans ce cas, l'instruction ne contient rien de plus. Le message contient alors un paramètre du type du composant, tel que décrit dans la description abstraite d'objet.
5. 3 SET instruction
A SET statement is introduced by the 'set' keyword followed by a component name (possibly with an index). This statement requests the assignment of a new value to the component (in its integrity, which can be a fairly large subtree). There are several ways that the new value can be indicated:
5. 3.1 Default implicit type parameter
In this case, the statement contains nothing more. The message then contains a parameter of the type of the component, as described in the abstract object description.

5. 3.2 Paramètre implicite de type explicite
Dans ce cas l'instruction est suivi du caractère :' suivi d'un nom de type d'objet. Ce type doit être compatible avec le type du composant (sous-type).
5. 3.2 Explicit type implicit parameter
In this case the statement is followed by: 'followed by an object type name. This type must be compatible with the type of component (subtype).

5. 3.3 Valeur explicite  5. 3.3 Explicit value

<Desc/Clms Page number 26> <Desc / Clms Page number 26>

Dans ce cas, l'instruction est suivie du caractère :=' suivi d'une expression dont le résultat doit être compatible avec le type. In this case, the statement is followed by: = 'followed by an expression whose result must be compatible with the type.

5. 3.4 Valeur calculée
Dans ce cas l'instruction est suivie du caractère' :=' suivi d'une liste d'instructions entre '{' et '}'. Ces instructions portent sur le n#ud indiqué par le composant, et itémisent les actions aboutissant à l'affectation du composant (typiquement sous-composant par sous-composant).
5. 3.4 Calculated value
In this case the statement is followed by the ': =' character followed by a statement list between '{' and '}'. These instructions relate to the node indicated by the component, and they specify the actions leading to the assignment of the component (typically subcomponent by subcomponent).

5. 3.5 Vidage
Dans ce cas, l'instruction est suivie de ' := null'. Cela ne s'applique qu'aux composants indexés (mais sans indication d'index dans l'instruction SET) et qui accepte un nombre nul de copies. L'instruction met le nombre de copies à zéro.
5. 3.5 Emptying
In this case, the statement is followed by ': = null'. This only applies to indexed components (but with no index specified in the SET statement) and accepts a null number of copies. The instruction sets the number of copies to zero.

5. 4 Instruction ADD
Une instruction ADD est introduite par le mot clé 'set' suivi d'un nom de composant indexé (sans indication d'index dans l'instruction ADD). Cette instruction demande l'ajout d'une nouvelle copie au composant (dans son intégrité, ce qui peut être un sous-arbre assez important). Il y a plusieurs manières dont la nouvelle valeur peut être indiquée, comme dans le cas de l'instruction SET (sauf le vidage).
5. 4 ADD instruction
An ADD instruction is introduced by the 'set' keyword followed by an indexed component name (without an index specified in the ADD statement). This statement requests the addition of a new copy to the component (in its integrity, which can be a fairly large subtree). There are several ways in which the new value can be specified, as in the SET statement (except dump).

5. 5 Instruction SEND
Une instruction SEND est introduite par le mot clé 'send' suivi d'un nom de composant (éventuellement avec un index). Cette instruction indique l'inclusion d'un paramètre dont la valeur est la valeur courante du composant du côté de la source. L'action du côté du récepteur est de vérifier la cohérence, mais la conséquence d'une détection d'incohérence n'est pas précisée.
5. 5 SEND Instruction
A SEND statement is introduced by the 'send' keyword followed by a component name (possibly with an index). This statement indicates the inclusion of a parameter whose value is the current value of the component on the source side. The action on the receiver side is to check for consistency, but the consequence of an inconsistency detection is not specified.

5. 6 Instruction CHOICE  5. 6 CHOICE Instruction

<Desc/Clms Page number 27> <Desc / Clms Page number 27>

Une instruction CHOICE est introduite par le mot clé 'choice' suivi d'une liste d'actions entre '{' et '}' et séparées par des ','. Cela indique qu'une et une seule des actions est demandée pour chaque occurrence de l'action. A CHOICE statement is introduced by the keyword 'choice' followed by a list of actions between '{' and '}' and separated by ','. This indicates that one and only one of the actions is requested for each occurrence of the action.

5. 7 Instruction DO
Une instruction DO consiste en le mot clé 'do' suivi du nom d'une action.
5. 7 Instruction DO
A DO statement consists of the 'do' keyword followed by the name of an action.

Cette action doit être compatible avec le type de composant courant. This action must be compatible with the current component type.

5. 8 Instructions liées au retour en arrière
Une modification de données peut être demandée à l'essai et refusée éventuellement par le récepteur. Ceci est géré par les instructions PREPARE, COMMIT et UNDO.
5. 8 Instructions for going back
A data modification may be requested on the test and possibly refused by the receiver. This is handled by the PREPARE, COMMIT, and UNDO instructions.

5. 8.1 L'instruction PREPARE
Cette instruction indique que les modifications qui la suivent et applicables au n#ud courant peuvent être annulées.
5. 8.1 The PREPARE instruction
This instruction indicates that the changes that follow it and apply to the current node can be undone.

5. 8.2 L'instruction COMMIT
Cette instruction indique l'acceptation des modifications sujettes à un PREPARE sur le n#ud courant.
5. 8.2 The COMMIT instruction
This instruction indicates the acceptance of modifications subject to a PREPARE on the current node.

5. 8.3 L'instruction UNDO
Cette instruction indique le refus des modifications sujettes à un PREPARE sur le n#ud courant.
5. 8.3 The UNDO instruction
This statement indicates the denial of PREPARE-prone changes to the current node.

6. Description de transfert
La description de transfert est à la base de type langage CSN.l version 2.2, avec les adaptations suivantes.
6. Transfer Description
The transfer description is based on the CSN.l version 2.2 language type, with the following adaptations.

6. 1 En-tête  6. 1 Header

<Desc/Clms Page number 28> <Desc / Clms Page number 28>

Quand la description de transfert est unique pour un type d'objet, le nom de structure CSN.l peut être omis, et est alors le même que le nom de type. When the transfer description is unique for an object type, the CSN.l structure name can be omitted, and is then the same as the type name.

6. 2 Fin de structure Le ; final est omis (la fin est détectée soit par le ; de fin d'objet, soit par un des mots clés transfer (indiquant une alternative de codage), ou action .  6. 2 End of structure The; final is omitted (the end is detected either by the end of object, or by one of the key words transfer (indicating a coding alternative), or action.

6. 3 Fonctions calculées de liaison avec la description abstraite
L'en-tête d'une fonction calculée peut être de la forme abstract. suivi d'un identificateur d'élément abstrait. Le type n'est pas indiqué et est celui de l'élément abstrait ainsi que défini dans la description abstraite.
6. 3 Computed functions of connection with the abstract description
The header of a computed function can be of abstract form. followed by an abstract element identifier. The type is not specified and is that of the abstract element as defined in the abstract description.

Plus généralement, les règles de liaison entre une description de transfert et une description abstraite (de type d'objet ou de message) font l'objet d'un chapitre spécial.  More generally, the linking rules between a transfer description and an abstract description (of type of object or message) are the subject of a special chapter.

6. 4 Références au contexte
Une formule peut invoquer des valeurs d'élément de contexte.
6. 4 References to the context
A formula can invoke context element values.

7. Description séparée d'action
Une action peut être décrite en dehors de la description du type d'objet sur laquelle elle porte. La description d'action est alors précédé d'un en-tête composé du mot clé 'on' suivi du nom de type d'objet sue lequel porte l'action.
7. Separate action description
An action can be described outside the description of the type of object to which it relates. The action description is then preceded by a header consisting of the 'on' keyword followed by the object type name on which the action is carried.

L'indication du type d'objet peut être omise dans le cas d'une description séparée d'action en suivant une autre s'appliquant au même type.  The indication of the type of object may be omitted in the case of a separate description of action by following another applying to the same type.

8. Description séparée de transfert
Une description de transfert peut être séparée de la description abstraite à laquelle elle correspond.
8. Separate transfer description
A transfer description can be separated from the abstract description to which it corresponds.

9. Règles de correspondance  9. Correspondence rules

<Desc/Clms Page number 29> <Desc / Clms Page number 29>

La correspondance entre une description abstraite et une description de transfert est basée sur la correspondance entre des noms de composants abstraits et des noms de label, plus des formules de représentation. The correspondence between an abstract description and a transfer description is based on the correspondence between abstract component names and label names, plus representation formulas.

10. Noms
Un nom (d'objet ou d'action) est composé de caractères libres, avec les exceptions nécessaires pour des raisons syntaxiques. Lors de la comparaison entre deux noms, les chaînes consécutives d'espace, tabulation et fin de ligne sont considérées comme équivalentes à un seul espace, sauf au début et à la fin , où elles sont considérées comme équivalentes à la chaîne vide ; la chasse n'est pas prise en compte.
10. Names
A name (object or action) is composed of free characters, with the necessary exceptions for syntactical reasons. When comparing two names, the consecutive strings of space, tab, and end of line are considered equivalent to a single space, except at the beginning and at the end, where they are considered equivalent to the empty string; hunting is not taken into account.

<Desc/Clms Page number 30> <Desc / Clms Page number 30>

ANNEXE 2
Premier exemple : spécification d'une simple mise à jour d'une donnée.
ANNEX 2
First example: specification of a simple update of a data.

Un protocole est présenté ici dans le cadre d'un protocole unidirectionnel illustratif dont le seul propos est de mettre à jour une donnée. L'application de la méthode procède comme suit : - description abstraite du contexte ; - description abstraite des messages ; - description de l'encodage et du décodage des données ; - description de l'encodage et du décodage des messages ;
Les spécifications illustrées en regard de l'annexe 2 utilisent les éléments de description formelle de l'annexe 1 et permettent une génération automatique de code selon l'invention.
A protocol is presented here as part of an illustrative unidirectional protocol whose only purpose is to update a datum. The application of the method proceeds as follows: - abstract description of the context; - abstract description of the messages; - description of the encoding and decoding of the data; - description of the encoding and decoding of messages;
The specifications illustrated with reference to Annex 2 use the formal description elements of Annex 1 and allow automatic code generation according to the invention.

1. Description abstraite du contexte commun.  1. Abstract description of the common context.

Cette description se fait selon un langage formel de description abstraite de données. Le langage utilisé ici n'est pas publié.  This description is done according to a formal language of abstract description of data. The language used here is not published.

<type du contexte du protocole> ::= données gérées : type de données gérées ; ; ~~~~~~~~~~
L'expression 'type de données gérées' peut représenter un type de données quelconque, par exemple : <type de données gérées> ::= entier 1 : integer , entier 2 : integer ;
2. Description abstraite des messages.
<protocol context type> :: = managed data: managed data type; ; ~~~~~~~~~~
The expression 'type of managed data' can represent any type of data, for example: <managed data type> :: = integer 1: integer, integer 2: integer;
2. Abstract description of the messages.

<Desc/Clms Page number 31> <Desc / Clms Page number 31>

Le protocole est réduit à un seul message, qui modifie le contexte dans sa totalité. La description des messages se fait selon un langage formel adapté à la description d'actions portant sur le contexte de données : on <type du contexte du protocole> <protocol data unit> ::=
CHOICE <modifier : contenu du message modifier> ; <contenu du message modifier> ::= on <données gérées> SET;
3. Description de l'encodage et décodage des données.
The protocol is reduced to a single message, which modifies the context in its entirety. The description of the messages is made according to a formal language adapted to the description of actions relating to the data context: on <protocol context type><protocol data unit> :: =
CHOICE <edit: message content edit>;<message content edit> :: = on <managed data>SET;
3. Description of the encoding and decoding of the data.

Cette description se fait en CSN.l, encapsulé dans un langage plus général combinant la description abstraite et la description concrète. Seuls sont décrites les données apparaissant comme paramètre de message.  This description is done in CSN.l, encapsulated in a more general language combining the abstract description and the concrete description. Only data that appears as a message parameter are described.

<type de données gérées> ::= abstract entier 1 : integer , entier 2 : integer transfer <entier 1 : bit(4)> -- la liaison avec l'abstrait se fait par l'identificateur -- l'encodage par défaut est binaire, poids fort en premier <entier 2 : bit(6)> ;; ~~~~~~~~~~~~~~~~~~~~~~~~
4. Description de l'encodage et décodage des messages.
<managed data type> :: = abstract integer 1: integer, integer 2: integer transfer <integer 1: bit (4)> - the connection to the abstract is done by the identifier - the default encoding is binary, most significant first <integer 2: bit (6)>;; ~~~~~~~~~~~~~~~~~~~~~~~~
4. Description of the encoding and decoding of the messages.

Cette description se fait en CSN. 1, encapsulé dans un langage plus général combinant la description abstraite et la description concrète.  This description is done in CSN. 1, encapsulated in a more general language combining the abstract description and the concrete description.

<Desc/Clms Page number 32> <Desc / Clms Page number 32>

<protocol data unit> ::= abstract
CHOICE <modifier : contenu du message modifier> transfer
00 <modifier : <contenu du message modifier <extension : bit (*) = null}! -- permet d'accepter une extension future <message type errror : bit(*); -- détection d'une err eur de type <contenu du message modifier> ::= abstract on <données gérées> SET transfer <données gérées.set.nouvelle données : <type de données gérées ;
<protocol data unit> :: = abstract
CHOICE <edit: message content edit> transfer
00 <modify: <content of the message modify <extension: bit (*) = null}! - accept a future extension <message type errror: bit (*); - detection of an error of type <contents of the message modify> :: = abstract on <managed data> SET transfer <data managed.set.new data: <type of data managed;

<Desc/Clms Page number 33> <Desc / Clms Page number 33>

ANNEXE 3
Exemple de spécification d'un protocole réel (le protocole GSM de gestion de mobilité entre une station mobile (MS) et une infrastructure de réseau)
La plupart des fonctions ci-après ont des noms tels que spécifiés dans la norme GSM ( Global System for Mobile communication ) normalisée par l'ETSI (European Télécommunication Standard Institute).
ANNEX 3
Example of Specification of a Real Protocol (the GSM Mobility Management Protocol between a Mobile Station (MS) and a Network Infrastructure)
Most of the following functions have names as specified in the GSM Standard (Global System for Mobile Communication) standardized by the European Telecommunications Standard Institute (ETSI).

Les noms ou accronymes utilisés dans les spécifications correspondent soit à des éléments de la syntaxe d'un mode particulier de réalisation de l'invention (tel que précisé en annexe 1) soit à des noms ou acronymes d'éléments spécifiés dans la norme GSM. module MM 24. 008 4.0.0 default scope : MM
RIL3.Location Area Code from RIL3 24. 008 4. 0.0
RIL3.Location Area Identification from RIL3 24. 008 4. 0.0
RIL3.Mobile Station Classmark 1 from RIL3 24. 008 4. 0.0
RIL3.Mobile Station Classmark 2 delta from RIL3 24. 008 4. 0.0
RIL3.Mobile Station Classmark 3 from RIL3 24. 008 4. 0.0
RIL3.Priority Level from RIL3 24. 008 4. 0.0 RIL3.Ciphering Key Sequence Number from RIL3 24. 008 4.0.0
1 Contexte de protocole de gestion de mobilité (ou MM de l'anglais mobility management ).
The names or acronyms used in the specifications correspond either to elements of the syntax of a particular embodiment of the invention (as specified in Annex 1) or to names or acronyms of elements specified in the GSM standard. module MM 24. 008 4.0.0 default scope: MM
RIL3.Location Area Code from RIL3 24. 008 4. 0.0
RIL3.Location Area Identification from RIL3 24. 008 4. 0.0
RIL3.Mobile Station Classmark 1 from RIL3 24. 008 4. 0.0
RIL3.Mobile Station Classmark 2 delta from RIL3 24. 008 4. 0.0
RIL3.Mobile Station Classmark 3 from RIL3 24. 008 4. 0.0
RIL3.Priority Level from RIL3 24. 008 4. 0.0 RIL3.Ciphering Key Sequence Number from RIL3 24. 008 4.0.0
1 Background of mobility management protocol (or MM of mobility mobility).

Il s'agit de la spécification du contexte de protocole, c'est-à-dire des données communes à l'infrastructure et à la station mobile, et gérées par le protocole.  This is the specification of the protocol context, that is, data common to the infrastructure and the mobile station, and managed by the protocol.

<Desc/Clms Page number 34> <Desc / Clms Page number 34>

1. 1 Description abstraite
La description des éléments du contexte est indépendante des représentations, que ce soit pour la mémorisation dans les entités, ou pour la transmission dans des messages de protocole.
1. 1 Abstract description
The description of the elements of the context is independent of the representations, whether for the memorization in the entities, or for the transmission in protocol messages.

<MM context> : := abstract IMSI[0..1] : IMSI
Connect state : Enumerated (not connected, connected)
Connection parameters[iif(Connect state = connected, 1, 0)] : + Serving cell : -> UE context.Cell list + IMEI[0..1]: IMEI + Software Version Number[iif(PRESENT (IMEI), 1, 0)] : Integer (0..99) + Mobile Station Classmark 1 : RIL3.Mobile Station Classmark 1 + Mobile Station Classmark 2 delta[0..1] : RIL3.Mobile Station Classmark 2 delta + Mobile Station Classmark 3[0..1] : RIL3.Mobile Station Classmark 3 + Has been authenticated : Boolean + Is ciphered : Boolean + Service data[0.. infinité] : + + CM service type : CM Service Type + + Priority : RIL3.Priority Level
Location update state : Enumerated (roaming not allowed, updated)
Location parameters[iif(Location update state = updated, 1, 0)] : + LAI+TMSI[0..1] : LAI+TMSI + Registered location area : -> UE context.LA list + Detach flag : Boolean + CTS permission : Boolean + CKSN availability : Boolean + CKSN[iif(CKSN availability, 1, 0)] : RIL3.Ciphering Key Sequence Number + GSM ciphering key[0..1] : Bit string (64) + UMTS security data[0..1] : + + AUTN : Authentication Parameter AUTN + + UMTS ciphering key[0..1] : Bit string (128) + + UMTS integrity key[0..1] : Bit string (128)
<MM context>:: = abstract IMSI [0..1]: IMSI
Connect state: Enumerated (not connected, connected)
Connection parameters [iif (Connect state = connected, 1, 0)]: + Serving cell: -> UE context.Cell list + IMEI [0..1]: IMEI + Software Version Number [iif (PRESENT (IMEI), 1 , 0)]: Integer (0..99) + Mobile Station Classmark 1: RIL3.Mobile Station Classmark 1 + Mobile Station Classmark 2 delta [0..1]: RIL3.Mobile Station Classmark 2 delta + Mobile Station Classmark 3 [ 0..1]: RIL3.Mobile Station Classmark 3 + Has been authenticated: Boolean + Is ciphered: Boolean + Service data [0 .. infinity]: + + CM service type: CM Service Type + + Priority: RIL3.Priority Level
Location update state: Enumerated (roaming not allowed, updated)
Location parameters [iif (Location update state = updated, 1, 0)]: + LAI + TMSI [0..1]: LAI + TMSI + Registered location area: -> UE context.LA list + Detach flag: Boolean + CTS Boolean + CKSN availability: Boolean + CKSN [iif (CKSN availability, 1, 0)]: RIL3.Ciphering Key Sequence Number + GSM ciphering key [0..1]: Bit string (64) + UMTS security data [0 ..1]: + + AUTN: Authentication Parameter AUTN + + UMTS ciphering key [0..1]: String bit (128) + + UMTS integrity key [0..1]: Bit string (128)

<Desc/Clms Page number 35><Desc / Clms Page number 35>

1. 2 Actions 1. 2.1 Gestion de mobilité dans le sens descendant (ou DL MM de l'anglais downlink mobility management ) 1. 2.1.1 Description abstraite
Ceci décrit abstraitement le message de protocole qui peut être transmis de l'infrastructure vers la station mobile. action DL MM ::= abstract
CHOICE do LOCATION UPDATING ACCEPT , do LOCATION UPDATING REJECT ,do AUTHENTICATION REJECT ,do AUTHENTICATION REQUEST , do TMSI REALLOCATION COMMAND , do CM SERVICE ACCEPT , do CM SERVICE REJECT , do CM SERVICE PROMPT , do IDENTITY REQUEST ,do ABORT , do MM STATUS DOWNLINK , do MM INFORMATION } 1. 2.1.2 Syntaxe de transfert
Ceci indique la structure binaire du message. Cela fait apparaître en particulier un champ permettant de sélectionner une action particulière dans la liste des actions possibles. transfer ::= flow of downlink MM messages {<skip indicator : 0000> <protocol discriminator 0101>
00 {00 0010 <LOCATION UPDATING ACCEPT : LOCATION UPDATING ACCEPT>
1. 2 Actions 1. 2.1 Downlink mobility management (or DL MM) 1. 2.1.1 Abstract description
This abstractly describes the protocol message that can be transmitted from the infrastructure to the mobile station. action DL MM :: = abstract
CHOICE do LOCATION UPDATING ACCEPT, do LOCATION UPDATING REJECT, do AUTHENTICATION REJECT, do AUTHENTICATION REQUEST, do TMSI REALLOCATION COMMAND, do CM SERVICE ACCEPT, do CM SERVICE REJECT, do CM SERVICE PROMPT, do IDENTITY REQUEST, do ABORT, do MM STATUS DOWNLINK , do MM INFORMATION} 1. 2.1.2 Transfer syntax
This indicates the binary structure of the message. This shows in particular a field for selecting a particular action in the list of possible actions. transfer :: = flow of downlink MM messages {<skip indicator: 0000><protocol discriminator 0101>
00 {00 0010 <LOCATION UPDATING ACCEPT: LOCATION UPDATING ACCEPT>

<Desc/Clms Page number 36><Desc / Clms Page number 36>

# 00 0100 <LOCATION UPDATING REJECT : LOCATION UPDATING REJECT> # 01 0001 <AUTHENTICATION REJECT : AUTHENTICATION REJECT> # 01 0010 <AUTHENTICATION REQUEST : AUTHENTICATION REQUEST> # 01 1010 <TMSI REALLOCATION COMMAND : TMSI REALLOCATION COMMAND> 10 0001 <CM SERVICE ACCEPT : CM SERVICE ACCEPT> 10 0010 <CM SERVICE REJECT :CM SERVICE REJECT> 10 0101 <CM SERVICE PROMPT : CM SERVICE PROMPT> # 10 1000 <IDENTITY REQUEST : IDENTITY REQUEST> # 10 1001 <ABORT : ABORT> Il 0001 <MM STATUS : MM STATUS DOWNLINK> 11 0010 <MM INFORMATION : MM INFORMATION>} ! <erroneous type : bit** = <no string } <spurious extension : bit** = null> 1. 2.2 Gestion de mobilité dans le sens montant (ou UL MM de l'anglais uplink mobility management ) 1. 2.2.1 Description abstraite action UL MM ::= abstract
CHOICE { do AUTHENTICATION FAILURE , do AUTHENTICATION RESPONSE , do IDENTITY RESPONSE , do TMSI REALLOCATION COMPLETE , do CM SERVICE ABORT , do CM SERVICE REQUEST SUBSEQUENT , do MM STATUS UPLINK } 1. 2.2.2 Syntaxe de transfert transfer ::= -- flow of uplink MM messages once an RR connection is established {<skip indicator : 0000> <protocol discriminator : 0101 > bit*2 {01 1100 <AUTHENTICATION FAILURE : AUTHENTICATION FAILURE> 1010100 <AUTHENTICATION RESPONSE : AUTHENTICATION RESPONSE> # 01 1001 <IDENTITY RESPONSE : IDENTITY RESPONSE>
# 00 0100 <LOCATION UPDATING REJECT: LOCATION UPDATING REJECT># 01 0001 <AUTHENTICATION REJECT: AUTHENTICATION REJECT># 01 0010 <AUTHENTICATION REQUEST: AUTHENTICATION REQUEST># 01 1010 <TMSI REALLOCATION COMMAND: TMSI REALLOCATION COMMAND> 10,0001 <CM SERVICE ACCEPT : CM SERVICE ACCEPT> 10 0010 <SERVICE REJECT CM: SERVICE REJECT CM> 10 0101 <SERVICE PROMPT CM: SERVICE PROMPT CM># 10 1000 <IDENTITY REQUEST: IDENTITY REQUEST># 10 1001 <ABORT: ABORT> Il 0001 <MM STATUS : MM STATUS DOWNLINK> 11 0010 <MM INFORMATION: MM INFORMATION>}! <erroneous type: bit ** = <no string} <spurious extension: bit ** = null> 1. 2.2 uplink mobility management (UL MM) 1. 2.2.1 Description abstract action UL MM :: = abstract
CHOICE {do AUTHENTICATION FAILURE, do AUTHENTICATION RESPONSE, do IDENTITY RESPONSE, do TMSI REALLOCATION COMPLETE, do CM SERVICE ABORT, do CM SERVICE REQUEST SUBSEQUENT, do MM STATUS UPLINK} 1. 2.2.2 transfer syntax transfer :: = - flow of uplink MM messages once an RR connection is established {<skip indicator: 0000><protocol discriminator: 0101> bit * 2 {01 1100 <AUTHENTICATION FAILURE: AUTHENTICATION FAILURE> 1010100 <AUTHENTICATION RESPONSE: AUTHENTICATION RESPONSE># 01 1001 <IDENTITY RESPONSE : IDENTITY RESPONSE>

<Desc/Clms Page number 37><Desc / Clms Page number 37>

# 01 1011 <TMSI REALLOCATION COMPLETE : TMSI REALLOCATION COMPLETE> 10 0011 <CM SERVICE ABORT : CM SERVICE ABORT> # 10 0100 <CM SERVICE REQUEST : CM SERVICE REQUEST> 1110001 <MM STATUS : MM STATUS UPLINK>} ! <erroneous type : bit** = <no string } <spurious extension : bit** = null> 1. 2.3 Abandon (ou abort ) 1. 2.3.1 Description abstraite action ABORT ::= abstract parameters
Reject cause : MM. Reject cause end if iif (Reject cause.cause grouping = MS identification error, Reject cause. MS identification error cause = illegal ME, false) then set Location update state := roaming not allowed 1. 2.3.2 Syntaxe de transfert transfer ::= <Reject cause : <M-V-IE (Reject cause downlink, 1)# 1. 2.4 Echec d'authentication (ou "AUTHENTICATION FAILURE") 1. 2.4.1 Description abstraite action AUTHENTICATION FAILURE ::= abstract parameters
Reject cause : MM. Reject cause
Authentication Failure parameter[iif(iif (Reject cause. cause grouping = network related failure, Reject cause.network-related failure cause = synch. failure, false), 1, 0)] : MM.Authentication Failure parameter end on Location parameters { set UMTS security data := null
# 01 1011 <TMSI COMPLETE REALLOCATION: TMSI REALLOCATION COMPLETE> 10 0011 <CM ABORT SERVICE: CM SERVICE ABORT># 10 0100 <SERVICE REQUEST CM: SERVICE REQUEST CM> 1110001 <MM STATUS: MM STATUS UPLINK>}! <erroneous type: bit ** = <no string} <spurious extension: bit ** = null> 1. 2.3 Abort (or abort) 1. 2.3.1 Abstract description action ABORT :: = abstract parameters
Reject cause: MM. Reject cause end if iif (Reject cause.cause grouping = MS identification error, MS cause error = illegal ME, false) then set Location update state: = roaming not allowed 1. 2.3.2 Transfer transfer syntax :: = <Reject cause: <MV-IE (Reject cause downlink, 1) # 1. 2.4 Authentication failure (or "AUTHENTICATION FAILURE") 1. 2.4.1 Abstract description action AUTHENTICATION FAILURE :: = abstract parameters
Reject cause: MM. Reject cause
Authentication Failure parameter [iif (Reject cause. Cause grouping = network related failure, Reject cause.network-related failure cause = synch. Failure, false), 1, 0)]: MM.Authentication Failure parameter end on Location parameters { set UMTS security data: = null

<Desc/Clms Page number 38><Desc / Clms Page number 38>

}
1. 2.4.2 Syntaxe de transfert. transfer ::= <Reject Cause - <M-V-IE (Reject Cause uplink, 1) < Authentication Failure parameter : <O-TLV-IE (0010 0010, Authentication Failure parameter,
16)
1. 2.5 Rejet d'authentification (ou "AUTHENTICATION REJECT")
1. 2.5.1 Description abstraite action AUTHENTICATION REJECT ::= abstract set Location update state := Roaming not allowed
1. 2.5.2 Syntaxe de transfert transfer ::= null
1. 2.6 Requête d'authentification (ou "AUTHENTICATION
REQUEST")
1. 2.6.1 Description abstraite action AUTHENTICATION REQUEST ::= abstract parameters
Authentication Parameter RAND - MM.Authentication Parameter RAND
Authentication Algorithm : Enumerated (UMTS, GSM) end on Location parameters {
PREPARE set CKSN availability = True set CKSN set GSM ciphering key := A8(Authentication Parameter RAND.RAND)
}
1. 2.4.2 Transfer syntax. transfer :: = <Reject Cause - <MV-IE (Reject Cause uplink, 1) <Authentication Failure parameter: <O-TLV-IE (0010 0010, Authentication Failure parameter,
16)
1. 2.5 Authentication Rejection (or "AUTHENTICATION REJECT")
1. 2.5.1 Abstract description action AUTHENTICATION REJECT :: = abstract set Update location state: = Roaming not allowed
1. 2.5.2 transfer syntax transfer :: = null
1. 2.6 Authentication Request (or "AUTHENTICATION"
REQUEST ")
1. 2.6.1 Abstract description action AUTHENTICATION REQUEST :: = abstract parameters
Authentication Parameter RAND - MM.Authentication Parameter RAND
Authentication Algorithm: Enumerated (UMTS, GSM)
PREPARE set CKSN availability = True set CKSN set GSM ciphering key: = A8 (Authentication Parameter RAND.RAND)

<Desc/Clms Page number 39><Desc / Clms Page number 39>

if Authentication algorithm = UMTS then set UMTS security data := { set AUTN set UMTS ciphering key := f3 (Authentication Parameter RAND.RAND) set UMTS integrity key := f4 (Authentication Parameter RAND.RAND) }} 1. 2.6.2 Syntaxe de transfert transfer ::= <spare half octet : {bit*4 = 0000}> <Ciphering key séquence number : <M-VD-IE (Ciphering key séquence number Downlink) <Authentication parameter RAND : <M-V-IE (Authentication parameter RAND, 16) <Authentication parameter AUTN : <O-TLV-IE (0010 0000, Authentication parameter AUTN, 18, 18) abstract. Authentication algorithm returns - if there is any error on AUTN, the authentication Algo will be considered GSM iif (exist(Authentication parameter AUTN), UMTS, GSM) 1. 2.7 Réponse d'authentification (ou "AUTHENTICATION
RESPONSE") 1. 2.7.1 Description abstraite action AUTHENTICATION RESPONSE ::= abstract parameters
RES : Octet string (4..16) end
COMMIT on Connection parameters { set Has been authenticated : = True transfer ::= <Authentication response parameter : <M-V-IE (Authentication Response Parameter, 4) <Authentication response extension : <O-TLV-IE (0010 0001, Authentication Response Parameter extension, 3,14 function RES returns <instance(Authentication response parameter.V.RES part 1)> {<instance(Authentication response extension.V.RES part 2) action CM SERVICE ABORT ::= abstract
if Authentication algorithm = UMTS then set UMTS security data: = {set AUTN set UMTS ciphering key: = f3 (Authentication Parameter RAND.RAND) set UMTS integrity key: = f4 (Authentication Parameter RAND.RAND)}} 1. 2.6.2 Transfer syntax transfer :: = <spare half byte: {bit * 4 = 0000}><Ciphering key sequence number: <M-VD-IE (Ciphering Key Sequence number Downlink) <Authentication parameter RAND: <MV-IE (Authentication parameter RAND, 16) <Authentication parameter AUTN: <O-TLV-IE (0010 0000, Authentication parameter AUTN, 18, 18) abstract. Authentication algorithm returns - if there is any error on AUTN, the authentication Algo will be considered GSM iif (Authentication parameter AUTN), UMTS, GSM) 1. 2.7 Authentication response (or "AUTHENTICATION")
RESPONSE ") 1. 2.7.1 Abstract description action AUTHENTICATION RESPONSE :: = abstract parameters
RES: Octet string (4..16) end
COMMIT on Connection parameters {set Has been authenticated: = True transfer :: = <Authentication response parameter: <Authentication Response Parameter (<4) <Authentication response extension: <O-TLV-IE (0010 0001, Authentication Response Parameter extension, 3.14 function RES returns <instance (Authentication response parameter.V.RES part 1)>{<instance (Authentication response extension.V.RES part 2) action CM SERVICE ABORT :: = abstract

<Desc/Clms Page number 40><Desc / Clms Page number 40>

on Connection parameters { set Service data = null } 1. 2.7.2 Syntaxe de transfert transfer := null 1. 2.8 Abandon de connexion pour service (ou "CM
SERVICE ABORT") 1. 2.8.1 Description abstraite action CM SERVICE ABORT = abstract on Connection parameters { set Service data = null 1. 2.8.2 Syntaxe de transfert transfer := null 1. 2.9 Acceptation de la demande de connexion pour service (ou "CM
SERVICE ACCEPT") 1. 2.9.1 Description abstraite action CM SERVICE ACCEPT = abstract
COMMIT
2. 2.7.2 Transfer transfer syntax: = null 1. 2.8 Connection abort for service (or "CM")
SERVICE ABORT ") 1. 2.8.1 Abstract description CM action ABORT = abstract on Connection parameters {set Service data = null 1. 2.8.2 Transfer transfer syntax: = null 1. 2.9 Acceptance of the connection request for service ( or "CM
SERVICE ACCEPT ") 1. 2.9.1 Abstract description CM SERVICE ACCEPT action = abstract
COMMIT

<Desc/Clms Page number 41><Desc / Clms Page number 41>

1. 2.9.2 Syntaxe de transfert transfer ::= null 1. 2.10 Affichage du service de gestion de connexion (ou "CM SERVICE
PROMPT") 1. 2.10.1 Description abstraite action CM SERVICE PROMPT . = abstract parameters
PD and SAPI RIL3.PD and SAPI end 1. 2.10.2 Syntaxe de transfert transfer ::= <PD and SAPI of CM <M-V-IE (PD and SAPI, 1) 1. 2.11 Rejet de la demande de connexion pour service (ou "CM
SERVICE REJECT") 1. 2.11.1 Description abstraite action CM SERVICE REJECT := abstract parameters
Reject cause - MM.Reject cause end
UNDO if iif (Reject cause cause grouping = MS identification error, Reject cause.MS identification error cause = "illegal ME" or Reject cause.MS identification error cause = "IMSI unknown in VLR", false) then set Location update state .= roaming not allowed
1. 2.9.2 Transfer Transfer Syntax :: = null 1. 2.10 Connection Management Service Display (or "CM SERVICE")
PROMPT ") 1. 2.10.1 Abstract description CM SERVICE PROMPT. = Abstract parameters
PD and SAPI RIL3.PD and SAPI end 1. 2.10.2 Transfer transfer syntax :: = <PD and SAPI of CM <IE-IE (PD and SAPI, 1) 1. 2.11 Rejection of the connection request for service ( or "CM
SERVICE REJECT ") 1. 2.11.1 Abstract description CM SERVICE REJECT action: = abstract parameters
Reject cause - MM.Reject cause end
UNDO if iif (Reject cause cause grouping = MS identification error, Reject cause.MS identification error cause = "illegal ME" or Reject cause.MS identification error cause = "IMSI unknown in VLR", false) then set Location update state. = roaming not allowed

<Desc/Clms Page number 42><Desc / Clms Page number 42>

1. 2.11.2 Syntaxe de transfert transfer ::= <Reject cause : <M-V-IE (Reject cause downlink, 1)# 1. 2.12 Demande de connexion additionnelle pour service (ou "CM
SERVICE REQUEST SUBSEQUENT") 1. 2.12.1 Description abstraite action CM SERVICE REQUEST SUBSEQUENT ::= abstract parameters
Mobile Identity Type : MM.Mobile Identity Type end if Mobile Identity Type = IMSI then send IMSI on Location parameters { if Mobile Identity Type = TMSI/P-TMSI then on LAI+TMSI { send TMSI } send CKSN availability if CKSN availability then send CKSN } on Connection parameters { send Mobile Station Classmark 1 send Mobile Station Classmark 2 delta
PREPARE add Service data := { set CM Service Type set Priority }} 1. 2.12.2 Syntaxe de transfert : CM SERVICE REQUEST transfer <CM SERVICE REQUEST> ::= <Ciphering key séquence number uplink : <M-VD-IE (Ciphering key séquence number Uplink) <CM service type : <M-VD-IE (CM service type) <Mobile station classmark 2 : <M-LV-IE (Mobile station classmark 2, 4, 4) <Mobile identity : <M-LV-IE (Mobile identity, 2, 9) <Priority : <O-TVD-IE (1000, Priority Levé!) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. 2.11.2 Transfer transfer syntax :: = <Reject cause: <MV-IE (Reject cause downlink, 1) # 1. 2.12 Additional connection request for service (or "CM"
SERVICE REQUEST SUBSEQUENT ") 1. 2.12.1 Abstract description action CM SERVICE REQUEST SUBSEQUENT :: = abstract parameters
Mobile Identity Type: MM.Mobile Identity Type end if Mobile Identity Type = IMSI then send IMSI on Location parameters {if Mobile Identity Type = TMSI / TMSI then on LAI + TMSI {send TMSI} send CKSK availability if CKSN availability then send CKSN} on Connection parameters {send Classmark 1 send Mobile Station Classmark 2 delta Mobile Station
PREPARE add Service data: = {set CM Service Type set Priority}} 1. 2.12.2 Transfer syntax: CM SERVICE REQUEST transfer <CM SERVICE REQUEST> :: = <Ciphering key sequence number uplink: <M-VD-IE ( Ciphering key sequence number Uplink) <CM service type: <M-VD-IE (CM service type) <Mobile station classmark 2: <M-LV-IE (Mobile station classmark 2, 4, 4) <Mobile identity: <M -LV-IE (Mobile identity, 2, 9) <Priority: <O-TVD-IE (1000, Priority raised!) ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~

<Desc/Clms Page number 43><Desc / Clms Page number 43>

abstract.Mobile Identity type returns
Mobile identity.V.Type of identity.abstract abstract.IMSI returns
Mobile identity.V.IMSI abstract abstract.TMSI returns
Mobile identity V.TMSI/P-TMSl.abstract abstract IMEI returns
Mobile identity V.IMEI 1. 2.13 Demande d'identité GSM (ou IDENTITY REQUEST ) 1. 2.13.1 Description abstraite action IDENTITY REQUEST .:= abstract parameters
Mobile Identity Type : MM.Mobile Identity Type end 1. 2.13.2 Syntaxe de transfert transfer ::= <spare half octet : {bit*4 = 0000}> <Identity type - <M-VD-IE (Identity type) 1. 2.14 Réponse d'identité (ou IDENTITY RESPONSE ) 1.2.14.1.1 Description abstraite action IDENTITY RESPONSE ::= abstract parameters
Mobile Identity Type : MM.Mobile Identity Type end
abstract.Mobile Identity type returns
Mobile identity.V.Type of identity.abstract abstract.IMSI returns
Mobile identity.V.IMSI abstract abstract.TMSI returns
Mobile Identity V.TMSI / P-TMSl.abstract abstract IMEI returns
Mobile identity V.IMEI 1. 2.13 GSM identity request (or IDENTITY REQUEST) 1. 2.13.1 Abstract description action IDENTITY REQUEST .: = abstract parameters
Mobile Identity Type: MM.Mobile Identity Type end 1. 2.13.2 Transfer syntax transfer :: = <spare half byte: {bit * 4 = 0000}><Identity type - <M-VD-IE (Identity type) 1 2.14 Identity response (or IDENTITY RESPONSE) 1.2.14.1.1 Abstract description action IDENTITY RESPONSE :: = abstract parameters
Mobile Identity Type: MM.Mobile Identity Type end

<Desc/Clms Page number 44><Desc / Clms Page number 44>

if Mobile Identity Type = IMSI then set IMSI if Mobile Identity Type = IMEI then on Connection parameters { set IMEI } if Mobile Identity Type = IMEISV then on Connection parameters { set IMEI set Software Version Number := Integer (0..99) } 1. 2.14.2 Syntaxe de transfert transfer ::= <Mobile identity : <M-LV-IE (Mobile identity, 2, 10) 1. 2.15 Acceptation de mise à jour de localisation (ou "LOCATION
UPDATING ACCEPT") 1. 2.15.1 Description abstraite action LOCATION UPDATING ACCEPT ::= abstract parameters
TMSI allocation status : Enumerated (new TMSI, keep TMSI, erase TMSI)
Follow on proceed : Boolean end set Location update state := updated on Location parameters { set Registered location area if TMSI allocation status = new TMSI then on LAI+TMSI { set Location Area Identification set TMSI } if TMSI allocation status = erase TMSI then set LAI+TMSI := null set CTS permission := Boolean } 1. 2.15.2 Syntaxe de transfert transfer ::=
if Mobile Identity Type = IMSI then set IMSI if Mobile Identity Type = IMEI then on Connection parameters {set IMEI} if Mobile Identity Type = IMEISV then on Connection parameters {set IMEI set Software Version Number: = Integer (0..99)} 1. 2.14.2 Transfer Syntax transfer :: = <Mobile Identity: <M-LV-IE (Mobile Identity, 2, 10) 1. 2.15 Localization Update Acceptance (or "LOCATION"
UPDATING ACCEPT ") 1. 2.15.1 Description abstract action LOCATION UPDATING ACCEPT :: = abstract parameters
TMSI allocation status: Enumerated (new TMSI, keep TMSI, TMSI erase)
Follow on proceed: Boolean end set Location update state: = updated on Location parameters TMSI allocation status = new TMSI then on LAI + TMSI LAI + TMSI: = null set CTS permission: = Boolean} 1. 2.15.2 transfer syntax transfer :: =

<Desc/Clms Page number 45><Desc / Clms Page number 45>

<Location area identification : <M-V-IE (Location area identification, 5) <Mobile identity : <O-TLV-IE (0001 0111, Mobile identity, 3, 10) <Follow on proceed : <O-T-IE (1010 0001) <CTS permission : <O-T-IE (1010 0010) abstract.TMSI allocation status returns switch (Mobile identity = <null>, keep TMSI,
Mobile identity.V.TMSI/P-TMSI = 1**, erase TMSI,
Mobile identity.V.TMSI/P-TMSI = bit**, new TMSI) abstract.TMSI returns
Mobile identity.V.TMSI/P-TMSI.abstract 1. 2.16 Rejet d'une mise à jour de localisation (ou LOCATION
UPDATING REJECT ) 1. 2.16.1 Description abstraite action LOCATION UPDATING REJECT ::= abstract parameters
Reject cause . MM. Reject cause end set Location update state : = roaming not allowed 1. 2.16.2 Syntaxe de transfert transfer ::= <Reject cause . <M-V-IE (Reject cause downlink, 1)# 1. 2.17 Information de gestion de mobilité (ou "MM INFORMATION") 1. 2.17.1 Description abstraite action MM INFORMATION ::= abstract parameters
Universal time[0..1] : MM.Universal Time
<Location identification area: <MV-IE (Location area identification, 5) <Mobile identity: <O-TLV-IE (0001 0111, Mobile identity, 3, 10) <Follow on proceed: <OT-IE (1010 0001) <CTS permission: <OT-IE (1010 0010) abstract.TMSI allocation status returns switch (Mobile identity = <null>, keep TMSI,
Mobile identity.V.TMSI / P-TMSI = 1 **, TMSI erase,
Mobile identity.V.TMSI / P-TMSI = bit **, new TMSI) abstract.TMSI returns
Mobile identity.V.TMSI / P-TMSI.abstract 1. 2.16 Rejecting a Location Update (or LOCATION
UPDATING REJECT) 1. 2.16.1 Abstract description action LOCATION UPDATING REJECT :: = abstract parameters
Reject cause. Messrs. 1. 2.16.2 Transfer syntax transfer :: = <Reject cause. <MV-IE (Reject Cause Downlink, 1) # 1. 2.17 Mobility Management Information (or "MM INFORMATION") 1. 2.17.1 Abstract Description Action MM INFORMATION :: = abstract parameters
Universal time [0..1]: MM.Universal Time

<Desc/Clms Page number 46><Desc / Clms Page number 46>

end on Location parameters { on Registered location area {
OPTIONAL set Local time zone
OPTIONAL set Daylight Saving Time on PLMN {
OPTIONAL set Full name for network
OPTIONAL set Short name for network }}} on Connection parameters { on Serving cell {
OPTIONAL set LSA identity }} 1. 2.17.2 Syntaxe de transfert transfer ::= <Full name for network : <O-TLV-1E (0100 0011, Network Name, 3, 255) <Short name for network : <O-TLV-IE (0100 0101, Network Name, 3, 255) <Local time zone : <O-TV-IE (0100 0110, Time Zone, 2) <Universal time and local time zone : <O-TV-IE (0100 0111, Time Zone and Time, 8) <LSA Identity : <O-TLV-IE (0100 1000, LSA Identifier, 2, 5) <Network Daylight Saving Time : <O-TLV-IE (0100 1001, Daylight Saving Time, 3, 3) function Local time zone returns iif (exist (Local time zone), Local time zone, iif (exist (Universal time and local time zone),
Universal time and local time zone.Local time zone, <no string>)) function Universal time returns
Universal time and local time zone.Universal time 1. 2.18 Statut dans le sens descendant de la Gestion de mobilité (ou "MM STATUS DOWNLINK") 1. 2.18.1 Description abstraite action MM STATUS DOWNLINK::= abstract parameters
end on Location parameters
OPTIONAL set Local time zone
OPTIONAL set Daylight Saving Time on PLMN {
OPTIONAL set Full name for network
OPTIONAL set Short name for network on}}} on Connection parameters {on Serving cell {
OPTIONAL set LSA identity}} 1. 2.17.2 Transfer syntax transfer :: = <Full name for network: <O-TLV-1E (0100 0011, Network Name, 3, 255) <Short name for network: <O- TLV-IE (0100 0101, Network Name, 3, 255) <Local Time Zone: <O-TV-IE (0100 0110, Time Zone, 2) <Universal Time and Local Time Zone: <O-TV-IE (0100 0111, Time Zone and Time, 8) <LSA Identity: <O-TLV-IE (0100 1000, LSA Identifier, 2, 5) <Network Daylight Saving Time: <O-TLV-IE (0100 1001, Daylight Saving Time, 3, 3) function Local time zone returns iif (Exist (Local time zone), Local time zone, iif (exist (Universal time and local time zone),
Universal time and local time zone.Local time zone, <no string>)) function Universal time returns
Universal time and local time zone.Universal time 1. 2.18 Downstream status of Mobility Management (or "MM STATUS DOWNLINK") 1. 2.18.1 Abstract description action MM STATUS DOWNLINK :: = abstract parameters

<Desc/Clms Page number 47> <Desc / Clms Page number 47>

Reject cause MM Reject cause end 1. 2.18.2 Syntaxe de transfert transfer := <Reject cause <M-V-IE (Reject cause downlink, 1 ) 1. 2.19 Statut dans le sens montant de la Gestion de mobilité (ou "MM
STATUS UPLINK") 1. 2.19.1 Description abstraite action MM STATUS UPLINK := abstract parameters
Reject cause MM.Reject cause end 1. 2.19.2 Syntaxe de transfert transfer :'= <Reject cause <M-V-IE (Reject cause uplink, 1) 1. 2.20 Commande de réallocation TMSI (ou "TMSI REALLOCATION
COMMAND") 1. 2.20.1 Description abstraite action TMSI REALLOCATION COMMAND .:= abstract on Location parameters {
PREPARE set LAI+TMSI }
Reject causes MM Reject cause end 1. 2.18.2 Transfer transfer syntax: = <Reject cause <MV-IE (Reject cause downlink, 1) 1. 2.19 Upstream status of Mobility Management (or "MM")
STATUS UPLINK ") 1. 2.19.1 Abstract description action MM STATUS UPLINK: = abstract parameters
Reject cause MM.Reject cause end 1. 2.19.2 Transfer transfer syntax: '= <Reject cause <MV-IE (Reject cause uplink, 1) 1. 2.20 TMSI reallocation command (or "TMSI REALLOCATION
COMMAND ") 1. 2.20.1 Description abstract action TMSI REALLOCATION COMMAND.: = Abstract on Location parameters {
PREPARE set LAI + TMSI}

<Desc/Clms Page number 48><Desc / Clms Page number 48>

1. 2.20.2 Syntaxe de transfert transfer ::= <Location area identification -<M-V-IE (Location area identification, 5) <Mobile identity : <M-LV-IE (Mobile identity, 2, 9) abstract.TMSI returns
Mobile identity V.TMSI/P-TMSI abstract 1. 2.21 Réallocation TMSI effectuée (ou "TMSI REALLOCATION
COMPLETE") 1. 2.21.1 Description abstraite action TMSI REALLOCATION COMPLETE ':= abstract
COMMIT 1. 2.21.2 Syntaxe de transfert transfer ::= null 2 Liste de zones de localisation (ou "LA list") 2. 1 Description abstraite <LA list> ::= abstract
Location area description[0. infinite] : + PLMN : -> UE context.PLMN list + LAC . RIL3 Location Area Code + Local time zone[0..1] : Time Zone + Network daylight saving time(0..1] : Daylight Saving Time 3 Liste de réseaux (ou PLMN list )
1. 2.20.2 Transfer syntax transfer :: = <Location area identification - <Location Location Identification, 5 <Mobile identity: <M-LV-IE (Mobile identity, 2, 9) abstract.TMSI returns
Mobile identity V.TMSI / P-TMSI abstract 1. 2.21 TMSI reallocation performed (or "TMSI REALLOCATION
COMPLETE ") 1. 2.21.1 Abstract description action TMSI REALLOCATION COMPLETE ': = abstract
COMMIT 1. 2.21.2 Transfer syntax transfer :: = null 2 List of location fields (or "LA list") 2. 1 Abstract description <LA list> :: = abstract
Location area description [0. infinite]: + PLMN: -> UE context.PLMN list + LAC. RIL3 Location Area Code + Local Time Zone [0..1]: Time Zone + Network Daylight Saving Time (0..1): Daylight Saving Time 3 List of Networks (or PLMN list)

<Desc/Clms Page number 49><Desc / Clms Page number 49>

3. 1 Description abstraite <PLMN list> : = abstract
PLMN description[0..infinité] : + PLMN Id . PLMN Identity + Full name for network[0..1] : Network Name + Short name for network[0..1] Network Name 4 Paramètre d'authentification AUTN (ou "Authentication
Parameter AUTN") 4. 1 Description abstraite <Authentication Parameter AUTN> = abstract
Sequence number xor Anonymity Key ' Bit string (48)
Authentication management field : Bit string (16)
Message authentication code : Bit string (64) 4. 2 Syntaxe de transfert transfer ::= <Sequence number xor Anonymity Key : bit*48> <Authentication management field . bit*16> <Message authentication code : bit*64> 5 Type service CM (ou "CM Service Type") 5. 1 Description abstraite <CM Service Type> ::= abstract service type : Enumerated (MO cati or packet est, emergency call, SMS, SS, VGC, VBS, LCS) 5. 2 Syntaxe de transfert transfer ::=
3. 1 Abstract description <PLMN list>: = abstract
PLMN description [0..infinite]: + PLMN Id. PLMN Identity + Full name for network [0..1]: Network Name + Short name for network [0..1] Network Name 4 Authentication Setting AUTN (or "Authentication")
Parameter AUTN ") 4. 1 Abstract Description <Authentication Parameter AUTN> = abstract
Sequence number xor Anonymity Key 'Bit string (48)
Authentication management field: Bit string (16)
Message authentication code: Bit string (64) 4. 2 Transfer syntax transfer :: = <Sequence number xor Anonymity Key: bit * 48><Authentication management field. bit * 16><Message authentication code: bit * 64> 5 Service type CM (or "CM Service Type") 5. 1 Abstract description <CM Service Type> :: = abstract service type: Enumerated (MO packet is, emergency call, SMS, SS, VGC, VBS, LCS) 5. 2 transfer syntax transfer :: =

<Desc/Clms Page number 50><Desc / Clms Page number 50>

<service type : {00011001010100110 bit(2)}> 6 Correction d'heure d'été (ou "Daylight Saving Time") 6. 1 Description abstraite <Daylight Saving Time> ::= abstract
Daylight Saving Time adjustment : Enumerated (0, +1hour, +2 hour) 6.2 Syntaxe de transfert transfer ::= <spare bit> * 6 <Daylight Saving Time adjustment : {00 # 01 10 }> 7 IMEI 7. 1 Description abstraite <IMEI> ::= abstract
Type Approval Code [6] : Integer (0..9)
Final Assembly Code [2] : Integer (0..9)
Sériai Number [6] : Integer (0..9) 7. 2 Syntaxe de transfert transfer ::= < digit one : digit> 1 bit*3 <pairs : <digit odd : digit><digit even : digit *7 function Digit(n) : integer returns iif(n=1, integer(digit one), iif(n%2 = 0, integer(pairs[n/2].digit even), integer(pairs[(n-1 )/2].digit odd))) abstract.Type Approval Code[n] returns -- n from 0 to 5, MSB to LSD Digit(n+1)
<service type: {00011001010100110 bit (2)}> 6 Daylight Saving Time (Daylight Saving Time) 6. 1 Abstract Description <Daylight Saving Time> :: = abstract
Daylight Saving Time Adjustment: Enumerated (0, + 1hour, +2 hour) 6.2 Transfer Transfer Syntax :: = <spare bit> * 6 <Daylight Saving Time Adjustment: {00 # 01 10}> 7 IMEI 7. 1 Abstract Description <IMEI> :: = abstract
Type Approval Code [6]: Integer (0..9)
Final Assembly Code [2]: Integer (0..9)
Serial Number [6]: Integer (0..9) 7. 2 Transfer syntax transfer :: = <digit one: digit> 1 bit * 3 <pairs: <digit odd: digit><digit even: digit * 7 function Digit (n): integer returns iif (n = 1, integer (digit one), iif (n% 2 = 0, integer (even [n / 2] .digit even), integer (even [(n-1) / 2] .digit odd))) abstract.Type Approval Code [n] returns - n from 0 to 5, MSB to LSD Digit (n + 1)

<Desc/Clms Page number 51><Desc / Clms Page number 51>

abstract.Final Assembly Code[n] returns -- n from 0 to 1, MSD to LSD
Digit(n+7) abstract.Serial Number[n] returns -- n from 0 to 5, MSD to LSD
Digit(n+9)
8 IMSI
8. 1 Description abstraite <IMSI> ::= abstract
MCC:MCC
NMSI[3..12] : Integer (0.99)
8. 2 Syntaxe de transfert transfer ::= {< digit one : digit> <oddeven : bit> bit*3 <pairs : <digit odd : digit> <digit even : digit ** <pairs : <spare bit>*4 <digit even : digit *(1-integer(oddeven))} & octet*(4..8) function Digit(n) : integer returns iif(n=1, integer(digit one), iif(n%2 = 0, integer(pairs[n/2].digit even), integer(pairs[(n-1)/2].digit odd))) abstract.MCC returns Digit(1)*100 + Digit (2)*10 Digit(3) abstract.NMSI.size returns (exist (pairs) *2) - 4 + integer (oddeven) abstract.NMSI[n] returns n from 0 to (size-1)
Digit(n+4)
9 LAI et TMSI
9. 1 Description abstraite
abstract.Final Assembly Code [n] returns - n from 0 to 1, MSD to LSD
Digit (n + 7) abstract.Serial Number [n] returns - n from 0 to 5, MSD to LSD
Digit (n + 9)
8 IMSI
8. 1 Abstract Description <IMSI> :: = abstract
MCC: MCC
NMSI [3..12]: Integer (0.99)
8. 2 Transfer syntax transfer :: = {<digit one: digit><oddeven:bit> bit * 3 <pairs: <digit odd: digit><digit even: digit ** <pairs: <spare bit> * 4 <digit even: digit * (1-integer (oddeven))} & byte * (4..8) function Digit (n): integer returns iif (n = 1, integer (digit one), iif (n% 2 = 0, integer (even [n / 2] .digit even), integer (even [(n-1) / 2] .digit odd))) abstract.MCC returns Digit (1) * 100 + Digit (2) * 10 Digit (3) abstract.NMSI.size returns (exist (pairs) * 2) - 4 + integer (oddeven) abstract.NMSI [n] n returns from 0 to (size-1)
Digit (n + 4)
9 LAI and TMSI
9. 1 Abstract description

<Desc/Clms Page number 52><Desc / Clms Page number 52>

<LAI+TMSI> ::= abstract
Location Area Identification : RIL3.Location Area Identification
TMSI : Temporary Mobile Station Identity
10 Identifiant LSA (ou LSA Identifier )
10. 1 Description abstraite <LSA Identifier> ::= abstract
LSA available : Boolean
LSA ID[iif(LSA available, 1, 0)] : + LSA identifier scope : Enumerated (PLMN significant, universal) + Localised service area identity : Bit string (23)
10. 2 Syntaxe de transfert transfer ::= {<LSA ID : <Localised service area identity : bit(23)> <LSA identifier scope : bit>} abstract.LSA available returns exist (LSA ID) abstract.LSA ID.LSA identifier scope returns iif (LSA identifier scope = 0, PLMN significant, universal)
11 MCC
11.1 Description abstraite <MCC> ::= abstract
MCC value : Integer (0..999)
12 MNC
<LAI + TMSI> :: = abstract
Location Area Identification: RIL3.Location Area Identification
TMSI: Temporary Mobile Station Identity
10 LSA Identifier (or LSA Identifier)
10. 1 Abstract description <LSA Identifier> :: = abstract
LSA available: Boolean
LSA ID [iif (LSA available, 1, 0)]: + LSA Identify scope: Enumerated (PLMN significant, universal) + Localized service area identity: Bit string (23)
10. 2 Transfer syntax transfer :: = {<LSA ID: <Localized service area identity: bit (23)><LSA Identify scope: bit>} abstract.LSA Available Returns Exist (LSA ID) abstract.LSA ID.LSA identify scope returns iif (LSA identify scope = 0, PLMN significant, universal)
11 MCC
11.1 Abstract Description <MCC> :: = abstract
MCC value: Integer (0..999)
12 MNC

<Desc/Clms Page number 53><Desc / Clms Page number 53>

12. 1 Description abstraite <MNC> ::= abstract
MNC value : Integer (0..999) 13 Nom du réseau (ou "Network Name") 13. 1 Description abstraite <Network Name> ::= abstract
Coding scheme : Enumerated (cell broadcast default alphabet, UCS2)
Add country's initiais: Boolean
Text string : String 13. 2 Syntaxe de transfert transfer ::= <ext : 1 <Coding scheme : {000#001}> <Add country's initiais : bit> <number of spare bits in last octet : bit(3)> <Text string : -- order of bits within text string ? <octet>** <{0}*(number of spare bits in last octet)> <bit*(8 - number of spare bits in last octet) 14 Identité de réseau (ou PLMN Identity ) 14. 1 Description abstraite <PLMN Identity> ::= abstract
MCC:MCC
MNC:MNC
12. 1 Abstract Description <MNC> :: = abstract
MNC value: Integer (0..999) 13 Network Name (or "Network Name") 13. 1 Abstract Description <Network Name> :: = abstract
Coding scheme: Enumerated (cell broadcast default alphabet, UCS2)
Add country's initiais: Boolean
Text string: String 13. 2 Transfer syntax transfer :: = <ext: 1 <Coding scheme: {000 # 001}><Addcountry's statement: bit><number of spare bits in last byte: bit (3)>< Text string: - order of bits within text string? <byte> ** <{0} * (number of spare bits in last byte)><bit * (8 - number of spare bits in last byte) 14 Network Identity (or PLMN Identity) 14. 1 Abstract Description <PLMN Identity> :: = abstract
MCC: MCC
MNC MNC

<Desc/Clms Page number 54><Desc / Clms Page number 54>

15 Identité temporaire de station mobile (ou "Temporary
Mobile Station Identity", TMSI).
15 Temporary Mobile Station Identity (or "Temporary")
Mobile Station Identity ", TMSI).

15. 1 Description abstraite <Temporary Mobile Station Identity> : = = abstract temporary identity Bit string (32) 15. 2 Syntaxe de transfert transfer .:= <temporary identity : bit*32> 16 Zone horaire ( ou Time Zone ) 16. 1 Description abstraite <Time Zone> ::= abstract
Delta with GMT : Integer (-99.99) 16. 2 Syntaxe de transfert transfer = <sign ' bit> <digit 1 bit(3)> <digit bit(4)> abstract Delta with GMT returns -- units are minutes
15 * iif (sign = 0, integer(digit 1)*10 + integer(digit 2), - integer(digit 1)*10 - integer(digit 2))
15. 1 Abstract description <Temporary Mobile Station Identity>: = = abstract temporary identity Bit string (32) 15. 2 Transfer transfer syntax.: = <Temporary identity: bit * 32> 16 Time zone (or Time Zone) 16. 1 Abstract description <Time Zone> :: = abstract
Delta with GMT: Integer (-99.99) 16. 2 Transfer syntax transfer = <sign 'bit><digit 1 bit (3)><bit digit (4)> abstract Delta with GMT returns - units are minutes
15 * iif (sign = 0, integer (digit 1) * 10 + integer (digit 2), - integer (digit 1) * 10 - integer (digit 2))

<Desc/Clms Page number 55> <Desc / Clms Page number 55>

ANNEXE 4. ANNEX 4.

Module de description formelle de protocole selon une variante
Un module de description formelle de protocole selon une variante de l'invention est décrit dans l'annexe 4 et comprend des éléments de description formelle spécifiant un protocole de communication.
Formal protocol description module according to a variant
A formal protocol description module according to a variant of the invention is described in Appendix 4 and includes elements of formal description specifying a communication protocol.

Le module contient trois types de description : - des descriptions abstraites de types d'objet (correspondant à une syntaxe de type a) illustrée précédemment) ; - des descriptions abstraites d'actions (messages par exemple) (correspondant à une syntaxe de type e) ; - et des descriptions de transfert s'appliquant soit à des messages, soit à des objets en tant que partie de message (correspondant à une syntaxe de type b).  The module contains three types of description: - abstract descriptions of object types (corresponding to a syntax of type a) illustrated previously); - abstract descriptions of actions (messages for example) (corresponding to a syntax of type e); and transfer descriptions applying to either messages or objects as part of a message (corresponding to a syntax of type b).

A chaque type correspond un langage formel distinct.  To each type corresponds a distinct formal language.

Le module est essentiellement organisé comme une liste de types d'objet.  The module is essentially organized as a list of object types.

A chaque type d'objet sont associées une description abstraite, éventuellement une ou plusieurs descriptions de transfert, et éventuellement une ou plusieurs actions. A chaque action, sont associées une description abstraite et éventuellement une ou plusieurs descriptions de transfert. Each type of object is associated with an abstract description, possibly one or more transfer descriptions, and possibly one or more actions. Each action is associated with an abstract description and possibly one or more transfer descriptions.

Pour des raisons pratiques, l'organisation générale d'un module permet soit de grouper les descriptions selon la logique ci-dessus, soit de séparer les éléments (par exemple pour grouper tous les messages ensemble), auquel cas les liaisons sont explicitées (par exemple la description d'un message indique alors le type d'objet auquel il est associé).  For practical reasons, the general organization of a module makes it possible either to group the descriptions according to the above logic, or to separate the elements (for example to group all the messages together), in which case the links are explained (by example the description of a message indicates the type of object with which it is associated).

<Desc/Clms Page number 56> <Desc / Clms Page number 56>

1 Syntaxe de module
Un module est composé d'un en-tête, suivi d'une liste de description de type d'objet, de descriptions autonomes d'actions et de descriptions autonomes de structure de transfert.
1 Syntax of module
A module consists of a header, followed by an object type description list, autonomous action descriptions, and autonomous structure descriptions.

1. 1 En-tête de module
L'en-tête de module comporte son nom, le scope par défaut.
1. 1 Module header
The module header has its name, the default scope.

2 Descriptions de types d'objet
Une description comporte au minimum: - une description abstraite; - zéro, une ou plusieurs descriptions de transfert ; - zéro, une ou plusieurs descriptions de commandes.
2 Descriptions of object types
A description includes at least: - an abstract description; - zero, one or more transfer descriptions; - zero, one or more command descriptions.

Une description de transfert décrit une structure de chaîne binaire qui peut représenter correctement la structure abstraite (voir le chapitre sur le sujet).  A transfer description describes a bit string structure that can correctly represent the abstract structure (see topic chapter).

Une action (message) associée au type d'objet décrit des modifications pouvant être demandées à une instance dudit type d'objet.  An action (message) associated with the object type describes modifications that can be requested to an instance of said object type.

3 Descriptions abstraites de types d'objet
Une description abstraite de type d'objet se présente usuellement comme un ensemble de composants. Chaque composant est caractérisé par : - un nom de composant, - des informations de présence, et - une description de type.
3 Abstract descriptions of object types
An abstract description of object type is usually presented as a set of components. Each component is characterized by: - a component name, - presence information, and - a type description.

3. 1 Informations de présence
Un composant peut être muni d'un index (tableau). Par défaut un composant n'a qu'une copie, un index permet d'avoir un nombre variable de copies, distinguées par une valeur d'index. Différents cas sont distinguables pour le nombre de copies.
3. 1 Presence information
A component may have an index (array). By default a component has only one copy, an index allows to have a variable number of copies, distinguished by an index value. Different cases are distinguishable for the number of copies.

<Desc/Clms Page number 57> <Desc / Clms Page number 57>

3. 1.1 Nombre fixe de copies
Le nombre de copies est spécifié par un entier. Le cas par défaut, une seule copie, est un cas particulier de nombre fixe de copies.
3. 1.1 Fixed number of copies
The number of copies is specified by an integer. The default case, a single copy, is a special case of fixed number of copies.

3. 1.2 Nombre variable libre
Le nombre de copies, possible est alors typiquement indiqué par un intervalle d'entiers. Un cas particulier est un nombre quelconque de copies (intervalle de 0 à l'infini).
3. 1.2 Free variable number
The number of possible copies is then typically indicated by an integer range. A special case is any number of copies (range from 0 to infinity).

3. 1.3 Nombre variable conditionnel
Le nombre de copies, acceptable dépend des valeurs d'autres éléments de la structure.
3. 1.3 Conditional variable number
The number of copies, acceptable depends on the values of other elements of the structure.

3. 2 Description de type
Cette description indique la structure du composant lui-même. Différentes descriptions sont possibles.
3. 2 Type description
This description indicates the structure of the component itself. Different descriptions are possible.

3.2.1 Composants élémentaires
Cela inclut au minimum: - un composant de type entier, au sens mathématique du terme; - un composant de type énuméré : la liste des valeurs possibles est donnée explicitement, commune liste de symboles abstraits ; et - un composant de type chaîne de bits.
3.2.1 Basic components
This includes at a minimum: - an integer component, in the mathematical sense of the term; - an enumerated type component: the list of possible values is given explicitly, common list of abstract symbols; and a bit string component.

3. 2.2 Structure
Une structure se présente comme une liste de composants.
3. 2.2 Structure
A structure is a list of components.

3. 2.3 Union
Une union est une écriture abrégée pour un ensemble de composants de présence exclusive, i.e., au plus un des composants est présent dans une instance de l'union.
3. 2.3 Union
A union is an abbreviated form for a set of exclusive presence components, ie, at most one of the components is present in an instance of the union.

<Desc/Clms Page number 58> <Desc / Clms Page number 58>

3. 2.4 Référence
Une référence est une structure dont le contenu est défini par référence à un autre type d'objet.
3. 2.4 Reference
A reference is a structure whose content is defined by reference to another type of object.

3. 2.5 Index
Un composant de type index indique une instance particulière parmi un ensemble d'objets de même type. La définition d'un composant de type index doit inclure la référence à un composant indexé d'un objet particulier. Cela peut être soit un composant inclus dans la structure dans laquelle est défini le composant de type index, soit un composant inclus dans un contexte, un objet unique commun à l'émetteur et le récepteur.
3. 2.5 Index
An index-type component indicates a particular instance among a set of objects of the same type. The definition of an index-type component must include the reference to an indexed component of a particular object. This can be either a component included in the structure in which the index component is defined, or a component included in a context, a single object common to the sender and the receiver.

4 Description d'action. 4 Action description.

Une description d'action comporte un nom de commande, une description abstraite d'action, et une ou plusieurs descriptions de transfert.  An action description includes a command name, an abstract action description, and one or more transfer descriptions.

Une description de transfert décrit une structure de chaîne binaire qui peut représenter correctement l'action (voir le chapitre sur le sujet).  A transfer description describes a bit string structure that can correctly represent the action (see topic chapter).

*5 Description abstraite d'action. * 5 Abstract description of action.

Une description abstraite d'action comporte éventuellement une liste de paramètres, et éventuellement une liste d'actions élémentaires. (Les instructions demandent en général des paramètres qui apparaissent par exemple dans la représentation de l'action. Ces paramètres ne sont pas inclus dans la liste de paramètres : celle-ci ne contient que les paramètres qui ne peuvent pas être décrits plus précisément comme liés à une instruction élémentaire.)
La liste d'actions est constituée d'une ou plusieurs actions élémentaires.
An abstract description of action optionally includes a list of parameters, and possibly a list of elementary actions. (The instructions generally require parameters that appear for example in the representation of the action.These parameters are not included in the parameter list: it contains only the parameters that can not be described more precisely as linked. to a basic education.)
The action list consists of one or more elementary actions.

Chaque action élémentaire est constituée d'une éventuelle indication de condition, suivie d'une instruction parmi celles listées ci-après. Each elementary action consists of a possible indication of condition, followed by an instruction from those listed below.

<Desc/Clms Page number 59> <Desc / Clms Page number 59>

5.1 Indication de condition
Par défaut, une instruction doit être exécutée. Une indication de condition permet d'indiquer les conditions sous lesquelles l'instruction doit être exécutée.
5.1 Condition indication
By default, an instruction must be executed. A condition indication is used to indicate the conditions under which the instruction is to be executed.

Une première syntaxe permet de décrire une condition comme une expression booléenne construite à partir des paramètres.  A first syntax makes it possible to describe a condition as a Boolean expression constructed from the parameters.

Une syntaxe simplifiée permet de décrire à la fois l'existence d'un paramètre booléen spécifique et la condition d'exécution correspondant à ce paramètre (e. g., mot clé OPTIONAL).  A simplified syntax makes it possible to describe both the existence of a specific Boolean parameter and the execution condition corresponding to this parameter (e.g., OPTIONAL keyword).

5. 2 Instruction de sélection
Une instruction de sélection permet d'indiquer une sous-partie de l'objet sur lequel porte une séquence d'actions. On utilise par la suite le terme de 'n#ud courant' pour désigner la sous-partie sur laquelle porte une instruction. Par défaut d'instruction de sélection, le n#ud courant est un objet du type auquel est associée l'action. L'objet spécifique est déterminé implicitement.
5. 2 Selection Instruction
A selection command is used to indicate a sub-part of the object on which an action sequence is carried. The term 'current node' is then used to denote the sub-part to which an instruction is concerned. By default of a select statement, the current node is an object of the type that the action is associated with. The specific object is determined implicitly.

5. 3 Instruction d'affectation (SET)
Une instruction d'affectation demande l'affectation d'une nouvelle valeur à un composant du n#ud courant (dans son intégrité, ce qui peut être un sousarbre assez important). Il y a plusieurs manières dont la nouvelle valeur peut être indiquée : paramètre implicite de type implicite ou explicite, valeur explicite ou calculée.
5. 3 Assignment Instruction (SET)
An assignment statement requests the assignment of a new value to a component of the current node (in its integrity, which can be a fairly large subtree). There are several ways in which the new value can be specified: default parameter of implicit or explicit type, explicit or calculated value.

5.3.1 Paramètre implicite de type implicite
Dans ce cas, l'instruction ne contient rien de plus. Le message (représentation de l'action) contient alors un paramètre du type du composant, tel que décrit dans la description abstraite d'objet.
5.3.1 Default implicit type
In this case, the statement contains nothing more. The message (representation of the action) then contains a parameter of the type of the component, as described in the abstract object description.

5. 3.2 Paramètre implicite de type explicite
Dans ce cas l'instruction inclut un nom de type d'objet. Ce type doit être compatible avec le type du composant (sous-type).
5. 3.2 Explicit type implicit parameter
In this case the statement includes an object type name. This type must be compatible with the type of component (subtype).

<Desc/Clms Page number 60> <Desc / Clms Page number 60>

5. 3.3 Valeur explicite
Dans ce cas, l'instruction inclut une expression dont le résultat doit être compatible avec le type de composant.
5. 3.3 Explicit value
In this case, the statement includes an expression whose result must be compatible with the type of component.

5. 3.4 Valeur calculée
Dans ce cas, l'instruction inclut une liste d'instructions. Ces instructions itémisent les actions aboutissant à l'affectation du composant (typiquement souscomposant par sous-composant).
5. 3.4 Calculated value
In this case, the instruction includes a list of instructions. These instructions give the actions leading to the assignment of the component (typically subcomponent by subcomponent).

5. 3.5 Vidage
Cela ne s'applique qu'aux composants indexés (mais sans indication d'index dans l'instruction SET) et qui accepte un nombre nul de copies.
5. 3.5 Emptying
This only applies to indexed components (but with no index specified in the SET statement) and accepts a null number of copies.

L'instruction met le nombre de copies à zéro. The instruction sets the number of copies to zero.

5. 4 Instruction d'ajout (ADD)
Une instruction d'ajout inclut un nom de composant indexé et une valeur.
5. 4 Add Instruction (ADD)
An add statement includes an indexed component name and a value.

Cette instruction demande l'ajout d'une nouvelle copie au composant, ayant la valeur indiquée (dans son intégrité, ce qui peut être un sous-arbre assez important). Il y a plusieurs manières dont la nouvelle valeur peut être indiquée, comme dans le cas de l'instruction d'affectation. This statement requests the addition of a new copy to the component, having the specified value (in its integrity, which can be a fairly large subtree). There are several ways in which the new value can be indicated, as in the case of the assignment statement.

5. 5 Instruction d'envoi (SEND)
Une instruction d'envoi indique l'inclusion d'un paramètre dont la valeur est la valeur courante du composant du côté de la source. L'action du côté du récepteur est de vérifier la cohérence, mais la conséquence d'une détection d'incohérence n'est pas précisée.
5. 5 Sending Instruction (SEND)
A send statement indicates the inclusion of a parameter whose value is the current value of the component on the source side. The action on the receiver side is to check for consistency, but the consequence of an inconsistency detection is not specified.

5. 6 Instruction de choix (CHOICE)
Une instruction de choix indique qu'une et une seule des actions est demandée pour chaque occurrence de l'action.
5. 6 Instruction of Choice (CHOICE)
A choice statement indicates that one and only one of the actions is requested for each occurrence of the action.

<Desc/Clms Page number 61> <Desc / Clms Page number 61>

5. 7 Instruction d'exécution d'une action (DO)
Une instruction d'exécution permet d'exécuter une action compatible avec le type de composant courant.
5. 7 Instruction for the execution of an action (DO)
An execution statement executes an action that is compatible with the current component type.

5. 8 Instructions liées au retour en arrière
Une modification de données peut être demandée à l'essai et refusée éventuellement par le récepteur. Ceci est géré par des instructions spécifiques de préparation (PREPARE), d'acceptation de modifications associées à une préparation (COMMIT) et de refus de modifications (UNDO).
5. 8 Instructions for going back
A data modification may be requested on the test and possibly refused by the receiver. This is handled by specific instructions for preparation (PREPARE), acceptance of modifications associated with a preparation (COMMIT) and refusal of modifications (UNDO).

5. 8.1 L'instruction de préparation (PREPARE)
Cette instruction indique que les modifications qui la suivent et applicables au n#ud courant peuvent être annulées.
5. 8.1 Preparation instruction (PREPARE)
This instruction indicates that the changes that follow it and apply to the current node can be undone.

5. 8.2 L'instruction d'acceptation (COMMIT)
Cette instruction indique l'acceptation des modifications sujettes à une préparation (PREPARE) sur le n#ud courant.
5. 8.2 The acceptance instruction (COMMIT)
This instruction indicates the acceptance of the modifications subject to a preparation (PREPARE) on the current node.

5. 8.3 L'instruction de refus de modification (UNDO)
Cette instruction indique le refus des modifications sujettes à une préparation (PREPARE) sur le n#ud courant.
5. 8.3 The Unoperation Instruction (UNDO)
This instruction indicates the refusal of PREPARE-related changes to the current node.

6 Description de transfert
La description de transfert est à la base CSN.l version 2. 2, avec les adaptations suivantes.
6 Transfer Description
The transfer description is based on CSN.l version 2. 2, with the following adaptations.

6. 1 En-tête
Quand la description de transfert est unique pour un type d'objet, le nom de structure CSN.l peut être omis, et est alors le même que le nom de type.
6. 1 Header
When the transfer description is unique for an object type, the CSN.l structure name can be omitted, and is then the same as the type name.

<Desc/Clms Page number 62> <Desc / Clms Page number 62>

6. 2 Fin de structure Le ; final est omis (la fin est détectée soit par le ; de fin d'objet, soit par un des mots clés transfer (indiquant une alternative de codage), ou action . 6. 2 End of structure The; final is omitted (the end is detected either by the end of object, or by one of the key words transfer (indicating a coding alternative), or action.

6. 3 Fonctions calculées de liaison avec la description abstraite
L'en-tête d'une fonction calculée peut être de la forme abstract. suivi d'un identificateur d'élément abstrait. Le type n'est pas indiqué et est celui de l'élément abstrait ainsi que défini dans la description abstraite.
6. 3 Computed functions of connection with the abstract description
The header of a computed function can be of abstract form. followed by an abstract element identifier. The type is not specified and is that of the abstract element as defined in the abstract description.

Plus généralement, les règles de correspondance entre une description de transfert et une description abstraite (de type d'objet ou de message) font l'objet du chapitre 9.  More generally, the rules of correspondence between a description of transfer and an abstract description (of type of object or message) are the subject of chapter 9.

6. 4 Références au contexte
Une formule peut invoquer des valeurs d'élément de contexte.
6. 4 References to the context
A formula can invoke context element values.

7 Description séparée d'action
Une action peut être décrite en dehors de la description du type d'objet sur laquelle elle porte. La description d'action est alors précédée d'un en-tête composé du mot clé 'on' suivi du nom de type d'objet sue lequel porte l'action.
7 Separate action description
An action can be described outside the description of the type of object to which it relates. The action description is then preceded by a header consisting of the 'on' keyword followed by the object type name on which the action is carried.

L'indication du type d'objet peut être omise dans le cas d'une description séparée d'action en suivant une autre s'appliquant au même type.  The indication of the type of object may be omitted in the case of a separate description of action by following another applying to the same type.

8 Description séparée de transfert
Une description de transfert peut être séparée de la description abstraite à laquelle elle correspond. Dans ce cas le nom de la structure de transfert est obligatoire.
8 Separate transfer description
A transfer description can be separated from the abstract description to which it corresponds. In this case the name of the transfer structure is mandatory.

<Desc/Clms Page number 63> <Desc / Clms Page number 63>

9 Règles de correspondance
La correspondance entre une description abstraite et une description de transfert est basée sur la correspondance entre des noms de composants abstraits et des noms de label, plus des formules de représentation.
9 Correspondence rules
The correspondence between an abstract description and a transfer description is based on the correspondence between abstract component names and label names, plus representation formulas.

10 Noms et scopes
Le nom complet d'une action ou d'un type d'objet est composé d'un descriptif ou scope et d'un nom dans ce scope. L'écriture complète est alors le scope suivi d'un point suivi du nom dans le scope.
10 Names and scopes
The full name of an action or object type consists of a description or scope and a name in that scope. The complete writing is then the scope followed by a point followed by the name in the scope.

L'en-tête du module permet de donner un scope par défaut. On peut alors utiliser le nom local seul (non précédé du scope), le scope étant alors le scope par défaut.  The header of the module allows to give a scope by default. We can then use the local name alone (not preceded by the scope), the scope being the scope by default.

Les noms du scope et de l'objet sont sensés être liés à la nature de l'objet.  The names of scope and object are supposed to be related to the nature of the object.

Un nom (d'objet, d'action ou de scope) est composé de caractères libres, avec les exceptions nécessaires pour des raisons syntaxiques. Lors de la comparaison entre deux noms, les chaînes consécutives d'espace, tabulation et fin de ligne sont considérées comme équivalentes à un seul espace, sauf au début et à la fin, où elles sont considérées comme équivalentes à la chaîne vide ; la casse n'est pas prise en compte (ni la couleur ou autres attributs de même farine). En d'autres termes, dans la comparaison de chaînes de caractères, les attributs de formatage (majuscule/minuscule/autre, c'est-à-dire la casse en terme de typographie ; italique/gras/autre, ...), ou de présentation (couleur, fonte, ...) n'interviennent pas dans la comparaison.  A name (object, action or scope) is composed of free characters, with the necessary exceptions for syntactical reasons. When comparing two names, the consecutive strings of space, tab, and end of line are considered equivalent to a single space, except at the beginning and at the end, where they are considered equivalent to the empty string; the case is not taken into account (neither the color or other attributes of the same flour). In other words, in the comparison of character strings, the formatting attributes (upper / lower case / other, that is to say, the case in terms of typography, italic / bold / other, ...), or presentation (color, font, ...) do not interfere in the comparison.

<Desc/Clms Page number 64> <Desc / Clms Page number 64>

ANNEXE 5
Exemple de langage de description formelle.
ANNEX 5
Example of a formal description language.

1 Spécification d'un langage de description formelle
Cette annexe décrit un exemple de langage de description formelle selon l'annexe 4.
1 Specification of a formal description language
This annex describes an example of a formal description language according to Annex 4.

2 Classes d'objet
La notion de classe d'objet est commune à de nombreux langages de programmation ou de spécification, sous des noms différents comme "classe" ou "type". En toute généralité, une classe est un ensemble d'objets, ceux-ci étant décrits à partir de caractéristiques communes à tous ces objets. Dans le cadre des protocoles, les caractéristiques partagées importantes sont les représentations (comment transmettre l'information permettant de désigner un objet particulier au sein de la classe), la sémantique externe (comment les objets se rattachent à une réalité extérieure), et les opérations (traitements informatiques pouvant impliquer les objets).
2 Object Classes
The notion of object class is common to many programming or specification languages, under different names like "class" or "type". In general, a class is a set of objects, these being described from characteristics common to all these objects. Within the framework of the protocols, the important shared characteristics are the representations (how to transmit the information making it possible to designate a particular object within the class), the external semantics (how the objects are related to an external reality), and the operations (computer treatments that may involve objects).

La description d'une classe inclut en premier lieu la spécification d'un ensemble minimal de caractéristiques permettant de distinguer tout objet de la classe. Selon le langage décrit ici, cela correspond à une description abstraite de la classe. Cette description se présente comme une liste d'attributs, chaque attribut étant lui-même un objet. La description comprend, en général, des indications informelles (i.e., non utilisables par les traitements, mais destinées aux humains), comme les noms des attributs ou des commentaires.  The description of a class includes, first, the specification of a minimum set of features to distinguish any object from the class. According to the language described here, this corresponds to an abstract description of the class. This description is presented as a list of attributes, each attribute being itself an object. The description includes, in general, informal indications (ie, not usable by the treatments, but intended for humans), such as attribute names or comments.

Des descriptions CSN. 1 permettent de spécifier des représentations par des chaînes binaires ou de caractères, ainsi que les règles implicites ou explicites permettant de mettre en relation une représentation et un élément de la classe selon la description abstraite.  CSN descriptions. 1 allow to specify representations by binary strings or characters, as well as implicit or explicit rules allowing to relate a representation and an element of the class according to the abstract description.

Finalement, des traitements spécifiques aux objets de la classe peuvent être  Finally, class-specific treatments can be

<Desc/Clms Page number 65><Desc / Clms Page number 65>

inclus directement dans la description de la classe (méthodes). Le corps d'une méthode (la description détaillée du traitement) est décrit en C++ modifié, les modifications permettant le couplage avec la description abstraite.  included directly in the class description (methods). The body of a method (the detailed description of the processing) is described in modified C ++, the modifications allowing the coupling with the abstract description.

La description d'une classe comprend à la base : - un identificateur Ceci est une référence formelle non ambiguë à la classe, sous forme d'une chaîne de caractères; - aucune ou une description abstraite ; - aucune, une ou plusieurs représentations ; et - aucune, une ou plusieurs méthodes.  The description of a class includes at the base: - an identifier This is a formal unambiguous reference to the class, in the form of a string of characters; - no or an abstract description; - none, one or more representations; and - none, one or more methods.

Des informations formelles supplémentaires peuvent être fournies. Ceci est visible dans la description détaillée de la syntaxe.  Additional formal information may be provided. This is visible in the detailed description of the syntax.

Par souci de modularité, la syntaxe du langage permet de dériver une classe d'une autre, ainsi que de décrire des classes paramétrées, une manière de décrire en une seule fois plusieurs classes dont les différences peuvent être capturées par un petit nombre de paramètres formels.  For the sake of modularity, the syntax of the language makes it possible to derive one class from another, as well as to describe parameterized classes, a way of describing at one time several classes whose differences can be captured by a small number of formal parameters. .

2. 1 Syntaxe La syntaxe est la suivante: classdecl ::= "class" id "{"classdesc "}" ";" # "class" id ":" "public" idlist "{" classdesc "}" ";"
Le deuxième cas permet de définir une classe à partir d'une ou plusieurs autres (dérivation de classe). idlist ::= id id ", " idlist
2. 1 Syntax The syntax is: classdecl :: = "class" id "{" classdesc "}"";"#"class" id ":""public" idlist "{" classdesc "}"";"
The second case makes it possible to define a class from one or more others (class derivation). idlist :: = id id "," idlist

<Desc/Clms Page number 66><Desc / Clms Page number 66>

classdesc ::= aspectlist aspectlist ::= aspect # aspectlist aspect aspect ::= "abstract" ":" abstractdesc "transfer" " :" transferdesc# "parameters" " :" abstractdesc # "settings" " :" settingsdesc "method" " :" methoddesc "action" " :" methoddesc
Les chaînes d'identification acceptables sont décrites dans la section générale sur les identificateurs.
classdesc :: = aspectlist aspectlist :: = aspect # aspectlist appearance aspect :: = "abstract"":" abstractdesc "transfer"":" transferdesc # "parameters"":" abstractdesc # "settings"":" settingsdesc "method"":" methoddesc "action"":" methoddesc
Acceptable identification strings are described in the general section on identifiers.

L'ordre d'apparition des entrées dans la liste n'a pas d'importance sauf mention contraire, et il peut y avoir plusieurs entrées de même nature.  The order of appearance of the entries in the list does not matter unless otherwise stated, and there may be several entries of the same nature.

S'il y a plusieurs entrées donnant une description abstraite, la description abstraite de la classe est la concaténation, dans l'ordre d'apparition, des différentes listes d'attributs.  If there are several entries giving an abstract description, the abstract description of the class is the concatenation, in the order of appearance, of the different lists of attributes.

Le même principe s'applique aux paramètres.  The same principle applies to the parameters.

2. 2 Dérivation de classe
Une forme simple de modularité consiste à décrire une classe comme l'extension d'une ou plusieurs classes préalablement décrites. Ce qui est étendu est limité à la description abstraite et aux traitements.
2. 2 Class Derivation
A simple form of modularity consists of describing a class as the extension of one or more previously described classes. What is extended is limited to abstract description and treatments.

Les représentations ne peuvent pas être étendues.  The representations can not be extended.

<Desc/Clms Page number 67> <Desc / Clms Page number 67>

La syntaxe permettant de décrire une classe par dérivation est la syntaxe normale à l'exception de l'en-tête qui mentionne alors la ou les classes dont la nouvelle est dérivée.  The syntax for describing a class by derivation is the normal syntax except for the header which then mentions the class or classes whose new is derived.

La notion de dérivation de classe n'est qu'un raccourci textuel. La classe ainsi décrite est celle correspondant à la description obtenue en incluant tous les aspects des classes parentes entre l'en-tête et la première entrée.  The notion of class derivation is only a textual shortcut. The class thus described is that corresponding to the description obtained by including all the aspects of the parent classes between the header and the first entry.

2. 3 Classes paramétrées
Il arrive que plusieurs classes partagent la plupart de leurs caractéristiques, et que les différences peuvent être décrites par un nombre limité de paramètres de nature élémentaire, comme des booléens ou des entiers. Par exemple les listes d'entiers, finies ,ordonnées et de taille fixe peuvent être décrites comme une seule méta-classe ne différant que par un seul paramètre entier, la taille de la liste.
2. 3 Parameter classes
It happens that many classes share most of their characteristics, and that differences can be described by a limited number of parameters of elementary nature, such as Booleans or integers. For example, the lists of integers, finite, ordered and of fixed size can be described as a single meta-class differing only by a single parameter integer, the size of the list.

2. 3.1 Description d'une méta-classe
La liste des paramètres est introduite par le mot-clé parameters , et suit la même syntaxe qu'une liste d'attributs.
2. 3.1 Description of a meta-class
The list of parameters is introduced by the parameters keyword, and follows the same syntax as a list of attributes.

Les paramètres peuvent (et doivent) apparaître dans le reste de la description de la classe, en toute place où une constante nommée peut apparaître.  The parameters can (and should) appear in the rest of the class description, in any place where a named constant can appear.

2. 3.2 Invocation d'une classe paramétrée
Le nom d'une classe paramétrée ne peut être utilisé qu'accompagné d'un jeu de valeurs des paramètres. La syntaxe est décrite plus loin.
2. 3.2 Invoking a parameterized class
The name of a parameterized class can only be used with a set of parameter values. The syntax is described later.

3 Description abstraite
La description d'une structure de donnée fait partie de nombreux langages de programmations, de programmes de gestion de base de données ou de spécifications de protocoles. Selon l'état de l'art, la description mélange des aspects abstraits (ce qui est spécifique à la structure indépendamment de toute représentation) et des aspects concrets (représentations, que ce soit pour la transmission ou la mémorisation).
3 Abstract description
The description of a data structure is part of many programming languages, database management programs or protocol specifications. According to the state of the art, the description mixes abstract aspects (which is specific to the structure independently of any representation) and concrete aspects (representations, whether for transmission or memorization).

Dans le langage de description formelle selon l'invention, ici décrit, les  In the formal description language according to the invention, here described, the

<Desc/Clms Page number 68><Desc / Clms Page number 68>

deux aspects sont gardés aussi séparés que possible, et des syntaxes distinctes sont utilisées pour les descriptions abstraites et les représentations. La syntaxe de description contient des adaptations aux problèmes spécifiques de la spécification des protocoles.  two aspects are kept as separate as possible, and separate syntaxes are used for abstract descriptions and representations. The description syntax contains adaptations to the specific problems of protocol specification.

Une structure abstraite est décrite de manière arborescente. A chaque noeud (qui correspond à un composant) non terminal, est associée une liste de descriptions de noeud. A un noeud terminal, ou feuille, est associé une classe élémentaire.  An abstract structure is described in a tree-like manner. Each non-terminal node (which corresponds to a component) is associated with a list of node descriptions. At a terminal node, or leaf, is associated an elementary class.

Chaque description de noeud comprend un identificateur, qui permet d'y référer. Cet identificateur est usuellement choisi de manière à donner aux lecteurs humains une idée de la sémantique réelle de l'attribut.  Each node description includes an identifier, which makes it possible to refer to it. This identifier is usually chosen to give human readers an idea of the actual semantics of the attribute.

Il arrive que la liste contient des noeuds de même structure, et dont les identificateurs ne se distinguent que par un nombre (notion de tableau, de liste, de collection). Cela amène à l'idée de multiplicité, i.e., les valeurs possibles du nombre de noeuds dans un tel groupe.  It happens that the list contains nodes of the same structure, and whose identifiers are distinguished only by a number (notion of table, list, collection). This leads to the idea of multiplicity, i.e., the possible values of the number of nodes in such a group.

Ainsi, une liste de noeuds est décrite comme une liste de triplets, un triplet comprenant : un identificateur; - la multiplicité ; et - une description abstraite de structure.  Thus, a list of nodes is described as a list of triplets, a triplet comprising: an identifier; - the multiplicity ; and - an abstract description of structure.

La description abstraite peut être explicite, soit une référence à une structure nommée par ailleurs, soit une description de classe élémentaire.  The abstract description can be explicit, either a reference to a structure named elsewhere, or a basic class description.

La syntaxe permet d'ajouter à un noeud des informations supplémentaires, par exemple une valeur dite par défaut, dont l'application est décrite plus loin.  The syntax makes it possible to add to a node additional information, for example a so-called default value, the application of which is described below.

3. 1 Syntaxe
Une description abstraite de structure est une séquence de description de noeuds : abstractdesc ::=
3. 1 Syntax
An abstract structure description is a node description sequence: abstractdesc :: =

<Desc/Clms Page number 69><Desc / Clms Page number 69>

complist complist ::= compdesc ";" # complist compdesc
Chaque noeud est décrit par un triplet identificateur/multiplicité/description : compdesc ::= id "[" multipliplicitydesc "] " ":" typeanddef id ":" typedesc choiceconstruct
La première syntaxe est la fondamentale, les autres pouvant s'y ramener par réécriture formelle.
complist complist :: = compdesc ";"# complist compdesc
Each node is described by a triplet identifier / multiplicity / description: compdesc :: = id "[" multipliplicitydesc "]"":" typeanddef id ":" typedesc choiceconstruct
The first syntax is the fundamental, the others can be reduced by formal rewriting.

Dans le second cas, la multiplicité est implicitement 1..1. La construction "choice" est une notation abrégée pour le cas d'une présence exclusive d'un noeud parmi une liste.  In the second case, the multiplicity is implicitly 1..1. The "choice" construct is an abbreviated notation for the case of an exclusive presence of a node among a list.

3. 2 Multiplicité
La multiplicité d'un noeud est le nombre de noeuds dans une structure abstraite partageant les mêmes identificateur et structure, la distinction étant faite par un numéro d'ordre. Ce nombre est souvent dynamique, i.e., varie d'une instance à une autre : qui doit être décrit est donc l'ensemble des valeurs acceptables pour ce nombre. La multiplicité est donc un sous-ensemble des entiers positifs ou nuls.
3. 2 Multiplicity
The multiplicity of a node is the number of nodes in an abstract structure sharing the same identifier and structure, the distinction being made by a serial number. This number is often dynamic, ie, varies from one instance to another: which must be described is the set of acceptable values for this number. Multiplicity is therefore a subset of positive or zero integers.

L'ensemble acceptable peut être lui-même dynamique, dépendant de la valeur d'autres attributs (présence conditionnelle). Le langage permet une description en détail de ces cas.  The acceptable set may itself be dynamic, depending on the value of other attributes (conditional presence). The language allows a detailed description of these cases.

<Desc/Clms Page number 70> <Desc / Clms Page number 70>

Un cas classique de présence conditionnelle est celui où l'ensemble total des nombres est 0..1.  A classic case of conditional presence is where the total set of numbers is 0..1.

Une syntaxe simplifiée permet de décrire de tels cas comme une expression booléenne.  A simplified syntax can describe such cases as a Boolean expression.

La syntaxe est la suivante : multiplicitydesc ::= integerset ~~~ condset
Le premier cas correspond aux multiplicités libres, i.e., non conditionnelles; les deux autres à des présences conditionnelles.
The syntax is: multiplicitydesc :: = integerset ~~~ condset
The first case corresponds to free multiplicities, ie, unconditional; the other two to conditional presences.

Pour la multiplicité libre, la syntaxe est la suivante : integerset ::= integersetelem ", " integerset integersetelem ::= expression # interval interval ::= expression ".." expression expression ".." "infinité"
Les expressions integersetelem et interval doivent retourner une valeur entière positive ou nulle.
For free multiplicity, the syntax is as follows: integerset :: = integersetelem "," integerset integersetelem :: = expression # interval interval :: = expression ".." expression expression "..""infinity"
The integer and interval expressions must return a positive integer value or null value.

La deuxième expression interval doit retourner une valeur supérieure ou égale à celle de la première.  The second interval expression must return a value greater than or equal to the value of the first one.

<Desc/Clms Page number 71> <Desc / Clms Page number 71>

Pour une multiplicité conditionnelle, la syntaxe est la suivante : condset ::= integerset "#" expression # expression
L'ensemble d'entiers doit inclure les multiplicités possibles. Cette information est redondante puisqu'elle peut se dériver de l'expression qui suit ; présence obligatoire améliore la compréhension et simplifie la compilation.
For a conditional multiplicity, the syntax is as follows: condset :: = integerset "#" expression # expression
The set of integers must include the possible multiplicities. This information is redundant since it can be derived from the following expression; Mandatory presence improves understanding and simplifies compilation.

L'expression conddesc doit retourner soit un ensemble d'entiers, soit un entier, soit un booléen.  The expression conddesc must return either a set of integers, an integer, or a boolean.

Par convention un entier seul est assimilé à l'ensemble réduit à sa seule valeur. Un booléen est traduit comme suit: la valeur "vrai" correspond à l'ensemble 1..1, la valeur fausse à l'ensemble 0..0.  By convention an integer alone is assimilated to the set reduced to its single value. A boolean is translated as follows: the value "true" corresponds to the set 1..1, the value false to the set 0..0.

3. 2.1 La construction CHOICE
Cette syntaxe permet de simplifier l'écriture des cases où la présence de plusieurs noeuds est exclusive (au plus un d'entre eux peut être présent), et dépend dynamiquement de la valeur d'un noeud terminal, appelé le discriminant.
3. 2.1 The CHOICE construction
This syntax makes it possible to simplify the writing of the boxes where the presence of several nodes is exclusive (at most one of them can be present), and dynamically depends on the value of a terminal node, called the discriminant.

Par exemple, la liste suivante:

Figure img00710001

discri: 0..2; ell [0..1 I discri=0]: typl; el4 [0..1 I discri=2]: typ4; el2 [0..1 I discri=1]: typ2; el3 [0..1 I discri=2]: typ3; peut s'écrire alternativement CHOICE discri:0..2 { 0 { eU : typl; 1 : e12 : typ2;} 2 : { el3 : typ3; For example, the following list:
Figure img00710001

discri: 0..2; ell [0..1 I discri = 0]: typl; el4 [0..1 I discri = 2]: typ4; el2 [0..1 I discri = 1]: typ2; el3 [0..1 I discri = 2]: typ3; can be written alternately CHOICE discri: 0..2 {0 {eU: typl; 1: e12: typ2;} 2: {el3: typ3;

<Desc/Clms Page number 72><Desc / Clms Page number 72>

el4 : typ4;} La syntaxe est la suivante: choiceconstruct ::= "CHOICE" id " :" typedesc"{" branchlist "}" branchlist ::= branchdesc ";" # branchlist branchdesc ";" branchdesc ::= expr " :" "{"complist"}"
Si la description d'un noeud dans une branche inclut une multiplicité explicite, la multiplicité effective est 0 si le discriminant n'a pas la valeur adéquate, et la multiplicité indiquée sinon.
el4: typ4;} The syntax is: choiceconstruct :: = "CHOICE" id ":" typedesc "{" branchlist "}" branchlist :: = branchdesc ";"# branchlist branchdesc ";" branchdesc :: = expr ":""{" complist "}"
If the description of a node in a branch includes an explicit multiplicity, the effective multiplicity is 0 if the discriminant does not have the correct value, and the multiplicity otherwise indicated.

Incompatibilité des identificateurs.  Incompatibility of identifiers.

L'équivalence est exacte. En particulier, ni la construction elle-même, ni une branche n'est une structure nommée; les listes de noeuds sont au même niveau hiérarchique, celui du point où apparaît le mot clé CHOICE. Par conséquence, il n'est pas autorisé d'avoir le même identificateur pour un noeud dans une branche et pour un noeud apparaissant au même niveau que le CHOICE.  Equivalence is accurate. In particular, neither the construction itself nor a branch is a named structure; the lists of nodes are at the same hierarchical level, that of the point where appears the key word CHOICE. Therefore, it is not allowed to have the same identifier for a node in a branch and for a node appearing at the same level as the CHOICE.

Par contre, il est autorisé que le même nom de noeud apparaisse dans deux ou plus branches d'un même CHOICE: cela correspond alors à un même et unique noeud, la structure abstraite devant être la même. La multiplicité peut être différente.  On the other hand, it is allowed that the same node name appears in two or more branches of the same CHOICE: this corresponds to the same and unique node, the abstract structure must be the same. The multiplicity can be different.

<Desc/Clms Page number 73> <Desc / Clms Page number 73>

4 Description de structure de noeud 4. 1 Descriptions de type. 4 Node structure description 4. 1 Type descriptions.

Les différentes possibilités sont résumées par la syntaxe suivante: typedesc ::= "{"complist "}" # id I leafdesc # id "(" exprlist ")" # "*" typedesc
La première possibilité est une description abstraite de syntaxe, parenthésée.
The different possibilities are summarized by the following syntax: typedesc :: = "{" complist "}"# id I leafdesc # id "(" exprlist ")"#"*" typedesc
The first possibility is an abstract description of syntax, parenthesized.

La seconde possibilité est une référence à une classe pré-définie, décrite par son identificateur.  The second possibility is a reference to a pre-defined class, described by its identifier.

La troisième possibilité est une description de classe élémentaire, prédéfinie par le langage. Les syntaxes possibles et leurs significations sont décrites plus loin.  The third possibility is a basic class description, predefined by language. The possible syntaxes and their meanings are described later.

La quatrième possibilité est une référence à une classe paramétrée, constituée de l'identificateur et d'une liste de paramètres effectifs.  The fourth possibility is a reference to a parameterized class consisting of the identifier and a list of actual parameters.

La cinquième possibilité est une référence à une classe pré-définie, comme dans le premier cas.  The fifth possibility is a reference to a pre-defined class, as in the first case.

L'étoile indique une différence de réalisation, précisément qu'il s'agit d'une instance partagée avec d'autres structures. (En terme pratique, cela indique une implémentation par référence dynamique (pointeur) plutôt que par valeur explicite).  The star indicates a difference of achievement, precisely that it is a shared instance with other structures. (In practical terms, this indicates an implementation by dynamic reference (pointer) rather than by explicit value).

Les classes élémentaires acceptées comprennent les classes suivantes: - énuméré strict ; - booléen; caractère; - cardinal fini (entier naturel positif ou nul);  Accepted elementary classes include the following classes: - strict enumerated; - boolean; character; - finite cardinal (positive or zero natural integer);

<Desc/Clms Page number 74><Desc / Clms Page number 74>

dénombrable (entier étendu de la valeur infinie) ; - différences (entier signé); indéfini ou "void".  countable (extended integer of the infinite value); - differences (signed integer); undefined or "void".

Les syntaxes sont: leafdesc ::= enumdesc # integerdesc # chardesc # "boolean" # "void"
Chaque cas est décrit séparément ci-après.
The syntaxes are: leafdesc :: = enumdesc # integerdesc # chardesc # "boolean"#"void"
Each case is described separately below.

4. 1.1 Référence avec paramètres
La liste des expressions qui suit l'identificateur doit correspondre en nombre et en type à la liste des paramètres définis pour la classe.
4. 1.1 Reference with parameters
The expression list following the identifier must match the number and type to the list of parameters defined for the class.

4. 1.2 Enuméré strict
Il s'agit d'un type fini (i.e., les valeurs possibles pour une instance de la classe sont en nombre fini). La liste des valeurs est donnée explicitement et complètement par une liste d'identificateurs.
4. 1.2 Strictly enumerated
This is a finite type (ie, the possible values for an instance of the class are finite). The list of values is given explicitly and completely by a list of identifiers.

Cette liste est abstraite, i.e., n'inclut aucune autre signification que le fait que deux identificateurs distincts correspondent à deux valeurs distinctes, ce qui guide l'implémentation du test à l'égalité de valeur de deux instances.  This list is abstract, i.e., includes no other meaning than the fact that two distinct identifiers correspond to two distinct values, which guides the implementation of the test to the equality of value of two instances.

La sémantique formelle est limitée à ce test. La sémantique externe est en général indiquée pour les humains par le choix des identificateurs.  Formal semantics is limited to this test. External semantics is generally indicated for humans by the choice of identifiers.

La syntaxe stipule par nécessité un ordre, mais celui n'a pas de signification formelle.  Syntax stipulates by necessity an order, but that has no formal meaning.

La syntaxe est la suivante :  The syntax is as follows:

<Desc/Clms Page number 75><Desc / Clms Page number 75>

enumdesc ::= "enumerated" "(" valuelist ")" # "enumerated" id "(" valuelist ")" valuelist ::= value # valuelist ", " value value ::= id "=" number 1 id
L'identificateur qui peut apparaître entre enumerated et le caractère ( est une notation abrégée pour déclarer et invoquer la classe simultanément.
enumdesc :: = "enumerated""(" valuelist ")"#"enumerated" id "(" valuelist ")" valuelist :: value = valuelist # "value value :: = id" = "number 1 id
The identifier that can appear between enumerated and the character (is an abbreviated notation to declare and invoke the class simultaneously.

4. 1.3 Cardinaux finis
Cela correspond au concept mathématique d'entiers positifs ou nuls, et a la sémantique formelle correspondante. La sémantique externe normal de cette classe est le décompte de choses, et l'usage de cette classe devrait en toute rigueur être limitée à de tels cas.
4. 1.3 Finished Cardinals
This corresponds to the mathematical concept of positive integers or nulls, and has the corresponding formal semantics. The normal external semantics of this class is the count of things, and the use of this class should in all cases be limited to such cases.

La sémantique formelle inclut, entre autres, les tests de comparaison et d'égalité, ainsi que les opérations arithmétiques usuelles.  Formal semantics includes, among others, comparison and equality tests, as well as usual arithmetic operations.

Un cas évident d'usage légitime est le décompte du nombre de copies d'un noeud indexé. Ainsi, une multiplicité effective est un décompte, et une description de multiplicité est un sous-ensemble des entiers positifs ou nul.  An obvious case of legitimate use is counting the number of copies of an indexed node. Thus, an effective multiplicity is a count, and a description of multiplicity is a subset of positive or zero integers.

La syntaxe est incluse dans la description des cardinaux dénombrables.  The syntax is included in the description of Countable Cardinals.

4. 1.4 Différences
Il s'agit des entiers négatifs, positifs ou nul.
4. 1.4 Differences
These are negative integers, positive or zero.

<Desc/Clms Page number 76> <Desc / Clms Page number 76>

La syntaxe est incluse dans la description du cas suivant.  The syntax is included in the description of the following case.

4. 1.5 Cardinaux dénombrables
Il s'agit de l'ensemble des entiers positifs ou nul, étendu d'une valeur spéciale, l'infini. Cette classe est très utile en pratique, par exemple pour une borne supérieure.
4. 1.5 Countable Cardinals
This is the set of positive or null integers, extended by a special value, the infinite. This class is very useful in practice, for example for an upper bound.

Les entiers, étendus ou non, sont rarement utilisés avec l'intervalle complet des valeurs. La syntaxe permet de décrire des classes dérivées, limitées à un sous- ensemble fini des valeurs.  Integers, extended or not, are rarely used with the full range of values. The syntax makes it possible to describe derived classes, limited to a finite subset of the values.

La syntaxe est la suivante : integerdesc ::= "integer" # "integer" "(" integerset ")"
Le premier cas correspond aux entiers positifs ou nuls (cardinaux finis). integerset ::= integersetelem ", " integerset integersetelem ::= expression # interval interval ::= expression ".." expression # expression ".." "infinité"
Aucun élément de syntaxe permet d'étendre les entiers négatifs vers-infini
The syntax is as follows: integerdesc :: = "integer"#"integer""(" integerset ")"
The first case corresponds to positive integers or nulls (finite cardinals). integerset :: = integersetelem "," integerset integersetelem :: = expression # interval interval :: = expression ".." expression # expression "..""infinity"
No syntax element to extend negative integers to infinity

<Desc/Clms Page number 77> <Desc / Clms Page number 77>

Voici, quelques exemples dans le contexte de la norme UMTS : - "TGPRC" : Integer(1..511, infinité); (Le nombre d'intervalles non alloués à la transmission (ou transmission gap pattern en anglais) parmi la séquence de d'intervalle de temps non alloués à la transmission (ou Transmission Gap Pattern Séquence en anglais). Here are some examples in the context of the UMTS standard: - "TGPRC": Integer (1..511, infinity); (The number of unallocated transmission slots (or transmission gap patterns in English) among the sequence of time slots not allocated to transmission (or Transmission Gap Pattern Sequence).

- "TGSN" : Integer (0..14); (le numéro d'intervalle de temps élémentaire de la première période non allouée à la transmission (en anglais slot numbcr of the first transmission gap slot ) dans le TGCFN.  - "TGSN": Integer (0..14); (The elementary slot number of the first non-allocated slot slot in the TGCFN.

- "TGL1" : Integer (1..14); (la longueur de la période non allouée à la transmission dans le motif des creux de transmission exprimé en nombre d'intervalles de temps élémentaires.  - "TGL1": Integer (1..14); (The length of the period not allocated to the transmission in the pattern of the transmission gaps expressed in number of elementary time intervals.

Dans ces exemples, les commentaires ont été gardés pour montrer qu'il s'agit bien de décompter une valeur.  In these examples, the comments have been kept to show that it is a question of counting a value.

4. 1.6 Booléen
C'est un énuméré strict particulier, qui intervient comme résultat des opérations booléennes. Le langage de description formelle suit la convention la plus usuelle soit le couple (faux, vrai) ou (false, true), avec comme sémantique (formelle et réelle) que "true" est le résultat du test 1 = 1 .
4. 1.6 Boolean
This is a particular strict enumeration that occurs as a result of Boolean operations. The formal description language follows the most usual convention of the pair (false, true) or (false, true), with semantics (formal and real) that "true" is the result of the test 1 = 1.

La classe boolean est donc prédéfinie comme : enumerated (false, true).  The boolean class is thus predefined as: enumerated (false, true).

4. 1.7 Type indéfini ou void Void indique un type général, non défini. 4. 1.7 Undefined type or void Void indicates a general, undefined type.

5 Représentations
Une représentation capture tous les attributs d'un objet sous forme d'une chaîne de symboles binaires ou caractères.
5 Representations
A representation captures all the attributes of an object as a string of binary symbols or characters.

Les représentations sont décrites en CSN.l.  The representations are described in CSN.l.

<Desc/Clms Page number 78> <Desc / Clms Page number 78>

6 Règles de correspondance
Les règles de correspondance permettent de mettre en relation une description abstraite et une représentation.
6 Correspondence rules
Matching rules allow you to relate an abstract description to a representation.

Dans le langage de description formelle, la correspondance est définie à partir de fonctions. Une fonction prend comme paramètre un objet et renvoie une valeur. Vu ainsi, une fonction a un nom et un type de résultat.  In the formal description language, correspondence is defined from functions. A function takes an object as a parameter and returns a value. Viewed thus, a function has a name and a type of result.

La description abstraite de la classe de l'objet permet de construire une liste de fonctions comme suit. A chaque noeud terminal correspond une liste de fonctions, la première renvoie un décompte, la multiplicité effective du noeud, c'est-à-dire le nombre de copies du noeud. Ensuite, pour chaque entier i (par convention positif ou nul, i. e. 0 est inclus), une fonction renvoie la valeur du ième éléments.  The abstract description of the class of the object makes it possible to construct a list of functions as follows. Each terminal node has a list of functions, the first returns a count, the effective multiplicity of the node, that is to say the number of copies of the node. Then, for each integer i (by positive or zero convention, i, e 0 is included), a function returns the value of the ith elements.

Le type renvoyé par ces dernières fonctions est celui associé au noeud.  The type returned by these functions is the one associated with the node.

Pour les besoins de cette spécification, les notations suivantes sont introduites (l'usage formel des noms de fonction est développé au sein des adaptations du langage C++).  For the purposes of this specification, the following notations are introduced (the formal use of function names is developed within the C ++ language adaptations).

- "id .size()" est l'attribut renvoyant le nombre effectif de noeuds de id .  - "id .size ()" is the attribute that returns the actual number of id nodes.

- "id" retourne la valeur du noeud dans le cas où la multiplicité est implicitement 1..1.  - "id" returns the value of the node in case the multiplicity is implicitly 1..1.

- "id [i]", où i est un entier naturel retourne la valeur de la (i+1)ème copie.  - "id [i]", where i is a natural integer returns the value of the (i + 1) th copy.

Quand un noeud n'est pas terminal, la notation avec point permet de construire récursivement toutes les fonctions.  When a node is not terminal, the dot notation recursively builds all the functions.

6. 1 Fonctions définies pour une représentation
Les labels d'une description CSN.l déterminent une liste de fonctions, chacune renvoyant soit 'non instancié' soir une chaîne de symboles.
6. 1 Functions defined for a representation
The labels of a CSN.l description determine a list of functions, each returning either a non-instantiated string of symbols.

Pour chaque fonction définie à partir de la description abstraite, une représentation doit fournir une fonction correspondante. La correspondance est basée sur l'identité des noms, ainsi que, pour les fonctions correspondant aux noeuds terminaux, sur l'existence d'une règle de transcodage permettant de passer  For each function defined from the abstract description, a representation must provide a corresponding function. The correspondence is based on the identity of the names, as well as, for the functions corresponding to the terminal nodes, on the existence of a transcoding rule allowing to pass

<Desc/Clms Page number 79><Desc / Clms Page number 79>

d'une chaîne de symboles à la valeur abstraite.  from a string of symbols to the abstract value.

Par exception, l'existence d'une valeur par défaut permet d'accepter un renvoi 'non instancié' pour un noeud. (La valeur est alors la valeur par défaut.)
Le transcodage pour un noeud terminal est obtenu soit par application de règles par défaut, soit par la spécification dans la description de transfert d'une fonction de transcodage.
By exception, the existence of a default value makes it possible to accept a 'non-instantiated' return for a node. (The value is then the default value.)
Transcoding for a terminal node is obtained either by applying default rules, or by specifying in the transfer description of a transcoding function.

6. 2 Règles par défaut 6. 2.1 Enumérés
Si des valeurs numériques d'encodage sont spécifiées dans la description abstraite, le décodage est celui d'un entier comme spécifié dans la section suivante, suivi du transcodage dérivé de la description abstraite.
6. 2 Default rules 6. 2.1 Listed
If numeric encoding values are specified in the abstract description, the decoding is that of an integer as specified in the following section, followed by the transcoding derived from the abstract description.

Si aucune valeur d'encodage n'est donnée, le décodage par défaut est le décodage d'un entier suivi par le transcodage appliquant à i la (i+1)ème valeur de la liste défini dans la description du type abstrait.  If no encoding value is given, the default decoding is the decoding of an integer followed by the transcoding applying to i the (i + 1) th value of the list defined in the description of the abstract type.

6. 2.2 Entiers
Ces règles ne s'appliquent qu'aux cas où la description abstraite est celle d'un entier non étendu.
6. 2.2 Integers
These rules only apply in cases where the abstract description is an unexpanded integer.

6. 2.3 Symboles binaires
Si la borne inférieure de l'ensemble d'entiers est positive ou nulle, le décodage est celui de la numérotation binaire, le premier bit de la chaîne étant le bit de poids fort. Le décodage est complet (toute chaîne est acceptable), mais non bijectif (l'ajout de 0 à l'avant ne change pas la valeur). Typiquement, l'encodage cherchera à limiter au mieux le nombre de 0 à l'avant.
6. 2.3 Binary symbols
If the lower bound of the set of integers is positive or zero, the decoding is that of the binary numbering, the first bit of the string being the most significant bit. Decoding is complete (any string is acceptable), but not bijective (adding 0 to the front does not change the value). Typically, the encoding will try to limit at best the number of 0 in the front.

Si la borne inférieure est strictement négative, le décodage est celui du code par complément à 2, le bit de poids fort étant le premier. Le décodage est complet, mais non bijectif (l'ajout à l'avant d'un bit identique au premier bit ne change pas la valeur).  If the lower bound is strictly negative, the decoding is that of the complement code to 2, the most significant bit being the first. The decoding is complete, but not bijective (the addition to the front of a bit identical to the first bit does not change the value).

<Desc/Clms Page number 80> <Desc / Clms Page number 80>

6. 2.4 Caractères
Le décodage est celui de la numérotation positionnelle usuelle, le premier chiffre étant celui de poids fort. Un caractère de signe ("+" ou "-") peut apparaître optionnellement avant le premier chiffre. Le décodage n'est pas complet : caractère autre que les chiffres de 0 à 9 entraîne une erreur de décodage, ainsi que l'usage d'un caractère de signe ailleurs qu'en position initiale. L'encodage n'est pas bijectif.
6. 2.4 Characters
Decoding is that of the usual positional numbering, the first digit being the most significant one. A sign character ("+" or "-") may appear optionally before the first digit. The decoding is not complete: a character other than the digits from 0 to 9 leads to a decoding error, as well as the use of a sign character elsewhere than in the initial position. The encoding is not bijective.

7 Méthodes et actions
Cette aspect du langage n'est pas directement en rapport avec la spécification de protocole. La syntaxe est indiquée ici pour mémoire.
7 Methods and actions
This aspect of the language is not directly related to the protocol specification. The syntax is indicated here for memory.

Dans le cadre de ce langage, une action est un cas particulier de méthode, et n'est citée ici que pour mémoire.  In the context of this language, an action is a special case of method, and is mentioned here only for the sake of memory.

7. 1 Syntaxe déclarative
Une méthode ou une action est déclarée comme suit: methoddesc ::= "function" id "(" paramdesclist ")" ":" id "{" ccode "}"
7. 1 Declarative syntax
A method or action is declared as follows: methoddesc :: = "function" id "(" paramdesclist ")"":" id "{" ccode "}"

<Desc/Clms Page number 81> <Desc / Clms Page number 81>

ANNEXE 6
Exemple de spécification d'un protocole réel (le protocole GSM de gestion de mobilité entre une station mobile (MS) et une infrastructure de réseau) utilisant le langage selon l'annexe 5.
ANNEX 6
An example of a real protocol specification (the GSM mobility management protocol between a mobile station (MS) and a network infrastructure) using language according to Annex 5.

L'exemple présente dans cette annexe reprend l'exemple précédemment décrit en regard de l'annexe 3, selon le langage illustré dans l'annexe 5.  The example presented in this appendix uses the example previously described with reference to Appendix 3, in the language illustrated in Appendix 5.

1 Contexte de protocole de gestion de mobilité (ou MM). module MM #include "RIL3"
Le module RIL3, non illustré plus en détail, comprend des descriptions de détail invoquées dans la suite par des identificateurs commençant par 'RIL3'. Ces descriptions sont communes avec d'autres protocoles inclus dans la la couche trois radio (RIL3 est une abbréviation de l'anglais Radio Interface Layer 3 ou Couche 3 d'interface radio en français).
1 Mobility Management Protocol Context (or MM). MM module #include "RIL3"
The RIL3 module, not shown in more detail, includes detail descriptions invoked in the following by identifiers starting with 'RIL3'. These descriptions are common with other protocols included in the radio layer three (RIL3 is an abbreviation of the English Radio Interface Layer 3 or Layer 3 radio interface in French).

1.1 Contexte MM 1. 1.1 Description abstraite class "MM context" { abstract : "IMSI" [0..1] : "IMSI" ; "Connect state" : Enumerated ("not connected", "connected") ; "Connection parameters" [0..1 "Connect state" = "connected"] : {
La partie décrivant une présence conditionnelle peut être ignorée. Elle permet d'éviter une perte d'information.
1.1 MM context 1.1 Abstract description class "MM context" {abstract: "IMSI" [0..1]: "IMSI";"Connectstate": Enumerated ("not connected", "connected");"Connectionparameters" [0..1 "Connect state" = "connected"]: {
The part describing a conditional presence can be ignored. It avoids a loss of information.

<Desc/Clms Page number 82> <Desc / Clms Page number 82>

"Serving cell" : * "cell" //-> UE context.Cell list "IMEI" [0..1] : "IMEI" ; "Software Version Number" [0..1 présent ("IMEI")] : Integer (0..99) ; "Mobile Station Classmark 1" : RIL3."Mobile Station Classmark 1" ; "Mobile Station Classmark 2 delta" [0..1] : RIL3."Mobile Station Classmark 2 delta" ; "Mobile Station Classmark 3" [0..1] : RIL3."Mobile Station Classmark 3" ; "Has been authenticated" : Boolean ; "ls ciphered" : Boolean ; "Service data" [O..infinite] : { "CM service type" : Service Type" ; "Priority" : RIL3."Priority Level" ; }; "Location update state" : Enumerated ("roaming not allowed", "updated") ; "Location parameters" [0..1 1 iif("Location update state" = "updated", 1, 0)] : "LAI+TMSI"[0..1] : "LAI+TMSI" ; "Registered location area" : *"Location area" ;//UE context.LA list
Selon une variante, la syntaxe n'indique que le type, alors que le mode de réalisation décrit indique l'ensemble indexé dont fait partie l'objet à pointer.
"Serving cell": * "cell" // -> UE context.Cell list "IMEI" [0..1]: "IMEI";"Software Version Number" [0..1 present ("IMEI")]: Integer (0..99); "Mobile Station Classmark 1": RIL3 "Mobile Station Classmark 1";"Mobile Station Classmark 2 delta" [0..1]: RIL3 "Mobile Station Classmark 2 delta";"Mobile Station Classmark 3" [0..1]: RIL3 "Mobile Station Classmark 3";"Has been authenticated": Boolean; "ls ciphered": Boolean; "Service data" [O..infinite]: {"CM service type": Service Type ";" Priority ": RIL3." Priority Level ";};" Location update state ": Enumerated (" roaming not allowed "," updated ");" Location parameters "[0..1 1 iif (" Location update state "=" updated ", 1, 0)]:" LAI + TMSI "[0..1]:" LAI + TMSI ";"Registered location area": * "Location area"; // UE context.LA list
According to one variant, the syntax only indicates the type, whereas the described embodiment indicates the indexed set to which the object to be pointed belongs.

L'ensemble est laissé ici en commentaire.  The whole is left here in comment.

"Detach flag" : Boolean ; "CTS permission" : Boolean ;
CKSN availability : Boolean ; "CKSN" [0 .1 1 iif(CKSN availability, 1, 0)] : RIL3."Ciphering Key Sequence Number" ; "GSM ciphering key" [0..1] : Bitstring (64) ; "UMTS security data" [0..1] : { "AUTN" : "Authentication Parameter AUTN" ; "UMTS ciphering key" [0..1] : Bitstring (128) ; "UMTS integrity key" [0..1] : Bitstring (128) ;

Figure img00820001

}; Jj~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 1.2 Commandes 1. 1.2.1 DL MM 1.1.2.1.1 Description abstraite
Selon le mode de réalisation décrit, on ne distingue pas les commandes (messages) des objets. Les descriptions qui suivent se présentent comme des classes. "Detach flag": Boolean; "CTS permission": Boolean;
CKSN availability: Boolean; "CKSN" [0 .1 1 iif (CKSN availability, 1, 0)]: RIL3. "Ciphering Key Sequence Number";"GSM ciphering key" [0..1]: Bitstring (64); "UMTS security data" [0..1]: {"AUTN": "Authentication Parameter AUTN";"UMTS ciphering key" [0..1]: Bitstring (128); "UMTS integrity key" [0..1]: Bitstring (128);
Figure img00820001

}; jj ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ 1. 1.2 Commands 1. 1.2.1 DL MM 1.1.2.1.1 Abstract description
According to the embodiment described, it does not distinguish the commands (messages) objects. The following descriptions are presented as classes.

<Desc/Clms Page number 83><Desc / Clms Page number 83>

class "DL MM" : abstract :
CHOICE "message type" : ( "LOCATION UPDATING ACCEPT", "LOCATION UPDATING REJECT", "AUTHENTICATION REJECT", "AUTHENTICATION REQUEST", "TMSI REALLOCATION COMMAND", "CM SERVICE ACCEPT", "CM SERVICE REJECT', "CM SERVICE PROMPT", "IDENTITY REQUEST", "ABORT ", "MM STATUS DOWNLINK", "MM INFORMATION") .,LOCATION UPDATING ACCEPT" : "LOCATION UPDATING ACCEPT" ; "LOCATION UPDATING REJECT" : "LOCATION UPDATING REJECT" ; "AUTHENTICATION REJECT" : "AUTHENTICATION REJECT" ; "AUTHENTICATION REQUEST" : "AUTHENTICATION REQUEST" ; "TMSI REALLOCATION COMMAND" : "TMSI REALLOCATION COMMAND" ; "CM SERVICE ACCEPT" : "CM SERVICE ACCEPT" ; "CM SERVICE REJECT" : "CM SERVICE REJECT" ; "CM SERVICE PROMPT" : "CM SERVICE PROMPT" ; "IDENTITY REQUEST" : "IDENTITY REQUEST" ; "ABORT " : "ABORT " ; "MM STATUS DOWNLINK" : "MM STATUS DOWNLINK" ; "MM INFORMATION" : "MM INFORMATION" ; } 1.1.2.1.2 Syntaxe de transfert transfer : -- flow of downlink MM messages <DL MM> ::= {<skip indicator : 0000> <protocol discriminator : 0101>
00 {00 0010 <LOCATION UPDATING ACCEPT : LOCATION UPDATING ACCEPT> # 00 0100 <LOCATION UPDATING REJECT : LOCATION UPDATING REJECT> 01 0001 <AUTHENTICATION REJECT : AUTHENTICATION REJECT> # 01 0010 <AUTHENTICATION REQUEST : AUTHENTICATION REQUEST> # 01 1010 <TMSI REALLOCATION COMMAND : TMSI REALLOCATION COMMAND> # 10 0001 <CM SERVICE ACCEPT : CM SERVICE ACCEPT> # 10 0010 <CM SERVICE REJECT : CM SERVICE REJECT> # 10 0101 <CM SERVICE PROMPT : CM SERVICE PROMPT> # 10 1000 <IDENTITY REQUEST : IDENTITY REQUEST> # 10 1001 <ABORT : ABORT> # 11 0001 <MM STATUS : MM STATUS DOWNLINK> # 11 0010 <MM INFORMATION : MM INFORMATION
class "DL MM": abstract:
CHOICE "message type": ("LOCATION UPDATING ACCEPT", "LOCATION UPDATING REJECT", "AUTHENTICATION REJECT", "AUTHENTICATION REQUEST", "TMSI REALLOCATION COMMAND", "CM SERVICE ACCEPT", "CM SERVICE REJECT", "CM SERVICE PROMPT "," IDENTITY REQUEST "," ABORT "," MM STATUS DOWNLINK "," MM INFORMATION ")., LOCATION UPDATING ACCEPT": "LOCATION UPDATING ACCEPT";"UPDATING REJECT RENT": "UPDATING REJECT RENT";"AUTHENTICATIONREJECT":"AUTHENTICATIONREJECT";"AUTHENTICATIONREQUEST":"AUTHENTICATIONREQUEST";"TMSI REALLOCATION COMMAND": "TMSI REALLOCATION COMMAND";"CM SERVICE ACCEPT": "CM SERVICE ACCEPT";"CM SERVICE REJECT": "CM SERVICE REJECT";"CM SERVICE PROMPT": "CM SERVICE PROMPT";"IDENTITYREQUEST":"IDENTITYREQUEST";"ABORT":"ABORT";"MM STATUS DOWNLINK": "MM STATUS DOWNLINK";"MMINFORMATION":"MMINFORMATION"; } 1.1.2.1.2 Transfer transfer syntax: - flow of downlink MM messages <DL MM> :: = {<skip indicator: 0000><protocol discriminator: 0101>
00 {00 0010 <LOCATION UPDATING ACCEPT: LOCATION UPDATING ACCEPT># 00 0100 <LOCATION UPDATING REJECT: RENT UPDATING REJECT> 01 0001 <AUTHENTICATION REJECT: AUTHENTICATION REJECT># 01 0010 <AUTHENTICATION REQUEST: AUTHENTICATION REQUEST># 01 1010 <TMSI REALLOCATION COMMAND: TMSI REALLOCATION COMMAND># 10 0001 <CM SERVICE ACCEPT: CM SERVICE ACCEPT># 10 0010 <CM SERVICE REPEAT: SERVICE REJECT CM># 10 0101 <SERVICE PROMPT CM: SERVICE PROMPT CM># 10 1000 <IDENTITY REQUEST: IDENTITY REQUEST># 10 1001 <ABORT: ABORT># 11 0001 <MM STATUS: MM STATUS DOWNLINK># 11 0010 <MM INFORMATION: MM INFORMATION

<Desc/Clms Page number 84><Desc / Clms Page number 84>

! <erroneous type : bit** = <no string } <spurious extension : bit** = null>

Figure img00840001

Jj~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. 1.2.2 UL MM
1.1.2.2.1 Description abstraite class "UL MM" { abstract :
CHOICE "message type" : ( "AUTHENTICATION FAILURE", "AUTHENTICATION RESPONSE", "IDENTITY RESPONSE", "TMSI REALLOCATION COMPLETE", "CM SERVICE ABORT", "CM
SERVICE REQUEST SUBSEQUENT", "MM STATUS UPLINK") { "AUTHENTICATION FAILURE" : "AUTHENTICATION FAILURE" ; "AUTHENTICATION RESPONSE" : "AUTHENTICATION RESPONSE" ; "IDENTITY RESPONSE" : "IDENTITY RESPONSE" ; "TMSI REALLOCATION COMPLETE" : "TMSI REALLOCATION COMPLETE" ; "CM SERVICE ABORT" : "CM SERVICE ABORT" ; "CM SERVICE REQUEST SUBSEQUENT" : "CM SERVICE REQUEST SUBSEQUENT" ; "MM STATUS UPLINK" : "MM STATUS UPLINK" ; }
1.1.2.2.2 Syntaxe de transfert transfer . ! <erroneous type: bit ** = <no string} <spurious extension: bit ** = null>
Figure img00840001

jj ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
1. 1.2.2 UL MM
1.1.2.2.1 Abstract description class "UL MM" {abstract:
CHOICE "message type": ("AUTHENTICATION FAILURE", "AUTHENTICATION RESPONSE", "IDENTITY RESPONSE", "TMSI REALLOCATION COMPLETE", "CM SERVICE ABORT", "CM
SERVICE REQUEST SUBSEQUENT "," MM STATUS UPLINK ") {" AUTHENTICATION FAILURE ":" AUTHENTICATION FAILURE ";" AUTHENTICATION RESPONSE ":" AUTHENTICATION RESPONSE ";" IDENTITY RESPONSE ":" IDENTITY RESPONSE ";" TMSI REALLOCATION COMPLETE ":" TMSI REALLOCATION COMPLETE ";" CM SERVICE ABORT ":" CM SERVICE ABORT ";" CM SERVICE REQUEST SUBSEQUENT ":" CM SERVICE REQUEST SUBSEQUENT ";" MM STATUS UPLINK ":" MM STATUS UPLINK ";
1.1.2.2.2 Transfer transfer syntax.

<UM MM> = --flow of uplink MM messages once an RR connection is established {<skip indicator : 0000> <protocol discriminator : 0101> bit*2 {01 1100 <AUTHENTICATION FAILURE : AUTHENTICATION FAILURE> 01 0100 <AUTHENTICATION RESPONSE : AUTHENTICATION RESPONSE> # 01 1001 <IDENTITY RESPONSE : IDENTITY RESPONSE> # 01 1011 <TMSI REALLOCATION COMPLETE : TMSI REALLOCATION COMPLETE> # 10 0011 <CM SERVICE ABORT : CM SERVICE ABORT> # 10 0100 <CM SERVICE REQUEST : CM SERVICE REQUEST> # 11 0001 <MM STATUS : MM STATUS UPLINK>} ! <erroneous type . bit** = <no string } <spurious extension : bit** = null> } ;  <UM MM> = --flow of uplink MM messages ounce RR connection is established {<skip indicator: 0000> <protocol discriminator: 0101> bit * 2 {01 1100 <AUTHENTICATION FAILURE: AUTHENTICATION FAILURE> 01 0100 <AUTHENTICATION RESPONSE: AUTHENTICATION RESPONSE> # 01 1001 <IDENTITY RESPONSE: IDENTITY RESPONSE> # 01 1011 <TMSI COMPLETE REALLOCATION: TMSI REALLOCATION COMPLETE> # 10 0011 <CM SERVICE ABORT: CM SERVICE ABORT> # 10 0100 <SERVICE REQUEST CM: SERVICE REQUEST CM> # 11 0001 <MM STATUS: MM STATUS UPLINK>}! <erroneous type. bit ** = <no string} <spurious extension: bit ** = null>};

<Desc/Clms Page number 85> <Desc / Clms Page number 85>

1. 1.2.3 Abandon (ou abort )
1.1.2.3.1 Description abstraite class "ABORT" { abstract "Reject cause" : "MM.Rejectcause" ; bind <ABORT> { }
Le corps de la commande introduite par 'bind' n'est pas inclus dans l'exemple. Il est à décrire préférentiellement en C++. Ceci s'applique a toutes les commandes (introduites par'bind' ou'load') dans les sections qui suivent.
1. 1.2.3 Abandonment (or abort)
1.1.2.3.1 Abstract description class "ABORT" {abstract "Reject cause": "MM.Rejectcause"; bind <ABORT> {}
The body of the command introduced by 'bind' is not included in the example. It is to be described preferentially in C ++. This applies to all commands (introduced by'bind 'or'load') in the following sections.

1.1.2.3.2 Syntaxe de transfert transfer : <ABORT> ::= <Reject cause : <M-V-IE (Reject cause downlink, 1) } ;
1. 1.2.4 Echec d'authentification (ou AUTHENTICATION
FAILURE )
1.1.2.4.1 Description abstraite class "AUTHENTICATION FAILURE" { abstract : "Reject cause" : "MM.Rejectcause" ; "Authentication Failure parameter"[0..1 1 iif ("Reject cause.cause grouping"= "network related failure", "Reject cause.network-related failure cause" = "synch. failure", false)] : "MM.Authentication
Failure parameter" bind <AUTHENTICATION FAILURE> { }
1.1.2.4.2 Syntaxe de transfert transfer <AUTHENTICATION FAILURE> ::= <Reject Cause : <M-V-IE (Reject Cause uplink, 1)#
1.1.2.3.2 Transfer transfer syntax: <ABORT> :: = <Reject cause: <MV-IE (Reject cause downlink, 1)};
1. 1.2.4 Authentication Failure (or AUTHENTICATION
FAILURE)
1.1.2.4.1 Abstract description class "AUTHENTICATION FAILURE" {abstract: "Reject cause": "MM.Rejectcause";"Authentication Failure parameter" [0..1 1 iif ("Reject cause.cause grouping" = "network related failure", "Reject cause.network-related failure cause" = "synch failure", false)]: "MM .Authentication
Failure parameter "bind <AUTHENTICATION FAILURE> {}
1.1.2.4.2 Transfer Transfer Syntax <AUTHENTICATION FAILURE> :: = <Reject Cause: <MV-IE (Reject Cause uplink, 1) #

<Desc/Clms Page number 86><Desc / Clms Page number 86>

< Authentication Failure parameter : <O-TLV-IE (0010 0010, Authentication Failure parameter,
16) } ;
1. 1.2.5 Rejet d'authentification (ou AUTHENTICATION
REJECT )
1.1.2.5.1 Description abstraite class "AUTHENTICATION REJECT" { abstract : bind <AUTHENTICATION REJECT> { } 1.1.2.5.2 Syntaxe de transfert transfer <AUTHENTICATION REJECT> ::= null } ;
1.1.2.6 Requête d'authentification (ou AUTHENTICATION REQUEST )
1.1.2.6.1 Description abstraite class "AUTHENTICATION REQUEST" { abstract : "Authentication Parameter RAND" : "MM.Authentication Parameter RAND" ; "Authentication Algorithm" : Enumerated ("UMTS", "GSM") ; bind <AUTHENTICATION REQUEST> { }
1.1.2.6.2 Syntaxe de transfert transfer <AUTHENTICATION REQUEST> ::= <spare half octet : {bit*4 = 0000}> <Ciphering key séquence number : <M-VD-IE (Ciphering key séquence number Downlink) <Authentication parameter RAND : <M-V-IE (Authentication parameter RAND, 16) <Authentication parameter AUTN : <O-TLV-IE (0010 0000, Authentication parameter AUTN, 18,
18) abstract Authentication algorithm returns -- if there is any error on AUTN, the authentication Algo will be considered GSM
<Authentication Failure parameter: <O-TLV-IE (0010 0010, Authentication Failure parameter,
16)};
1. 1.2.5 Authentication Rejection (or AUTHENTICATION
REJECT)
1.1.2.5.1 Abstract description class "AUTHENTICATION REJECT" {abstract: bind <AUTHENTICATION REJECT> {} 1.1.2.5.2 Transfer Transfer Syntax <AUTHENTICATION REJECT> :: = null};
1.1.2.6 Authentication Request (or AUTHENTICATION REQUEST)
1.1.2.6.1 Abstract description class "AUTHENTICATION REQUEST" {abstract: "Authentication Parameter RAND": "MM.Authentication Parameter RAND";"AuthenticationAlgorithm": Enumerated ("UMTS", "GSM"); bind <AUTHENTICATION REQUEST> {}
1.1.2.6.2 Transfer transfer syntax <AUTHENTICATION REQUEST> :: = <spare half byte: {bit * 4 = 0000}><Ciphering key sequence number: <M-VD-IE (Ciphering key sequence number Downlink) <Authentication parameter RAND: <Authentication parameter RAND, <MV-IE (16) <Authentication parameter AUTN: <O-TLV-IE (0010 0000, Authentication parameter AUTN, 18,
18) abstract Authentication algorithm returns - if there is any error on AUTN, the authentication Algo will be considered GSM

<Desc/Clms Page number 87><Desc / Clms Page number 87>

iif (exist(Authentication parameter AUTN), UMTS, GSM) } ;
1. 1.2.7 Réponse d'authentification (ou AUTHENTICATION RESPONSE )
1.1.2.7.1 Description abstraite class "AUTHENTICATION RESPONSE" { abstract .
iif (Authentication parameter AUTN), UMTS, GSM)};
1. 1.2.7 Authentication Response (or AUTHENTICATION RESPONSE)
1.1.2.7.1 Abstract description class "AUTHENTICATION RESPONSE" {abstract.

RES : Octet string (4..16) ; load <AUTHENTICATION RESPONSE> { } 1.1.2. 7.2 Syntaxe de transfert transfer <AUTHENTICATION RESPONSE> ::= <Authentication response parameter : <M-V-IE (Authentication Response Parameter, 4) <Authentication response extension : <O-TLV-IE (0010 0001, Authentication Response
Parameter extension, 3,14 function RES returns <instance(Authentication response parameter.V.RES part 1)> {<instance(Authentication response extension. V.RES part 2)> null}

Figure img00870001

Jj~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 1.2.8 Abandon de connexion pour service (ou CM
SERVICE ABORT ) 1.1.2.8.1 Description abstraite class "CM SERVICE ABORT" { abstract : bind <CM SERVICE ABORT> { } 1.1.2.8.2 Syntaxe de transfert transfer <CM SERVICE ABORT> ::= null RES: Octet string (4..16); load <AUTHENTICATION RESPONSE> {} 1.1.2. 7.2 Transfer Transfer Syntax <AUTHENTICATION RESPONSE> :: = <Authentication Response Parameter: <Authentication Response Parameter (MV-IE) <Authentication Response Extension: <O-TLV-IE (0010 0001, Authentication Response
Parameter extension, 3.14 function RES returns <instance (Authentication response parameter.V.RES part 1)>{<instance (Authentication response extension V.RES part 2)> null}
Figure img00870001

jj ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ 1. 1.2.8 Connection Abandonment for Service (or CM
SERVICE ABORT) 1.1.2.8.1 Abstract description "CM SERVICE ABORT" class {abstract: bind <CM ABORT SERVICE> {} 1.1.2.8.2 Transfer transfer syntax <CM SERVICE ABORT> :: = null

<Desc/Clms Page number 88> <Desc / Clms Page number 88>

1. 1.2.9 Acceptation de la demande de connexion pour service (ou CM SERVICE ACCEPT )
1.1.2.9.1 Description abstraite class "CM SERVICE ACCEPT" { abstract . load <CM SERVICE REQUEST> { }
1.1.2.9.2 Syntaxe de transfert transfer <CM SERVICE ACCEPT> = null }
1. 1.2.10 Affichage du service de gestion de connexion (ou CM SERVICE PROMPT )
1.1.2.10.1 Description abstraite class "CM SERVICE PROMPT" { abstract "PD and SAPI" . RIL3 "PD and SAPI" ,
1.1.2.10.2 Syntaxe de transfert transfer <CM SERVICE PROMPT> .= <PD and SAPI of CM <M-V-IE (PD and SAPI, 1) } ;
1. 1.2.11 Rejet de la demande de connexion pour service (ou CM SERVICE REJECT )
1.1.2.11.1 Description abstraite class "CM SERVICE REJECT" { abstract
Reject cause MM.Reject cause , load <CM SERVICE REJECT> { }
1. 1.2.9 Accepting the connection request for service (or CM SERVICE ACCEPT)
1.1.2.9.1 Abstract description class "CM SERVICE ACCEPT" {abstract. load <CM SERVICE REQUEST> {}
1.1.2.9.2 Transfer transfer syntax <CM SERVICE ACCEPT> = null}
1. 1.2.10 Displaying the Connection Management Service (or CM SERVICE PROMPT)
1.1.2.10.1 Abstract description "CM SERVICE PROMPT" {abstract "PD and SAPI". RIL3 "PD and SAPI",
1.1.2.10.2 Transfer Transfer Syntax <CM SERVICE PROMPT>. <PD and SAPI of CM <IE-IE (PD and SAPI, 1)};
1. 1.2.11 Rejection of the connection request for service (or CM SERVICE REJECT)
1.1.2.11.1 Abstract description class "CM SERVICE REJECT" {abstract
Reject cause MM.Reject cause, load <CM SERVICE REJECT> {}

<Desc/Clms Page number 89> <Desc / Clms Page number 89>

1.1.2.11.2 Syntaxe de transfert transfer <CM SERVICE REJECT> ::= <Reject cause : <M-V-IE (Reject cause downlink, 1) } ;
1. 1.2.12 Demande de conexion additionnelle pour service (ou CM SERVICE REQUEST SUBSEQUENT )
1.1.2.12.1 Description abstraite class "CM SERVICE REQUEST SUBSEQUENT" { abstract : "Mobile Identity Type" : "MM.Mobile Identity Type" ; "IMSI" [0..1 # "Mobile Identity Type""IMSI"] : "IMSI" ; "TMSI" : [0..1 # "Mobile Identity Type" = "TMSI/P-TMSI"] : "TMSI" ; "CKSN availability" : "CKSN availability" ; "CKSN" [0..1 "CKSN availability"] : CKSN ; "Mobile Station Classmark 1" : "Mobile Station Classmark 1" ; "Mobile Station Classmark 2 delta" : "Mobile Station Classmark 2 delta" ; "CM Service Type" : "CM Service Type" ; "Priority" : "Priority" ;
1.1.2.12.2 Syntaxe de transfert transfer : <CM SERVICE REQUEST> ::= <Ciphering key séquence number uplink : <M-VD-IE (Ciphering key séquence number Uplink) <CM service type : <M-VD-IE (CM service type) <Mobile station classmark 2 : <M-LV-IE (Mobile station classmark 2, 4, 4) <Mobile identity : <M-LV-IE (Mobile identity, 2, 9) <Priority : <O-TVD-IE (1000, Priority Level) abstract.Mobile Identity type returns
Mobile identity.V.Type of identity.abstract abstract.IMSI returns
Mobile identity.V.IMSI.abstract abstract.TMSI returns
Mobile identity.V.TMSI/P-TMSI.abstract
1.1.2.11.2 Transfer Transfer Syntax <CM SERVICE REJECT> :: = <Reject Cause: <MV-IE (Reject Cause downlink, 1)};
1. 1.2.12 Request for Additional Connection for Service (or CM SERVICE REQUEST SUBSEQUENT)
1.1.2.12.1 Abstract description class "CM SERVICE REQUEST SUBSEQUENT" {abstract: "Mobile Identity Type": "MM.Mobile Identity Type";"IMSI" [0..1 # "Mobile Identity Type""IMSI"]:"IMSI";"TMSI": [0..1 # "Mobile Identity Type" = "TMSI / P-TMSI"]: "TMSI";"CKSNavailability":"CKSNavailability";"CKSN" [0..1 "CKSN availability"]: CKSN; "Mobile Station Classmark 1": "Mobile Station Classmark 1";"Mobile Station Classmark 2 delta": "Mobile Station Classmark 2 delta";"CM Service Type": "CM Service Type";"Priority":"Priority";
1.1.2.12.2 Transfer transfer syntax: <CM SERVICE REQUEST> :: = <Ciphering key sequence uplink number: <M-VD-IE (Ciphering key sequence Uplink number) <CM service type: <M-VD-IE ( CM service type) <Mobile station classmark 2: <M-LV-IE (Mobile station classmark 2, 4, 4) <Mobile identity: <M-LV-IE (Mobile identity, 2, 9) <Priority: <O- TVD-IE (1000, Priority Level) abstract.Mobile Identity type returns
Mobile identity.V.Type of identity.abstract abstract.IMSI returns
Mobile identity.V.IMSI.abstract abstract.TMSI returns
Mobile identity.V.TMSI / P-TMSI.abstract

<Desc/Clms Page number 90><Desc / Clms Page number 90>

abstract.IMEI returns
Mobile identity.V.IMEI } ;
1. 1.2.13 Demande d'identité GSM (ou IDENTITY
REQUEST )
1.1.2.13.1 Description abstraite class "IDENTITY REQUEST" { abstract : "Mobile Identity Type" : "MM.Mobile Identity Type" ;
1.1.2.13.2 Syntaxe de transfert transfer : <IDENTITY REQUEST> ::= <spare half octet : {bit*4 = 0000}> <Identity type . <M-VD-IE (Identity type) } ;
1. 1.2.14 Réponse d'identité (ou IDENTITY RESPONSE )
1.1.2.14.1 Description abstraite class "IDENTITY RESPONSE" { abstract :
CHOICE "Mobile Identity Type" : "MM.Mobile Identity Type" { "IMSI" : {"IMSI": "IMSI"} ; "IMEI" : {"IMEI" : "IMEI"} ; "IMEISV" : { "IMEI". "IMEI" ; "Software Version Number" : Integer (0..99) ; }};
1.1.2.14.2 Syntaxe de transfert transfer : <IDENTITY RESPONSE> ::= <Mobile identity : <M-LV-IE (Mobile identity, 2, 10) } ;
abstract.IMEI returns
Mobile identity.V.IMEI};
1. 1.2.13 GSM Identity Request (or IDENTITY)
REQUEST)
1.1.2.13.1 Abstract description class "IDENTITY REQUEST" {abstract: "Mobile Identity Type": "MM.Mobile Identity Type";
1.1.2.13.2 Transfer transfer syntax: <IDENTITY REQUEST> :: = <spare half byte: {bit * 4 = 0000}><Identity type. <M-VD-IE (Identity type)};
1. 1.2.14 Identity Response (or IDENTITY RESPONSE)
1.1.2.14.1 Abstract description class "IDENTITY RESPONSE" {abstract:
CHOICE "Mobile Identity Type": "MM.Mobile Identity Type"{"IMSI":{"IMSI":"IMSI"};"IMEI":{"IMEI":"IMEI"};"IMEISV":{"IMEI"."IMEI";"Software Version Number": Integer (0..99); }};
1.1.2.14.2 Transfer transfer syntax: <IDENTITY RESPONSE> :: = <Mobile identity: <M-LV-IE (Mobile identity, 2, 10)};

<Desc/Clms Page number 91> <Desc / Clms Page number 91>

1. 1.2.15 Acceptation de mise à jour de localisation (ou LOCATION UPDATING ACCEPT )
1.1.2.15.1 Description abstraite class "LOCATION UPDATING ACCEPT" { abstract : "TMSI allocation status" : Enumerated ("new TMSI", "keep TMSI", "erase TMSI") ; "Follow on proceed" : Boolean ; set Registered location area [0..1 # "TMSI allocation status" = "new TMSI"] { "Location Area Identification" : "Location Area Identification" ; "TMSI" : "TMSI" ; } : "CTS permission" : Boolean ; bind }
1.1.2.15.2 Syntaxe de transfert transfer : <LOCATION UPDATING ACCEPT> ::= <Location area identification : <M-V-IE (Location area identification, 5) <Mobile identity : <O-TLV-IE (0001 0111, Mobile identity, 3, 10) <Follow on proceed : <O-T-IE (1010 0001) <CTS permission : <O-T-IE (1010 0010) abstract.TMSI allocation status returns switch (Mobile identity = <null>, keep TMSI,
Mobile identity.V.TMSI/P-TMSI = 1**, erase TMSI,
Mobile identity.V.TMSI/P-TMSI = bit**, new TMSI) abstract.TMSI returns
Mobile identity.V.TMSI/P-TMSI.abstract } ;
1.1.2.16 Rejet d'une mise à jour de localisation ( ou LOCATION UPDATING REJECT )
1.1.2.16.1 Description abstraite class "LOCATION UPDATING REJECT" { abstract :
1. 1.2.15 Location Update Acceptance (or LOCATION UPDATING ACCEPT)
1.1.2.15.1 Abstract description class "LOCATION UPDATING ACCEPT" {abstract: "TMSI allocation status": Enumerated ("new TMSI", "keep TMSI", "erase TMSI");"Follow on proceed": Boolean; set location location [0..1 # "TMSI allocation status" = "new TMSI"] {"Location Area Identification": "Location Area Identification";"TMSI":"TMSI"; }: "CTS permission": Boolean; bind}
1.1.2.15.2 Transfer transfer syntax: <LOCATION UPDATING ACCEPT> :: = <Location identification area: <Location location identification, 5 <Mobile identity: <O-TLV-IE (0001 0111, Mobile identity , 3, 10) <Follow-on: <OT-IE (1010 0001) <CTS permission: <OT-IE (1010 0010) abstract.TMSI allocation status returns switch (Mobile identity = <null>, keep TMSI,
Mobile identity.V.TMSI / P-TMSI = 1 **, TMSI erase,
Mobile identity.V.TMSI / P-TMSI = bit **, new TMSI) abstract.TMSI returns
Mobile identity.V.TMSI / P-TMSI.abstract};
1.1.2.16 Reject Location Update (or LOCATION UPDATING REJECT)
1.1.2.16.1 Abstract description class "LOCATION UPDATING REJECT" {abstract:

<Desc/Clms Page number 92><Desc / Clms Page number 92>

"Reject cause" : "MM.Reject cause" ; bind <LOCATION UPDATING REQUEST> { // set Location update state := roaming not allowed }
1.1.2.16.2 Syntaxe de transfert transfer : {LOACTION UPDATING REQUEST> <Reject cause : <M-V-IE (Reject cause downlink, 1)#
1. 1.2.17 Information de gestion de mobilité (ou MM
INFORMATION )
1.1.2.17.1 Description abstraite class "MM INFORMATION" { abstract :
Universal time[0..1] : MM.Universal Time "Local time zone"[0..1] : "Time zone" ; "Network daylight Saving Time"[0..1] : "Daylight Saving Time" ; "Full name for network"[0..1] : "network name" ; "Short name for network"(0..1] : "network name" ; "LSA identity"[O..1] : "LSA identity" ;
1.1.2.17.2 Syntaxe de transfert transfer : <MM INFORMATION> ::= <Full name for network : <O-TLV-IE (0100 0011, Network Name, 3, 255) <Short name for network : <O-TLV-IE (0100 0101, Network Name, 3, 255) <Local time zone : <O-TV-IE (0100 0110, Time Zone, 2) <Universal time and local time zone : <O-TV-IE (0100 0111, Time Zone and Time, 8) <LSA Identity : <O-TLV-IE (0100 1000, LSA Identifier, 2, 5) <Network Daylight Saving Time : <O-TLV-IE (0100 1001, Daylight Saving Time, 3, 3) function Local time zone returns iif (exist (Local time zone), Local time zone, iif (exist (Universal time and local time zone),
Un! versai time and local time zone.Local time zone, <no string>))
"Reject cause": "MM.Reject cause"; bind <LOCATION UPDATING REQUEST> {// set update state: = roaming not allowed}
1.1.2.16.2 Transfer Transfer Syntax: {LOTION UPDATING REQUEST><Reject Cause: <MV-IE (Reject Cause Downlink, 1) #
1. 1.2.17 Mobility management information (or MM
INFORMATION)
1.1.2.17.1 Abstract description class "MM INFORMATION" {abstract:
Universal time [0..1]: MM.Universal Time "Local time zone" [0..1]: "Time zone";"Network daylight Saving Time" [0..1]: "Daylight Saving Time";"Full name for network" [0..1]: "network name";"Short name for network" (0..1): "network name";"LSAidentity" [O..1]: "LSA identity";
1.1.2.17.2 Transfer transfer syntax: <MM INFORMATION> :: = <Full name for network: <O-TLV-IE (0100 0011, Network Name, 3, 255) <Short name for network: <O-TLV -IE (0100 0101, Network Name, 3, 255) <Local Time Zone: <O-TV-IE (0100 0110, Time Zone, 2) <Universal Time and Local Time Zone: <O-TV-IE (0100 0111 , Time Zone and Time, 8) <LSA Identity: <O-TLV-IE (0100 1000, LSA Identifier, 2, 5) <Network Daylight Saving Time: <O-TLV-IE (0100 1001, Daylight Saving Time, 3 , 3) function Local time zone returns iif (Exist (Local time zone), Local time zone, iif (exist (Universal time and local time zone),
A! local time zone.Local time zone, <no string>))

<Desc/Clms Page number 93><Desc / Clms Page number 93>

function Universal time returns
Universal time and local time zone.Universal time } ;
1. 1.2.18 Statut, dans le sens descendant, de la gestion de mobilité (ou MM STATUS DOWNLINK )
1.1.2.18.1 Description abstraite class "MM STATUS DOWNLINK" { abstract : "Reject cause" ' "MM. Reject cause" ;
1.1.2.18.2 Syntaxe de transfert transfer <MM STATUS DOWNLINK> := <Reject cause <M-V-IE (Reject cause downlink, 1) } ;
1. 1.2.19 Statut, dans le sens montant, de la gestion de mobilité (ou MM STATUS UPLINK )
1.1.2.19.1 Description abstraite class "MM STATUS UPLINK" { abstract "Reject cause" ' "MM. Reject cause" ;
1.1.2.19.2 Syntaxe de transfert transfer : <MS STATUS UPLINK> = <Reject cause <M-V-IE (Reject cause uplink, 1) } ;
1. 1.2.20 Commande de réallocation TMSI (ou TMSI
REALLOCATION COMMAND )
1.1.2.20.1 Description abstraite class "TMSI REALLOCATION COMMAND" { abstract .
function Universal time returns
Universal time and local time zone.Universal time};
1. 1.2.18 Downstream status of mobility management (or MM STATUS DOWNLINK)
1.1.2.18.1 Abstract description class "MM STATUS DOWNLINK" {abstract: "Reject cause""" MM Reject cause ";
1.1.2.18.2 Transfer transfer syntax <MM STATUS DOWNLINK>: = <Reject cause <MV-IE (Reject cause downlink, 1)};
1. 1.2.19 Status in the upstream direction of mobility management (or MM STATUS UPLINK)
1.1.2.19.1 Abstract description class "MM STATUS UPLINK" {abstract "Reject cause""" MM Reject cause ";
1.1.2.19.2 Transfer transfer syntax: <MS STATUS UPLINK> = <Reject cause <MV-IE (Reject cause uplink, 1)};
1. 1.2.20 TMSI Reallocation Command (or TMSI)
REALLOCATION COMMAND)
1.1.2.20.1 Abstract description class "TMSI REALLOCATION COMMAND" {abstract.

<Desc/Clms Page number 94> <Desc / Clms Page number 94>

"LAI+TMSI" : "LAI+TMSI" ;
1.1.2.20.2 Syntaxe de transfert transfer : <TMSI REALLOCATION COMMAND> ::= <Location area identification : <M-V-IE (Location area identification, 5) <Mobile identity : <M-LV-IE (Mobile identity, 2, 9) abstract.TMSI returns
Mobile identity. V.TMSI/P-TMSI.abstract } ;
1. 1.2.21 Réallocation TMSI effectuée (ou TMSI
REALLOCATION COMPLETE )
1.1.2.21.1 Description abstraite class "TMSI REALLOCATION COMPLETE" { abstract bind <TMSI REALLOCATIO N COMPLETE> { }
1.1.2.21.2 Syntaxe de transfert transfer : <TMSI REALLOCATION COMPLETE> ::= null } ;
1. 2 Listes des zones de localisation (ou LA list )
1. 2.1 Description abstraite class "LA list" { abstract :
Location area description[0.. infinité] : { "PLMN *"PLMN" ; //-> UE context.PLMN list "LAC" : RIL3 "Location Area Code" ; "Local time zone"[0..1] : "Time Zone" ; "Network daylight saving time[0 1] : "Daylight Saving Time" ; } ;
"LAI + TMSI": "LAI + TMSI";
1.1.2.20.2 Transfer transfer syntax: <TMSI REALLOCATION COMMAND> :: = <Location identification area: <Location location identification, 5 <Mobile identity: <M-LV-IE (Mobile identity, 2, 9) abstract.TMSI returns
Mobile identity. V.TMSI / P-TMSI.abstract};
1. 1.2.21 TMSI reallocation performed (or TMSI
COMPLETE REALLOCATION)
1.1.2.21.1 Abstract description "TMSI REALLOCATION COMPLETE" class {abstract bind <TMSI REALLOCATIO N COMPLETE> {}
1.1.2.21.2 Transfer transfer syntax: <TMSI REALLOCATION COMPLETE> :: = null};
1. 2 Lists of localization areas (or LA list)
1. 2.1 Abstract description class "LA list" {abstract:
Location area description [0 .. infinity]: {"PLMN *" PLMN "; // -> UE context.PLMN list" LAC ": RIL3" Location Area Code ";" Local time zone "[0..1]: "Time Zone";"Network daylight saving time [0 1]:" Daylight Saving Time ";};

<Desc/Clms Page number 95> <Desc / Clms Page number 95>

1. 3 Liste de réseaux (ou PLMN list )
1. 3.1 Description abstraite class "PLMN list" { abstract : "PLMN description"[O..infinite] : { "PLMN Id" : "PLMN Identity" ; "Full name for network"[0..1] : "Network Name" ; "Short name for network"[0. 1] . "Network Name" ; }
1. 4 Paramètres d'authentification AUTH (ou Authentication
Parameter AUTN )
1. 4.1 Description abstraite class "Authentication Parameter AUTN" { abstract : "Séquence number xor Anonymity Key" : Bitstring (48) ; "Authentication management field" : Bitstring (16) ; "Message authentication code" : Bitstring (64) ;
1. 4.2 Syntaxe de transfert transfer : < Authentication Parameter AUTN> ::= <Sequence number xor Anonymity Key : bit*48> <Authentication management field : bit*16> <Message authentication code : bit*64> } ;
1. 5 Type de service CM (ou CM Service Type )
1. 5.1 Description abstraite class "CM Service Type" { abstract : "service type" : Enumerated ("MO call or packet est", "emergency call", "SMS", "SS", "VGC", "VBS", "LCS")
1. 3 List of networks (or PLMN list)
1. 3.1 Abstract description class "PLMN list" {abstract: "PLMN description" [O..infinite]: {"PLMN Id": "PLMN Identity";"Full name for network" [0..1]: "Network Name";"Short name for network" [0. 1]. "Network Name"; }
1. 4 AUTH Authentication Settings (or Authentication)
Parameter AUTN)
1. 4.1 Abstract description class "Authentication Parameter AUTN" {abstract: "Sequence number xor Anonymity Key": Bitstring (48); "Authentication management field": Bitstring (16); "Message authentication code": Bitstring (64);
1. 4.2 Transfer transfer syntax: <Authentication Parameter AUTN> :: = <Sequence number xor Anonymity Key: bit * 48><Authentication management field: bit * 16><Message authentication code: bit * 64>};
1. 5 Service Type CM (or CM Service Type)
1. 5.1 Abstract description class "CM Service Type" {abstract: "service type": Enumerated ("MO call or packet is", "emergency call", "SMS", "SS", "VGC", "VBS", "LCS")

<Desc/Clms Page number 96> <Desc / Clms Page number 96>

1. 5.2 Syntaxe de transfert transfer <CM Service Type> ::= <service type : {0001#0010#0100#10 bit(2)}> } ;
1. 6 Correction d'heure d'été (ou Daylight Saving Time )
1. 6.1 Description abstraite class "Daylight Saving Time" { abstract : "Daylight Saving Time adjustment" : Enumerated (0, "+1 hour", "+2 hour")
1. 6.2 Syntaxe de transfert transfer : <Dayhght Saving Time> ::= <spare bit> * 6 <Daylight Saving Time adjustment : {00 # 01 # 10 }> } ;
1. 7 IMEI
1. 7.1 Description abstraite class "IMEI" { abstract : "Type Approval Code" [6] : Integer (0..9) ; "Final Assembly Code"[2] : Integer (0..9) ; "Sériai Number" [6] : Integer (0..9) ;
1. 7.2 Syntaxe de transfert transfer : <IMEI> ::= < digit one : digit> 1 bit*3 <pairs : <digit odd : <digit even : digit *7 function Digit (n) : integer returns iif(n=1, integer(digit one), iif(n%2 = 0, integer(pairs[n/2].digit even), integer(pairs[(n-1)/2].digitodd)))
1. 5.2 Transfer syntax transfer <CM Service Type> :: = <service type: {0001 # 0010 # 0100 # 10 bit (2)}>};
1. 6 Daylight Saving Time (Daylight Saving Time)
1. 6.1 Abstract description "Daylight Saving Time" class {abstract: "Daylight saving time adjustment": Enumerated (0, "+1 hour", "+2 hour")
1. 6.2 Transfer Transfer Syntax: <Dayhght Saving Time> :: = <spare bit> * 6 <Daylight Saving Time Adjustment: {00 # 01 # 10}>};
1. 7 IMEI
1. 7.1 Abstract description class "IMEI" {abstract: "Type Approval Code" [6]: Integer (0..9); "Final Assembly Code" [2]: Integer (0..9); "Serial Number" [6]: Integer (0..9);
1. 7.2 Transfer transfer syntax: <IMEI> :: = <digit one: digit> 1 bit * 3 <pairs: <digit odd: <digit even: digit * 7 function Digit (n): integer returns iif (n = 1, integer (digit one), iif (n% 2 = 0, integer (even [n / 2] .digit even), integer (even [(n-1) / 2] .digitodd)))

<Desc/Clms Page number 97><Desc / Clms Page number 97>

abstract.Type Approval Code[n] returns -- n from 0 to 5, MSB to LSD Digit(n+1 ) abstract.Final Assembly Code[n] returns -- n from 0 to 1, MSD to LSD
Digit(n+7) abstract.Serial Number[n] returns -- n from 0 to 5, MSD to LSD
Digit(n+9) } ;
1. 8 IMSI
1. 8.1 Description abstraite class "IMSI" { abstract : "MCC" : "MCC" ; "NMSI"[3..12] : Integer (0..9) ;
1. 8.2 Syntaxe de transfert transfer : <IMSI> ::= {< digit one : digit> <oddeven : bit> bit*3 <pairs : <digit odd : digit> <digit even : digit ** <pairs : <spare bit>*4 <digit even : digit *(1-integer(oddeven))} & octet*(4..8) function Digit(n) : integer returns iif(n=1, integer(digit one), iif(n%2 = 0, integer (pairs[n/2].digit even), integer(pairs[(n-1)/2].digit odd))) abstract.MCC returns
Digit(1 )*100 + Digit(2)*10 + Digit(3) abstract.NMSI.size returns (exist (pairs) *2) - 4 + integer (oddeven) abstract.NMSI[n] returns n from 0 to (size-1)
Digit(n+4)
abstract.Type Approval Code [n] returns - n from 0 to 5, MSB to LSD Digit (n + 1) abstract.Final Assembly Code [n] returns - n from 0 to 1, MSD to LSD
Digit (n + 7) abstract.Serial Number [n] returns - n from 0 to 5, MSD to LSD
Digit (n + 9)};
1. 8 IMSI
1. 8.1 Abstract description class "IMSI" {abstract: "MCC": "MCC";"NMSI" [3..12]: Integer (0..9);
1. 8.2 Transfer transfer syntax: <IMSI> :: = {<digit one: digit><oddeven:bit> bit * 3 <pairs: <digit odd: digit><digit even: digit ** <pairs: <spare bit> * 4 <digit even: digit * (1-integer (oddeven))} & byte * (4..8) function Digit (n): integer returns iif (n = 1, integer (digit one), iif ( n% 2 = 0, integer (even [n / 2] .digit even), integer (even [(n-1) / 2] .digit odd))) abstract.MCC returns
Digit (1) * 100 + Digit (2) * 10 + Digit (3) abstract.NMSI.size returns (exist (pairs) * 2) - 4 + integer (oddeven) abstract.NMSI [n] returns n from 0 to (size-1)
Digit (n + 4)

<Desc/Clms Page number 98> <Desc / Clms Page number 98>

1. 9 LAI et TMSI
1. 9.1 Description abstraite class "LAI+TMSI" { abstract "Location Area Identification" : RIL3."Location Area Identification" ; "TMSI" : "Temporary Mobile Station Identity" ;
1. 10 Identifiant LSA (ou LSA Identifier )
1. 10.1 Description abstraite class "LSA Identifier" { abstract : "LSA available" : Boolean ; "LSA ID"[0..1 # "LSA available"] : { "LSA identifier scope" : Enumerated ("PLMN significant", "universal") ; "Localised service area identity" : Bitstring (23) ;
1. 10.2 Syntaxe de transfert transfer : <LSA Identifier> ::= {<LSA ID : <Localised service area identity : bit(23)> <LSA identifier scope : bit>1 null abstract. LSA available returns exist (LSA ID) abstract. LSA ID.LSA identifier scope returns iif (LSA identifier scope = 0, PLMN significant, universal) } ;
1. 11 MCC
1. 11.1 Description abstraite class "MCC" { abstract : "MCC value" : Integer (0..999) ;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. 9 LAI and TMSI
1. 9.1 Abstract description class "LAI + TMSI" (abstract "Location Area Identification": RIL3. "Location Area Identification";"TMSI":"Temporary Mobile Station Identity";
1. 10 LSA Identifier (or LSA Identifier)
1. 10.1 Abstract description class "LSA Identifier" {abstract: "LSA available": Boolean; "LSA ID" [0..1 # "LSA available"]: {"LSA Identify Scope": Enumerated ("PLMN significant", "universal");"Localized service area identity": Bitstring (23);
1. 10.2 Transfer transfer syntax: <LSA Identifier> :: = {<LSA ID: <Localized service area identity: bit (23)><LSA identifier scope: bit> 1 null abstract. LSA available returns exist (LSA ID) abstract. LSA ID.LSA identify scope returns iif (LSA identify scope = 0, PLMN significant, universal)};
1. 11 MCC
1. 11.1 Abstract description class "MCC" {abstract: "MCC value": Integer (0..999) ;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<Desc/Clms Page number 99><Desc / Clms Page number 99>

} ;
1. 12 MNC
1. 12.1 Description abstraite class "MNC" abstract : "MNC value" : Integer (0..999) ; } ;
1. 13 Network Name
1. 13.1 Description abstraite class "Network Name" { abstract : "Coding scheme" : Enumerated ("cell broadcast default alphabet", "UCS2") "Add country's initials" : Boolean ; "Text string" : String ;
1. 13.2 Syntaxe de transfert transfer : <Network Name> <ext : 1 <Coding scheme : {000j001}> <Add country's initiais: bit> <number of spare bits in last octet : bit(3)> <Text string : -- order of bits within text string ? <octet>** <{0}*(number of spare bits in last octet)> <bit*(8 - number of spare bits in last octet) } ;
1. 14 Identité de réseau (ou PLMN Identity )
1. 14.1 Description abstraite class "PLMN Identity" { abstract : "MCC" : "MCC" ; "MNC" : "MNC" ;
};
1. 12 MNC
1. 12.1 Abstract description class "MNC" abstract: "MNC value": Integer (0..999); };
1. 13 Network Name
1. 13.1 Abstract description class "Network Name" {abstract: "Coding scheme": Enumerated ("cell broadcast default alphabet", "UCS2") "Add country's initials": Boolean; "Text string": String;
1. 13.2 Transfer transfer syntax: <Network Name><ext: 1 <Coding scheme: {000j001}><Addcountry's statement: bit><number of spare bits in last byte: bit (3)><Text string: - - order of bits within text string? <byte> ** <{0} * (number of spare bits in last byte)><bit * (8 - number of spare bits in last byte)};
1. 14 Network Identity (or PLMN Identity)
1. 14.1 Abstract description class "PLMN Identity" {abstract: "MCC": "MCC";"MNC":"MNC";

<Desc/Clms Page number 100><Desc / Clms Page number 100>

} ;
1.15 Identité temporaire de station mobile (ou Temporary
Mobile Station Identity )
1. 15.1 Description abstraite class "Temporary Mobile Station Identity" { abstract : "temporary identity" : Bitstring (32) ;
1. 15.2 Syntaxe de transfert transfer : <Temporary Mobile Station Identity> ::= <tenporary identity : bit*32>
1.
};
1.15 Temporary Identity of Mobile Station (or Temporary
Mobile Station Identity)
1. 15.1 Abstract description class "Temporary Mobile Station Identity" {abstract: "temporary identity": Bitstring (32);
1. 15.2 Transfer transfer syntax: <Temporary Mobile Station Identity> :: = <tenporary identity: bit * 32>
1.

16 Zone horaire (ou Time Zone )
1. 16.1 Description abstraite class "Time Zone" { abstract : "De ta with GMT" : Integer (-99..99) ;
1. 16.2 Syntaxe de transfert transfer : <Time Zone> ::= <sign : bit> <dig t 1 : bit(3)> <dig t 2 : bit(4)> abstract Delta with GMT returns -- units are minutes 15 * iif (sign = 0, integer(digit 1)*10 + integer(digit 2), - integer(digit 1 )*10 - integer(digit 2)) } ;
16 Time Zone (or Time Zone)
1. 16.1 Abstract description class "Time Zone" {abstract: "From ta with GMT": Integer (-99..99);
1. 16.2 Transfer transfer syntax: <Time Zone> :: = <sign: bit><dig t 1: bit (3)><dig t 2: bit (4)> abstract Delta with GMT returns - units are minutes 15 * iif (sign = 0, integer (digit 1) * 10 + integer (digit 2), - integer (digit 1) * 10 - integer (digit 2))};

Claims (20)

REVENDICATIONS 1. Système de spécification et de mise en #uvre d'un protocole de gestion de communication et de transmission entre au moins un émetteur et au moins un récepteur, caractérisé en ce qu'il comprend: - des moyens de détermination d'un contexte commun (2) comprenant des moyens de description d'un ensemble de données gérées par ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs ; - des moyens d'identification des messages de protocole (3) susceptibles d'être échangés entre ledit ou lesdits émetteurs et ledit ou lesdits récepteurs, ladite identification étant indépendante de la ou des représentations utilisées pour lesdits messages; - des moyens de définition de représentations de données stockées et/ou transmises par ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs à partir de ladite détermination d'un contexte commun et de ladite identification des messages, ladite définition de représentations permettant de déterminer des instructions d'implémentation dudit protocole dans au moins un desdits émetteurs et au moins un desdits récepteurs ; et - des moyens de mise en #uvre dudit protocole dans au moins un desdits émetteurs et au moins un desdits récepteurs à partir desdites instructions d'implémentation, de façon à ce que ledit ou lesdits émetteurs soient aptes à communiquer avec ledit ou lesdits récepteurs.  CLAIMS 1. System for specifying and implementing a communication management protocol and transmission between at least one transmitter and at least one receiver, characterized in that it comprises: - means for determining a common context (2) comprising means for describing a set of data managed by said one or more transmitters and / or said one or more receivers; means for identifying the protocol messages (3) that can be exchanged between the one or more transmitters and the one or more receivers, said identification being independent of the one or more representations used for said messages; means for defining representations of data stored and / or transmitted by said one or more transmitters and / or said one or more receivers from said determination of a common context and said message identification, said definition of representations making it possible to determine instructions for implementing said protocol in at least one of said transmitters and at least one of said receivers; and means for implementing said protocol in at least one of said transmitters and at least one of said receivers from said implementation instructions, so that said one or more transmitters are able to communicate with said one or more receivers. 2. Système selon la revendication 1, caractérisé en ce que lesdits moyens de détermination d'un contexte commun comprennent eux-mêmes des moyens de description d'une structure du contexte, ladite description étant indépendante de la ou des représentations utilisées pour le stockage et/ou la transmission desdites données. 2. System according to claim 1, characterized in that said means for determining a common context themselves comprise means for describing a structure of the context, said description being independent of the representation or representations used for storage and / or the transmission of said data. 3. Système selon la revendication 2, caractérisé en ce que lesdits moyens de détermination d'un contexte commun comprennent en outre des moyens 3. System according to claim 2, characterized in that said means for determining a common context further comprise means <Desc/Clms Page number 102><Desc / Clms Page number 102> d'identification et de description des types d'objets permettant d'analyser ladite structure du contexte, ladite identification et ladite description des types d'objets étant indépendantes de la ou des représentations utilisées pour le stockage et/ou la transmission.  identification and description of the types of objects for analyzing said context structure, said identification and description of the object types being independent of the representation or representations used for storage and / or transmission. 4. Système selon l'une quelconque des revendications 1 à 3, caractérisé en ce que tout ou partie desdites données gérées sont les données que ledit protocole vise à maintenir cohérent dans au moins un émetteur parmi ledit ou lesdits émetteurs et au moins un récepteur parmi ledit ou lesdits récepteurs. 4. System according to any one of claims 1 to 3, characterized in that all or part of said managed data is the data that said protocol aims to maintain consistent in at least one of said emitter or emitters and at least one of said one or more receivers. 5. Système selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'au moins une partie de ladite identification des messages est effectuée en termes d'actions et/ou de ses effets sur ledit contexte commun. 5. System according to any one of claims 1 to 4, characterized in that at least a part of said message identification is performed in terms of actions and / or its effects on said common context. 6. Système selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend des moyens de liaison entre : - une description de la forme de signal effectivement transmis ; et - ladite identification des messages de protocole. 6. System according to any one of claims 1 to 5, characterized in that it comprises connecting means between: - a description of the signal form effectively transmitted; and - said identification of the protocol messages. 7. Système selon la revendication 6, caractérisé en ce que ladite forme du signal appartient au groupe comprenant : - les suites de données binaires ; - les suites d'éléments pris dans un alphabet prédéterminé ; -les suites de formes d'ondes modulées. 7. System according to claim 6, characterized in that said form of the signal belongs to the group comprising: the binary data sequences; - the sequences of elements taken in a predetermined alphabet; the sequences of modulated waveforms. 8. Système selon l'une quelconque des revendications 6 et 7, caractérisé en ce que ladite liaison se fait dans un langage de spécification de données comprenant des fonctions permettant la description desdites données sous forme d'attributs d'objets abstraits et de fonctions s'appliquant sur des représentations concrètes. 8. System according to any one of claims 6 and 7, characterized in that said connection is in a data specification language comprising functions for the description of said data as attributes of abstract objects and functions s applying on concrete representations. 9. Système selon l'une quelconque des revendications 6 à 8, caractérisé en ce que ladite spécification de la forme de signal se fait en langage CSN1 enrichi de fonctions permettant la description desdites données sous forme d'attributs d'objets abstraits et de fonctions s'appliquant sur des représentations concrètes. 9. System according to any one of claims 6 to 8, characterized in that said specification of the signal form is done in CSN1 enriched with functions allowing the description of said data in the form of attributes of abstract objects and functions. applying to concrete representations. <Desc/Clms Page number 103><Desc / Clms Page number 103> 10. Système selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comprend des moyens d'utilisation des données de contexte dans une description formelle d'un encodage et/ou d'un décodage.  10. System according to any one of claims 1 to 9, characterized in that it comprises means for using the context data in a formal description of an encoding and / or decoding. 11. Système selon l'une quelconque des revendications 1 à 10, caractérisé en ce que lesdits moyens de détermination d'un contexte commun, lesdits moyens d'identification des messages de protocole et lesdits moyens de définition de représentations de données mettent chacun en oeuvre un langage formel permettant une détermination automatique du logiciel de mise en #uvre dudit protocole. 11. System according to any one of claims 1 to 10, characterized in that said means for determining a common context, said means for identifying the protocol messages and said means for defining data representations each implement a formal language allowing an automatic determination of the software for implementing said protocol. 12. Système selon la revendication 11, caractérisé en ce qu'il comprend des moyens de détermination automatique du logiciel de mise en #uvre dudit protocole. 12. System according to claim 11, characterized in that it comprises means for automatically determining the software for implementing said protocol. 13. Système selon l'une quelconque des revendications 11et 12, caractérisé en ce qu'il comprend des moyens de détermination automatique de tests de dispositifs mettant en #uvre ledit protocole. 13. System according to any one of claims 11 and 12, characterized in that it comprises means for automatically determining device tests implementing said protocol. 14. Système selon l'une quelconque des revendications 1 à 13, caractérisé en ce que lesdits moyens de détermination d'un contexte commun comprennent des moyens de traduction d'un mode de représentation d'un protocole en ladite description d'un ensemble de données. 14. System according to any one of claims 1 to 13, characterized in that said means for determining a common context comprises means for translating a representation mode of a protocol into said description of a set of data. 15. Système selon l'une quelconque des revendications 1 à 14, caractérisé en ce que lesdits moyens d'identification des messages de protocoles comprennent des moyens de traduction d'un mode de représentation de protocoles. 15. System according to any one of claims 1 to 14, characterized in that said means for identifying the protocol messages comprise means for translating a protocol representation mode. 16. Système selon l'une quelconque des revendications 1 à 15, caractérisé en ce qu'il comprend en outre des moyens de visualisation de la sémantique desdits messages de protocoles échangés entre ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs. 16. System according to any one of claims 1 to 15, characterized in that it further comprises means for displaying the semantics of said protocol messages exchanged between said one or more transmitters and / or said one or more receivers. 17. Procédé de spécification et de mise en #uvre d'un protocole de gestion de communication et de transmission entre au moins un émetteur et au moins un récepteur, caractérisé en ce qu'il comprend les étapes suivantes : 17. A method for specifying and implementing a communication management and transmission protocol between at least one transmitter and at least one receiver, characterized in that it comprises the following steps: <Desc/Clms Page number 104><Desc / Clms Page number 104> détermination d'un contexte commun (2) comprenant une description d'un ensemble de données gérées par ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs ; identification des messages de protocole (3) susceptibles d'être échangés entre ledit ou lesdits émetteurs et ledit ou lesdits récepteurs, ladite identification étant indépendante de la ou des représentations utilisées pour lesdits messages; définition de représentations de données stockées et/ou transmises par ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs à partir de ladite détermination d'un contexte commun et de ladite identification des messages, ladite définition de représentations permettant de déterminer des instructions d'implémentation dudit protocole dans au moins un desdits émetteurs et au moins un desdits récepteurs ; et mise en #uvre dudit protocole dans au moins un desdits émetteurs et au moins un desdits récepteurs à partir desdites instructions d'implémentation, de façon à ce que ledit ou lesdits émetteurs soient aptes à communiquer avec ledit ou lesdits récepteurs.  determining a common context (2) comprising a description of a set of data managed by said one or more transmitters and / or said one or more receivers; identification of the protocol messages (3) that can be exchanged between the one or more transmitters and the one or more receivers, said identification being independent of the one or more representations used for said messages; defining representations of data stored and / or transmitted by said one or more transmitters and / or said one or more receivers from said determination of a common context and said message identification, said definition of representations making it possible to determine instructions for implementing said protocol in at least one of said transmitters and at least one of said receivers; and implementing said protocol in at least one of said transmitters and at least one of said receivers from said implementation instructions, so that said one or more transmitters are able to communicate with said one or more receivers. 18. Dispositif de communication, caractérisé en ce qu'il comprend des moyens permettant l'émission et/ou la réception de données vers ou d'un dispositif tiers un autre dispositif selon un protocole obtenu par la mise en #uvre du procédé selon la revendication 17. 18. Communication device, characterized in that it comprises means for transmitting and / or receiving data to or from a third-party device, another device according to a protocol obtained by implementing the method according to the claim 17. 19. Produit programme d'ordinateur comprenant des éléments de programme, enregistrés sur un support lisible par au moins un microprocesseur, caractérisé en ce que lesdits éléments de programme contrôlent le ou lesdits microprocesseurs pour qu'ils effectuent les étapes suivantes adaptées à la spécification de protocole de communication et de transmission entre au moins un émetteur et au moins un récepteur : - détermination d'un contexte commun (2) comprenant une description d'un ensemble de données gérées par ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs ; A computer program product comprising program elements, recorded on a medium readable by at least one microprocessor, characterized in that said program elements control said microprocessor (s) to perform the following steps adapted to the specification of protocol for communication and transmission between at least one transmitter and at least one receiver: - determining a common context (2) comprising a description of a set of data managed by said one or more transmitters and / or said one or more receivers; <Desc/Clms Page number 105><Desc / Clms Page number 105> identification des messages de protocole (3) susceptibles d'être échangés entre ledit ou lesdits émetteurs et ledit ou lesdits récepteurs, ladite identification étant indépendante de la ou des représentations utilisées pour lesdits messages; définition de représentations de données stockées et/ou transmises par ledit ou lesdits émetteurs et/ou ledit ou lesdits récepteurs à partir de ladite détermination d'un contexte commun et de ladite identification des messages, ladite définition de représentations permettant de déterminer des instructions d'implémentation dudit protocole dans au moins un desdits émetteurs et au moins un desdits récepteurs ; et mise en #uvre dudit protocole dans au moins un desdits émetteurs et au moins un desdits récepteurs à partir desdites instructions d'implémentation, de façon à ce que ledit ou lesdits émetteurs soient aptes à communiquer avec ledit ou lesdits récepteurs.  identification of the protocol messages (3) that can be exchanged between the one or more transmitters and the one or more receivers, said identification being independent of the one or more representations used for said messages; defining representations of data stored and / or transmitted by said one or more transmitters and / or said one or more receivers from said determination of a common context and said message identification, said definition of representations making it possible to determine instructions for implementing said protocol in at least one of said transmitters and at least one of said receivers; and implementing said protocol in at least one of said transmitters and at least one of said receivers from said implementation instructions, so that said one or more transmitters are able to communicate with said one or more receivers. 20. Produit programme d'ordinateur, caractérisé en ce que ledit programme comprend des séquences d'instructions adaptées à la mise en #uvre d'un procédé de spécification de protocole de communication entre au moins un émetteur et au moins un récepteur selon la revendication 17 lorsque ledit programme est exécuté sur un ordinateur.20. Computer program product, characterized in that said program comprises instruction sequences adapted to the implementation of a method of communication protocol specification between at least one transmitter and at least one receiver according to the claim 17 when said program is run on a computer.
FR0402878A 2003-05-26 2004-03-19 SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS Expired - Fee Related FR2857192B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0402878A FR2857192B1 (en) 2003-05-26 2004-03-19 SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS
PCT/FR2004/001310 WO2004107714A1 (en) 2003-05-26 2004-05-26 System for specifying and implementing a communication and transmission protocol

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0306368A FR2855699B1 (en) 2003-05-26 2003-05-26 SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS
FR0402878A FR2857192B1 (en) 2003-05-26 2004-03-19 SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS

Publications (2)

Publication Number Publication Date
FR2857192A1 true FR2857192A1 (en) 2005-01-07
FR2857192B1 FR2857192B1 (en) 2006-01-27

Family

ID=33492215

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0402878A Expired - Fee Related FR2857192B1 (en) 2003-05-26 2004-03-19 SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS

Country Status (2)

Country Link
FR (1) FR2857192B1 (en)
WO (1) WO2004107714A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930264A (en) * 1997-02-06 1999-07-27 Telefonaktiebolaget L M Ericsson (Publ) Inter-node signaling for protocol initialization within a communications network
WO2000046683A2 (en) * 1999-02-08 2000-08-10 Sabre Inc. Apparatus and method for data conversion in a computer network
US20020004830A1 (en) * 2000-05-02 2002-01-10 Richard Hyatt Method and system for providing engineering analysis tools in a distributed environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930264A (en) * 1997-02-06 1999-07-27 Telefonaktiebolaget L M Ericsson (Publ) Inter-node signaling for protocol initialization within a communications network
WO2000046683A2 (en) * 1999-02-08 2000-08-10 Sabre Inc. Apparatus and method for data conversion in a computer network
US20020004830A1 (en) * 2000-05-02 2002-01-10 Richard Hyatt Method and system for providing engineering analysis tools in a distributed environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KONING J-L: "Algorithms for translating interaction protocols into a formal description", SYSTEMS, MAN, AND CYBERNETICS, 1999. IEEE SMC '99 CONFERENCE PROCEEDINGS. 1999 IEEE INTERNATIONAL CONFERENCE ON TOKYO, JAPAN 12-15 OCT. 1999, PISCATAWAY, NJ, USA,IEEE, US, vol. 3, 12 October 1999 (1999-10-12), pages 810 - 815, XP010363604, ISBN: 0-7803-5731-0 *

Also Published As

Publication number Publication date
FR2857192B1 (en) 2006-01-27
WO2004107714A1 (en) 2004-12-09

Similar Documents

Publication Publication Date Title
CN107122258A (en) Method and apparatus for the state code check of test interface
EP1958089B1 (en) Document object model api for mime
KR102024694B1 (en) Decentralized service platform using multiple service nodes based on block chain
US11281438B2 (en) Platform for web services development and method therefor
CN107122297A (en) The method and apparatus that request message for test interface is generated
US20210304191A1 (en) System and method for integration and validation
CN110636038A (en) Account number analysis method, account number analysis device, security gateway and system
CN110278272B (en) Universal method for simulating Socket request
EP3974960B1 (en) Method and system for automated testing of web service apis
CN110598419A (en) Block chain client vulnerability mining method, device, equipment and storage medium
CN112015826B (en) Intelligent contract security detection method based on block chain and related equipment
Popescu et al. CoCon: A conference management system with formally verified document confidentiality
US11823701B2 (en) Network operation based on domain specific language
FR2857192A1 (en) SYSTEM FOR SPECIFYING AND IMPLEMENTING COMMUNICATION AND TRANSMISSION PROTOCOL, METHOD, SPECIFICATION, COMMUNICATION DEVICE AND CORRESPONDING COMPUTER PROGRAMS
Jain et al. Sniffdroid: Detection of inter-app privacy leaks in android
CN110032872A (en) A kind of service logic leak detection method and device
FR2855699A1 (en) Communication and transmission management protocol implementation and specification system for mobile communication field, has implementation unit implementing protocol in emitters and receivers using implementation instruction
CN113505125A (en) Data uplink method and uplink proxy device
FR2793906A1 (en) SYSTEM AND METHOD FOR MANAGING ATTRIBUTES IN AN OBJECT-ORIENTED ENVIRONMENT
Bundas et al. Towards a framework for characterizing the behavior of AI-enabled cyber-physical and IoT systems
CH710624B1 (en) Security Method and verifiability of electronic voting.
US9473440B1 (en) Hyperlink validation
CN117527310A (en) Logical vulnerability detection method and system for TLS protocol implementation
Anantharaman Protecting Systems from Exploits Using Language-Theoretic Security
US11403467B2 (en) Semantic correction of messages

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20091130