• Aucun résultat trouvé

10. Spécification des unités de données de protocole ST2

10.3 Éléments SCMP communs

Plusieurs champs et paramètres (qu'on appellera de façon générique des éléments) sont communs à deux PDU ou plus. Ils sont décrits en détail ici au lieu de répéter leur description plusieurs fois. Dans de nombreux cas, la présence d'un paramètre est facultative. Pour permettre de définir et analyser facilement les paramètres, chacun est identifié par un octet PCode suivi par un octet PBytes qui indiquent la longueur du paramètre en octets (y compris le PCode, le PByte, et tous octets de bourrage). Si la longueur des informations n'est pas un multiple de quatre (4) octets, le paramètre est bourré avec de un à trois octets de zéros (0). PBytes est donc toujours un multiple de quatre (4). Les paramètres peuvent être présents dans n'importe quel ordre.

10.3.1 FlowSpec

Le paramètre FlowSpec (PCode = 1) est utilisé dans plusieurs messages SCMP pour porter la spécification de flux ST2. Le paramètre FlowSpec a le format suivant :

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 1 | PBytes | Version | 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

: Détail de FlowSpec : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 12 : Paramètre de FlowSpec o Le champ Version contient la version de la FlowSpec.

o Le champ Détail de FlowSpec contient la spécification de flux et elle est transparente pour l'agent ST. C'est la structure des données à passer au LRM. Il doit être aligné sur quatre octets.

La FlowSpec nulle (voir au paragraphe 9.1) n'a pas de champ Détail de FlowSpec. Le PBytes est mis à quatre (4), et Version est mis à zéro (0). La FlowSpec ST2+ (voir au paragraphe 9.2) est une structure de données de 32 octets. PBytes est mis à 36, et Version est mis à sept (7).

10.3.2 Groupe

Le paramètre Groupe (PCode = 2) est un argument facultatif utilisé pour indiquer que le flux est membre du groupe spécifié.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 2 | PBytes = 16 | Identifiant unique du groupe | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Heure de création du groupe | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Adresse IP de l'initiateur du groupe |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Relation | N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 13 : Paramètre de groupe

o Identifiant unique du groupe, Adresse IP de l'initiateur du groupe et Heure de création du groupe forment ensemble le champ Nom de groupe. Ils sont alloués par la fonction de générateur de nom de groupe (voir au paragraphe 8.2). Identifiant unique du groupe et Heure de création du groupe sont spécifiques de la mise en œuvre et n'ont de définitions que locales.

o Relation a le format suivant :

0

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 0 (non utilisé) |S|P|F|B|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 14 : Champ Relations

Les bits S, P, F et B correspondent respectivement à partage de ressources de sous-réseau, chemin (Path), sort (Fate), et Bande passante (voir la Section 7). Une valeur de 1 indique que la relation existe pour ce groupe. Toutes les combinaisons des quatre bits sont permises. Les bits 0 à 11 du champ Relation sont réservés pour une utilisation future et doivent être mis à 0.

o N ne contient une valeur légale que si le bit B est établi (à 1). C'est la valeur du paramètre N à utiliser comme expliqué au paragraphe 7.1.1.

10.3.3 Adresse de diffusion groupée

Le paramètre Adresse de diffusion groupée (PCode = 3) est un paramètre facultatif qui est utilisé avec l'encapsulation IP et l'établissement d'un groupe de diffusion groupée IP. Ce paramètre est utilisé pour communiquer l'adresse de diffusion groupée IP désirée aux agents ST de prochain bond qui devraient devenir membres du groupe (voir au paragraphe 8.8).

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 3 | PBytes = 8 | 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Adresse IP de diffusion groupée | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 15 : Adresse de diffusion groupée

o Adresse IP de diffusion groupée est l'adresse de diffusion groupée IP de 32 bits à utiliser pour recevoir les paquets de données pour le flux.

10.3.4 Origine

Le paramètre Origine (PCode = 4) est utilisé pour identifier le prochain protocole de couche supérieure, et le SAP utilisé en conjonction avec ce protocole.

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 4 | PBytes | Prochain Ptcl |OctetsSAPOrigin|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

: SAP d'origine : Bourrage | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 16 : Origine

o Prochain Ptcl est un champ de 8 bits utilisé dans les opérations de démultiplexage pour identifier le protocole à utiliser au

dessus de ST. Les valeurs de Prochain Ptcl sont dans le même espace de nombres que le champ Protocole de l'en-tête IP et sont par conséquent définies dans la RFC "Numéros alloués" [RFC1700].

o OctetsSAPOrigin spécifie la longueur du SAP d'origine, à l'exclusion de tout bourrage nécessaire pour conserver l'alignement sur 32 bits.

o SAP d'origine identifie le SAP de l'origine qui est associé au prochain protocole.

Noter que les 32 bits de l'adresse IP de l'origine du flux ne sont pas inclus dans ce paramètre parce que ils sont toujours disponibles au titre de l'en-tête ST.

10.3.5 RecordRoute

Le paramètre RecordRoute (PCode = 5) est utilisé pour demander que le chemin entre l'origine et la cible soit enregistré et livré à l'application d'utilisateur. L'agent ST à l'origine (ou à la cible) incluant ce paramètre, doit déterminer la longueur du paramètre, indiquée par le champ PBytes. Les agents ST qui traitent les messages contenant ce paramètre ajoutent leur adresse IP de réception dans la position indiquée dans l'espace permis par le champ Décalage libre. Si aucun espace n'est disponible, le paramètre est passé inchangé. Lorsque il est inclus par l'origine, tous les agents entre l'origine et la cible ajoutent leurs adresses IP et cette information est fournie à l'application de la cible. Lorsque elle est incluse par la cible, tous les agents entre la cible et l'origine, incluse, ajoutent leurs adresses IP et cette information est fournie à l'application à l'origine.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 5 | PBytes | 0 | Décalage libre|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Adresse IP 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

: ... : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Adresse IP N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 17 : RecordRoute

o PBytes est la longueur du paramètre en octets. La longueur est déterminée par l'agent (cible ou origine) qui introduit le premier le paramètre. Une fois établie, la longueur du paramètre reste inchangée.

o Décalage libre indique le décalage par rapport au début du paramètre, pour la prochaine adresse IP à enregistrer. Lorsque le Décalage libre est supérieur ou égal à PBytes, le paramètre RecordRoute est plein.

o Adresse IP est rempli, dans l'espace permis, par chaque agent ST qui traite ce paramètre.

10.3.6 Cible et Liste de cibles

Plusieurs messages de contrôle utilisent un paramètre appelé Liste des cibles (PCode = 6), qui contient des informations sur les cibles auxquelles le message appartient. Pour chaque cible de la Liste des cibles, les informations comportent les 32 bits de l'adresse IP de la cible, le SAP applicable au prochain protocole de couche supérieure, et la longueur du SAP (Octets SAP). Par conséquent, la structure d'une cible peut être de longueur variable. Chaque entrée a le format indiqué à la Figure 18.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Adresse IP de cible | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Octets cible | Octets SAP | SAP : Bourrage | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 18 : Cible o Adresse IP de cible est les 32 bits de l'adresse IP de la cible.

o Octets cible est la longueur de la structure cible, commençant par l'Adresse IP de cible.

o Octets SAP est la longueur du SAP, à l'exclusion de tout bourrage requis pour conserver l'alignement à 32 bits.

o SAP peut être plus long que 2 octets et il comporte un bourrage si nécessaire. Il n'y aura pas de bourrage pour les SAP qui font des longueurs de 2, 6, 10, etc., octets.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 6 | PBytes | Compte de cible = N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Cible 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

: : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Cible N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 19 : Liste de cibles

10.3.7 Données d'utilisateur

Le paramètre Données d'utilisateur (PCode = 7) est un paramètre facultatif qui peut être utilisé par le protocole de couche supérieure ou une application pour porter des informations arbitraires à ses homologues. Ce paramètre est propagé dans des messages de contrôle et son contenu n'a pas de signification pour les agents ST. Noter que comme la taille des messages de contrôle est limitée par la plus petite MTU sur le chemin vers les cibles, la taille maximum de ce paramètre ne peut pas être spécifiée à priori. Si la taille de ce paramètre est cause qu'un message excède la MTU du réseau, un agent ST se comporte comme décrit au paragraphe 5.1.2. Le paramètre doit être bourré à un multiple de 32 bits.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| PCode = 7 | PBytes | Octets d'utilisateur | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

: Informations d'utilisateur : Bourrage | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 20 : Données d'utilisateur o Octets d'utilisateur spécifie le nombre d'octets valides d'informations d'utilisateur.

o Informations d'utilisateur sont des données arbitraires significatives pour le protocole ou application de la prochaine couche supérieure.

10.3.8 Traitement des paramètres indéfinis

Un agent ST doit être capable de traiter tous les paramètres dont la liste figure ci-dessus. Pour prendre en charge les possibles utilisations futures, les paramètres avec des PCodes inconnus doivent aussi être pris en charge. Si un agent reçoit un message qui contient un paramètre avec une valeur de Pcode inconnue, l'agent devrait traiter le paramètre comme si il était un paramètre Données d'utilisateur. C'est-à-dire que le contenu du paramètre devrait être ignoré, et le message devrait être propagé, comme approprié, avec le message de contrôle qui s'y rapporte.

Documents relatifs