Estoy tratando de averiguar si hay alguna implementación de pila TCP / IP nativa proporcionada en DPDK o algún proyecto popular de código abierto para lograrlo. Cualquier ayuda será agradecida.

Actualización: Mi plataforma es Ubuntu 16.04 x64, Intel 82599es NIC con DPDK 20.08. Lo que estoy tratando de lograr es reconstruir las conexiones TCP a partir de los paquetes que recibo en el puerto NIC para su uso posterior. Pensé que herramientas como ANS, mTCP y fstack pueden hacer el seguimiento, pero son de terceros y algunas de ellas no son completamente de código abierto, por lo que estoy buscando una nativa o una que sea popular para los desarrolladores. No sé cómo debería llamar a este tipo de requisito, lo siento por los problemas causados ​​por la pregunta, lo cambiaré después de conocer mejor el concepto relacionado.

0
UnderCover 22 ene. 2021 a las 10:49

1 respuesta

La mejor respuesta

No hay implementación de pila TCP-IP nativa en la versión DPDK hasta la fecha DPDK versión 20.11 LTS . Ir más allá, en mi humilde opinión, DPDK no implementaría la pila TCP-IP nativa. Por tanto, las opciones actuales son

Dado que el requisito es rebuild TCP connection state information, mi recomendación es

  1. cree RTE_FLOW_ACTION_MIRROR para crear la copia del paquete a nivel de HW NIC para todas las conexiones TCP interesadas utilizando una combinación de puertos de dirección IP-TCP.
  2. Si no hay una opción de HW, use ref_cnt_update o copying the user packet payload cree una copia del paquete.
  3. Con ayuda, RTE_RINGS o RTE_FB_ARRAY organizan los paquetes desde el cliente y el servidor en base a RSS simétrico (si está disponible) o en base a HASH personalizado para contenedores apropiados.
  4. Para su recomendación de procesamiento de paquetes, use FSTACK or mTCP or BSD TCP-ip from scratch

Hay varias referencias en Internet que también dan pistas para empezar. Consulte

0
Vipin Varghese 24 ene. 2021 a las 04:17