Document de spécification du logiciel VALPO Définition du format des fichiers des scénarios TELECOM Bretagne Projet VALPO - Démonstrateur de protocoles GSM/UMTS Département Réseaux, Sécurité, Multimédia Janvier 2009 version 1.5 Rédacteurs : Xavier Lagrange Jean-Pierre Le Narzul Alexis Koalla TELECOM Bretagne 2 rue de la Chataigneraie CS 17607 35576 Cesson-Sévigné Cedex France
Table des matières 1 Introduction 2 2 Définition du format 3 2.1 Préambule....................................... 3 2.2 Grammaire du format................................ 4 3 Description des paramètres 5 3.1 Format du début du fichier.............................. 5 3.2 Format des messages................................. 5 3.3 Remarques importantes................................ 7 4 Conclusion 8 A Annexes 9 A.1 Exemple de fichier scénario respectant le modèle avec deux points de synchronisation T 1 et T 2..................................... 9 A.1.1 L en-tete du scénario............................. 9 A.1.2 Le corps du scénario............................. 10 1
1 Introduction L applet VALPO (Visualisation par AppLet de PrOtocoles) permet de mettre en scène des échanges entre équipement. Il peut s agir d échanges de messages GSM 1 ou de n importe quels échanges entre équipements. Les scénarios sont définis à l aide de fichiers texte qui doivent respecter un format précis. Le présent document a pour but de décrire ce format. Après avoir donné la grammaire du format de fichier, nous donnerons un exemple de fichier d échanges protocolaires valide selon le modèle. Enfin, nous terminerons ce document en décrivant les paramètres fondamentaux d un scénario (en-tete du scénario et corps du message). 1 Global Service for Mobile 2
2 Définition du format 2.1 Préambule Ce paragraphe donne des indications pour mieux comprendre le format décrit plus bas. 1. Z = X signifie que le terme Z est identique au terme X. 2. Z = [X] signifie que le terme Z est une suite (éventuellement vide) de termes X. 3. Z = [X]+ signifie que le terme Z est une suite non vide de termes X. 4. Z = XY signifie que le terme Z est constitué une séquence d un terme X suivi d un terme Y (obligatoirement dans cet ordre) 5. Z = X Y signifie que le terme Z peut prendre un terme X ou un terme Y. 6. les chaînes de caractères entre guillemets sont des termes primitifs : affichées telles quelles dans le fichier de scénario Enfin, certaines chaines de caractères ne figurent pas dans la grammaire en tant que termes teminaux car cela aurait rendu l abstraction plus difficile et complexe. Par exemple le terme propagthroughput joue deux roles. Il sert a identifier soit une instruction pour le temps de propagation etre deux nœuds et du débit d un lien. Pour plus de précisions, voir le fichier exemple décrit plus loin. De meme le terme node commence obligatoirement par le mot clé NodeNameij. Le paragraphe suivant donne la grammaire (description abstraite) du format des fichiers des scénarii selon les règles que nous venons de décrire. 3
2.2 Grammaire du format scenario= head [itemscenario]* head= ScenarioName separator string retour filename retour= RETOURCHARIOT filename= File separator string ɛ string= letter [ letter digit]* letter= A B.. Z a b.. z digitnonnul= 1 2 3 4 5 6 7 8 9 digit= 0 digitnonnul separator= ; itemscenario= comment node propagthroughput message comment= # [string]+ node= nameid separator string img [separator]+ nameid=string separator number img=string nil propagthroughput= nameid separator number separator number separator number [separator]+ number= digitnonnul [digit]* message= link separator msgbody pause link= number separator number msgbody= msghead separator msgtype separator data separator msghead= string commabegin parameters commaend commabegin= ( commadend= ) parameters= param virgule suiteparam nil param= string virgule=, suiteparam= param parameters nil= ɛ chaine vide msgtype= REQUEST RESPONSE ONEWAY data= length separator treatment separator dash separator step separator starttime separator syncpoint delta length= number treatment= number dash= full semi step= number starttime= time syncpoint time= t 0 * nil syncpoint= string nil par convention la chaine est notée T i delta= string nil pause= speciallink separator ackmsg speciallink= 999 separator 999 ackmsg= string string string string Question/Reponse/image/nouveau titre scénario. 4
3 Description des paramètres 3.1 Format du début du fichier ScenarioName= le nom du scénario qui est affiché par le démonstrateur juste en dessous du menu. NodeName ; i = nom du nœud i, tous les noms sont affichés sur une même ligne. En dessous du nom est tracée une barre verticale d où partent et arrivent les messages. Le nombre de nœuds dans le chronogramme est déterminé par le nombre de NodeName placés dans le fichier. Suivant les cas une image peut etre associée à nœud PropagThroughput ; i ; j ; propagtime ;throughput désigne le délai de propagation (propagtime du nœud i vers le nœud j et le débit throughput supporté par le lien i j. 3.2 Format des messages Pour chaque message, on a le format suivant. Tous les caractères sont sur la même ligne(sans blanc). Voici le format générique des messages :i ;j ; name ; type ;length ;treatment ;dash ;step ;starttime i= si i<= 20 alors c est le numéro du nœud d où part le message (source). Par contre si i> 20 c est un message de pause. Dans notre cas nous avons choisi le nombre 999 pour éviter toute ambiguité. j = si j<= 20 alors c est le numéro du nœud de destination du message. Par contre si j> 20 c est un message de pause. Dans notre cas nous avons choisi le nombre 999 pour éviter toute ambiguité. name=nom du message avec éventuellement des paramètres entre des parenthèses. Il ne doit pas contenir de point-virgule car ce caractère est un séparator entre les différents éléments du scénario. type= type du message : REQU EST désigne un message de type requête. Les requetes sont marquées ROUGE dans l illustration des scénarii RESP ONSE désigne un message de type réponse. Les réponses sont marquées ORANGE dans l illustration des scénarii ONEW AY désigne un message qui n attend pas forcément une réponse. Ce type de massages est marqué VIOLET dans l illustration des scénarii length=longueur du message, en fonction du débit du lien. Ce paramètre sert à calculer l épaisseur du trait représentant le message transmis treatment=délai de traitement du message (ce délai apparaît en trait foncé noir après le message). 5
dash= type du trait à dessiner : semi pointillé et full trait plein. step=rang du traitement du message dans l exécution de l algorithme. Ce paramètre est utilisé lors du calcul des ordonnées des différents messages. starttime= permet de faire démarrer un message à un instant t donné. S il y a rien (valeur=blanc) ou s il y a une étoile *, cela signifie que le message est consécutif au message qui le précède. Sinon la valeur indique la date à la quelle doit démarrer le message. Cette date est par convention notée t 0 pour le premier message. Attention, si on définit un point de synchronisation (cf. ci-dessous), il faut remplir le champ avec une étoile * et ne pas le laisser vide. syncpoint : définit un point de synchronisation. Il correspond à l instant d arrivée (sans le délai de traitement) du message lorsque le champ suivant est vide. delta : permet de définir un délai sur le point de synchronisation. Si le champ est présent, le point de synchronisation est défini comme l instant d arrivée du message plus la valeur delta. Soit m 1 un message et m 2 un message qui part 40 unités de temps après l arrivée du message m 1. On met, dans le champ syncp oint de m 1, un point de synchronisation noté T 1 et on met le champ delta à 40. Ensuite on met dans le champ startime de m 2 la valeur T 1. La date de démarrage de m 2 est calculée dynamiquement par le programme. pause : la pause est définie dans le scénario et est identifiée par le message 999; 999;... La première chaîne de caractère est le message à afficher. La seconde désigne la réponse à la question posée. La troisième coresspond au nom du fichier image à charger. Enfin la dernière correspond au titre à afficher après la pause. La pause correspond donc à l affichage d un message avant la pause. Un nouveau scénario est alors affiché après la pause et au chargement d une nouvelle figure.lorsque l utilisateur appuie sur le bouton Continue la nouvelle figure est chargée et le nouveau titre du scénario s affiche. 6
3.3 Remarques importantes 1. L espace (ou blanc) est interprétée par la grammaire comme un caractère au même titre que les autres caractères. Il faut donc éviter d avoir un blanc après un chiffre pour éviter que le programme plante problème de parsing ; 2. Si l on désire mettre un point de synchronisation et pas de startime l on doit écrire simplement debutmessage ;* ;T i où T i est le point de synchronisation. Notez bien l étoile qu il faut mettre dans le champ startime! 3. Si l on désire mettre un startime et pas de point de synchronisation l on doit écrire simplement debutmessage ;T i où T i est le point de synchronisation. On peut rajouter éventuellement un point-virgule à la fin. 4. Tous les messages sont synchronisés par rapport au premier message dont le startt ime est fixé par convention à t 0. 5. Les messages de pause peuvent contenir des balises html de base pour permettre une meilleure présentation. Ce sont essentiellement les balises < html >... < /html > et la balise < br > pour retour à la ligne. L absence des ces balises dans les fichiers scénario que vous rédigez peut entrainer un problème d affichage si les messages sont longs. 6. Les fichiers de scénarios ont une extension.csv. Ils sont lisibles par Excel s ils ne contiennent pas de html. Ils sont lisibles dans tous les cas par le tableur Open Office. Le point-virgule est à interpréter comme un séparateur de champ, cela permet d avoir les scénarios sous forme de tableaux qui sont plus expoitables. Attention, faire sauvegarder sous en sélectionnant le contrôle du filtre et en choisissant ; comme séparateur et rien comme délimiteur de texte. 7
4 Conclusion Le format de fichier imposé permet d adapter le code de l algorithme de chargement des fichiers des différents scénarii lors de la démonstration. Le modèle tel que décrit n impose pas un ordre pour les éléments du scénario. Néanmoins, il est important d éditer les fichiers scénario en s appuyant sur l exemple que nous avons donnée plus haut. 8
A Annexes A.1 Exemple de fichier scénario respectant le modèle avec deux points de synchronisation T 1 et T 2 Le fichier scénario se divise en deux parties. La première partie désigne l en-tête du scénario et décrit les nœud et leurs caratéristiques. La deuxième partie regroupe les différents messages qui seront échangés entre les différents nœuds durant l illustration. A.1.1 L en-tete du scénario # Head of the scenario examplehead.csv ScenarioName ;Location updating procedure between VLRs File ;firstlu.gif ; ; NodeName ;0 ;MS ;ms.gif ; ; NodeName ;1 ;MSC/VLR F2 ;vlr hlr.gif ; ; NodeName ;2 ;HLR F ;vlr hlr.gif ; ; ; ; NodeName ;3 ;MSC/VLR F1 ;vlr hlr.gif ; #PropagThroughput ;sourcenode ;destinationnode ;propagationtime ;throughput Time ; PropagThroughput ;0 ;1 ;40 ;6400 ; ; PropagThroughput ;1 ;0 ;20 ;6400 ; ; PropagThroughput ;1 ;2 ;20 ;6400 ; ; PropagThroughput ;1 ;3 ;20 ;6400 ; ; PropagThroughput ;2 ;1 ;20 ;6400 ; ; PropagThroughput ;2 ;3 ;20 ;6400 ; ; PropagThroughput ;3 ;1 ;20 ;6400 ; ; PropagThroughput ;3 ;2 ;20 ;6400 ; ; Quelques explications : Le titre du scénario sera Location updating procedure between VLRs l image associée au scénario est contenu dans le fichier firstlu.gif ; ; Il ya 4 nœuds avec des imagées qui leur sont associé. Par exemple le lien entre le nœud 0 et le nœud 1 est caractérisé par un temps de propagation de 40 millisecondes et un temps et un débit de 6400 bits/s. Ces valeurs permettent de donner une inclinaison aux différentes flèches dessinées lors de l illustration. 9
A.1.2 Le corps du scénario # Messages of the scenario examplemsg.csv #Data from i to n ;name ;type ;length ;treatment ;dash ;step ;starttime ;synchpoint 0 ;1 ;MM LOCATION UPDATING REQUEST(TMSI,old LAI) ;REQUEST ;160 ;2 ;semi ;0 ;t 0 ;T1 1 ;3 ;MAP SEND AUTHENTICATION INFO(IMSI MS) ;REQUEST ;240 ;2 ;semi ;4 ;T1 ; 3 ;1 ;MAP SEND AUTHENTICATION INFO(RAND,SRES,KC ) ;RESPONSE ;20 ;2 ;semi ;0 ; 1 ;0 ;MAP AUTHENTICATION REQUEST(RAND) ;REQUEST ;160 ;2 ;semi ;0 ;T1 ; 0 ;1 ;MAP AUTHENTICATION RESPONSE(SRES) ;RESPONSE ;64 ;2 ;semi ;0 ; 1 ;2 ;MAP UPDATE LOCATION(IMSI MS, MSC 2, ) ;REQUEST ;720 ;2 ;semi ;0 ; 2 ;3 ;MAP CANCEL LOCATION() ;REQUEST ;512 ;2 ;semi ;0 ; 3 ;2 ;MAP CANCEL LOCATION ACK() ;RESPONSE ;42 ;2 ;semi ;0 ; 999 ;999 ;Le message est-il acquité? ;Voyons a travers la suite du scénario ;newvlr.gif ;Location updating procedure between VLRs 2 ;1 ;MAP INSERT SUBSCRIBER DATA(profile) ;REQUEST ;1632 ;90 ;semi ;0 ;* ;T2 ;20 1 ;2 ;MAP INSERT SUBSCRIBER DATA ACK() ;RESPONSE ;480 ;2 ;semi ;0 ;T2 ; 2 ;1 ;MAP UPDATE LOCATION ACK() ;ONEWAY ;42 ;2 ;semi ;0 ;2 ;T2 ; 1 ;0 ;MM TMSI REALLOCATION COMMAND(TMSI-new) ;REQUEST ;160 ;2 ;full ;0 ; 0 ;1 ;MM TMSI REALLOCATION COMPLETE() ;RESPONSE ;48 ;2 ;full ;0 ; 1 ;0 ;MM LOCATION UPDATING ACCEPT() ;ONEWAY ;48 ;2 ;full ;0 ; Quelques explications : La ligne 0 ;1 ;MM LOCATION UPDATING REQUEST(TMSI,old LAI) ;REQUEST ;160 ;2 ;semi ;0 ;t 0 ;T1 indique que le premier message part du nœud 0 vers le nœud 1. Ce message s appelle MM LOCATION UPDATING REQUEST et possède deux paramètres : TMSI et old LAI. C est une requete (REQUEST). Le message a pour longueur 160 (bits) et aura un temps de traitement de 2 millisecondes sur le nœud 1 et le trait rouge(request)représentant ce message est en pointillé car c est message d ouverture de connection(session). La valeur du step permet de séquencer les messages dans l ordre de leur apparition. Ce premier message est marqué a pour startt ime la valeur t 0 et définit un point de synchronisation notée T 1. Les autres messages suivent le meme format. En particulier, le deuxième et le quatrième message suivent le meme format mais à la différence que ces messages ont pour valeur de startt ime la valuer T 1 qui est le point de synchronisation défini par le premier message. Ces deux messages partent en meme temps dès la fin du traitement du premier message. C est la notion de point de synchronisation. Le message commençant par 999 ;999 est un message de pause : L illustrateur de protocole s arrete. La question posée à l utilisateur est Le message est-il acquité?. Dès que l utilisateur à cliquer sur le bouton Continue la réponse Voyons a travers la suite du scénario s affiche une nouvelle image est chargée newvlr.gif, un nouveau titre apparait Location updating procedure between VLRs et l illustrateur de protocole poursuit son exécution. 10