<div>I've been using it for some time now, and it's been pretty good.  I've even bundled it up on this project:</div>
<div> </div>
<div><a href="http://downloads.sourceforge.net/bsd42/BSD-4.3-Reno-install.exe?modtime=1191969474&big_mirror=0">http://downloads.sourceforge.net/bsd42/BSD-4.3-Reno-install.exe?modtime=1191969474&big_mirror=0</a></div>

<div> </div>
<div>I have been rebuilding the supporting exe to incorporate the inline memory access to speed it up, and a </div>
<div>backport of 3-7-1's idle support onto 3-7-1.  I've even had a copy up and running for over a month until</div>
<div>a power hit took the test machine out...  </div>
<div> </div>
<div>I know most people don't like it as it's TCP/IP centric... I've been starting to play with directly integrating it</div>
<div>with the HECnet bridge code, but to be honest I've been having too much fun with frontvm ( <a href="http://www.tomatarium.pwp.blueyonder.co.uk/glfrontier.html">http://www.tomatarium.pwp.blueyonder.co.uk/glfrontier.html</a> ) as of late....</div>

<div> </div>
<div>I guess I need to update my patchset ....<br><br></div>
<div class="gmail_quote">On Fri, Jun 13, 2008 at 7:39 AM, Peter Garay <<a href="mailto:peter.garay@lhsystems.hu">peter.garay@lhsystems.hu</a>> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Dear Jason and all,<br><br>A long time ago there was a post on this list about using SLiRP and I would<br>
like to inquire about the progress, if any made.<br><br>I know that SLiRP is only suitable for a subset of TCP/IP networking and hence<br>not applicable for everyone. However it is a good solution on platforms where<br>there is no pcap library available and it works well in qemu for client type<br>
applications. For instance, I would hope to get the emulator on WinMobile<br>this way.<br><br>Thanks and best regards,<br><br>Peter<br><br><br><br><br>Jason Stevens neozeed at <a href="http://gmail.com/" target="_blank">gmail.com</a><br>
Sun Oct 7 00:42:00 EDT 2007<br><br>I've done some hacking with the networking on qemu & simh, and I've finally<br>done something that's been on my list of things to do.  Qemu has a built in<br>'user mode networking' stack called slirp that will allow Qemu to connect to<br>
the network without any tap/tun or libpcap.  All TCP/IP traffic on the<br>ethernet is intercepted, and operated on the host side.  If you remember<br>slirp from the "good old days" when everyone had shell accounts, then the<br>
windows people would build slirp so a stubbed out winsock.dll would allow<br>them to use winsock applications going thru the host computer.<br><br>Anyways I've tested this successfully with the VAX emulator.  It appears<br>
that there is some weird issues either with the way the vax780 emulator<br>handles it's ethernet card (which may be why it's disabled to start with),<br>or with BSD 4.3 / Taho on how their ethernet frames are...   Right now I'm<br>
testing with IRC on 4.3 BSD Quasijarus UNIX #3.  I've also included a redir<br>port so that I can 'telnet' into the host.<br><br>I don't know if anyone would even find this interesting, but the prospect of<br>
a 'drop and go' host is quite usefull for me at least.  Not to mention it'll<br>be a snap to setup on the network, or install Operating Systems like OpenBSD<br>which can pull the rest of the OS via HTTP.<br><br>
Remember it's best to use the following config under slirp<br><br>Host IP     <a href="http://10.0.2.15/" target="_blank">10.0.2.15</a><br>Netmask   <a href="http://255.255.255.0/" target="_blank">255.255.255.0</a><br>
Gateway   <a href="http://10.0.2.2/" target="_blank">10.0.2.2</a><br>DNS         <a href="http://10.0.2.3/" target="_blank">10.0.2.3</a><br><br><br>In the source below, I've hardcoded port 42323 on the host to go to port 23<br>
on the emulated vax.  I then telnet to the loop on 42323 and connect to the<br>OS.<br><br>If you want to try, download and configure qemu on your PC.  I just then<br>copied the slirp files into simh, and added them to the makefile.  I had to<br>
copy some config headers from qemu to satisfy the last of the slirp<br>dependancies.  From what I can gather the major 'block' here is that slirp<br>needs to know what endian the host is at compile time.<br><br>For what it's worth, here is my addition to the sim_ether file.  I'm sorry<br>
it's not a diff, I had removed the os dependant portion from the independant<br>portion to speed my compiles & tests...<br><br>#include "slirp.h"<br>#include <ctype.h><br>#include "sim_ether.h"<br>
#include "sim_sock.h"<br><br>unsigned char tbuff[2000];<br>int tbufflen;<br>int slirp_inited=0;<br>extern fd_set *global_readfds, *global_writefds, *global_xfds;<br><br>t_stat eth_open(ETH_DEV* dev, char* name, DEVICE* dptr, uint32 dbit)<br>
 {<br>       struct in_addr guest_addr;<br>       slirp_init();<br>       tbufflen=0;<br>       slirp_inited=1;<br>       inet_aton(" <a href="http://10.0.2.15/" target="_blank">10.0.2.15</a>",&guest_addr);<br>
       slirp_redir(0,42323,guest_addr,23);<br>       return SCPE_OK;<br>       }<br><br>t_stat eth_close (ETH_DEV* dev)<br> {slirp_exit(1);<br>       return SCPE_OK;}<br><br>t_stat eth_write (ETH_DEV* dev, ETH_PACK* packet, ETH_PCALLBACK routine)<br>
 {<br>       slirp_input(packet->msg,packet->len);<br>       if(routine)<br>       (routine)(0);<br>       return SCPE_OK;<br> }<br><br><br><br>t_stat eth_read (ETH_DEV* dev, ETH_PACK* packet, ETH_PCALLBACK routine)<br>
 {<br>       int ret,nfds;<br>       fd_set rfds, wfds, xfds;<br>       struct timeval tv;<br><br>if(!dev) return SCPE_UNATT;<br>if(!packet) return SCPE_ARG;<br><br>dev->read_packet = packet;<br>packet->len = 0;<br>
dev->read_callback = routine;<br><br>if(tbufflen>0)<br>       {<br>       dev->read_packet->len=tbufflen;<br>       memcpy(dev->read_packet->msg,tbuff,tbufflen);<br>       eth_add_crc32(dev->read_packet);<br>
       if(dev->read_callback)<br>        (dev->read_callback)(0);<br>       tbufflen=0;<br>       }<br><br><br>nfds=-1;<br>FD_ZERO(&rfds);<br>FD_ZERO(&wfds);<br>FD_ZERO(&xfds);<br>if(slirp_inited)<br>       {<br>
       slirp_select_fill(&nfds,&rfds,&wfds,&xfds);<br>       tv.tv_sec=0;<br>       tv.tv_usec=0;<br>       ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv);<br>       if(ret>0)<br>               {}<br>
       if(ret<0) {<br>           FD_ZERO(&rfds);<br>           FD_ZERO(&wfds);<br>           FD_ZERO(&xfds);<br>           }<br>       slirp_select_poll(&rfds, &wfds, &xfds);<br>       }<br><br>
<br>return SCPE_OK;<br>}<br><br><br>t_stat eth_filter (ETH_DEV* dev, int addr_count, ETH_MAC* addresses,<br>                  ETH_BOOL all_multicast, ETH_BOOL promiscuous)<br> {return SCPE_NOFNC;}<br><br>int eth_devices (int max, ETH_LIST* dev)<br>
 {return -1;}<br><br>void slirp_output (const unsigned char *pkt, int pkt_len)<br>{<br>tbufflen=pkt_len;<br>memcpy(tbuff,pkt,pkt_len);<br>}<br><br>int slirp_can_output(void)<br>{<br>return 1;<br>}<br><br><br><br><br><br><br>
<br>-------<br><br>Let me know if anyone is interested, and I'll check out what the full<br>licensing is involved in this....<br><br>Jason Stevens<br>_______________________________________________<br>Simh mailing list<br>
<a href="mailto:Simh@trailing-edge.com">Simh@trailing-edge.com</a><br><a href="http://mailman.trailing-edge.com/mailman/listinfo/simh" target="_blank">http://mailman.trailing-edge.com/mailman/listinfo/simh</a><br></blockquote>
</div><br>