From owner-freebsd-bugs@FreeBSD.ORG Thu Apr 6 15:30:30 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A83DE16A4F5 for ; Thu, 6 Apr 2006 15:30:30 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 89D8F43D93 for ; Thu, 6 Apr 2006 15:30:12 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k36FUCXw024311 for ; Thu, 6 Apr 2006 15:30:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k36FUCga024310; Thu, 6 Apr 2006 15:30:12 GMT (envelope-from gnats) Resent-Date: Thu, 6 Apr 2006 15:30:12 GMT Resent-Message-Id: <200604061530.k36FUCga024310@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Vladimir Ivanov Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 688C816A400 for ; Thu, 6 Apr 2006 15:20:13 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2226843D46 for ; Thu, 6 Apr 2006 15:20:13 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k36FKC6c028094 for ; Thu, 6 Apr 2006 15:20:12 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k36FKClq028091; Thu, 6 Apr 2006 15:20:12 GMT (envelope-from nobody) Message-Id: <200604061520.k36FKClq028091@www.freebsd.org> Date: Thu, 6 Apr 2006 15:20:12 GMT From: Vladimir Ivanov To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: kern/95417: ng_fec doesn't allow jumbo packets X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Apr 2006 15:30:30 -0000 >Number: 95417 >Category: kern >Synopsis: ng_fec doesn't allow jumbo packets >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Apr 06 15:30:11 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Vladimir Ivanov >Release: RELENG_5 >Organization: Yandex LLC >Environment: FreeBSD multiped.yandex.net 5.5-PRERELEASE FreeBSD 5.5-PRERELEASE #0: Tue Apr 4 11:56:54 MSD 2006 root@multiped.yandex.net:/usr/obj/usr/src/sys/MULTIPED-CORE i386 >Description: FEC (Etherchannel) interface doesn't allowed to use more than 1500 bytes MTU size. The problem caused by bug in ng_fec.c They use ether_ioctl to process SIOCSIFMTU ioctl call. The patch allows to change MTU size according (and in sync) with bundled interfaces' capabilities. >How-To-Repeat: ifconfig fec0 mtu 1501 >Fix: multiped:~$ cat ng_fec.c.patch --- ng_fec.c.orig Mon Aug 29 20:31:51 2005 +++ ng_fec.c Wed Apr 5 20:36:18 2006 @@ -697,9 +697,29 @@ ng_fec_ioctl(struct ifnet *ifp, u_long c /* These two are mostly handled at a higher layer */ case SIOCSIFADDR: case SIOCGIFADDR: - case SIOCSIFMTU: error = ether_ioctl(ifp, command, data); break; + case SIOCSIFMTU: + if ( (ifr->ifr_mtu < NG_FEC_MTU_MIN ) || (ifr->ifr_mtu > NG_FEC_MTU_MAX) ) { + error = EINVAL; + } else { + struct ng_fec_portlist *p; + struct ifnet *bifp; + TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) { + bifp = p->fec_if; + if ((bifp->if_ioctl)(bifp, SIOCSIFMTU, data)) { + error = EINVAL; + break; + } + + } + if (!error) { + ifp->if_mtu = ifr->ifr_mtu; + ng_fec_init(priv); + } + } + break; + /* Set flags */ case SIOCSIFFLAGS: >Release-Note: >Audit-Trail: >Unformatted: