This is an old revision of the document!
Table of Contents
Implementing IPv6 support in gPXE
About the project
My project is titled Implementing IPv6 support in gPXE. Here are some snippets from my proposal.
Synopsis
gPXE uses uIP to implement its TCP/IP stack. uIP is an implementation of the TCP/IP stack which uses a fraction of the resources used by a full fledged TCP/IP implementation.
The project is to implement support for IPv6. uIP (in its current avatar) tightly integrates the TCP and IP layers in order to save code size. As a result, it is not easy to replace IPv4 with any other network layer protocol in uIP. This project aims to re-design the TCP/IP stack of gPXE in order to facilitate IPv6 implementation.
Deliverables
The final deliverables for the project are:
- A clean, well-defined interface between the transport-layer and network-layer. The interface would be generic enough to allow any transport layer protocol to interact with any network layer protocol
- Re-design and implementation of the TCP/IP stack using the proposed interface (which fits within the gPXE API)
- Minimal support for IPv6
The stretch goals for the project are:
- Extension of the gPXE API to include UDP
- An implementation of UDP/IP (within the extended gPXE API)
- Support for additional features in IPv6
Plan of action
Main goals:
Investigate the working of uIPDefine bare necessary requirements of transport layer and network layerDefine the interface between these layers based on the requirements- Implement the TCP, IP modules using the interface
- Test implementation; Re-implement if necessary
- Increase requirements if necessary and go back to step 2
- Investigate minimum requirements to support IPv6
- Extend interface/requirements if necessary and go back to step 2
- Implement IPv6
- If time permits, implement stretch goals
Stretch goals:
- Investigate UDP implementation in Etherboot-5.4 and earlier
- Extend interface/requirements if necessary and perform steps 2 - 5
- Implement UDP support
- Investigate various features that can be added to IPv6
- Perform steps 7 - 8
Current status
I have tried to update my blog ss frequently as possible with my thoughts. I have listed below my understanding of the problem.