Date: Sun, 17 Aug 2008 00:11:09 +0000 From: "Jeff Mo" <mo0118@gmail.com> 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 Subject: Need Help! Message-ID: <c62705fb0808161711j119aa9a2wab1f59141182950d@mail.gmail.com> In-Reply-To: <c62705fb0808161709r16b1e166kc5fad54572ed5009@mail.gmail.com> References: <c62705fb0808161709r16b1e166kc5fad54572ed5009@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c62705fb0808161711j119aa9a2wab1f59141182950d>