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
66
67
68
69
70
71
72
README.rtnetproxy
===================
08-Nov-2002, Mathias Koehrer <mathias_koehrer@yahoo.de>
02-May-2008, Wolfgang Grandegger <wg@grandegger.com>
 
 
RTnetproxy can be used to share a single network adapter for both - realtime
and non-realtime ethernet traffic. TCP/IP, UDP and ARP can be used via RTnet
(of course not in realtime!)
 
RTnetproxy represents a network device to standard Linux and can be used
as any other Linux network device (ifconfig for configuration), the name
the network device is "rtproxy".
 
Setup:
--------
Get your RTnet working first! All IP addresses you are interested in have
to be set via "rtifconfig ethX route solicit IP_ADDRESS"!
 
     insmod rtnetproxy.o
 
Now, you have a network device "rtproxy" ready to be used with Linux.
Configure this network device using "ifconfig":
 
Example:
 
    ifconfig rtproxy up 192.168.10.10 netmask 255.255.255.0
 
That's it!
 
Configuration options:
------------------------
--enable-proxy: this enables RTnetproxy support, which is by default
    restricted to IP-based protocols (TCP/IP!!!). Incoming frames from
    ICMP are interpreted directly by RTnet and are not forwarded to the
    RTnetproxy. UDP packets are forwarded if they are not requested by
    an RTnet application.
 
--enable-proxy-arp: this option enables ARP support for the rtproxy Linux
    network device. Incoming ARP replys are delivered to both, the RTnet
    and the Linux network stack. The rtproxy then gets attached to the
    corresponding RTnet device, rteth0 by default.
 
--disable-icmp: this option disables the RTnet IPv4 ICMP support. ICMP
    will then be handled by the Linux network stack via the rtproxy Linux
    network device.
 
Important note:
-----------------
It is highly recommended to strictly separate realtime LAN traffic and non-
realtime LAN traffic. For a configuration/setup phase, TCP/IP is sometimes
very useful, buf for realtime data exchange the LAN should be reserved for
the realtime traffic using UDP!
 
 
How it works internally:
--------------------------
RTnetproxy works on top of RTnet.
All data to be sent out or received is actually copied between RTnet and
RTnetproxy => The performance is not as good as with the standard Linux
network drivers.
All incoming IPv4 frames, having a IP protocol ID that is not handled by
RTnet are passed to RTnetproxy.
Incoming frames, that are passed to RTnetproxy (TCP frames) slow down the
realtime stuff a little bit - as all this is done in realtime mode context!
 
 
Possible enhancements:
-----------------------
Pass incoming frames to RTnetproxy not only by checking the protocol ID but
by actual checking, if a certain frame has been processed by RTnet or not.
This leads to a couple of changes in the RTnet implementation...