Compartir a través de


Compatibilidad con NVGRE en la descarga de segmentación UDP (USO)

NDIS 6.85 presenta la virtualización de red mediante la encapsulación de enrutamiento genérico (NVGRE) con descarga de segmentación UDP (USO). Los controladores de miniporte, protocolo y filtro de NDIS, así como las NIC que realizan USO, deben admitir encapsulaciones NVGRE y VXLAN.

Nota: En este artículo se supone que está familiarizado con la información de descarga de segmentación UDP (USO).

Si NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO. IsEncapsulatedPacket es TRUE y se requiere la información de fuera de banda (OOB) udpSegmentationOffloadInfo , se requiere compatibilidad con NVGRE y VXLAN. La NIC debe realizar la descarga uso en el paquete encapsulado NVGRE/VXLAN con la siguiente condición:

Para admitir NVGRE en USO, los controladores de protocolo y filtro deben:

  • Ajuste los valores InnerFrameOffset, TransportIpHeaderRelativeOffset y TcpHeaderRelativeOffset de la estructura NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO para tener en cuenta el encabezado de encapsulación. TcpHeaderRelativeOffset hace referencia al encabezado UDP.

Las NIC y los controladores de minipuerto pueden usar los valores InnerFrameOffset, TransportIpHeaderRelativeOffset y TcpHeaderRelativeOffset proporcionados en la estructura de NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO . El controlador NIC o miniporte puede realizar las comprobaciones de encabezado necesarias en el encabezado IP del túnel (externo) o en los encabezados posteriores para validar estos desplazamientos.

Los controladores de minipuerto deben controlar el caso en el que NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO. InnerFrameOffset puede estar en una lista de recopilación de dispersión diferente que el principio del paquete. El controlador de protocolo garantizará que todos los encabezados de encapsulación antepuestos (ETH, IP, GRE/VXLAN) serán físicamente contiguos y estarán en la primera MDL del paquete.

Los controladores de protocolo y filtro no garantizan que la longitud total de la carga udp sea un múltiplo exacto del valor de MSS reducido cuando UdpSegmentation.SubMssFinalSegmentSupported está establecido en las funcionalidades de NDIS_OFFLOAD . Por este motivo, los controladores de minipuerto y las NIC con SubMssFinalSegmentSupported deben actualizar el encabezado IP del túnel (externo). Las NIC deben generar tantos segmentos de tamaño completo como sea posible en función del valor de MSS reducido en el NDIS_UDP_SEGMENTATION_OFFLOAD_NET_BUFFER_LIST_INFO. Transmitir Información de OOB. Solo se puede generar un segmento de sub-MSS por envío LSOv2.

Los controladores de minipuerto deben:

  • Calcule la suma de comprobación para el encabezado IP del túnel (externo).
  • Incremente el valor de identificación IP (ID de IP) del encabezado IP del túnel (externo) para cada paquete. El primer paquete debe usar el identificador ip en el encabezado IP del túnel original (externo).
  • Incremente el identificador IP del encabezado IP de transporte (interno) para cada paquete. El primer paquete debe usar el identificador IP en el encabezado IP de transporte original (interno).
  • Calcule la suma de comprobación para el encabezado UDP y el encabezado IP de transporte (interno).
  • Asegúrese de que los encabezados completos, incluidos los encabezados del túnel de encapsulación (externo) se agregan a cada paquete generado.

Descarga de segmentación udp (USO)