# ip over firewire

## terminallymortal

Greetings, I seem to be having problems getting ip working over firewire between two gentoo boxes.

I've included the necessary support in the kernel

```

Device Drivers  --->

  IEEE 1394 (FireWire) support  --->

    <*> IEEE 1394 (FireWire) support

    <*>   Ethernet over 1394

```

and she sets up the interface for me just fine as seen in dmesg:

```

eth1: forcedeth.c: subsystem: 01043:80a7 bound to 0000:00:04.0

eth1394: $Rev: 1247 $ Ben Collins <bcollins@debian.org>

eth1394: eth2: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)

```

and I can assign an ip to it with ifconfig:

```

ifconfig eth2

eth2      Link encap:UNSPEC  HWaddr 00-E0-18-00-00-4F-8B-F3-00-00-00-00-00-00-00-00

          inet addr:10.1.1.2  Bcast:10.255.255.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:231 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 b)  TX bytes:8316 (8.1 Kb)

```

(the other machine is 10.1.1.1 with pretty much the same setup)

Initially a route wasn't added so I added that:

```

 route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.1.1.0        *               255.255.255.0   U     0      0        0 eth2

192.168.88.0    *               255.255.255.0   U     0      0        0 eth1

loopback        localhost       255.0.0.0       UG    0      0        0 lo

default         192.168.88.254  0.0.0.0         UG    0      0        0 eth1

```

The boxes can talk just fine on their fastethernet ports on t he 192.168.88.0/24 network (ping ssh etc), but I get destination host unreachable when trying to ping on the 10.1.1.0/24 network.

When pinging from .2 to .1:

```

ping 10.1.1.1

PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.

From 10.1.1.2 icmp_seq=1 Destination Host Unreachable

From 10.1.1.2 icmp_seq=2 Destination Host Unreachable

```

And the output from tcpdump:

```

tcpdump -nN -i eth2

tcpdump: WARNING: arptype 24 not supported by libpcap - falling back to cooked socket

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth2, link-type LINUX_SLL (Linux cooked), capture size 68 bytes

15:01:53.869041 truncated-arp

        0x0000:  0018 0800 1004 0001 00e0 1800 004f 8bf3  .............O..

        0x0010:  0a02 ffff 0000 0000 0a01 0102 0a01 0101  ................

15:01:54.868914 truncated-arp

        0x0000:  0018 0800 1004 0001 00e0 1800 004f 8bf3  .............O..

        0x0010:  0a02 ffff 0000 0000 0a01 0102 0a01 0101  ................

15:01:56.869661 truncated-arp

        0x0000:  0018 0800 1004 0001 00e0 1800 004f 8bf3  .............O..

        0x0010:  0a02 ffff 0000 0000 0a01 0102 0a01 0101  ................

3 packets captured

3 packets received by filter

0 packets dropped by kernel

```

I can't seem to find anyone who's had problems setting this up, it seems like it's trying to arp (I'm not sure tcpdump would/should work on this interface), but then the link encapsulation and mac address in ifconfig seems odd to me...

Link encap:UNSPEC  HWaddr 00-E0-18-00-00-4F-8B-F3-00-00-00-00-00-00-00-00

Shouldn't it say Ethernet with a 00:0E:A6:2B:3C:B6-like mac?

Could someone show me the output of their ifconfig on a working ip over 1394 configuration?

Also is there such thing as a crossover firewire cable?  Or should the run-of-the-mill firewire cable just work?

Any help is much appreciated.

----------

## TierMann

Anyone?

I'm having the same problem here.

I'm just using a standard 6pin to 6pin firewire cable here and it works fine between Windows XP and XP64.

----------

## Swi+ch

not sure why ARP wouldn't be working but have you tried a static arp table? Tell it what the MAC address is for the dest machine so it can just skip that phase. 

arp  -s  <hostname> <hwaddr>

----------

## terminallymortal

Thanks for the suggestion Swi+ch, but that's the thing - as you can see from the ifconfig output the mac address is 00-E0-18-00-00-4F-8B-F3-00-00-00-00-00-00-00-00, which doesn't fit well (read at all) into an arp table.  I'm not sure if the link encapsulation type should or shouldn't read ethernet, as it's not really true ethernet...

If it is indeed supposed to say Ethernet encapsulation and have a regular 12 byte mac address I do not know how to change it to such - this doesn't work:

[0.07 0.07 0.04][root]@procrustes:~# ifconfig eth2 hw ether 00:0E:A6:2B:48:01

SIOCSIFHWADDR: Invalid argument

----------

## Swi+ch

did you try to set a static arp cache entry though? not change your mac addr on the interface. i believe the arp rfc provides a variable length hw addr field.

http://www.faqs.org/rfcs/rfc826.html

```

 8.bit: (ar$hln) byte length of each hardware address

```

i really don't know if it's used though. i've only ever seen 48 bit addresses (btw 6 bytes...not 12).

anyways...i doubt any of that last information will help but this weekend i'm going to try and get networking over firewire going. Hence my finding the post. So I'll tell you what i can when I start messing with it. or maybe i'll be adding another plea for help. later

Swi+ch

----------

## MrUlterior

I have this same problem, here's the config on host A:

 *Quote:*   

> eth1      Link encap:UNSPEC  HWaddr 00-E0-18-00-00-AA-7B-5B-00-00-00-00-00-00-00-00
> 
>           inet addr:10.2.0.2  Bcast:10.2.0.255  Mask:255.255.255.0
> 
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> ...

 

And host B:

 *Quote:*   

> eth1      Link encap:UNSPEC  HWaddr 00-11-D8-00-00-03-5C-DC-00-00-00-00-00-00-00-00
> 
>           inet addr:10.2.0.11  Bcast:10.2.0.255  Mask:255.255.255.0
> 
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> ...

 

However pinging one from the other returns:

 *Quote:*   

> # ping 10.2.0.2
> 
> PING 10.2.0.2 (10.2.0.2) 56(84) bytes of data.
> 
> From 10.2.0.11 icmp_seq=2 Destination Host Unreachable
> ...

 

And no ammount of googling & fiddling with arp --set has helped, I tried setting up the ARP records on each with the others IP & the HWaddr reported by ifconfig, but that returns:

 *Quote:*   

> # arp --set 10.2.0.2 00-E0-18-00-00-AA-7B-5B-00-00-00-00-00-00-00-00 --device eth1
> 
> arp: invalid hardware address

 

It seems that the correct modules are loaded:

 *Quote:*   

> 
> 
> Module                  Size  Used by
> 
> eth1394                21384  0
> ...

 

Has anyone managed to get past this problem?

----------

## MrUlterior

Heh, blinded by my own stupidity .... the firewire port was the wrong way round on the motherboard of one of the PC's:

 *Quote:*   

> # ping 10.2.0.11
> 
> PING 10.2.0.11 (10.2.0.11) 56(84) bytes of data.
> 
> 64 bytes from 10.2.0.11: icmp_seq=1 ttl=64 time=0.151 ms
> ...

 

14 MBytes/sec is not that impressive though ....

----------

## terminallymortal

```

[0.00 0.00 0.00][root]@mini:~# netperf -H 10.1.1.2 -f M

TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.1.1.2 (10.1.1.2) port 0 AF_INET

Recv   Send    Send

Socket Socket  Message  Elapsed

Size   Size    Size     Time     Throughput

bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    10.00      12.67

```

pins on the mb were my problem as well, doh!  :Sad: 

----------

