When using xconvers behind a masquerading firewall, you might encounter timeouts. The server you are connected to will reset the connection if you type something after being idle for more than 15 minutes. The solution for this is changing the timeout value for your masqueraded TCP connection. Here is my setup for kernel 2.2:
ifconfig scc0 44.137.40.110 mtu 552 hw ax25 PA4TU up ipchains -P forward DENY ipchains -A forward -s 172.16.0.0/24 -j MASQ ipchains -M -S 14400 0 0
My private network will appear on the AX.25 port of my scc card with ip-number 44.137.40.110. Timeout has been set with the -S switch. -S will take 3 options: Timeout values (in seconds) for TCP sessions, TCP sessions after receiving a FIN packet, and UDP packets. 0 (zero) will leave to option unchanged. The number 14400 has set the TCP timeout to 4 hours. When typing 'ipchains -M -L', you will see an expire timer which counts down to zero.
Xconvers uses SO_KEEPALIVE on the connected socket. The SO_KEEPALIVE option causes a packet (called a 'keepalive probe') to be sent to the remote system if a long time (2 hours by default) passes with no other data being sent or received. This packet is designed to provoke an ACK response from the peer. This enables detection of a peer which has become unreachable (e.g. powered off or disconnected from the net).
This keepalive time can be changed at runtime from the /proc filesystem. You might be interested in setting this time much shorter, for example when using xconvers over AX.25 with an unstable network.
echo "900" > /proc/sys/net/ipv4/tcp_keepalive_time
will send an ACK packet every 15 minutes.