From owner-freebsd-net@FreeBSD.ORG Sun Aug 17 00:11:11 2008 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D260106566C for ; Sun, 17 Aug 2008 00:11:11 +0000 (UTC) (envelope-from mo0118@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.225]) by mx1.freebsd.org (Postfix) with ESMTP id BB6E08FC18 for ; Sun, 17 Aug 2008 00:11:10 +0000 (UTC) (envelope-from mo0118@gmail.com) Received: by wx-out-0506.google.com with SMTP id h27so595495wxd.7 for ; Sat, 16 Aug 2008 17:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type:references; bh=NUfo/U7DBApUXxlIVQJ4dMXIqvMXH00IbCbejKnn7ag=; b=NqHRJfP2u9tPUPFghabkaDegdvt3PgaKXJDle5P13c11p+1ER/7aFIbVIf3PPeu5be D0wVMx+jX3psCUWImI0jikkYOYVBq2Iz8F18v6KdCjVLBrcGYjM+/ByF9uf2B5iDzlYe RnHbHEBPxBCZYol3YsD/rQW0CgnIcqJW9n528= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:references; b=cnUIe+3ZRPkTZVNKrlNAjcr0MkQN0AfMURU1IC2DikR0PsBwjPLx1cmq65mTKFU1lm rzZvaQ8M9/9LsBgPoJUeG3ztObBv9IrFKbYMudJhxPPH38MS6CtRWr1apX3Koi7Vq0ej 8P0ljk+al80ATEa/y7oMYv0L97dRsFmRCBkLE= Received: by 10.70.31.8 with SMTP id e8mr5319155wxe.30.1218931869339; Sat, 16 Aug 2008 17:11:09 -0700 (PDT) Received: by 10.100.191.17 with HTTP; Sat, 16 Aug 2008 17:11:09 -0700 (PDT) Message-ID: Date: Sun, 17 Aug 2008 00:11:09 +0000 From: "Jeff Mo" To: linimon@freebsd.org, freebsd-bugs@freebsd.org, freebsd-net@freebsd.org, rfrench@freebsd.org, gnn@freebsd.org, jfvogel@gmail.com, paul@gtcomm.net, viper@perm.raid.ru, brutal_hitman_@hotmail.com, pyunyh@gmail.com, naddy@mips.inka.de, andrew@modulus.org, remko@freebsd.org In-Reply-To: MIME-Version: 1.0 References: X-Mailman-Approved-At: Sun, 17 Aug 2008 00:20:29 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Need Help! X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Aug 2008 00:11:11 -0000 Dear All , After I run the following commands three times, 1 ifconfig gre0 create 2 ifconfig gre0 tunnel 10.101.1.1 10.101.1.2 netmask 255.255.255.255 3 ifconfig gre0 destroy I found something weird: 1. in /var/log/messages , line 907 , there should be TAILQ_REMOVE because of ifconfig gre0 destroy, but nothing happened. 2. when i do the command second time, ia1=0xc2df1600 supposed not be there. 3. Some thing wrong with line 914,915,920,921,931,932,937,938 4. does "ifconfig gre0 destroy" causes TAILQ_REMOVE be called? Please nicely give me some comments. Thanks and Regards Jeff /var/log/messages first time 895 Aug 16 16:30:11 JeffMo kernel: TAILQ_INSERT_TAIL:ia=0xc2df1600 896 Aug 16 16:30:11 JeffMo kernel: TAILQ_INSERT_TAIL:ia->ia_ifp=0xc27d6c00 897 Aug 16 16:30:11 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc28e6b00 898 Aug 16 16:30:11 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0xc2824400 899 Aug 16 16:30:11 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc298ca00 900 Aug 16 16:30:11 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000 901 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc28e6b00 902 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc2824400 903 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc298ca00 904 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000 905 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc2df1600 906 Aug 16 16:30:11 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc27d6c00 907 Aug 16 16:30:11 JeffMo kernel: second time 908 Aug 16 16:30:34 JeffMo kernel: TAILQ_INSERT_TAIL:ia=0xc3144d00 909 Aug 16 16:30:34 JeffMo kernel: TAILQ_INSERT_TAIL:ia->ia_ifp=0xc27d1c00 910 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc28e6b00 911 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0xc2824400 912 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc298ca00 913 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000 914 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc2df1600 915 Aug 16 16:30:34 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0x3e391 916 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc28e6b00 917 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc2824400 918 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc298ca00 919 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000 920 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc2df1600 921 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0x3e391 922 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc3144d00 923 Aug 16 16:30:34 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc27d1c00 924 Aug 16 16:30:34 JeffMo kernel: third time 925 Aug 16 16:30:57 JeffMo kernel: TAILQ_INSERT_TAIL:ia=0xc3145800 926 Aug 16 16:30:57 JeffMo kernel: TAILQ_INSERT_TAIL:ia->ia_ifp=0xc2812400 927 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc28e6b00 928 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0xc2824400 929 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc298ca00 930 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000 931 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1=0xc2df1600 932 Aug 16 16:30:57 JeffMo kernel: before TAILQ_FOREACH:ia1->ia_ifp=0 933 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc28e6b00 934 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc2824400 935 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc298ca00 936 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0xc27d6000 937 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1=0xc2df1600 938 Aug 16 16:30:57 JeffMo kernel: after TAILQ_FOREACH:ia1->ia_ifp=0 #diff -uw in.c.ori in.c --- in.c.ori 2008-08-16 13:50:54.000000000 +0000 +++ in.c 2008-08-16 16:43:29.000000000 +0000 @@ -320,7 +320,23 @@ ia->ia_broadaddr.sin_family = AF_INET; } ia->ia_ifp = ifp; + //add by jeff:start + printf("TAILQ_INSERT_TAIL:ia=%p\n" , ia); + printf("TAILQ_INSERT_TAIL:ia->ia_ifp=%p\n" , ia->ia_ifp); + struct in_ifaddr *ia1; + TAILQ_FOREACH(ia1, &in_ifaddrhead, ia_link) { + printf("before TAILQ_FOREACH:ia1=%p\n" , ia1); + printf("before TAILQ_FOREACH:ia1->ia_ifp=%p\n" , ia1->ia_ifp); + } + //add by jeff:end TAILQ_INSERT_TAIL(&in_ifaddrhead, ia, ia_link); + //add by jeff:start + TAILQ_FOREACH(ia1, &in_ifaddrhead, ia_link) { + printf("after TAILQ_FOREACH:ia1=%p\n" , ia1); + printf("after TAILQ_FOREACH:ia1->ia_ifp=%p\n" , ia1->ia_ifp); + } + printf("\n"); + //add by jeff:end splx(s); iaIsNew = 1; } @@ -485,6 +501,7 @@ */ s = splnet(); TAILQ_REMOVE(&ifp->if_addrhead, &ia->ia_ifa, ifa_link); + printf("TAILQ_REMOVE:ia=%p\n" , ia); TAILQ_REMOVE(&in_ifaddrhead, ia, ia_link); if (ia->ia_addr.sin_family == AF_INET) { LIST_REMOVE(ia, ia_hash); @@ -803,8 +820,9 @@ mask = target->ia_sockmask.sin_addr; prefix.s_addr &= mask.s_addr; } - TAILQ_FOREACH(ia, &in_ifaddrhead, ia_link) { + printf("TAILQ_FOREACH:ia=%p\n", ia); + printf("TAILQ_FOREACH:ia->ia_ifp=%p\n", ia->ia_ifp); if (rtinitflags(ia)) { p = ia->ia_addr.sin_addr; @@ -833,6 +851,7 @@ return (0); } } + printf("\n"); /* * No-one seem to have this prefix route, so we try to insert it. */