Modèle de communication, synchronisation et abandon

À un niveau général, cette documentation définit deux types d’objets :

  1. Adaptateur, qui représente l’appareil Wi-Fi.
  2. Port qui représente des entités MAC et PHY distinctes dans l’adaptateur.

Pour plus d’informations sur ces objets, consultez Modèle et objets d’appareil Wi-Fi. Les commandes, un ensemble d’opérations autorisées, sont définies pour chacun de ces objets. Les commandes sont ensuite classées en Propriétés et Tâches.

Les commandes de propriété sont des commandes simples (telles que l’obtention de la force du signal, l’obtention de la liste BSS actuelle et la définition du filtre de paquets). Elles se terminent en peu de temps et ne sont pas compliquées à implémenter.

Les commandes de tâche sont des opérations complexes qui peuvent prendre plusieurs secondes. Par exemple, une opération d’analyse Wi-Fi est classée comme une tâche dans ce modèle.

Toutes les commandes émises pour le composant IHV peuvent être effectuées de manière asynchrone.

Séquence de messages

La séquence de messages pour chaque type de commande est illustrée dans les figures suivantes.

La figure 1 montre la séquence de commandes de tâches.

Flux de tâches de commande wdi.

La figure 2 montre le flux de commandes de propriété.

Flux de commandes de propriété wdi.

La figure 3 montre le flux pour les indications.

flux d’indication wdi.

Synchronization

Pour simplifier l’implémentation du composant IHV, le modèle définit les règles de synchronisation suivantes :

  1. Les commandes sont toujours sérialisées entre les étapes 1 et 3 de la figure 1 et de la figure 2. Par exemple, aucune nouvelle commande n’est émise à l’adaptateur tant que l’indication de l’adaptateur à l’étape 3. Cela implique également que toutes les propriétés soient sérialisées les unes avec les autres.
  2. Toutes les commandes de tâche sont sérialisées entre les étapes 1 et 4 de la figure 1. Par exemple, une seule tâche s’exécute sur l’adaptateur à la fois. Toutefois, une fois qu’une tâche est démarrée (étape 3 de la figure 1), l’adaptateur peut obtenir des demandes de commande de propriété. Les étapes 3 et 4 doivent se terminer avant l’envoi de la commande de tâche suivante.
  3. Les commandes de jeu de propriétés sont de deux types : celles qui peuvent être envoyées après le démarrage de la tâche et celles qui doivent être sérialisées avec des tâches en attente.
  4. Le chemin d’accès aux données n’est pas sérialisé avec le chemin de commande, à l’exception des cas spécifiques décrits plus loin dans la documentation.
  5. L’étendue de synchronisation est l’étendue au niveau de l’adaptateur.
  6. Un sous-ensemble de tâches peut être abandonné après leur démarrage. Cela signifie que si une tâche de priorité plus élevée (A) arrive alors qu’une tâche de priorité inférieure (B) est en attente, B peut être abandonnée par l’hôte. La rationalisation des décisions de hiérarchisation dépasse le cadre de cette documentation et dépend des scénarios utilisateur.
  7. Pour les commandes de tâche, l’étape 4 peut se présenter avant la fin de l’étape 3. Toutefois, si l’étape 4 est indiquée, l’étape 3 ne peut pas échouer.

Abandon

La plupart des tâches peuvent être abandonnées une fois qu’elles ont été démarrées. L’objectif de l’abandon est de déclencher l’adaptateur pour terminer la tâche rapidement en envoyant l’indication complète (étape 4 de la figure 1). L’abandon est autorisé uniquement dans la fenêtre comprise entre les étapes 3 et 4 de la figure 1. À la réception de l’abandon, l’adaptateur doit terminer la tâche dans un délai de 50 millisecondes. Pour la plupart des commandes, lors de la réception de l’abandon, l’adaptateur n’a pas besoin de revenir à l’état avant le démarrage de la commande. Des conditions de course existent entre l’émission de la commande d’abandon et les achèvements arrivant au composant hôte. Dans ce cas, si le composant IHV reçoit un abandon pour une tâche qu’il a déjà terminée, aucune autre action du composant IHV n’est nécessaire pour traiter l’opération d’abandon. L’abandon d’une tâche est simplement un signal que le composant IHV doit propre la tâche dès que possible. La sémantique de saisie semi-automatique des commandes n’est pas modifiée si un abandon est émis. La saisie semi-automatique de la commande de propriété d’abandon et l’indication d’achèvement de la tâche doivent être correctement notifiés dans tous les cas.

Les propriétés sont censées se terminer rapidement afin qu’elles ne puissent pas être abandonnées.

Les commandes de tâche ont un identificateur unique qui permet à l’hôte de cibler une commande spécifique pour l’abandon.