I have changed the software of Madrid gateway, from jnos to Linux
(latest kernel (2.0.36) and axutils, RedHat 5.2).

A problem that I observed with my own station is now much more obvious.

When the traffic goes up, a "snow ball" effect happens with the ax25
polling procedure.

The cause of the problem is that the gateway receives _several_ RR(f) 
"desincronized" responses ("desincronized"= it is not ackowledging the
last frame sent by the gateway), wich causes the retransmition of the frames. 

If X desincronized RR(f) are received, Linux retransmit X times the
remaining frames (from the next frame ackowledged by this RR to the last
frame that the protocol has in its window), without releasing the ptt.

That only happens with the Linux gateway, did not happen before with the
Jnos;  this gateway is only a router/firewall to access to radio ports,
the tcp server is the same than before, another computer wich is routed
via this router; that's problem of ax25, not tcp/ip.


My thoery is:

Linux mark always the last packet with (p), but when the traffic goes up
(wich happens very quickly at 1200 bps) the retransmition timer expires
and an RR(p) is generated, when in fact the station is still transmiting.
To the receivers listen the last information packet with (p) and the
RR(p), generating another RR(p).

I also remark that the X retransmited blocs of packets are not the same,
the transmition window is moving; thats maybe related with the fact that
the  retransmition of packets also causes the sending of REJ from
receiving station.


I have tried to increment the t1 timer, and put the exponential backoff,
without no better results.
I think that the origin of the problem is that Linux mark always the last
packet with (p); or that maybe a bad configuration which causes that ? 

Here is the config:

#!/bin/sh
# Puerto de VHF en com2

IRTT=1100
MTU=256
MTU_TEST=256

echo "Configurando tnc a 1200 baudios ..."

insmod mkiss
# -i ip -m mtu tty puerto_ax25
kissattach -i 44.133.228.1 -m 256 /dev/ttyS1 1200

sleep 2

# -p puerto_ax2 -l txtail(ms) -r persist -s slottime(ms) -t txdelay(ms)
kissparms -p 1200 -l 0 -r 32 -s 160 -t 300


/sbin/ifconfig ax0 mtu $MTU_TEST netmask 255.255.255.192 broadcast
44.133.228.63 44.133.228.1
/sbin/route add -net 44.133.228.0 netmask 255.255.255.192 window 4320 mss 
$MTU_TEST irtt $IRTT dev ax0
/sbin/route add -net 44.133.0.0 netmask 255.255.0.0 window 4320 mss
$MTU_TEST irtt $IRTT dev ax0
/sbin/route add -net 44.128.0.0 netmask 255.255.0.0 window 4320  mss $MTU 
irtt $IRTT dev ax0
/sbin/route add -net 44.133.28.0 netmask 255.255.255.0 window 4320 mss
$MTU_TEST irtt $IRTT dev ax0

# Configuracion de parametros ax25

# Modo conectado=1, datagram=0
/bin/echo "1" >  /proc/sys/net/ax25/ax0/ip_default_mode
# Ventana de 4
/bin/echo "4" > /proc/sys/net/ax25/ax0/standard_window_size
# frack tope = 25  segundos
/bin/echo "250" > /proc/sys/net/ax25/ax0/t1_timeout 
# resptime = 1,5segundo
/bin/echo "15" >  /proc/sys/net/ax25/ax0/t2_timeout
# Se comprueba el enlace cada 20 minutos
/bin/echo "12000" >  /proc/sys/net/ax25/ax0/t3_timeout
# Enlace sin actividad se desconecta a los 30 minutos ( 1800 segundos )
/bin/echo "18000" >  /proc/sys/net/ax25/ax0/idle_timeout
# Timer lineal=0 exponencial=1
/bin/echo "1" > /proc/sys/net/ax25/ax0/backoff_type
/bin/echo "131" > /proc/sys/net/ax25/ax0/maximum_packet_length

# Parametros arp
# Maximo 7 arps
/bin/echo "7"  >  /proc/sys/net/ipv4/arp_max_tries
# Los arp quedan 1 hora en memoria
/bin/echo "360000" > /proc/sys/net/ipv4/arp_timeout
# Los arps requests se hacen cada 15 segundos
/bin/echo "1500" > /proc/sys/net/ipv4/arp_res_time
# Se comprueba aproximadamente cada 3500 segundos.
/bin/echo "350000" > /proc/sys/net/ipv4/arp_check_interval

# arp Publish
arp --hw-type ax25 -Ds 44.133.228.24 ax0 pub
arp --hw-type ax25 -Ds 44.133.228.8 ax0 pub



I would like to have help, because in this moment it's dificult to share
the qrg with nobody and the thoughput is very bad.



Thanks,
Julian, ea4acl
-.-


Reply via email to