Marvell chipsets on 8-CURRENT and XP x64 won't talk with one
another
Garrett Cooper
youshi10 at u.washington.edu
Wed Oct 31 10:50:27 PDT 2007
Garrett Cooper wrote:
> Tom Judge wrote:
>> Garrett Cooper wrote:
>>> Mike Silbersack wrote:
>>>>
>>>> On Fri, 19 Oct 2007, Garrett Cooper wrote:
>>>>
>>>>>> Just to clarify, how are the two hooked together? Is it over
>>>>>> gigabit switch, a 10mbps hub, or directly cabled together?
>>>>>>
>>>>>> -Mike
>>>>>
>>>>> Sure. They're both connected over a gigabit switch, but the
>>>>> Windows driver's kind of sketchy because it keeps on switching
>>>>> between 100MBit and 1GBit. I haven't really paid that much
>>>>> attention to what speed the FreeBSD msk driver is registering at.
>>>>> -Garrett
>>>>
>>>> Ah ha!
>>>>
>>>> I had the flopping between 100mbps and 1gbps problem with some
>>>> Intel cards once - some of the machines in the lab were fine,
>>>> others kept switching back and forth. We eventually narrowed it
>>>> down to the cables we had hand-made; some of them just weren't up
>>>> to snuff, and the NIC apparently decided that it had to go back
>>>> down to 100.
>>>>
>>>> I think you should switch your gigabit switch out for a 100mbps
>>>> switch and see if the network becomes more reliable.
>>>>
>>>> -Mike
>>>
>>> I think I've discovered what the issue is. I believe the problem
>>> lies in the fact that the FreeBSD Marvell chipset driver (msk) isn't
>>> up to speed with the Gigabit transferring on my particular
>>> chipset(s). That's why transfers were most likely working with my
>>> laptop (Apple with 100MBit Broadcom) vs my desktop (Asus MB with
>>> another Marvell chipset driver) and another laptop (Dell laptop with
>>> Broadcom Gigabit).
>>> How do I tell ifconfig via rc.conf to downgrade the max speed to
>>> 100MBit duplex?
>>> Thanks,
>>> -Garrett
>>
>> You would need to hard code the interface configuration on the switch
>> and box. This is only possible if you have a managed switch and the
>> methods on the switch are manufacturer and model dependent.
>>
>> On FreeBSD however it is trivial for example "ifconfig em0 media
>> 100baseTX mediaopt full-duplex".
>>
>> This will disable speed negotiation and therefore must be configured
>> at both ends of the link.
>>
>> Tom
>
> Well, this is interesting. I used a crappy switch (100MBit SOHO
> switch), in place of my Netgear non-managed gigabit switch, and the
> same thing occurred on the XP x64 machine.
>
> I may have forgotten to mention that at one time both machines were
> running XP variants of some sort (x64 and x86), and they worked
> perfectly fine with one another >_>...
>
> Here's some additional info:
>
> optimus# arp -a
> ? (192.168.0.1) at (incomplete) on msk0 [ethernet] # Dummy gateway
> ? (192.168.0.42) at 00:11:24:2f:15:bc on msk0 [ethernet] # iBook
> (broadcom adapter)
> ? (192.168.0.47) at 00:1a:92:d2:f7:f6 on msk0 [ethernet] # Win XP x64
> machine
> ? (192.168.0.255) at ff:ff:ff:ff:ff:ff on msk0 permanent [ethernet]
> optimus# ifconfig msk0
> msk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
> 1500
> options=9a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
> ether 00:1b:fc:45:9b:5c
> inet 192.168.0.45 netmask 0xffffff00 broadcast 255.255.255.0
> media: Ethernet autoselect (100baseTX <full-duplex,flag0,flag1>)
> status: active
> ifconfig_msk0="inet 192.168.0.45 broadcast 255.255.255.0"
> # media 100baseTX mediaopt full-duplex"
> defaultrouter="192.168.0.1"
> optimus# netstat -nr
> Routing tables
>
> Internet:
> Destination Gateway Flags Refs Use Netif
> Expire
> default 192.168.0.1 UGS 0 0 msk0
> 127.0.0.1 127.0.0.1 UH 0 12 lo0
> 192.168.0.0/24 link#1 UC 0 0 msk0
> 192.168.0.1 link#1 UHLW 2 0 msk0
> 192.168.0.42 00:11:24:2f:15:bc UHLW 1 179 msk0
> 1028
> 192.168.0.47 00:1a:92:d2:f7:f6 UHLW 1 21 msk0
> 1162
> 192.168.0.255 ff:ff:ff:ff:ff:ff UHLWb 1 49 msk0
>
> arp and everything's show the correct information on the XP end, even
> after I removed the 'dummy gateway' on both machines..
>
> Next course of action? Snort? tcpdump?
>
> Thanks,
> -Garrett
I'm running tcpdump on my Mac and I noted a lot of 'bad checksums'
(0x081c was the official error in all cases), then consulted the msk
driver. It appears that there's a bug with Yukon II chipsets with the
hardware checksumming and I wonder whether or not the chipset that I
have is affected by this issue as well.
I'll provide my chipset/model info in my next reply (can't access it
from this PC).
-Garrett
More information about the freebsd-net
mailing list