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) |