Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Francois Tigeot

Hi,

IPv6 autoconfiguration with -STABLE and Dlink DFE-550TX network adapters is
not working as it should.

My network topology is simple : 3 machines on the same ethernet segment,
connected by a 10/100 hub. They are running 4.4-RC as of today and use the
same NIC, a Dlink DFE-550TX (ste driver).

Initialy running the 'rtsol ste0' command on a client machines did not give
any result.
I then tried to see what was going on on the wire by running tcpdump. This
modified the behavior of the machine running it.

Here are some tcpdump results observed after running a single 'rtsol' command
on the client:


Router and client interfaces in normal mode.
traffic captured from an other machine on the same hub:

10:19:50.036 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:19:54.055 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:19:58.075 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 


Tcpdump running on the router.
The router and an other machine on the wire show the same results:

10:20:42.590 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:20:42.882 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
10:20:46.609 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:20:46.742 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
10:20:50.629 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:20:50.802 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement

The client does not get configured.


Tcpdump running on the client, router interface in normal mode
The client and the observation machine show the same results:

10:22:04.575 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:22:08.595 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:22:12.615 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 

The client does not get configured.


Tcpdump running on the client and the router.
All three machines show the same results:

10:25:23.608 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation 
10:25:24.083 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
10:25:24.084 :: > ff02::1:ff71:bded: icmp6: neighbor sol: who has [client]

Here, the client machine gets configured.



It seems that only the machines having their interface in promiscuous mode
were able to receive the multicast datagrams. They then ran as they should
have, which leads me to think the problem is not with the card itself.

Is this a known problem with the ste driver ?

How can I be sure the client does not receive the advertisement without
running tcpdump ?


Thanks in advance,

Francois Tigeot

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



all router address "ff02::02"

2001-08-23 Thread raviprasad20

Hi,
I found that in the rtadvd daemon code there is a function which is called to join to 
the all router multicast address( ff02::02).

My doubt is if rtadvd is disabled for a router then whether it will join the all 
routers multicast list?

one reason i find for such a implementation is that joining the all router multicast 
address (ff02::02) is useless for a router if it is not running rtadvd. 

Is my understanding correct? or is the router joins the all router multicast address 
at some other place other than rtadvd?

Kindly reply.
regards
ravi prasad



__
Your favorite stores, helpful shopping tools and great gift ideas. Experience the 
convenience of buying online with Shop@Netscape! http://shopnow.netscape.com/

Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



gctimer default value

2001-08-23 Thread raviprasad20

Hi,
When a link address enters the stale state you have added a nd6_gctimer ( garbage 
collection timer) so that the entry is removed after the address time expires in the 
stale state.

I found that the value of this is one day. Is this the default value. Or this value 
can changed by the system administrator according to his convinence?

Kindly reply.
regards
ravi prasad


__
Your favorite stores, helpful shopping tools and great gift ideas. Experience the 
convenience of buying online with Shop@Netscape! http://shopnow.netscape.com/

Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



No Subject

2001-08-23 Thread Anastasia Leventi-Peetz



Hello all,

  I hope this time (the second attempt) somebody can help me, because I know
other users have the solution.
What do I need to do with my kernel or configuration files or whatsoever
in order to be able to see a Link Address

fe80::8007:544%gif0   link#...

8007:544 is derived from the IPv4 address 128.7.5.68.

It belongs to the so named IPv6 compatible addresses important for tunnels.
thanks a lot
Anastasia




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: TFTP sorcerer's apprentice syndrome

2001-08-23 Thread Gerhard Butscher

Hello Peter,

Now I used the tftp-hpa-0.21 client with a tftp server (SuSE 6.4,
where a tftpd runs in whose binary code I found: 
tftp-hpa $Id: tftd.c,v 1.4 1999/09/26 07:12:54 hpa Exp).

