📄 vxw_pt4.html
字号:
already running, you do not need to prompt him again to call your function,if your function is written in a loop to handle more than one packet at atime. However, this is insufficient. More system wide consideration tothe whole packet processing must be considered. For example, if you haveTTCP running for benchmarking, it helps to consider overall system runtimebehavior from all the way down in interrupt handler to all the way up inTTCP application, paying attention to what other things are happening in thesystem in typical situations. That can help "hand tune" your system.</li><li>re-think buffering. Simpler schemes work better than complex schemes.Latest SENS stacks have more complicated encapsulation around mbuf scheme.When you do things like that you are adding more code for no good reason.What should happen is : pay more attention to the behavior of buffers whensystem is under high load. Buffering system should be designed toaccommodate high load gracefully, arriving at a steady state where bufferinflow and outflow are matched. Otherwise, you have a system that drops alot of packets, or in some cases just does not work. It affectsperformance.</li></ol>(From: Hwa Jin Bae, hjb@pso.com)<p><hr WIDTH="50%"><a NAME="4.8-N"></a><p>Q: How can I get a list of all network devices?<p>A: There is a global pointer variable called ifnet (of type struct ifnet *).You can do: <code>for (ifp = ifnet; ifp; ifp = ifp->if_next)</code> to get the wholelist of devices. The first one is pointed by ifnet.<br>(From: Hwa Jin Bae, hjb@pso.com)<p><hr WIDTH="50%"><a NAME="4.8-O"></a><p>Q: What is the difference between BSD and END style drivers?<p>A: BSD is acronym for Berkeley Software Distribution. As in BSD Unix. BSD network driver for VxWorks looks similar to original BSD network driversin terms of API, structure, and the layout of code. <p>END stands for Enhanced Network Driver, or something like that. It is structured differently, with different API and layout of the code, thanthe original BSD drivers. It is unique to VxWorks. <p>What is less clear is the fact that END eventually becomes BSD driverbefore getting attached up to the IP layer code. The TCP/IP stack inVxWorks, derived from BSD Unix code, still thinks everything is BSDstyle driver. In order to make END work with TCP/IP stack, a layer ofcode is provided that will turn END driver into a BSD driver. <p>So what makes END "enhanced"? A couple things are usually quoted. Oneis that it allows for better multicasting support. Another is that itsupports polled mode I/O. There are some other reasons for theexistence of END. <p>Having written both END and BSD style drivers, I am not at all convinced that END is a justified model. The reasons are: <ol><li>Multicast support is just as easily done in BSD mode as in END model. Just look at how BSD Unix does it.</li><li>The polled mode can be supported easily in BSD model by extendingexisting struct ifnet.</li><li>END is unique to vxWorks, and makes it harder to port BSD driver tovxWorks</li><li>END incurs more overhead overall, since it eventually becomes BSD driver anyway. </li></ol>There are some other subtle details that are more troubling in ENDdesign. In particular, there are some rules that seem to have beenbroken or at least not explicitly handled in the design. These areharder to explain in the limited space and time devoted to a USENETarticle. But they have to do with robustness of a network driver inface of critical situations such as when there are too many packets tobe handled too fast, buffer exhaustion, careful management of loanedbuffers, etc. <br>(From: Hwa Jin Bae, hjb@pso.com)<p><hr WIDTH="100%"><p><h3><a NAME="index"><center>Index</center></a></h3><TABLE BORDER=1 CELLSPACING=3><TR><TD VALIGN=TOP><A HREF="#4.1">4.1</A></TD><TD VALIGN=TOP><A HREF="#4.1-A">A</A></TD><TD VALIGN=TOP>How can I make my target vissible from other subnets?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.1-B">B</A></TD><TD VALIGN=TOP>What is the correct sequence of function calls to install multiple ENDdrivers and attach them to protocols</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.1-C">C</A></TD><TD VALIGN=TOP>How do I disable IP packet forwarding from one interface to another?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.1-D">D</A></TD><TD VALIGN=TOP>How can I tune the performance of the network stack?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.2">4.2</A></TD><TD VALIGN=TOP><A HREF="#4.2-A">A</A></TD><TD VALIGN=TOP>On bootup of my system I get an "arp info overwritten" message.</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.3">4.3</A></TD><TD VALIGN=TOP><A HREF="#4.3-A">A</A></TD><TD VALIGN=TOP>Example of a lease storage routine and address storage routine for use in aDHCP server.</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.3-B">B</A></TD><TD VALIGN=TOP>I have a problem in using the DHCP to get an IP address for the devicethat I am using.</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.3-C">C</A></TD><TD VALIGN=TOP>When I start a DHCP server on a port other ports stop working after some time.</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.3-D">D</A></TD><TD VALIGN=TOP>After upgrading to Torndado 2.0.2 (aka T2CP4) the Solaris DHCP-serverrejects the first 4 discover packets as being "short"</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.3-E">E</A></TD><TD VALIGN=TOP>How can I get a NT server to send the right parameters back after a DHCP request?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.3-F">F</A></TD><TD VALIGN=TOP>When I enable the DHCP client I cannot connect anymore using WDB.</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.4">4.4</A></TD><TD VALIGN=TOP><A HREF="#4.4-A">A</A></TD><TD VALIGN=TOP>When I send files to my target using FTP small files fail often, butlarger don't have any problem at all.</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.4-B">B</A></TD><TD VALIGN=TOP>What is the meaning of all the ftp global variables?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.4-C">C</A></TD><TD VALIGN=TOP>How do I change the priority of the TFTP-task?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.4-D">D</A></TD><TD VALIGN=TOP>Is there source code available for an FTP server?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.4-E">E</A></TD><TD VALIGN=TOP>How can I enable the debug infortext server?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.5">4.5</A></TD><TD VALIGN=TOP><A HREF="#4.5-A">A</A></TD><TD VALIGN=TOP>PPP crashes when I do an FTP-GET from the target with a large number ofsmall files.</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.5.1">4.5.1</A></TD><TD VALIGN=TOP><A HREF="#4.5.1-A">A</A></TD><TD VALIGN=TOP>How do I make a connection between my Windows 95 machine and my targetusing PPP over a null-modem cable?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.5.2">4.5.2</A></TD><TD VALIGN=TOP><A HREF="#4.5.2-A">A</A></TD><TD VALIGN=TOP>How do I make a connection between my Windows NT machine and my targetusing PPP over a null-modem cable?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.5.3">4.5.3</A></TD><TD VALIGN=TOP><A HREF="#4.5.3-A">A</A></TD><TD VALIGN=TOP>How do I build a network connection using PPP?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.6">4.6</A></TD><TD VALIGN=TOP><A HREF="#4.6-A">A</A></TD><TD VALIGN=TOP>When I do a send using a socket connection to a second system, and thissystem crashes, the send still returns OK. How do I detect that the otherside has failed?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.6-B">B</A></TD><TD VALIGN=TOP>After I used a lot of sockets my system stalls for 10 to 15 seconds.What is causing this delay?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.7">4.7</A></TD><TD VALIGN=TOP><A HREF="#4.7-A">A</A></TD><TD VALIGN=TOP>How can I use my own command line interface using Telnet, instead of usingthe target shell?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.7-B">B</A></TD><TD VALIGN=TOP>How can I change the priority of the telnet task?</TD></TR><TR><TD VALIGN=TOP><A HREF="#4.8">4.8</A></TD><TD VALIGN=TOP><A HREF="#4.8-A">A</A></TD><TD VALIGN=TOP>Does anyone point me in what is needed to support development ofserver/client TCP - BSD stream sockets applications using a NT platformwith Microsoft Visual C/C++ (or Visual Studio) ?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-B">B</A></TD><TD VALIGN=TOP>Has anyone succeed using an etherInputHook on an END style ethernet driver?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-C">C</A></TD><TD VALIGN=TOP>Is there a TCP dump utility available for VxWorks?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-D">D</A></TD><TD VALIGN=TOP>At boottime I get a "dc0 - no carrier" error. What does this mean?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-E">E</A></TD><TD VALIGN=TOP>Is there any vxworks routine to get the default gateway address on a vxworks target?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-F">F</A></TD><TD VALIGN=TOP>How do I get the MAC address using the VxWorks API?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-G">G</A></TD><TD VALIGN=TOP>Is well-known port 7 implemented, and if not, how can I implement this?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-H">H</A></TD><TD VALIGN=TOP>When calling netPoolDelete,does the memory get freed?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-I">I</A></TD><TD VALIGN=TOP>How do I change the MAC-address of an interface?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-J">J</A></TD><TD VALIGN=TOP>Is there a rsh deamon for VxWorks?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-K">K</A></TD><TD VALIGN=TOP>How to delelte a IP address added by ifAddrAdd()</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-L">L</A></TD><TD VALIGN=TOP>How can I get the default gateway from the bootline to be thedefault gateway?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-M">M</A></TD><TD VALIGN=TOP>Problems with high speed networks and netTask.</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-N">N</A></TD><TD VALIGN=TOP>How can I get a list of all network devices?</TD></TR><TR><TD VALIGN=TOP></TD><TD VALIGN=TOP><A HREF="#4.8-O">O</A></TD><TD VALIGN=TOP>What is the difference between BSD and END style drivers?</TD></TR></TABLE><p><hr WIDTH="100%"><p><a href="mailto:borkhuis@agere.com"><img SRC="sendmail.gif" ALT="Send me an e-mail if this page was helpfull" height=49 width=124 align=RIGHT></a><p><a href="vxworks.html"><img SRC="back0001.gif" ALT="VxWorks Homepage" height=54 width=104></a><br><center>© J.A. Borkhuis, 2001</center><center><script language="JavaScript"><!-- var theDate = "" theDate = document.lastModified document.write("Last Updated: "); document.write(theDate); document.write();//--></script></center></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -