On Sun, Mar 25, 2012 at 8:05 PM, Joel Sherrill <span dir="ltr"><<a href="mailto:joel.sherrill@oarcorp.com">joel.sherrill@oarcorp.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If you are willing to try, then we are willing to help. No one else has expressed interest in this.</blockquote><div><br>Thank you. Headache slowly fading... ;) <br><br>On Sun, Mar 25, 2012 at 8:05 PM, Joel Sherrill <span dir="ltr"><<a href="mailto:joel.sherrill@oarcorp.com">joel.sherrill@oarcorp.com</a>></span> wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="im"></div>
Let me break one item down -- the in_cksum one. OAR is committed to the<br>
port on two architectures (x86 and MIPS). That leaves potentially 13 other<br>
architectures in RTEMS to address. We don't expect you to optimize the<br>
in_cksum for all of those. Find an implementation in either the FreeBSD<br>
or current RTEMS TCP/IP stack, integrate it into rtems-libbsd.git,<br>
verify that it builds, and our tests continue to link. That's it for that task.<br></blockquote><div><br>Ok, maybe that's not so bad; I enjoy bit bashing. Is <span style="font-family:courier new,monospace">in_cksum()</span> an implementation of <a href="http://www.rfc-editor.org/rfc/rfc1071.txt">RFC 1071</a>? If so, I think I can handle that. How must the checksum algorithm be optimized though? By "optimize" do you mean, as RFC 1071 says, "carefully hand-craft the checksum routine, exploiting
every machine-dependent trick possible"? Are they to be implemented in C or the native assembly language of the architecture? I would imagine assembly.<br><br>On Sun, Mar 25, 2012 at 8:05 PM, Joel Sherrill <span dir="ltr"><<a href="mailto:joel.sherrill@oarcorp.com">joel.sherrill@oarcorp.com</a>></span> wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
We have (or will have) a spreadsheet of NIC drivers in the current tree.<br>
For NICs in BSP directories, identify if there is a FreeBSD version. If so,<br>
integrate it into rtems-libbsd.git and verify it builds. If time permits, you<br>
may take a stab at a version of the BSP specific glue code for that BSP<br>
that is known to compile.<br></blockquote><div><br>Also not so bad. However, I've never written a NIC driver before. Are they easy enough to understand that I might be able to familiarize myself with them before coding starts? Are there any drivers in particular I could look at that would serve as a good place to start learning? <br>
</div><div> <br></div><div>On Sun, Mar 25, 2012 at 8:05 PM, Joel Sherrill <span dir="ltr"><<a href="mailto:joel.sherrill@oarcorp.com">joel.sherrill@oarcorp.com</a>></span> wrote:</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
The first thing to realize is that you won't be a trailblazer on this project.<br>
The team doing this is focusing on two BSPs and two NIC drivers to prove<br>
that the stack works. That leaves other architectures, many other BSPs, and<br>
many NICs to address. We are doing "depth" and you would be doing "breadth".<br>
The mentorship here should actually be stronger than on many projects because<br>
we are actively working on this.<br>
</blockquote><div> <br>I'm comfortable with that. That's exactly how I'd like to start as a newcomer.<br><br></div>Maybe having lwIP being tossed won't be such a bad thing. In fact, I think it might work out for the better. After a little more detail, the tasks you've described so far all seem like decent places to start.<br>
<br>At this point, here's what I think I need to do:<br><ul><li>Read through RFC 1071 to familiarize myself with the Internet checksum algorithm.</li><li>Look through FreeBSD and RTEMS source for architecture-specific implementations of <span style="font-family:courier new,monospace">in_cksum()</span>.</li>
<li>Find a simple NIC driver to learn how they're written to help gauge my proposal timeline.</li><li>Look at NIC spreadsheet and see if a FreeBSD version exists.<br></li></ul></div>Is that appropriate? Is there anything that should be added?<br>
<br>-- <br>- Kevin Polulak (soh_cah_toa)<br>- <a href="http://cybercrud.net" target="_blank">http://cybercrud.net</a><br><br>