Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev When padding short packets on transmit, don't includ...



details:   https://anonhg.NetBSD.org/src/rev/67e286e3d4eb
branches:  trunk
changeset: 475800:67e286e3d4eb
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Wed Aug 25 22:41:42 1999 +0000

description:
When padding short packets on transmit, don't include the CRC length
in the computation.  kern/8194.

diffstat:

 sys/dev/ic/dp8390.c    |  4 ++--
 sys/dev/ic/smc83c170.c |  5 +++--
 sys/dev/isa/if_eg.c    |  4 ++--
 sys/dev/isa/if_el.c    |  5 +++--
 sys/dev/isa/if_iy.c    |  6 +++---
 5 files changed, 13 insertions(+), 11 deletions(-)

diffs (94 lines):

diff -r 906cd1357a87 -r 67e286e3d4eb sys/dev/ic/dp8390.c
--- a/sys/dev/ic/dp8390.c       Wed Aug 25 21:12:54 1999 +0000
+++ b/sys/dev/ic/dp8390.c       Wed Aug 25 22:41:42 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: dp8390.c,v 1.25 1999/06/23 04:17:10 abs Exp $  */
+/*     $NetBSD: dp8390.c,v 1.26 1999/08/25 22:41:42 thorpej Exp $      */
 
 /*
  * Device driver for National Semiconductor DS8390/WD83C690 based ethernet
@@ -478,7 +478,7 @@
                len = dp8390_write_mbuf(sc, m0, buffer);
 
        m_freem(m0);
-       sc->txb_len[sc->txb_new] = max(len, ETHER_MIN_LEN);
+       sc->txb_len[sc->txb_new] = max(len, ETHER_MIN_LEN - ETHER_CRC_LEN);
 
        /* Point to next buffer slot and wrap if necessary. */
        if (++sc->txb_new == sc->txb_cnt)
diff -r 906cd1357a87 -r 67e286e3d4eb sys/dev/ic/smc83c170.c
--- a/sys/dev/ic/smc83c170.c    Wed Aug 25 21:12:54 1999 +0000
+++ b/sys/dev/ic/smc83c170.c    Wed Aug 25 22:41:42 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: smc83c170.c,v 1.19 1999/08/03 17:25:51 thorpej Exp $   */
+/*     $NetBSD: smc83c170.c,v 1.20 1999/08/25 22:44:26 thorpej Exp $   */
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -412,7 +412,8 @@
                 * auto-pad, so we have to do this ourselves.
                 */
                txd->et_control = ET_TXCTL_LASTDESC | ET_TXCTL_FRAGLIST;
-               txd->et_txlength = max(m0->m_pkthdr.len, ETHER_MIN_LEN);
+               txd->et_txlength = max(m0->m_pkthdr.len,
+                   ETHER_MIN_LEN - ETHER_CRC_LEN);
 
                /*
                 * If this is the first descriptor we're enqueueing,
diff -r 906cd1357a87 -r 67e286e3d4eb sys/dev/isa/if_eg.c
--- a/sys/dev/isa/if_eg.c       Wed Aug 25 21:12:54 1999 +0000
+++ b/sys/dev/isa/if_eg.c       Wed Aug 25 22:41:42 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_eg.c,v 1.47 1999/05/18 23:52:57 thorpej Exp $       */
+/*     $NetBSD: if_eg.c,v 1.48 1999/08/25 22:46:16 thorpej Exp $       */
 
 /*
  * Copyright (c) 1993 Dean Huxley <dean%fsa.ca@localhost>
@@ -613,7 +613,7 @@
                printf("%s: no header mbuf\n", sc->sc_dev.dv_xname);
                panic("egstart");
        }
-       len = max(m0->m_pkthdr.len, ETHER_MIN_LEN);
+       len = max(m0->m_pkthdr.len, ETHER_MIN_LEN - ETHER_CRC_LEN);
 
 #if NBPFILTER > 0
        if (ifp->if_bpf)
diff -r 906cd1357a87 -r 67e286e3d4eb sys/dev/isa/if_el.c
--- a/sys/dev/isa/if_el.c       Wed Aug 25 21:12:54 1999 +0000
+++ b/sys/dev/isa/if_el.c       Wed Aug 25 22:41:42 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_el.c,v 1.58 1999/05/18 23:52:57 thorpej Exp $       */
+/*     $NetBSD: if_el.c,v 1.59 1999/08/25 22:46:16 thorpej Exp $       */
 
 /*
  * Copyright (c) 1994, Matthew E. Kimmel.  Permission is hereby granted
@@ -400,7 +400,8 @@
 
                /* Transfer datagram to board. */
                DPRINTF(("el: xfr pkt length=%d...\n", m0->m_pkthdr.len));
-               off = EL_BUFSIZ - max(m0->m_pkthdr.len, ETHER_MIN_LEN);
+               off = EL_BUFSIZ - max(m0->m_pkthdr.len,
+                   ETHER_MIN_LEN - ETHER_CRC_LEN);
 #ifdef DIAGNOSTIC
                if ((off & 0xffff) != off)
                        printf("%s: bogus off 0x%x\n",
diff -r 906cd1357a87 -r 67e286e3d4eb sys/dev/isa/if_iy.c
--- a/sys/dev/isa/if_iy.c       Wed Aug 25 21:12:54 1999 +0000
+++ b/sys/dev/isa/if_iy.c       Wed Aug 25 22:41:42 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_iy.c,v 1.34 1999/05/18 23:52:57 thorpej Exp $       */
+/*     $NetBSD: if_iy.c,v 1.35 1999/08/25 22:46:16 thorpej Exp $       */
 /* #define IYDEBUG */
 /* #define IYMEMDEBUG */
 
@@ -621,8 +621,8 @@
 #ifdef IYDEBUG
                printf("%s: length is %d.\n", sc->sc_dev.dv_xname, len);
 #endif
-               if (len < ETHER_MIN_LEN) {
-                       pad = ETHER_MIN_LEN - len;
+               if (len < (ETHER_MIN_LEN - ETHER_CRC_LEN)) {
+                       pad = ETHER_MIN_LEN - ETHER_CRC_LEN - len;
                }
 
                if (len + pad > ETHER_MAX_LEN) {



Home | Main Index | Thread Index | Old Index