structure NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 (ntddndis.h)

La structure NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 contient des informations d’encapsulation de paquets pour le déchargement de tâche VXLAN (Virtual Extensible LAN). VXLAN est similaire au déchargement de tâche NVGRE, mais avec un protocole différent.

Cette structure est utilisée dans le membre EncapsuléPacketTaskOffloadVxlan de la structure NDIS_OFFLOAD dans NDIS 6.50 et versions ultérieures.

Syntaxe

typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 {
  ULONG                        TransmitChecksumOffloadSupported : 4;
  ULONG                        ReceiveChecksumOffloadSupported : 4;
  ULONG                        LsoV2Supported : 4;
  ULONG                        RssSupported : 4;
  ULONG                        VmqSupported : 4;
  ULONG                        UsoSupported : 4;
#if ...
  ULONG                        Reserved : 8;
#else
  ULONG                        Reserved : 12;
#endif
  ULONG                        MaxHeaderSizeSupported;
  union {
    struct {
      USHORT VxlanUDPPortNumber;
      USHORT VxlanUDPPortNumberConfigurable : 1;
    } VxlanInfo;
    ULONG Value;
  } EncapsulationProtocolInfo;
  _ENCAPSULATION_PROTOCOL_INFO _ENCAPSULATION_PROTOCOL_INFO;
  ULONG                        Reserved1;
  ULONG                        Reserved2;
} NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2;

Membres

TransmitChecksumOffloadSupported

Paramètres de déchargement des tâches pour la somme de contrôle de transmission.

ReceiveChecksumOffloadSupported

Paramètres de déchargement des tâches pour la somme de contrôle de réception.

LsoV2Supported

Paramètres de déchargement de tâche pour le déchargement d’envoi volumineux version 2 (LSOv2).

RssSupported

Paramètres de déchargement des tâches pour la mise à l’échelle côté réception (RSS).

VmqSupported

Paramètres de déchargement de tâche pour la file d’attente de machines virtuelles (VMQ).

UsoSupported

Paramètres de déchargement de tâche pour le déchargement de segmentation UDP (USO).

Reserved

Réservé pour le système.

MaxHeaderSizeSupported

Ce membre doit être défini sur la taille maximale d’en-tête entre le début du paquet et le début de la charge utile TCP ou UDP interne (le dernier octet de l’en-tête interne TCP ou UDP) que la carte réseau doit prendre en charge pour tous ces déchargements de tâches. Le pilote de protocole ne doit pas décharger le traitement d’un paquet dont les en-têtes d’encapsulation combinés dépassent cette taille.

Conseil

256 octets est une bonne valeur par défaut qui doit couvrir tous les cas possibles.

EncapsulationProtocolInfo

Union qui contient le membre VxlanInfo et le membre Value .

EncapsulationProtocolInfo.VxlanInfo

struct qui contient le membre VxlanUDPPortNumber et le membre VxlanUDPPortNumberConfigurable .

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber

Numéro de port à utiliser pour le port de destination UDP VXLAN.

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable

Décrit si le numéro de port UDP est configurable.

EncapsulationProtocolInfo.Value

Valeur de somme de contrôle UDP pour ce paquet.

_ENCAPSULATION_PROTOCOL_INFO

Reserved1

Réservé pour le système.

Reserved2

Réservé pour le système.

Remarques

Dans la publication initiale des fonctionnalités et dans les NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG et NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES status indications, les membres TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported et UsoSupported peuvent être définis sur une valeur OR au niveau du bit des indicateurs suivants :

Terme Description
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED Spécifie que l’adaptateur miniport ne prend pas en charge la fonctionnalité de déchargement de tâche correspondante spécifiée par le membre.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 Spécifie que l’adaptateur miniport prend en charge la fonctionnalité de déchargement de tâche correspondante que le membre spécifie où l’en-tête IP interne d’un paquet encapsulé est IPv4.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 Spécifie que l’adaptateur miniport prend en charge la fonctionnalité de déchargement de tâche correspondante que le membre spécifie où l’en-tête IP externe d’un paquet encapsulé est IPv4.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 Spécifie que l’adaptateur miniport prend en charge la fonctionnalité de déchargement de tâche correspondante que le membre spécifie où l’en-tête IP interne d’un paquet encapsulé est IPv6.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 Spécifie que l’adaptateur miniport prend en charge la fonctionnalité de déchargement de tâche correspondante que le membre spécifie où l’en-tête IP externe d’un paquet encapsulé est IPv6.

Par exemple, si un adaptateur miniport et un pilote prennent uniquement en charge un en-tête IPv6 en tant qu’en-tête IP externe, mais pas en tant qu’en-tête IP interne, ils définissent TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported et UsoSupported sur la valeur or au niveau du bit de NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 et NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.

En ce qui concerne les options IP et TCP, l’hypothèse suivante a été faite pour les paquets encapsulés :

  • Si la carte réseau spécifie la prise en charge d’IpOptions et de TcpOptions dans le déchargement normal de la somme de contrôle et la publication LSOv2, elle doit prendre en charge le traitement des options pour les paquets encapsulés si la virtualisation de réseau à l’aide du déchargement de tâche VXLAN est prise en charge. Cela signifie qu’il prend en charge les options IP internes et externes et les options TCP à l’intérieur des paquets encapsulés. Il n’existe aucune publicité de fonctionnalité distincte pour ces tâches spécifiques au déchargement de tâche VXLAN uniquement.

Il est possible pour un pilote de protocole de décharger les paquets en mode mixte, ce qui signifie que les paquets dans lesquels les versions d’en-tête IP interne et externe sont différentes. Par exemple, un paquet peut avoir un en-tête IP externe comme IPv6 et l’en-tête IP interne comme IPv4.

Pour plus d’informations sur VXLAN, consultez RFC 7348.

Configuration requise

Condition requise Valeur
Client minimal pris en charge NDIS 6.50
En-tête ntddndis.h (include ndis.h)

Voir aussi

NDIS_OFFLOAD