This is an old revision of the document!
====== 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 ==== === JMicron Ethernet Driver === * [[soc:2010:cooldavid:journal:weekb4|Week -4: Debug hardware problem]] * [[soc:2010:cooldavid:journal:weekb3|Week -3: Trace gPXE code base]] * [[soc:2010:cooldavid:journal:weekb2|Week -2: Implement JMicron driver]] * [[soc:2010:cooldavid:journal:weekb1|Week -1: Modify JMicron driver, RX offloading]] === Tuning TCP stack === * [[soc:2010:cooldavid:journal:week0|Week 0: TCP performance test and tunning]] * [[soc:2010:cooldavid:journal:week1|Week 1: Update wiki, TCP tunning]] * [[soc:2010:cooldavid:journal:week2|Week 2: Discussing TCP and memory changes]] * Week 3-6: * Have a solution for bigger heap size. * Fine tune window size, heap size. * Clean-up TCP receivw queue/SACK/Window scale patches. * Submit it on gPXE-devel, and discuss it. === 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.