From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:23:14 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A247F16A4DE; Wed, 30 Mar 2005 05:23:13 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EC42D16A4E6 for ; Wed, 30 Mar 2005 05:23:12 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D020043D1F for ; Wed, 30 Mar 2005 05:23:12 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5NCtg005056 for ; Wed, 30 Mar 2005 05:23:12 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5NC1p005052 for perforce@freebsd.org; Wed, 30 Mar 2005 05:23:12 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:23:12 GMT Message-Id: <200503300523.j2U5NC1p005052@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74083 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2005 05:23:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=74083 Change 74083 by sam@sam_ebb on 2005/03/30 05:23:04 save ip_next_mtu rewrite Affected files ... .. //depot/projects/wifi/sys/netinet/ip_icmp.c#3 edit Differences ... ==== //depot/projects/wifi/sys/netinet/ip_icmp.c#3 (text+ko) ==== @@ -832,36 +832,34 @@ * is returned; otherwise, a smaller value is returned. */ static int -ip_next_mtu(mtu, dir) - int mtu; - int dir; +ip_next_mtu(int mtu, int dir) { - static int mtutab[] = { + static const int mtutab[] = { 65535, 32000, 17914, 8166, 4352, 2002, 1492, 1006, 508, 296, 68, 0 }; +#define NMTU (sizeof(mtutab) / sizeof(mtutab[0])) int i; - for (i = 0; i < (sizeof mtutab) / (sizeof mtutab[0]); i++) { - if (mtu >= mtutab[i]) - break; + if (mtu < 0) { +#ifdef ICMPPRINTFS + if (icmpprintfs) + printf("%s: bogus mtu %d\n", mtu); +#endif + return 0; } - - if (dir < 0) { - if (i == 0) { - return 0; - } else { - return mtutab[i - 1]; - } - } else { - if (mtutab[i] == 0) { - return 0; - } else if(mtu > mtutab[i]) { - return mtutab[i]; - } else { - return mtutab[i + 1]; - } + if (dir < 0) { /* next larger mtu */ + for (i = 0; i < NMTU; i++) + if (mtu >= mtutab[i]) + break; + return (i > 0 ? mtutab[i-1] : mtutab[0]); + } else { /* next smaller mtu */ + for (i = 0; i < NMTU; i++) + if (mtutab[i] < mtu) + break; + return (i < NMTU ? mtutab[i] : mtutab[NMTU-1]); } +#undef NMTU }