I inserted in tftp/tftp.c after line
285  if (dp->th_block == block) {
following lines:
if (block == 1) {
sleep(6);
}

So the first ACK is delayed and the server sends DATA block # 1 again.
The duplicate ACKs and DATA packets remain until ACK block # 09
and DATA block # 0a

So it is not the syndrome until the end of the transfer, but  
for the first 10 packets (in this special setup). I don't know how
the syndrome is resolved in this case (by server or by client?).
(This can be seen with tftp options trace,verbose on or with tcpdump).

Of course in this case it doesn't matter if whithin a part of a second
10 data packets and 10 acks are duplicated. But I am still not sure
if the server conforms with the RFC.

Gerhard

A part of tcpdump output follows:

09:32:12.632661 client.registrar > server.tftp: 23 RRQ "/tftpboot/file"
 4500 0033 4ebd  4011 278a c0a8 4217
 c0a8 410b 06b0 0045 001f 6e36 0001 2f74
 6674 7062 6f6f 742f 6669 6c65 006f 6374
 6574 00
09:32:12.680322 server.1043 > client.registrar: udp 516
 4500 0220 67d0  4011 0c8a c0a8 410b
 c0a8 4217 0413 06b0 020c cefe 0003 0001
 b8c0 078e d8b8 0090 8ec0 b900 0129 f629
 fffc f3a5 ea19
09:32:17.680152 server.1043 > client.registrar: udp 516
 4500 0220 6852  4011 0c08 c0a8 410b
 c0a8 4217 0413 06b0 020c cefe 0003 0001
 b8c0 078e d8b8 0090 8ec0 b900 0129 f629
 fffc f3a5 ea19
09:32:18.687882 client.registrar > server.1043: udp 4
 4500 0020 55b1  4011 20a9 c0a8 4217
 c0a8 410b 06b0 0413 000c f09a 0004 0001
       
09:32:18.688000 client.registrar > server.1043: udp 4
 4500 0020 55b2  4011 20a8 c0a8 4217
 c0a8 410b 06b0 0413 000c f09a 0004 0001
       
09:32:18.688095 server.1043 > client.registrar: udp 516
 4500 0220 686b  4011 0bef c0a8 410b
 c0a8 4217 0413 06b0 020c 41fd 0003 0002
 eb24 4864 7253 0102   0010 0903
 0001 0080 
09:32:18.688237 server.1043 > client.registrar: udp 516
 4500 0220 686c  4011 0bee c0a8 410b
 c0a8 4217 0413 06b0 020c 41fd 0003 0002
 eb24 4864 7253 0102   0010 0903
 0001 0080 
09:32:18.688537 client.registrar > server.1043: udp 4
 4500 0020 55b4  4011 20a6 c0a8 4217
 c0a8 410b 06b0 0413 000c f099 0004 0002
       
09:32:18.688618 server.1043 > client.registrar: udp 516
 4500 0220 686d  4011 0bed c0a8 410b
 c0a8 4217 0413 06b0 020c 9f54 0003 0003
 0303 2ef6 0611 0001 7402 eb25 b800 018c
 cd83 ed20 2e8b
09:32:18.688653 client.registrar > server.1043: udp 4
 4500 0020 55b6  4011 20a4 c0a8 4217
 c0a8 410b 06b0 0413 000c f099 0004 0002
       
09:32:18.688800 server.1043 > client.registrar: udp 516
 4500 0220 686e  4011 0bec c0a8 410b
 c0a8 4217 0413 06b0 020c 9f54 0003 0003
 0303 2ef6 0611 0001 7402 eb25 b800 018c
 cd83 ed20 2e8b
09:32:18.689040 client.registrar > server.1043: udp 4
 4500 0020 55b7  4011 20a3 c0a8 4217
 c0a8 410b 06b0 0413 000c f098 0004 0003
       
09:32:18.689134 server.1043 > client.registrar: udp 516
 4500 0220 686f  4011 0beb c0a8 410b
 c0a8 4217 0413 06b0 020c 5275 0003 0004
 6d65 6d6f 7279 2e20 2047 6976 696e 6720
 7570 2e00 6651
09:32:18.689208 client.registrar > server.1043: udp 4
 4500 0020 55b8  4011 20a2 c0a8 4217
 c0a8 410b 06b0 0413 000c f098 0004 0003
       
09:32:18.689298 server.1043 > client.registrar: udp 516
 4500 0220 6870  4011 0bea c0a8 410b
 c0a8 4217 0413 06b0 020c 5275 0003 0004
 6d65 6d6f 7279 2e20 2047 6976 6

Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Bill Paul

> Hi,
> 
> IPv6 autoconfiguration with -STABLE and Dlink DFE-550TX network adapters is
> not working as it should.
> 
> My network topology is simple : 3 machines on the same ethernet segment,
> connected by a 10/100 hub. They are running 4.4-RC as of today and use the
> same NIC, a Dlink DFE-550TX (ste driver).

I need you do "pciconf -l | grep ste" so that I can see which revision
of the Sundance Technologies "alta" chip you have on your card. I have
samples of these cards (which I used to write the driver) but they're
old. I want to be sure this problem isn't due to behavioral differences
between your chip rev and mine.

> Here are some tcpdump results observed after running a single 'rtsol' command
> on the client:

For the record, the best way to run tcpdump is:

# tcpdump -n -e -i foo0

This will show you the ethernet frame header, which is sort of important
when you're trying to debug an ethernet problem. In this case, had you
used the -e flag, we would have seen that the problem is you aren't
receiving multiast packets, or at least certain multicast packets.
Forcing the NIC into promisc mode gets around the problem, but the
real issue is that the multicast filter isn't being programmed
correctly. This is usually one of the things I test during driver
development though, so I'm a little confused to see that it's not
working now. (It should have been working before, or I would not have
committed the driver.)

I'm going to stick one of my sample DFE-550TX cards in a test box
in the lab and see if I can duplicate this problem, but it would help
if you could run tcpdump -n -e -i ste0 so that we can see just what
multicast address the NIC should be receiving.

> Is this a known problem with the ste driver ?

Ok, you know, I'm getting tired of people asking this question. It
makes it sound like I leave bugs lying around just for people to
trip on. If I knew about this problem, I would have fixed it.

> How can I be sure the client does not receive the advertisement without
> running tcpdump ?

You can also run tcpdump -n -e -p -i ste0. The -p flag means "don't
put the interface into promisc mode."

-Bill 

--
=
-Bill Paul(510) 749-2329 | Senior Engineer, Master of Unix-Fu
 [EMAIL PROTECTED] | Wind River Systems
=
"I like zees guys. Zey are fonny guys. Just keel one of zem." -- The 3 Amigos
=

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread itojun


>IPv6 autoconfiguration with -STABLE and Dlink DFE-550TX network adapters is
>not working as it should.

my guess is that either of the machines (the router, or the end node)
have a broken multicast packet filter on the card, or the driver is
broken in terms of multicast packet filter initialization.

itojun

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Francois Tigeot

On 23 Aug, [EMAIL PROTECTED] wrote:
> 
> >IPv6 autoconfiguration with -STABLE and Dlink DFE-550TX network adapters is
> >not working as it should.
> 
>   my guess is that either of the machines (the router, or the end node)
>   have a broken multicast packet filter on the card, or the driver is
>   broken in terms of multicast packet filter initialization.
 
Since everything works when the interface is put in promiscuous mode, the 
problem is certainly in the driver.

I'll try to see if I can figure something obvious, but ethernet drivers are 
not really my cup of tea...

Francois

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



No Subject

2001-08-23 Thread itojun


>  I hope this time (the second attempt) somebody can help me, because I know
>other users have the solution.
>What do I need to do with my kernel or configuration files or whatsoever
>in order to be able to see a Link Address
>
>fe80::8007:544%gif0   link#...
>
>8007:544 is derived from the IPv4 address 128.7.5.68.
>
>It belongs to the so named IPv6 compatible addresses important for tunnels.

- it is not an IPv4 compatible address, as mentioned in RFC2373.
  (it is like ::8007:544, or ::128.7.5.68)
- freebsd (KAME) does not support automatic tunnels as mentioned in
  RFC1933 (which uses IPv4 compatible address).

to configure tunnel endpoint for configured IPv6-over-IPv4 tunnels, 
use gifconfig(8).

itojun

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



No Subject

2001-08-23 Thread Anastasia Leventi-Peetz



>>  I hope this time (the second attempt) somebody can help me, because I know
>>other users have the solution.
>>What do I need to do with my kernel or configuration files or whatsoever
>>in order to be able to see a Link Address
>>
>>fe80::8007:544%gif0   link#...
>>
>>8007:544 is derived from the IPv4 address 128.7.5.68.
>>
>>It belongs to the so named IPv6 compatible addresses important for tunnels.

>   - it is not an IPv4 compatible address, as mentioned in RFC2373.
> (it is like ::8007:544, or ::128.7.5.68)
>   - freebsd (KAME) does not support automatic tunnels as mentioned in
> RFC1933 (which uses IPv4 compatible address).

>   to configure tunnel endpoint for configured IPv6-over-IPv4 tunnels, 
>   use gifconfig(8).
>
>itojun

thank you for writing!
My problem is that, when trying a tunnel between a Linux box to the 
FreeBSD box, in the Linux routing table, the nexthop address 
is fe80::8007:54. (here 8007:54 is in hexadecimal the IPv4 address of the 
FreeBSD box -or sit1 for Linux (endpoint of the tunnel).
This is not a compatible address as you say, but is it possible to have
this address on the FreeBSD box. I think its necessary for the tunnel.
Anastasia


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Palle Lyckegaard

Hi,

Are you sure that all your nodes are running 10 Mbit or 100 Mbit ?
Will the hub get confused by a mixture of 10 and 100 Mbit cards? I have recently
seen a case like this (on NetBSD 1.5 sending NS).
Try using a cross-over cable between your router and each of your hosts - one at
a time. This will
isolate the case of the failure - in my case the hub...

regards
Palle


Francois Tigeot wrote:

> Hi,
>
> IPv6 autoconfiguration with -STABLE and Dlink DFE-550TX network adapters is
> not working as it should.
>
> My network topology is simple : 3 machines on the same ethernet segment,
> connected by a 10/100 hub. They are running 4.4-RC as of today and use the
> same NIC, a Dlink DFE-550TX (ste driver).
>
> Initialy running the 'rtsol ste0' command on a client machines did not give
> any result.
> I then tried to see what was going on on the wire by running tcpdump. This
> modified the behavior of the machine running it.
>
> Here are some tcpdump results observed after running a single 'rtsol' command
> on the client:
>
> Router and client interfaces in normal mode.
> traffic captured from an other machine on the same hub:
>
> 10:19:50.036 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:19:54.055 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:19:58.075 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
>
> Tcpdump running on the router.
> The router and an other machine on the wire show the same results:
>
> 10:20:42.590 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:20:42.882 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
> 10:20:46.609 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:20:46.742 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
> 10:20:50.629 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:20:50.802 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
>
> The client does not get configured.
>
> Tcpdump running on the client, router interface in normal mode
> The client and the observation machine show the same results:
>
> 10:22:04.575 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:22:08.595 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:22:12.615 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
>
> The client does not get configured.
>
> Tcpdump running on the client and the router.
> All three machines show the same results:
>
> 10:25:23.608 fe80::250:baff:fe71:bded > ff02::2: icmp6: router solicitation
> 10:25:24.083 fe80::250:baff:fe15:69fc > ff02::1: icmp6: router advertisement
> 10:25:24.084 :: > ff02::1:ff71:bded: icmp6: neighbor sol: who has [client]
>
> Here, the client machine gets configured.
>
> It seems that only the machines having their interface in promiscuous mode
> were able to receive the multicast datagrams. They then ran as they should
> have, which leads me to think the problem is not with the card itself.
>
> Is this a known problem with the ste driver ?
>
> How can I be sure the client does not receive the advertisement without
> running tcpdump ?
>
> Thanks in advance,
>
> Francois Tigeot
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-net" in the body of the message



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Bill Paul

Ok, I think I found the bug. There was a problem with the way I was
loading the hash table for the multicast filter. The chip actually
uses 4 16-bit registers, not two 32-bit ones. Please apply the patch
at:

http://www.freebsd.org/~wpaul/Sundance/ste.diff

# cd /tmp
# fetch http://www.freebsd.org/~wpaul/Sundance/ste.diff
# cd /sys/pci
# patch < /tmp/ste.diff

Then compile a new kernel and/or new if_ste.ko kernel module.

Please let me know if this helps.

-Bill

--
=
-Bill Paul(510) 749-2329 | Senior Engineer, Master of Unix-Fu
 [EMAIL PROTECTED] | Wind River Systems
=
"I like zees guys. Zey are fonny guys. Just keel one of zem." -- The 3 Amigos
=

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Francois Tigeot

On 23 Aug, Bill Paul wrote:
> > IPv6 autoconfiguration with -STABLE and Dlink DFE-550TX network adapters is
> > not working as it should.
> 
> I need you do "pciconf -l | grep ste"

All cards have the same behavior. Here you go:

ste0@pci0:15:0: class=0x02 card=0x10021186 chip=0x10021186 rev=0x00 hdr=0x00
ste0@pci0:9:0:  class=0x02 card=0x10021186 chip=0x10021186 rev=0x00 hdr=0x00
ste0@pci0:8:0:  class=0x02 card=0x10021186 chip=0x10021186 rev=0x00 hdr=0x00

> so that I can see which revision
> of the Sundance Technologies "alta" chip you have on your card. I have
> samples of these cards (which I used to write the driver) but they're
> old. I want to be sure this problem isn't due to behavioral differences
> between your chip rev and mine.

[...]

> but the
> real issue is that the multicast filter isn't being programmed
> correctly.

Yes. I have patched your driver to force the card to listen to all multicast
datagrams and not use the filter. It works perfectly.

> I'm going to stick one of my sample DFE-550TX cards in a test box
> in the lab and see if I can duplicate this problem, but it would help
> if you could run tcpdump -n -e -i ste0 so that we can see just what
> multicast address the NIC should be receiving.

tcpdump -n -e -i ste0 ip6 on the client:

20:59:09.335613 0:50:ba:71:bd:ed 33:33:0:0:0:2 86dd 70: fe80::250:baff:fe71:bded > 
ff02::2: icmp6: router solicitation 
20:59:09.460728 0:50:ba:15:69:fc 33:33:0:0:0:1 86dd 142: fe80::250:baff:fe15:69fc > 
ff02::1: icmp6: router advertisement
20:59:09.461028 0:50:ba:71:bd:ed 33:33:ff:71:bd:ed 86dd 78: :: > ff02::1:ff71:bded: 
icmp6: neighbor sol: who has 2002:c1fc:3606:0:250:baff:fe71:bded

and on the router:

21:00:43.207059 0:50:ba:71:bd:ed 33:33:0:0:0:2 86dd 70: fe80::250:baff:fe71:bded > 
ff02::2: icmp6: router solicitation
21:00:43.332052 0:50:ba:15:69:fc 33:33:0:0:0:1 86dd 142: fe80::250:baff:fe15:69fc > 
ff02::1: icmp6: router advertisement
21:00:43.332464 0:50:ba:71:bd:ed 33:33:ff:71:bd:ed 86dd 78: :: > ff02::1:ff71:bded: 
icmp6: neighbor sol: who has 2002:c1fc:3606:0:250:baff:fe71:bded

> > Is this a known problem with the ste driver ?
> 
> Ok, you know, I'm getting tired of people asking this question. It
> makes it sound like I leave bugs lying around just for people to
> trip on. If I knew about this problem, I would have fixed it.

Hey, relax. I didn't imply you write buggy drivers. It just seemed strange
nobody else had seen this problem before...

> > How can I be sure the client does not receive the advertisement without
> > running tcpdump ?
> 
> You can also run tcpdump -n -e -p -i ste0. The -p flag means "don't
> put the interface into promisc mode."

If I do that, I get the following results :

20:47:24.524999 0:50:ba:71:bd:ed 33:33:0:0:0:2 86dd 70: fe80::250:baff:fe71:bded > 
ff02::2: icmp6: router solicitation 
20:47:28.545067 0:50:ba:71:bd:ed 33:33:0:0:0:2 86dd 70: fe80::250:baff:fe71:bded > 
ff02::2: icmp6: router solicitation 
20:47:32.565102 0:50:ba:71:bd:ed 33:33:0:0:0:2 86dd 70: fe80::250:baff:fe71:bded > 
ff02::2: icmp6: router solicitation 

Other machines (in promiscuous mode, or with a patched driver) show the router
advertisements.

Francois

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Problem with IPv6 autoconfiguration and DFE-550TX

2001-08-23 Thread Francois Tigeot

On 23 Aug, Bill Paul wrote:
> Ok, I think I found the bug. There was a problem with the way I was
> loading the hash table for the multicast filter. The chip actually
> uses 4 16-bit registers, not two 32-bit ones. Please apply the patch
> at:
> 
> http://www.freebsd.org/~wpaul/Sundance/ste.diff
> 
> Then compile a new kernel and/or new if_ste.ko kernel module.
> 
> Please let me know if this helps.

The patched systems work like a charm.

Many thanks for your prompt reaction !

Francois

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Serious i386 interrupt mask bug in RELENG_4 (was Re: 4.4-RC NFS panic)

2001-08-23 Thread Ian Dowse

In message <[EMAIL PROTECTED]>, Warner Losh writes:
>
>I think that might be due to a bug in the shared interrupt code that
>Ian Dowse sent me about earlier today.

Just to add a few details - there is a bug in the update_masks()
function in i386/isa/intr_machdep.c that can cause some interrupts
to occur at times when they should be masked. The problem only
occurs with certain configurations of shared interrupts and devices,
and this code is only present in RELENG_4.

The update_masks() function is called after an interrupt handler
has been registered or removed. Its main function is to update the
interrupt masks (tty_imask, net_imask etc) if necessary (e.g if
IRQ11 is registered by a tty-type device, IRQ11 will be added to
tty_imask so that future spltty()'s will mask IRQ11).

A second function of update_masks() is to update the cached copy
of the interrupt mask stored with each handler for a multiplexed
interrupt. This is done via the call to update_mux_masks().

The bug is that update_masks() returns without calling update_mux_masks()
in some cases where it should call it. Specifically, if a newly-added
multiplexed interrupt handler has the same maskptr as another
handler on the same IRQ line, that new handler doesn't get it's
cached mask set. For example if a single IRQ has a usb device and
a modem (tty), the second device to register it's handler will get
its idesc->mask set to 0 instead of the value of tty_imask because
update_mux_masks() may never be called to set it. Of course, if
update_masks() is called later for some other device it may correct
the situation.

Interrupt handlers are called with intr_mask[irq] or'd into the
cpl to block further interrupts; for non-multiplexed interrupts
intr_mask[irq] will set from one of the *_imask masks. However with
multiplexed interrupts, only the IRQ itself (and SWI_CLOCK_MASK)
are blocked, and the multiplex handler intr_mux() needs to raise
the cpl further when necessary. It uses idesc->mask to control
this.

When this bug occurs, idesc->mask == 0, so the device interrupt
handler gets called with only the IRQ and SWI_CLOCK_MASK masked,
instead of the full *_mask that it requested. Not good.

On my laptop, this bug causes hangs within minutes of starting to
use a pccard modem, but as should be apparent from the above it
could strike virtually anywhere that multiplexed interrupts are
used. The patch below seems to solve the problem; it just causes
update_masks() to unconditionally update the masks.

Ian


Index: intr_machdep.c
===
RCS file: /home/iedowse/CVS/src/sys/i386/isa/intr_machdep.c,v
retrieving revision 1.29.2.2
diff -u -r1.29.2.2 intr_machdep.c
--- intr_machdep.c  2000/08/16 05:35:34 1.29.2.2
+++ intr_machdep.c  2001/08/23 20:24:17
@@ -651,15 +651,9 @@
 
if (find_idesc(maskptr, irq) == NULL) {
/* no reference to this maskptr was found in this irq's chain */
-   if ((*maskptr & mask) == 0)
-   return;
-   /* the irq was included in the classes mask, remove it */
*maskptr &= ~mask;
} else {
/* a reference to this maskptr was found in this irq's chain */
-   if ((*maskptr & mask) != 0)
-   return;
-   /* put the irq into the classes mask */
*maskptr |= mask;
}
/* we need to update all values in the intr_mask[irq] array */


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Proposed change to icmp_may_rst induced ENETRESET

2001-08-23 Thread Barney Wolff

As another heavy nmap user, I'd vote just the other way.  It's useful
to differentiate between a reset coming back from the destination host
and an unreachable from a firewall/router-acl.  Ordinary apps probably
don't care all that much about why a connection could not be established,
and just report the error to the user.

Barney Wolff

On Wed, Aug 22, 2001 at 02:05:04AM -0700, Scott Renfro wrote:
> On Tue, Mar 27, 2001 at 10:48:26AM -0600, Jonathan Lemon wrote:
> > On Tue, Mar 27, 2001 at 06:36:46PM +0200, Jesper Skriver wrote:
> > > On Tue, Mar 27, 2001 at 10:19:22AM -0600, Jonathan Lemon wrote:
> > > > 
> > > > I forget why I picked ENETRESET; probably because it was the
> > > > first thing that leaped out at me when I quickly skimmed over
> > > >  looking for an appropriate error code; but I
> > > > didn't consider the UDP case.
> > >
> > > --- src/sys/netinet/ip_input.c2001/03/08 23:14:54
> > > 1.130.2.21
> > > +++ src/sys/netinet/ip_input.c2001/03/27 16:35:15
> > > @@ -1484,7 +1484,7 @@
> > > EHOSTUNREACH,  EHOSTUNREACH,  ECONNREFUSED,   ECONNREFUSED,
> > > EMSGSIZE,  EHOSTUNREACH,  0,  0,
> > > 0,0,
> > > 0,  0,
> > > -   ENOPROTOOPT,  ENETRESET
> > > +   ENOPROTOOPT,  ECONNREFUSED
> > > };
> > 
> > Yes, I think this probably is the best approach; just get rid 
> > of the ENETRESET altogether for this case.
> 
> In follow-up to this discussion from March (yes, I'm a slow reader ;-),
> I'd like to propose that we do, in fact, s/ENETRESET/ECONNREFUSED/ in
> the inetctlerrmap in ip_input.c.
> 
> At work, we make extensive use of nmap, which uses a mixture of
> OS-provided stack features and direct packet capture/generation.  We
> discovered that the icmp_may_rst code added to FreeBSD causes nmap to
> report incorrect results when ICMP_UNREACH_*_PROHIB messages are
> received in response to connect(2).
> 
> We've considered just disabling the tunable, changing nmap, or changing
> FreeBSD.  After much analysis, we've concluded that most sensible change
> is for FreeBSD to generate an ECONNREFUSED in response to the icmp
> unreach prohib messages.  I'm sure other applications expect
> ECONNREFUSED but not ENETRESET in response to connect(2) calls as well.
> 
> Since this only occurs in the TCPS_SYN_SENT state, there cannot be an
> actual tcp connection in place to reset.  And, since we're in a SYN_SENT
> state, what is most likely happening is that our connection request is
> being refused by the remote host (or an upstream router/firewall).
> 
> Finally, ECONNREFUSED is, and long has been, a documented error in the
> connect(2) man page.
> 
> While I'm at it, I'll be bold and request that if this change is
> acceptable, it be MFC'd for 4.4-RELEASE (I think this is a low-risk,
> high-payoff change, but opinions may vary).  (I do like the icmp_may_rst
> behavior in general, of course.)
> 
> I've attached a copy of the desired patch since the one above may be
> hosed by message reformatting.
> 
> cheers,
> --Scott
> 
> -- 
> Scott Renfro <[EMAIL PROTECTED]>  +1 650 862 4206

> --- src/sys/netinet/ip_input.c.orig   Wed Aug 22 01:49:43 2001
> +++ src/sys/netinet/ip_input.cWed Aug 22 01:50:06 2001
> @@ -1562,7 +1562,7 @@
>   EHOSTUNREACH,   EHOSTUNREACH,   ECONNREFUSED,   ECONNREFUSED,
>   EMSGSIZE,   EHOSTUNREACH,   0,  0,
>   0,  0,  0,  0,
> - ENOPROTOOPT,ENETRESET
> + ENOPROTOOPT,ECONNREFUSED
>  };
>  
>  /*


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Serious i386 interrupt mask bug in RELENG_4 (was Re: 4.4-RC NFS panic)

2001-08-23 Thread Walter C. Pelissero

Ian Dowse writes:
 > In message <[EMAIL PROTECTED]>, Warner Losh writes:
 > >
 > >I think that might be due to a bug in the shared interrupt code that
 > >Ian Dowse sent me about earlier today.
 > 
 > Just to add a few details - there is a bug in the update_masks()
 > function in i386/isa/intr_machdep.c that can cause some interrupts
 > to occur at times when they should be masked. The problem only
 > occurs with certain configurations of shared interrupts and devices,
 > and this code is only present in RELENG_4.

Congratulations!
I've applied your patch together with the one posted by Warner Losh
and now the PCMCIA card is working again and the find/cat test passed
without panic.

-- 
walter pelissero
http://www.pelissero.org

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



Re: Proposed change to icmp_may_rst induced ENETRESET

2001-08-23 Thread Scott Renfro

On Thu, Aug 23, 2001 at 04:53:26PM -0400, Barney Wolff wrote:
>
> As another heavy nmap user, I'd vote just the other way.  It's useful
> to differentiate between a reset coming back from the destination host
> and an unreachable from a firewall/router-acl.  Ordinary apps probably
> don't care all that much about why a connection could not be
> established, and just report the error to the user.

I suspect that most (good) applications use strerror(3) to map errors
into messages for the user.  Today, users get "Network dropped
connection on reset"; with the patch they'd get "Connection refused".
I think the latter is preferred under POLA, especially when the former
is not a documented response to connect(2).

You have a valid point that icmp_may_rst changes nmap's behavior, even
with the proposed patch.  If you want nmap's historic behavior (admin
prohib ==> filtered), then turning off icmp_may_rst works.  With
icmp_may_rst turned on and the patch commited, you get the other
behavior (admin prohib ==> closed).  Without the patch, nmap spews
errors and would need a FreeBSD-specific change.

regards,
--Scott

-- 
Scott Renfro <[EMAIL PROTECTED]>  +1 650 862 4206

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message



No Subject

2001-08-23 Thread itojun

>thank you for writing!
>My problem is that, when trying a tunnel between a Linux box to the 
>FreeBSD box, in the Linux routing table, the nexthop address 
>is fe80::8007:54. (here 8007:54 is in hexadecimal the IPv4 address of the 
>FreeBSD box -or sit1 for Linux (endpoint of the tunnel).
>This is not a compatible address as you say, but is it possible to have
>this address on the FreeBSD box. I think its necessary for the tunnel.

it shouldn't really matter.  but if you really care, remove
fe80:: you have and then add the new one.
# ifconfig gif0 up
# ifconfig gif0 inet6 fe80:: -alias
# ifconfig gif0 inet6 fe80::8007:54 prefixlen 64 alias

itojun

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message