Équipe d’ingénierie de l’Internet (IETF)	F. Knight, NetApp	
Request for Comments : 7144	M. Chadalapaka, Microsoft	
Catégorie : En cours de normalisation	avril 2014 	
ISSN: 2070-1721	Traduction Claude Brière de L’Isle	

Mise à jour des caractéristiques SCSI du protocole d’interface Internet de système de petit ordinateur (iSCSI)

Résumé
L'interface Internet de système de petit ordinateur (iSCSI, Internet Small Computer System Interface) est un protocole de transport SCSI qui transpose la famille des protocoles SCSI en TCP/IP. Le protocole iSCSI tels que spécifié dans la RFC  7143 (et comme précédemment spécifié par la combinaison des RFC 3720 et RFC 5048) se fonde sur la version SAM-2 (Modèle d'architecture SCSI-2) de la famille de protocoles SCSI. Le présent document définit des améliorations au protocole iSCSI pour prendre en charge certaines caractéristiques supplémentaires du protocole SCSI qui ont été définies dans SAM-3, SAM-4, et SAM-5.

Ce document est un document d'accompagnement de la RFC 7143.

Statut de ce mémoire
Ceci est un document de l’Internet en cours de normalisation.

Le présent document a été produit par l’équipe d’ingénierie de l’Internet (IETF). Il représente le consensus de la communauté de l’IETF. Il a subi une révision publique et sa publication a été approuvée par le groupe de pilotage de l’ingénierie de l’Internet (IESG). Plus d’informations sur les normes de l’Internet sont disponibles à la Section 2 de la [RFC5741].

Les informations sur le statut actuel du présent document, tout errata, et comment fournir des réactions sur lui peuvent être obtenues à http://www.rfc-editor.org/info/rfc7144

Notice de droits de reproduction
Copyright (c) 2014 IETF Trust et les personnes identifiée comme auteurs du document. Tous droits réservés.

