[TUHS] 4.3 BSD under SIMH's 11/780 emulator

Jason Stevens neozeed at gmail.com
Wed Mar 25 02:34:53 AEST 2009


if anyone is interested, I noticed that if you remove the error
checking form the recv portion of the if_de driver it seems to work
for 4.3 BSD & variants...   As far as I know there is no if_de for 4.2
BSD... But then if there were you would still have it's
incompatibility problems...

Anyways, here is a diff from 4.3 BSD

*** if_de-orig.c        Mon Mar 24 04:05:10 1986
--- if_de.c     Mon Mar 24 04:06:09 1986
***************
*** 457,466 ****
                len = (rp->r_lenerr&RERR_MLEN) - sizeof (struct ether_header)
                        - 4;    /* don't forget checksum! */
                /* check for errors */
!               if ((rp->r_flags & (RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC)) ||
                    (rp->r_flags&(RFLG_STP|RFLG_ENP)) != (RFLG_STP|RFLG_ENP) ||
                    (rp->r_lenerr & (RERR_BUFL|RERR_UBTO|RERR_NCHN)) ||
                    len < ETHERMIN || len > ETHERMTU) {
                        ds->ds_if.if_ierrors++;
                        if (dedebug)
                        printf("de%d: ierror, flags=%b lenerr=%b (len=%d)\n",
--- 457,468 ----
                len = (rp->r_lenerr&RERR_MLEN) - sizeof (struct ether_header)
                        - 4;    /* don't forget checksum! */
                /* check for errors */
! /***          if ((rp->r_flags & (RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC)) ||
                    (rp->r_flags&(RFLG_STP|RFLG_ENP)) != (RFLG_STP|RFLG_ENP) ||
                    (rp->r_lenerr & (RERR_BUFL|RERR_UBTO|RERR_NCHN)) ||
                    len < ETHERMIN || len > ETHERMTU) {
+ ***/
+       if(1==5){
                        ds->ds_if.if_ierrors++;
                        if (dedebug)
                        printf("de%d: ierror, flags=%b lenerr=%b (len=%d)\n",


I have set it up with my SLiRP patch, and I had it pinging away at
10.0.2.2 for 5 hours, 100% success, and I had no issues TELNETTing
into the VM..I think that BSD see's the crc32 on the end and treats
all inbound packets as bad, dropping them all.. so I just quickly
sidestepped the error check..  I would imagine this would work with
SIMH's libpcap support so you can now get your virtual 11/780 onto the
Internet, and party like it's 1986!

For any windows users out there, I'll package up 4.3 BSD & the
Wisconsin version up onto sourceforge...

http://sourceforge.net/project/showfiles.php?group_id=204974&package_id=245145



More information about the TUHS mailing list