This is an old revision of the document!
Table of Contents
Guo-Fu Tseng: Implement and Port Ethernet Drivers for gPXE
Project Plan
Summary
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.