Supported Features - mtcp-stack/mtcp GitHub Wiki

(This document is under construction.)

Features highlighted in bold will be implemented next.

Supported Features

  • ARP (arp.c)
  • ICMP (icmp.c, partial): only responding to ICMP echo message
  • Routing: Static only (ip_out.c)
  • Event system: mtcp_epoll (eventpoll.c)
  • Non-blocking socket functions (api.c, core.c)
  • Support for Intel XL710 adapters. (dpdk_module.c)
  • Increase support for # of cores to > 16. (mtcp.h)
  • mTCP apps should communicate across multiple hops (beyond gateways) (config.c, ip_out.c)

Supported TCP Features

  • Congestion control: New Reno (tcp_in/out.c)
  • Fast retransmission (tcp_in/out.c)
  • Retransmission timeout
  • Timestamp option (tcp_in/out.c)
  • Window scale option (tcp_in/out.c)
  • Priority packet queueing for control packets
  • TCP checksum offload (tcp_out.c)
  • Multiple listening ports (tcp_in.c)

Unsupported Features

  • UDP
  • DNS
  • Virtualization support
  • FreeBSD version
  • DHCP
  • IP fragmentation (solve it with dpdk's [ip frag & reassembly lib (https://doc.dpdk.org/guides/prog_guide/ip_fragment_reassembly_lib.html)
  • Blocking socket functions (api.c, core.c)
  • Support for eventfd system call
  • mTCP sendfile (mtcp_sendfile() is essential for large file transfers)
  • Support for AF_XDP sockets
  • Support for IPv6

Unsupported TCP Features

  • SACK
  • DSACK
  • FACK
  • Challenge ACK
  • SYN cookies
  • FastOPEN
  • F-RTO
  • MTU discovery
  • Keepalive
  • ER-TCP
  • TCP segmentation offload (tcp_out.c: FlushTCPSendingBuffer())
  • Nagle's algorithm