Need Help!
Jeff Mo
mo0118 at gmail.com
Sun Aug 17 00:11:11 UTC 2008
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.
*/
More information about the freebsd-net
mailing list