This is an old revision of the document!

Guo-Fu Tseng: Implement and Port Ethernet Drivers for gPXE

Project Plan


In order to obtain better performance from JMicron Ethernet Card. Instead of using the UNDI driver, I would implement a better performance native driver for gPXE. The tg3 driver of gPXE project still using old etherboot API, I would buy a Broadcom NIC and try to port it into new gPXE API.

Implement TCP receive queue to handle out-of-order packets, and SACK, window scaleing support. To have better performance on high latency network(WAN), or unstable networks(Wireless).

Milestones and Timeline

JMicron Ethernet Driver

Tuning TCP stack

Broadcom tg3 driver

  • Week 7:
    • Trace tg3 driver of both Linux and gPXE.
  • Week 8-10:
    • Port latest tg3 driver from Linux to gPXE.
  • Week 11-12:
    • Testing and Debuging.

Extra stuff from original plan

  • Ethernet RX checksum offloading support
  • TCP out-of-order receive queue
  • TCP Selective acknowledgement [RFC 2018][RFC 1323]
  • TCP Window scale [RFC 1323]
  • TCP PAWS(Protect Against Wrapped Sequence Nunbers) [RFC 1323]
  • Possible tunning TCP/HTTP xfer interface.

QR Code
QR Code soc:2010:cooldavid:project_plan:start (generated for current page)