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.

Milestones and Timeline

  • Week 1-2:
    • Trace the underlining implementation of gPXE for drivers, try to get the picture how would the gPXE acted while calling them. So that I can design and control the driver's flow in the next weeks.
  • Week 3-4:
    • Implement the basic transmit and receive function in polling mode. To make sure that all the PCI and DMA actions are performed correctly.
  • Week 5-6:
    • Link change event recover, review code, heavy load testing, debugging.
  • Week 7:
    • Trace tg3 driver of both Linux and gPXE.
  • Week 8-10:
    • Convert tg3 driver from old etherboot API to new gPXE API.
  • 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)