<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> 

<HTML> 
<HEAD> 
<TITLE>Haiku Network Kit</TITLE> 
<META http-equiv=Content-Type content="text/html; charset=windows-1252"> 
<STYLE type="text/css"> 
body 
{ 
        text-indent: 0in; 
        font-stretch: normal; 
        text-align: left; 
        font-weight: normal; 
        text-decoration: none; 
        font-variant: normal; 
        color: #000000; 
        font-size: 12pt; 
        font-style: normal; 
        widows: 2; 
        font-family: "Century Gothic", "Trebuchet MS", "Trebuchet", "Arial", "Helvetica"; 
        background-color: #ffffff; 
} 
</STYLE> 
</HEAD> 
<BODY text=#000000 vLink=#0000a0 aLink=#0000ff link=#0000c0 bgColor=#ffffff> 

<H1>Haiku Network Kit: Debugging instructions</H1>

<P>For debugging purpose, and eventually stack internals learning purpose, we have develop
an userland stack version, sharing most of the <A href="stack.html">network stack</A>
source code but hosted by a app, <i>net_stack_tester</i>, in contrast with the real one hosted in kernelland, behind the
<A href="stack_driver.html">stack driver</A>.
</P>

<P>The following image shows this debug platform overall design:</P>

<IMG ALT="Haiku Network Stack debugging platform block diagram" SRC="obos_net_server_design_1.gif"><BR>

<P>The <A href="libs.html#libnet">libnet.so</A> library was modified to check if the NET_STACK_DRIVER_PATH
environment variable is defined and use his value as driver path to interface with. 
To switch to <i>net_stack_tester</i> hosted stack version, just run this
from a Terminal:</P>

  <p>
  <TABLE cellpadding=6 bgcolor=#E5E5E5 border=0> 
  <TR><TD><TT>$ export NET_STACK_DRIVER_PATH=/dev/net/server</TT>
  </TABLE> 
  </p>

<P>Starting from there, all apps using libnet.so services will use the debug stack version.
</P>

<HR>
<H6>Philippe Houdoin, July 30th, 2004</H6>

</BODY>
</HTML>