Le présent document est soumis au BCP 78 et aux dispositions légales de l’IETF Trust qui se rapportent aux documents de l’IETF (http://trustee.ietf.org/license-info) en vigueur à la date de publication de ce document. Prière de revoir ces documents avec attention, car ils décrivent vos droits et obligations par rapport à ce document. Les composants de code extraits du présent document doivent inclure le texte de licence simplifié de BSD comme décrit au paragraphe 4.e des dispositions légales du Trust et sont fournis sans garantie comme décrit dans la licence de BSD simplifiée.
Table des matières
1. Introduction	2
2. Définitions, acronymes, et résumé du document	2
2.1 Définitions	2
2.2 Acronymes	2
2.3 Nouvelle sémantique	2
3. Transposition de la terminologie	3
4. Utilisation de nouvelle caractéristique	4
4.1 Négociation de l'utilisation d'une nouvelle caractéristique	4
4.2 Impact sur les données INQUIRY standard – descripteurs de version iSCSI	4
5. Commandes SCSI	4
5.1 Ajout de commande SCSI	4
5.2 Ajout de réponse SCSI	5
6. Fonctions de gestion de tâche	7
6.1 PDU de demande de fonction de gestion de tâche	7
6.2 Fonctions existantes de gestion de tâche	7
6.3 Ajout de fonction de gestion de tâche	7
6.4.  Task Management Function Responses	9
6.5 Demandes de gestion de tâche affectant plusieurs tâches	10
7.1. Nouvelles clés Text de fonctionnement	10
8. Considérations sur la sécurité	11
9. Considérations relatives à l'IANA	11
10. Références	13
10.1. Références normatives	13
10.2 Références pour information	13
11. Remerciements	13
Adresse des auteurs	13

 	1.	Introduction

Le protocole iSCSI d'origine [RFC3720] a été construit sur la base du modèle [SAM2] pour SCSI. Plusieurs nouvelles caractéristiques et capacités ont été ajoutées au modèle d'architecture SCSI dans les dernières années (au moment de la publication de ce document, SAM-5 était la version courante du modèle d'architecture SCSI). Le présent document n'est pas une révision complète de la [RFC3720]. Il est plutôt destiné à accompagner la RFC 7143 ; le présent document peut aussi être utilisé pour accompagner la combinaison des [RFC3720] et [RFC5048], bien que ces deux RFC aient été rendues obsolètes par la [RFC7143].

Pour plus d'informations sur le modèle d'architecture SCSI et les commandes principales de SCSI v-4, contacter le comité technique INCITS T10 pour les interfaces de mémorisation SCSI à < http://www.t10.org >.

 	2.	Définitions, acronymes, et résumé du document
 	2.1	Définitions
Les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" dans ce document sont à interpréter comme décrit dans la [RFC2119].

 	2.2	Acronymes
ACA (Auto Contingent Allegiance) allégeance auto contingente
AHS (Additional Header Segment) segment d'en-tête supplémentaire
ISID (Initiator Session Identifier) identifiant initiateur de session
LU (Logical Unit) unité logique
PDU (Protocol Data Unit) unité de données de protocole
SAM-5 (SCSI Architecture Model - 5) (voir [SAM5]) modèle d'architecture SCSI
TSIH (Target Session Identifying Handle) descripteur identifiant de session cible

 	2.3	Nouvelle sémantique
Le présent document spécifie une nouvelle sémantique pour iSCSI. Ce paragraphe résume le contenu du document.

Section 3 : La transposition d'objets iSCSI en objets SAM-5. Le nœud iSCSI peut contenir les deux capacités d'initiateur et de cible.

Section 4 : Utilisation des nouvelles caractéristiques. L'utilisation des nouvelles caractéristiques exige une négociation. La négociation peut avoir un impact sur les données du INQUIRY standard.

Section 5 : Opérations des nouvelles commandes Le champ PRI pour la priorité de commande SCSI a été ajouté à la PDU Commande SCSI (voir le paragraphe 5.1.1). Le champ Qualificatif d'état a été ajouté à la PDU Réponse SCSI (voir le paragraphe 5.2.1). Les données de sens peuvent être retournées (via Autosense) pour tout état SCSI, et pas seulement CHECK CONDITION (voir le paragraphe 5.2.2).

Section 6 : Nouvelles fonctions de gestion de tâche. Quatre nouvelles fonctions de gestion de tâche (QUERY TASK, QUERY TASK SET, I_T NEXUS RESET, et QUERY ASYNCHRONOUS EVENT) ont été ajoutées (voir le paragraphe 6.3). Une nouvelle réponse "Fonction réussie" a été ajoutée (voir au paragraphe 6.4.2).

Section 7 : Nouvelle clé de négociation. Une nouvelle clé de négociation a été ajoutée pour permettre l'utilisation des nouvelles caractéristiques des Sections 5 et 6.

 	3.	Transposition de la terminologie

Le modèle iSCSI (défini dans la [RFC7143]) utilise une terminologie différente de celle du modèle d'architecture SCSI. Dans certains cas, iSCSI utilise plusieurs termes pour décrire ce qui est décrit par un seul terme dans le modèle d'architecture SCSI. Les termes iSCSI et les termes SAM-5 ne sont pas nécessairement équivalents, mais les termes iSCSI représentent plutôt des exemples des objets ou classes décrits dans SAM-5 comme suit :

Terminologie de la RFC 7143	Terminologie de SAM-5	
Entité réseau	aucune	
Nœud iSCSI	Appareil SCSI	
Nom iSCSI	Nom d'appareil SCSI	
Nom de nœud iSCSI	Nom d'appareil SCSI	
Nœud initiateur iSCSI	Appateil initiateur SCSI	
Nom d'initiateur iSCSI	Nom d'appareil SCSI	
Accès d'initiateur iSCSI	Accès d'initiateur SCSI	
Identifiant (c'est-à-dire, nom de nœud iSCSI + ,,,i, + ISID)**	Identifiant	
Nom d'accès d'initiateur iSCSI (nom de nœud iSCSI + ,,,i, + ISID)**	Nom d'accès d'initiateur SCSI	
Nœud cible iSCSI	Appareil cible SCSI	
Nom de cible iSCSI	Nom d'appareil SCSI	
Accès de cible iSCSI	Accès de cible SCSI	
Identifiant (nom de nœud iSCSI + ,,,t, + étiquette de groupe portail cible)**	Identifiant	
Nom d'accès ce cible iSCSI (nom de nœud iSCSI + ,,,t, + étiquette de groupe portail cible)**	Nom d'accès de cible SCSI	
Groupe de portail cible iSCSI	Accès de cible SCSI	
Nom d'initiateur iSCSI + ',i,' + ISID + nom de cible iSCSI + ',t,' +  étiquette de groupe portail cible	Identifiant de nexus I_T	
Étiquette de groupe portail cible	Identifiant d'accès relatif	

** Le codage de texte de la valeur d'ISID et la valeur de l'étiquette de groupe portail cible inclut un ,,0X ou ,,0x initial (voir la [RFC7143]).

Le diagramme qui suit montre un exemple d'une combinaison d'appareil cible et d'appareil initiateur. Une telle configuration peut exister dans un appareil cible qui met en œuvre un gestionnaire de copie SCSI. Cet exemple montre comment une session qui partage des portails réseau au sein d'un groupe portail peut être établie (voir le groupe portail cible 1). De plus, cet exemple montre l'initiateur qui utilise un groupe portail différent de celui du groupe portail cible, mais dont le groupe portail de l'initiateur partage le portail réseau A avec le groupe portail cible.

   ----------------------------Réseau IP ---------------------
           |               |                    |
      +----|---------------|-------+       +----|------------+
      | +----------+ +----------+  |       | +----------+    |
      | | Portail  | | Portail  |  |       | | Portail  |    |
      | | réseau A | | réseau B |  |       | | réseau A |    |
      | +----------+ +----------+  |       | +----------+    |
      |    |    Groupe     |       |       |    | Groupe     |
      |    |    portail    |       |       |    | portail    |
      |    |    cible 1    |       |       |    |initiateur 2|
      +----|---------------|-------+       +----|------------+
           |               |                    |
+----------|---------------|--------------------|--------------------+
| +--------|---------------|----+ +-------------|------------------+ |
| |+-------|---------------|---+| |+------------|-----------------+| |
| ||Session iSCSI (côté cible) || ||Session iSCSI(côté initiateur)|| |
| ||                           || ||                              || |
| ||       (TSIH = 56)         || ||        (SSID = 48)           || |
| |+---------------------------+| |+------------------------------+| |
| |                             | |                                | |
| |      Nœud iSCSI cible       | |      Nœud iSCSI initiateur     | |
| +-----------------------------+ +--------------------------------+ |
|                         Nœud iSCSI                                 |
|              (au sein de l'entité réseau, non montrée)             |
+--------------------------------------------------------------------+

 	4.	Utilisation de nouvelle caractéristique
 	4.1	Négociation de l'utilisation d'une nouvelle caractéristique
La clé texte opérationnelle iSCSIProtocolLevel (niveau de protocole iSCSI) (voir le paragraphe 7.1.1) qui contient une valeur de "2" DOIT être négociée pour permettre l'utilisation des caractéristiques décrites dans la présente RFC.

C'est un mécanisme de négociation iSCSI qui permet à iSCSI la prise en charge des capacités SCSI correspondantes (voir [SAM5] et [SPC4]). Pour cette raison, la négociation de cette clé à une valeur de "2" est nécessaire mais pas suffisante pour utiliser les capacités SCSI permises par les caractéristiques iSCSI de la présente RFC.

Par exemple, une mise en œuvre iSCSI peut négocier cette nouvelle clé à "2" mais répondre aux nouvelles fonctions de gestion de tâches (paragraphe 6.3) par un "Fonction de gestion de tâches non prise en charge" (qui indique qu'une erreur SCSI empêche la fonction d'être effectuée). À l'opposé, si la clé est négociée à "2", une mise en œuvre iSCSI NE DOIT PAS rejeter une PDU Demande de fonction de gestion de tâche qui demande une des nouvelles fonctions de gestion de tâche (à ce titre, un rejet va rapporter une erreur de protocole iSCSI).

 	4.2	Impact sur les données INQUIRY standard – descripteurs de version iSCSI
La valeur négociée de la clé iSCSIProtocolLevel est un incrément à partir de la valeur de descripteur de version iSCSI de base (0960h) ; voir [SPC4]. Si le serveur d'appareil SCSI retourne un descripteur de version iSCSI dans les données INQUIRY standard, la valeur retournée dans ce descripteur de version iSCSI DOIT alors être réglée à la somme de la valeur de base (0960h) plus la valeur négociée de la clé iSCSIProtocolLevel. (Par exemple, si le iSCSIProtocolLevel=2 est négocié, et si un descripteur de version iSCSI est retourné dans les données INQUIRY standard, il est réglé à 0962h.)

À l'appui de cette fonctionnalité, le comité technique INCITS T10, qui est responsable des normes SCSI, a alloué les codes de descripteur de version SCSI 0961h-097Fh à la RFC 7144 à gérer par l'IANA via les valeurs 1 à 31 de la clé iSCSIProtocolLevel ; voir la Section 9. La description "Pas de version réclamée" pour la valeur 0 de la clé iSCSIProtocolLevel correspond à l'allocation par T10 du code de descripteur de version SCSI 0960h au "iSCSI (pas de version réclamée)" -- pour cette raison, l'allocation de la valeur 0 dans le registre IANA pour la clé iSCSIProtocolLevel ne doit pas être changée.

 	5.	Commandes SCSI
 	5.1	Ajout de commande SCSI
Le format de la PDU Commande SCSI est :

octet/      0        |       1       |       2       |       3       |
     |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
     +---------------+---------------+---------------+---------------+
    0|.|I| 0x01      |F|R|W|. .|ATTR | PRI   |  Réservé              |
     +---------------+---------------+---------------+---------------+
    4|TotalAHSLength | Longueur de segment de données                |
     +---------------+---------------+---------------+---------------+
    8| Numéro d'unité logique (LUN)                                  |
     +                                                               +
   12|                                                               |
     +---------------+---------------+---------------+---------------+
   16| Étiquette de tâche d'initiateur                               |
     +---------------+---------------+---------------+---------------+
   20| Longueur attendue du transfert de données                     |
     +---------------+---------------+---------------+---------------+
   24| Numéro de séquence de commande                                |
     +---------------+---------------+---------------+---------------+
   28| Numéro de séquence d'état attendu                             |
     +---------------+---------------+---------------+---------------+
   32/ Bloc de descripteur de commande SCSI (CDB)                    /
    +/                                                               /
     +---------------+---------------+---------------+---------------+
   48/ Segment d'en-tête supplémentaire(facultatif)                  /
     +---------------+---------------+---------------+---------------+
    x/ Résumé d'en-tête (facultatif)                                 /
     +---------------+---------------+---------------+---------------+
    y/ (Segment de données, données de commande) (facultatif)        /
    +/                                                               /
     +---------------+---------------+---------------+---------------+
    z/ Résumé de données (facultatif)                                /
     +---------------+---------------+---------------+---------------+

La PDU Commande SCSI ci-dessus est dupliquée de la [RFC7143] pour référence pour montrer le champ PRI. Pour tout champ autre que le champ PRI, le texte de la [RFC7143] prend le pas sur celui du paragraphe 5.1 de ce document en cas de conflit entre les deux documents.

 	5.1.1	Priorité de commande (octet 2)
La priorité de commande (PRI) est un champ de quatre bits qui spécifie l'importance relative de programmation de cette commande par rapport aux autres commandes qui sont déjà dans l'ensemble de tâches avec les attributs de tâche SIMPLE (voir [SAM5]).

La Section 11 ("Formats de PDU iSCSI") de la [RFC7143] exige que les envoyeurs règlent ce champ à zéro. Un envoyeur NE DOIT PAS régler ce champ à une valeur autre que zéro sauf si la clé texte iSCSIProtocolLevel définie au paragraphe  7.1.1 a été négociée sur la session avec la valeur de "2".

Ce champ DOIT être ignoré par les cibles iSCSI sauf si la clé texte iSCSIProtocolLevel avec une valeur de "2" comme défini au paragraphe 7.1.1 a été négociée sur la session.

Voir dans [SAM5] des considérations supplémentaires sur l'utilisation du champ Priorité de commande.

 	5.2	Ajout de réponse SCSI
Le format de la PDU Réponse SCSI est :

octet/      0        |       1       |       2       |       3       |
     |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
     +---------------+---------------+---------------+---------------+
    0|.|.| 0x21      |1|. .|o|u|O|U|.| Réponse       | État          |
     +---------------+---------------+---------------+---------------+
    4|TotalAHSLength | Longueur de segment de données                |
     +---------------+---------------+---------------+---------------+
    8| Qualifiant d'état             | Réservé                       |
     +---------------+---------------+---------------+---------------+
   12| Réservé                                                       |
     +---------------+---------------+---------------+---------------+
   16| Étiquette de tâche d'initiateur                               |
     +---------------+---------------+---------------+---------------+
   20| Étiquette SNACK ou réservé                                    |
     +---------------+---------------+---------------+---------------+
   24| Numéro de séquence d'état (StatSN)                            |
     +---------------+---------------+---------------+---------------+
   28| Numéro attendu de séquence de commande (ExpCmdSN)             |
     +---------------+---------------+---------------+---------------+
   32| Numéro de séquence de commande maximum (MaxCmdSN)             |
     +---------------+---------------+---------------+---------------+
   36| Numéro attendu de séquence de données (ExpDataSN) ou réservé  |
     +---------------+---------------+---------------+---------------+
   40| Compte résiduel de lecture bidirectionnel ou réservé          |
     +---------------+---------------+---------------+---------------+
   44| Compte résiduel ou réservé                                    |
     +---------------+---------------+---------------+---------------+
    x/ Résumé d'en-tête (facultatif)                                 /
     +---------------+---------------+---------------+---------------+
    y/ Segment de données (facultatif)                               /
    +/                                                               /
     +---------------+---------------+---------------+---------------+
    z/ Résumé de données (facultatif)                                /
     +---------------+---------------+---------------+---------------+

La PDU Réponse SCSI ci-dessus est dupliquée de la [RFC7143] pour référence pour montrer le champ Qualifiant d'état. Pour tout champ autre que le champ État, le champ Qualifiant d'état et le champ Segment de données – Segment de données de réponse et de sens, le texte de la [RFC7143] prend le pas sur clui du paragraphe 5.2 du présent document dans le cas de conflit.

 	5.2.1	Qualifiant d'état
Le qualifiant d'état donne des informations d'état supplémentaires (voir [SAM5]).

Comme défini à la Section 11 ("Formats des PDU iSCSI") de la [RFC7143], les envoyeurs conformes règlent déjà ce champ à zéro. Les envoyeurs conformes NE DOIVENT PAS régler ce champ à une valeur autre que zéro sauf si la clé texte iSCSIProtocolLevel d'une valeur de "2" comme défini au paragraphe 7.1.1 a été négociée sur la session.

Ce champ DOIT être ignoré par les receveurs sauf si la clé texte iSCSIProtocolLevel d'une valeur de "2" comme défini au paragraphe 7.1.1 a été négociée sur la session.

 	5.2.2	Segment de données - segment de données de sens et de réponse
Le paragraphe 11.4.7 de la [RFC7143] spécifie que les cibles iSCSI DOIVENT prendre en charge et activer Autosense. Si l'état est Condition de vérification (0x02), Segment de données DOIT contenir les données de sens pour la commande défaillante. Bien que la [RFC7143] ne donne pas d'instructions sur la façon de traiter l'état de Segment de données quand l'état n'est pas Condition de vérification (0x02) (c'est-à-dire, il n'est pas interdit que Segment de données contienne des données de sens quand l'état n'est pas Condition de vérification) la négociation de la clé texte iSCSIProtocolLevel d'une valeur de "2" comme défini au paragraphe 7.1.1 indique explicitement que le segment de données PEUT contenir des données de sens à tout moment, quelle que soit la valeur du champ État.

 	6.	Fonctions de gestion de tâche
 	6.1	PDU de demande de fonction de gestion de tâche
octet/      0        |       1       |       2       |       3       |
     |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
     +---------------+---------------+---------------+---------------+
    0|.|I| 0x02      |1| Fonction    | Réservé                       |
     +---------------+---------------+---------------+---------------+
    4|TotalAHSLength | Longueur de segment de données                |
     +---------------+---------------+---------------+---------------+
    8| Numéro d'unité logique (LUN)                                  |
     +                                                               +
   12|                                                               |
     +---------------+---------------+---------------+---------------+
   16| Étiquette de tâche d'initiateur                               |
     +---------------+---------------+---------------+---------------+
   20| Étiquette de tâche référencée ou 0xffffffff                   |
     +---------------+---------------+---------------+---------------+
   24| Numéro de séquence de commande (CmdSN)                        |
     +---------------+---------------+---------------+---------------+
   28| Numéro de séquence d'état attendu (ExpStatSN)                 |
     +---------------+---------------+---------------+---------------+
   32| Numéro de séquence de commande référencé (RefCmdSN) ou réservé|
     +---------------+---------------+---------------+---------------+
   36| Numéro de séquence de données attendu (ExpDataSN) ou réservé  |
     +---------------+---------------+---------------+---------------+
   40| Réservé                                                       /
    +/                                                               /
     +---------------+---------------+---------------+---------------+
   48| Résumé d'en-tête (facultatif)                                 |
     +---------------+---------------+---------------+---------------+

La PDU Demande de fonction de gestion de tâche ci-dessus est dupliquée de la [RFC7143] pour référence. La [RFC7143] prend le pas sur le texte des paragraphes 6.1 et 6.2 du présent document en cas de conflit.

 	6.2	Fonctions existantes de gestion de tâche
Le paragraphe 11.5 de la [RFC7143] définit la sémantique de la demande de réalisation des fonctions de gestion de tâche. Les fonctions de gestion de tâche suivantes sont définies :
1 : ABORT TASK (interrompre la tâche)
2 : ABORT TASK SET (interrompre l'ensemble de tâches)
3 : CLEAR ACA (nettoyer l'allégeance auto contingente)
4 : CLEAR TASK SET (nettoyer l'ensemble de tâches)
5 : LOGICAL UNIT RESET (réinitialiser l'unité logique)
6 : TARGET WARM RESET (réinitialisation à chaud de la cible)
7 : TARGET COLD RESET (réinitialisation à froid de la cible)
8 : TASK REASSIGN (réallocation de tâche)

 	6.3	Ajout de fonction de gestion de tâche
Des codes de gestion de tâche supplémentaires figurent ci-dessous. Pour une description plus détaillée de la gestion de tâche SCSI, voir [SAM5].

9 : QUERY TASK (interrogation de tâche) - détermine si la commande identifiée par le champ Étiquette de tâche référencée est présente dans l'ensemble de tâches.

10  : QUERY TASK SET (interrogation d'ensemble de tâches) - détermine si une commande est présente dans l'ensemble de tâches pour le nexus I_T_L sur lequel a été reçue la fonction de gestion de tâche.

11  : I_T NEXUS RESET (réinitialisation de nexus I_T) – effectue une fonction de perte de nexus I_T (voir [SAM5]) pour le nexus I_T sur lequel a été reçue la fonction de gestion de tâche.

12  : QUERY ASYNCHRONOUS EVENT (interrogation d'événement asynchrone) - détermine si il y a une condition d'attention d'unité ou une erreur différée en instance pour le nexus I_T_L sur lequel la fonction de gestion de tâche a été reçue.

Ces demandes de fonction de gestion de tâche NE DOIVENT PAS être envoyées à moins que la clé texte iSCSIProtocolLevel (niveau de protocole iSCSI) d'une valeur de "2" comme défini au paragraphe 7.1.1 ait été négociée sur la session.

Tout initiateur conforme qui envoie une des nouvelles fonctions de gestion de tâche définies dans ce paragraphe DOIT aussi prendre en charge toutes les réponses de fonction de nouvelle gestion de tâche (comme spécifié au paragraphe  6.4.2).

Pour toutes les fonctions de gestion de tâche détaillées dans cette section, la réponse de fonction de gestion de tâche DOIT être retournée comme précisé au paragaphe 6.4.

La cible iSCSI DOIT s'assurer qu'aucune réponse pour les commandes couvertes par une fonction de gestion de tâche n'est envoyée à l'accès d'initiateur iSCSI après la réponse de gestion de tâche sauf pour les commandes couvertes par un TASK REASSIGN (réallocation de tâche), QUERY TASK (interrogation de tâche), ou QUERY TASK SET (interrogation d'ensemble de tâches).

Si une Interrogation de tâche est produite pour une tâche déjà créée par une commande immédiate, le numéro de séquence de commande (CmdSN) DOIT être celui de la demande de gestion de tâche elle-même (c'est-à-dire que CmdSN et RefCmdSN sont égaux) ; autrement, RefCmdSN DOIT être réglé au numéro de séquence de commande de la tâche à interroger (inférieur au CmdSN).

Si la connexion est encore active (elle n'est pas en train de subir un désétablissement implicite ou explicite) l'interrogation de tâche DOIT être produite sur la connexion sur laquelle la tâche a été interrogée comme allégeante au moment où a été produite la demande de gestion de tâche. Si la connexion est implicitement ou explicitement désétablie (c'est-à-dire, si aucune autre demande n'a été produite sur la connexion défaillante et aucune autre réponse ne sera reçue sur elle) une demande de fonction Interrogation de tâche peut être produite sur une autre connexion. Cette demande de gestion de tâche va alors établir une nouvelle allégeance pour la commande interrogée.

À la cible, une fonction Interrogation de tâche NE DOIT PAS être exécutée sur une demande de gestion de tâche ; une telle demande DOIT résulter en une réponse de gestion de tâche de "Fonction rejetée".

Pour la fonction Réinitialisation de nexus I_T, l'appareil cible DOIT répondre à la fonction comme défini dans [SAM5].  Chaque unité logique accessible via le nexus I_T receveur DOIT se comporter comme imposé par la fonction de perte de nexus I_T dans [SAM5] pour le nexus I_T sur lequel a été reçue la fonction de gestion de tâche. L'appareil cible DOIT abandonner toutes les connexions de la session sur laquelle est reçue cette fonction. Indépendamment des valeurs DefaultTime2Wait et DefaultTime2Retain applicables à la session sur laquelle cette fonction est reçue, l'appareil cible DOIT considérer chaque connexion participante dans la session comme étant arrivée à une fin de temporisation immédiate, conduisant à l'état FREE (libre). Les fins de temporisation résultantes causent l'événement Fin de temporisation de session défini dans la [RFC7143], qui à son tour déclenche la notification de perte de nexus I_T à la couche SCSI comme décrit dans la [RFC7143].

 	6.3.1	Champ LUN
Ce champ est exigé pour les fonctions qui s'adressent à une LU spécifique (c'est-à-dire, ABORT TASK, CLEAR TASK SET, ABORT TASK SET, CLEAR ACA, LOGICAL UNIT RESET, QUERY TASK, QUERY TASK SET, et QUERY ASYNCHRONOUS EVENT) et est réservé dans toutes les autres.

 	6.3.2	Étiquette de tâche référencée
L'étiquette de tâche de référence est l'étiquette de tâche d'initiateur de la tâche à interrompre pour la fonction Interrompre la tâche, à réallouer pour la fonction Réallocation de tâche, ou à interroger pour la fonction Interroger la tâche. Pour toutes les autres fonctions, ce champ DOIT être réglé à la valeur réservée de 0xffffffff.

 	6.3.3	RefCmdSN
Si une Interrogation de tâche est produite pour une tâche créée par une commande immédiate, le RefCmdSN DOIT alors être celui de la demande de gestion de tâche elle-même (c'est-à-dire, CmdSN et RefCmdSN sont égaux).

Pour une Interrogation de tâche d'une tâche créée par une commande non immédiate, le RefCmdSN DOIT être réglé au numéro de séquence de commande de la tâche identifiée par le champ Étiquette de tâche référencée. Les cibles doivent utiliser ce champ comme décrit au paragraphe 11.6.1 de la [RFC7143] quand la tâche identifiée par le champ Étiquette de tâche référencée n'est pas dans l'ensemble de tâches.

 	6.4	Réponses de fonction de gestion de tâche
 	6.4.1	PDU Réponse de fonctions de gestion de tâche
octet/      0        |       1       |       2       |       3       |
     |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
     +---------------+---------------+---------------+---------------+
    0|.|.| 0x22      |1| Réservé     | Réponse       | Réservé       |
     +---------------+---------------+---------------+---------------+
    4|TotalAHSLength | Longueur du segment de données                |
     +-----------------------------------------------+---------------+
    8| Informations de réponse supplémentaires       | Réservé       |
     +-----------------------------------------------+---------------+
   12| Réservé                                                       |
     +---------------+---------------+---------------+---------------+
   16| Étiquette de tâche d'initiateur                               |
     +---------------+---------------+---------------+---------------+
   20| Réservé                                                       |
     +---------------+---------------+---------------+---------------+
   24| Numéro de séquence d'état (StatSN)                            |
     +---------------+---------------+---------------+---------------+
   28| Numéro de séquence de commande attendu (ExpCmdSN)             |
     +---------------+---------------+---------------+---------------+
   32| Numéro de séquence de commande maximum (MaxCmdSN)             |
     +---------------+---------------+---------------+---------------+
   36/ Réservé                                                       /
    +/                                                               /
     +---------------+---------------+---------------+---------------+
   48| Résumé d'en-tête (facultatif)                                 |
     +---------------+---------------+---------------+---------------+

Le paragraphe 11.6 de la [RFC7143] définit la sémantique des réponses aux fonctions SCSI de gestion de tâche. Les réponses suivantes sont définies dans la [RFC7143] :
0 : Fonction achevée
1 : Tâche inexistante
2 : LUN inexistant
3 : Tâche encore allégeante
4 : Réallocation d'allégeance de tâche non prise en charge
5 : Fonction de gestion de tâche non prise en charge
6 : Échec d'autorisation de fonction
255  : Fonction rejetée

La PDU Réponse de fonction de gestion de tâche ci-dessus et la liste des réponses de fonction de gestion de tâche ci-dessus sont dupliquées de la [RFC7143] et ne sont que pour référence. La [RFC7143] prend le pas sur le texte du paragraphe 6.4.1 de ce document dans le cas d'un conflit.

Les réponses aux nouvelles fonctions de gestion de tâche (voir le paragraphe 6.4.2) sont décrites ci-dessous. De plus, une nouvelle réponse de gestion de tâche est ajoutée. Voir les descriptions détaillées des réponses de gestion de tâche SCSI dans [SAM5].

Pour les fonctions QUERY TASK, QUERY TASK SET, I_T NEXUS RESET, et QUERY ASYNCHRONOUS EVENT, la cible effectue la fonction de gestion de tâche demandée et renvoie une réponse de gestion de tâche à l'initiateur.

 	6.4.2	Ajout de réponse de fonction de gestion de tâche
La nouvelle réponse figure ci-dessous  :

7 : Fonction réussie

En termes symboliques, la valeur de réponse 7 se transpose en la réponse de service SCSI de FUNCTION SUCCEEDED dans [SAM5].

La réponse de fonction de gestion de tâche de "Fonction réussie" DOIT être prise en charge par un initiateur qui envoie une de ces nouvelles fonctions de gestion de tâche (voir le paragraphe 6.3).

Pour la fonction Interrogation de tâche, si la tâche spécifiée est dans l'ensemble de tâches, l'unité logique retourne alors une valeur de réponse de "Fonction réussie", et des informations de réponse supplémentaires sont retournées comme spécifié dans [SAM5]. Si la tâche spécifiée n'est pas dans l'ensemble de tâches, l'unité logique retourne alors une valeur de réponse de  "Fonction achevée".

Pour la fonction Interrogation d'ensemble de tâches, si une commande quelle qu'elle soit est présente dans l'ensemble de tâches du nexus I_T_L spécifié, l'unité logique retourne alors une valeur de réponse de "Fonction réussie". Si aucune commande n'est présente dans l'ensemble de tâches provenant du nexus I_T_L spécifié, l'unité logique retourne alors une valeur de réponse de "Fonction achevée".

Pour la fonction Réinitialisation de nexus I_T, après l'achèvement des événements décrits au paragraphe 6.3 pour cette fonction, l'unité logique retourne une valeur de réponse de "Fonction achevée". Cependant, comme la cible abandonne toutes les connexions, la réponse de service (définie dans [SAM5]) pour cette fonction SCSI de gestion de tâche peut n'être pas livrée de façon fiable à l'accès de l'initiateur producteur.

Pour la fonction Interrogation d'événement asynchrone, si il y a une condition d'attention d'unité ou une erreur différée en instance pour le nexus I_T_L spécifié, l'unité logique retourne alors une valeur de réponse de "Fonction réussie", et des informations de réponse supplémentaires sont retournées comme spécifié dans [SAM5]. Si il n'y a pas d'attention d'unité ni d'erreur différée en instance pour le nexus I_T_L spécifié, l'unité logique retourne alors une valeur de réponse de "Fonction achevée".

 	6.5	Demandes de gestion de tâche affectant plusieurs tâches
Le paragraphe 4.1 de la [RFC5048] définit la notion de "tâches affectées" dans les scénarios d'interruption multi tâches. Ce paragraphe ajoute à la liste incluse dans ce paragraphe en définissant les tâches affectées par la fonction Réinitialiser le nexus I_T .

Réinitialisation de nexus I_T : toutes les tâches en cours reçues sur le nexus I_T sur lequel la demande de fonction a été reçue pour toutes les unités logiques accessibles au nexus I_T.

Les paragraphes 4.1.2 et 4.1.3 de la [RFC5048] identifient la sémantique des fonctions de gestion de tâche qui impliquent des opérations d'interruption multi tâches. Si une mise en œuvre iSCSI prend en charge la fonction Réinitialisation de nexus I_T, elle DOIT aussi prendre en charge le comportement de protocole comme défini dans ces paragraphes et suivre la séquence d'actions décrite dans ces paragraphes lors du traitement de la fonction Réinitialisation de nexus I_T.

 	7.	Clés texte opérationnelles Login/Text
 	7.1.	Nouvelles clés Text de fonctionnement
 	7.1.1	iSCSIProtocolLevel
Utilisation : LO, IO
Non pertinent quand : SessionType = Discovery
Envoyeurs : Initiateur et cible
Portée : SW

iSCSIProtocolLevel=<valeur numérique de 0 à 31>

Par défaut  : 1.
Fonction résultante  : Minimum.

Cette clé est utilisée pour négocier l'utilisation des caractéristiques iSCSI qui exigent des niveaux différents de prise en charge du protocole (par exemple, des formats de PDU, une sémantique de nœud d'extrémité) pour un fonctionnement approprié.

La négociation de la clé iSCSIProtocolLevel à une valeur correspondant à une RFC indique que les deux parties à la négociation sont conformes à la RFC en question et s'accordent pour prendre en charge les formats et la sémantique de PDU correspondants sur cette session iSCSI. Les caractéristiques qui utilisent cette clé sont supposées être cumulatives.

Une clé iSCSIProtocolLevel négociée à "0" indique que la mise en œuvre ne revendique pas un niveau de protocole iSCSI spécifique.

Une clé iSCSIProtocolLevel négociée à "1" indique que la mise en œuvre revendique la conformité à la [RFC7143].

Une clé iSCSIProtocolLevel négociée à "2" doit permettre l'utilisation des caractéristiques définies dans la présente RFC.

Si la réponse à la négociation est ignorée par l'acceptant, ou si la réponse du point d'extrémité iSCSI distant est clé=NonComprise, les caractéristiques définies dans la présente RFC, et les caractéristiques définies dans toute RFC exigeant une valeur de clé supérieure à "2", NE DOIVENT PAS être utilisées.

 	8.	Considérations sur la sécurité

Les priorités de commandes sont des valeurs relatives, et non des valeurs absolues (voir [SAM5], et affectent les collections de commandes, non nécessairement des commandes individuelles (voir [SAM5]). Si la priorité de commandes est prise en charge, elle devrait être mise en œuvre d'une façon qui évite une réduction involontaire ou un déni de service.

Tout le texte sur la sécurité relatif à iSCSI dans la [RFC3723] est directement applicable au présent document. Le texte sur la sécurité de la [RFC7143] est aussi directement applicable.

 	9.	Considérations relatives à l'IANA

Le présent document modifie ou crée un certain nombre de registres relatifs à iSCSI.

Les registres relatifs à iSCSI sont modifiés.
1.	Codes de fonctions de gestion de tâche iSCSI
Nom du registre existant : "Codes iSCSI de fonction de gestion de tâche". Les entrées suivantes ont été ajoutées :
9 : QUERY TASK, RFC 7144
10  : QUERY TASK SET, RFC 7144
11  : I_T NEXUS RESET, RFC 7144
12  : QUERY ASYNCHRONOUS EVENT, RFC 7144
13 à 127  ; non alloués

2.	Clés iSCSI Login/Text. Nom du registre existant : "iSCSI Login/Text Keys". Les champs à enregistrer sont la valeur allouée et la référence de RFC associée. L'entrée suivante a été ajoutée :

iSCSIProtocolLevel, RFC 7144

L'IANA a créé les registre relatifs à iSCSI suivants.

3.	Niveau de protocole iSCSI
Nom du nouveau registre : "iSCSI Protocol Level"
Détails de l'espace de noms : Valeurs numériques de 0 à 31
Informations qui doivent être fournies pour allouer une nouvelle valeur : Une spécification sur la voie de la normalisation, approuvée par l'IESG définissant la sémantique et les exigences d'interopérabilité de la nouvelle valeur proposée et les champs à enregistrer.

Politique d'allocation : l'allocation de ces valeurs doit être coordonnée avec le comité INCITS T10 ; donc, la revue par un expert qui reste en association avec ce comité est requise avant l'approbation par l'IESG de la spécification associée. Après la création du registre, les valeurs sont allouées à la suite (par exemple, aucune valeur supérieure à 4 ne sera allouée tant que la valeur 4 n'est pas allouée).
Une attention particulière doit être apportée à l'allocation de nouvelles valeurs dans ce registre, faute de quoi la compatibilité et l'interopérabilité peuvent en subir un impact négatif. Les caractéristiques qui utilisent cette clé sont supposées être cumulatives. Par exemple, comme le présent document ne mentionne explicitement que la valeur 2 pour les caractéristiques mentionnées dans ce document, on s'attend à ce qu'une nouvelle RFC qui alloue la valeur 3 ait aussi les caractéristiques mentionnées dans la présente RFC, et donc une telle RFC est supposée réviser ou remplacer la présente RFC. Les allocations qui ne suivent pas cette politique devraient être revues et approuvées par le comité INCITS T10.

3 à 31 : gamme disponible à l'IANA pour les allocations dans ce registre. Les champs à enregistrer, la valeur allouée, la description, et sa référence de RFC associée. Les entrées suiveantes ont été ajoutées :

Valeur	Description	Référence	
0	Pas de version indiquée	RFC 7144	
1	RFC 7143	[RFC7143]	
2	RFC 7144	RFC 7144	
3 à 31	non alloués		

Politique d'allocation : revue par expert et action de normalisation [RFC5226]

4.	Codes de réponse de fonction de gestion de tâche iSCSI

Nom du nouveau registre : "Codes de réponse de fonction de gestion de tâche iSCSI"
Détails de l'espace de noms : valeurs numériques qui peuvent tenir dans 8 bits.
Informations qui doivent être fournie pour allouer une nouvelle valeur : une spécification approuvée par l'IESG définissant la sémantique et lers exigences d'interopérabilité de la nouvelle valeur proposée et les champs à enregistrer.
Politique d'allocation : si la valeur demandée n'est pas déjà allouée, elle peut être allouée au demandeur.

8 à 254 : gamme disponible pour les allocations par l'IANA dans ce registré.

Champs à enregistrer : valeur allouée, nom d'opération, et référence de la PFC associée.
Les entrées suivantes ont été ajoutées :
0 : Fonction achevée, [RFC7143]
1 : Tâche inexistante, [RFC7143]
2 : LUN inexistant, [RFC7143]
3 : Tâche encore allégeante, [RFC7143]
4 : Réallocation d'allégeance de tâxhe non prise en charge, [RFC7143]
5 : Fonction de gestion de tâche non prise en charge, [RFC7143]
6 : Échec  de l'autorisation de fonction , [RFC7143]
7 : Fonction réussie, RFC 7144
8 à 254  : non allouées
255  : Fonction rejetée, [RFC7143]

Politique d'allocation : Action  de normalisation [RFC5226]

 	10.	Références
 	10.1.	Références normatives

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997. (MàJ par RFC8174)

[RFC3723]	B. Aboba et autres, "Protocoles de sécurisation de mémorisation de blocs sur IP", avril 2004. (P.S.)

[RFC5048]	M. Chadalapaka, éd. "Corrections et précisions à l'interface système de petit ordinateur à l'Internet (iSCSI)", octobre  2007. (MàJ RFC3720) (P.S.) (Remplacée par RFC7143)

[RFC5226]	T. Narten et H. Alvestrand, "Lignes directrices pour la rédaction d'une section Considérations relatives à l'IANA dans les RFC", BCP 26, mai 2008. (Remplace RFC2434 ; remplacée par RFC8126) 

[RFC7143]	M. Chadalapaka et autres, "Protocole (consolidé) d’interface Internet de petit système d’ordinateur (iSCSI)", avril 2014. (Remplace RFC3720, 3980, 4850, 5048) (MàJ RFC3721) (P.S.)

[SAM2]	INCITS Technical Committee T10, "SCSI Architecture Model - 2 (SAM-2)", ANSI INCITS 366-2003, ISO/IEC 14776-412, 2003.

[SAM5]	INCITS Technical Committee T10, "SCSI Architecture Model - 5 (SAM-5)", T10/BSR INCITS 515 rev 04, Committee Draft.

[SPC4]	INCITS Technical Committee T10, "SCSI Primary Commands - 4", ANSI INCITS 513-201x.

 	10.2	Références pour information

[RFC3720]	J. Satran et autres, "Interface Internet des systèmes de petits ordinateurs (iSCSI)", avril 2004. (Remplacée par RFC7143)

 	11.	Remerciements

Le groupe de travail STORM (Storage Maintenance) de la zone Transport de l'IETF a été chargé de définir ces ajouts au protocole iSCSI (à part des autres protocoles de mémorisation IP pertinents). Les auteurs remercient le groupe tout entier de ses contributions, ainsi que les autres réviseurs de l'IETF.

Les personnes suivantes ont directement contribué à identifier les problèmes et/ou à suggérer des solutions aux problèmes soulevés dans le présent document : David Black, Rob Elliott. Le présent document a bénéficié de toutes ces contributions.

 	Adresse des auteurs

Frederick Knight
7301 Kit Creek Road
P.O. Box 13917
Research Triangle Park, NC 27709
USA
téléphone : +1-919-476-5362
mél : knight@netapp.com 	Mallikarjun Chadalapaka
Microsoft
One Microsoft Way
Redmond, WA 98052
USA
mél : cbm@chadalapaka.com