Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
soc:nikhil:under_construction [2006/06/13 23:15] nikhilcrao |
soc:nikhil:under_construction [2006/06/13 23:54] nikhilcrao |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== About the project ===== | ===== About the project ===== | ||
+ | My project is titled Implementing IPv6 support in gPXE. Here are some snippets from [[soc:nikhil:proposal|my proposal]]. | ||
==== Synopsis ==== | ==== 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 ==== | ==== 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 ==== | ==== Plan of action ==== | ||
+ | |||
+ | Main goals: | ||
+ | - <del>Investigate the working of uIP</del> | ||
+ | - <del>Define bare necessary requirements of transport layer and network layer</del> | ||
+ | - <del>Define the interface between these layers based on the requirements</del> | ||
+ | - 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 ===== | ===== 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. | ||
==== Working of the network infrastructure ==== | ==== Working of the network infrastructure ==== | ||
Line 17: | Line 52: | ||
=== Sending data === | === Sending data === | ||
- | === How protocols are supported === | + | === So, what's wrong? === |
==== Redesigning the IP layer ==== | ==== Redesigning the IP layer ==== | ||
Line 32: | Line 67: | ||
===== The road ahead ===== | ===== The road ahead ===== | ||
- | |||
- | ==== To do list ==== | ||
==== Ideas and concepts ==== | ==== Ideas and concepts ==== | ||
+ | |||
+ | ==== To do list ==== | ||
===== Resources ===== | ===== Resources ===== |