Goodday to you all,

For all of you interested in Real Time networking, I have placed in
ftp.rtlinux.org/pub/application/drivers/rt_tulip-0.1, a tar'd file
containing the source files, headers, brief Documentation and README of a
new RT driver I have been programming for the last months.
The driver is for the DEC Chip Tulip card and has been compiled in
RTLbeta16 on top of Intel Linux 2.2.12.

The following is a brief description of the driver :
------------
RT_tulip has been implemented bearing in mind the problem of
synchronization in Distributed Systems. 

The driver allows a Tulip Ethernet card to share the network bandwidth
between normal and real time mode operation. For this, an adittional
encoding before transmition has been done in order to spot RT packets at
the time of reception and treat them in a separate rx queue. Normal
packets, as usual will go through the netif_rx call.

It implements a memory manager to allocate skbuffers that are received and
sent, without invoking kmalloc or any other similar OS functions, that as
it is known could become unestable when called from RT Linux space. When
there is not memory available in RT space, the driver pends an interrupt
to free some of the queued skb's and  wait for refilling. It also pends a
tx interrupt to manage the transmitions, when tbusy is clear and there are
tx skb's queued waiting for being sent.

For the time being, the driver only allows peer-to-peer communication and 
communicate with other computers through ethernet hardware addresses. So
the application must do all the synchronization.

Nevertheless the IP implementation (or other network protocol) is an
ongoing project.

A user application running in Linux space can send or receive packets
from the driver via rt-fifos. For RTL applications(RT_threads) the  
RTL_POSIX_IO has been implemented. Here an ioctl call has been used to
change the destination address of the RT packets.

The driver has been tested in a uniprocessor configuration, the tests
consisted of passing a file over 25 Mb backwards and forwards between 2
computers. It's still running since several days ago and no visible errors
have been detected. 
Nevertheless, as it uses full bandwidth transmition most of the time,
because of the high priority of the RT packets, the performance of the
'normal' applications (netscape, ftp, telnet) running in any of the
machines in the local network are affected negatively  when transmitting huge
files over the net.

The SMP version is being tested. 

Any comments about the driver, patches or bug reports are greatly 
appreaciated.

Thank you very much.

Axel E. Bernal
CS Dept. NMT, 
Socorro NM

Aditional Notes about Plataform and Instalation. (See README)

RT_TULIP has been implemented for a DEC tulip chip card using RT_Linux
beta16 on top of Intel Linux 2.2.12.

rtt_rcv_app.c, rtt_tx_app.c, rtt_rcv_tx.c and rtt_tx_rcv.c  are examples
of user applications. The former receives a file that the latter sends it.

You can also take a look at rtt_rndtrip*  to measure the round trip time 
of a single packet and compare how it changes when using user
applications like netscape, ftp or any other.

All the programs use some macros to build message synchronization  and
send and receive packets defined in rtt_lib.h. 




--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to