hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
HOWTO for using RTnet over FireWire (ETH1394)
=============================================
To use RTnet over FireWire, one needs another package, i.e. RT-FireWire, which
can be checked out via "svn checkout svn://svn.berlios.de/rtfirewire/trunk".
RT-FireWire package is developed by RT-FireWire project team, see the project
homepage for more interesting information (http://rtfirewire.berlios.de).
 
It is recommended to compile and test the RT-FireWire package first.
RT-FireWire only compiles with fusion. At the time of writing, it is the CVS
version of fusion which will become release 0.9. Use --with-rtai=XXX to
specify the installation location of fusion in your system.
 
To compile RTnet's Eth1394 driver with RT-FireWire, one needs to do 2 things
in configuration:
1. add --with-rtfw=XXX to specify the source location of RT-FireWire
2. add --enable-eth1394 to enable the compiling of eth1394
Of course, don't forget --with-rtai=XXX for RTnet.
 
RT-FireWire comes with some basic testing tool, one of which is similiar to
"rtping" on Ethernet. See the Readme of RT-FireWire for how to play around
with basic FireWire testing.
 
Currently, Eth1394 appears exactly the same as normal Ethernet device. So from
the application point of view, no medium difference can be seen, which means
application on Ethernet can be directly moved to FireWire without any porting
effort.
 
So, play around with your new medium i.e. FireWire, with exactly the same tool
on Ethernet-:).
 
 
Modification to RFC2734
=======================
Each IP-capable node must have it own unique hardware address in the network.
The original IPover1394 spec (RFC2734) employs the 64-bit GUID of each
FireWire adapter chip as the hardware address. That way, the hardware address
can be guaranteed to be unique even in the world scale, but the address
resolution process is not efficient, see below:
 
               ARP                    Eth1394 internal
            resolution                   resolution
  48-bit                    MAC                            16-bit
IP address -----------> (64-bit GUID) ---------------> FireWire nodeid
 
The modified ARP on IPover1394 directly use the FireWire node id as hardware
address for each Eth1394 nodes. That way, the mapping between IP address and
hardware address (FireWire node id) only needs one time of resolution, which
is more efficient than the original one. Note that here we assume that we use
static allocation of 1394 address space to IPover1394, i.e. on each node, the
address space for Eth1394 would be exactly the same, see "eth1394.h". So, the
16 bits would be enough to represent the hardware address. Now the address
resolution process is  more efficient, as below:
 
                   ARP resolution
48-bit IP address ---------------> MAC (FireWire nodeid)
 
To give exactly the same look as normal Ethernet devices, the MAC address of
Eth1394 is extended to 6-bytes by filling 0 after the 2 bytes FireWire node
id. This way all the highlevel stuff which is already working on Ethernet,
like RTnet's TDMA, RTcfg, can be directly moved to Eth1394.
 
 
Good Luck!
 
2005-08-02 Zhang Yuchen <yuchen623-at-gmail.com>