Topics

direwolf frame size #direwolf #ax25

jgindc1@...
 

I am sending/receiving Winlink messages using a Raspberry pi with the DRAWS hat. All is well as long as the messages/attachments are short, less than a couple of kBytes.

When attempting to send longer messages/attachments, each transmission increases in time starting at about 4 seconds then climbing up to about 14-15 seconds at which time I get a fail message - "Exchanged failed: read udr0: connection timed out". I would like to set a limit to the maximum transmission period.

I am unsure at which software level the maximum packet/frame length is determined. I have looked at direwolf.conf but did not see any reference to frame or packet length.

Any suggestions would be gratefully received.

John KM7LJ

 



--


John D. Hays
Edmonds, WA
K7VE

   

Basil Gunn
 

I know of a timing problem in paclink-unix but the file sizes are in the
10k to 20k byte range. Could you please send the file you are trying to
send as an attachment to my personal email address, not the udrc
group. Also copy/paste the entire console session output so that I can
replicate your problem.

The AX.25 frame size is set in /etc/ax25/axports configuration file and
should be 255 bytes.

I only use direwolf as a sound modem. You should NOT be setting any
AX.25 parameters there.

Regarding Winlink message file sizes:

From a google groups thread (Adam KF7LJH)

ARES typically recommends no more than 5KB winlink messages. More than
than can risk your radio (and the gateway's radio) since the output
finals can get so hot because of the long transmission time.

Attachments are generally a bad idea with winlink. Keep it plain text
only.

From the Winlink site:
Message size maximum, including Attachments: 120000 bytes (compressed)

/Basil

jgindc1@... writes:

I am sending/receiving Winlink messages using a Raspberry pi with the
DRAWS hat. All is well as long as the messages/attachments are short,
less than a couple of kBytes.

When attempting to send longer messages/attachments, each transmission
increases in time starting at about 4 seconds then climbing up to
about 14-15 seconds at which time I get a fail message - "Exchanged
failed: read udr0: connection timed out". I would like to set a limit
to the maximum transmission period.

I am unsure at which software level the maximum packet/frame length is
determined. I have looked at direwolf.conf but did not see any
reference to frame or packet length.

Any suggestions would be gratefully received.

John KM7LJ

 

There are two different ways that applications can use direwolf as a TNC.

(1) As a stupid KISS TNC.  In this case the application is totally in control.  The stupid TNC just does what it is told.  Decisions about PACLEN, MAXFRAME, etc. are made entirely by the application layer.  (Or AX.25 for Linux if that is in the middle.)

(2) The AGW network interface allows direwolf to perform the link layer (connected mode) function.  In this case the direwolf configuration has the usual PACLEN, MAXFRAME, etc.

This block diagram illustrates how the AGW network interface can access more functionality inside the TNC.   https://github.com/wb2osz/direwolf/blob/master/direwolf-block-diagram.png   It is advantageous to use that interface if your application supports it. 

This application note  https://github.com/wb2osz/direwolf/raw/dev/doc/Why-is-9600-only-twice-as-fast-as-1200.pdf  explains the differences between using the AX.25 link layer built in to direwolf or having the application treat it as a stupid KISS TNC.

Back to your question.  We need to run a test to see what is going on.  Run direwolf with these options:

direwolf -d nao -T %T  2>&1 | tee w.log

This will capture information about the conversation between your application and direwolf.  It will also print information about Carrier Detect and PTT so we can see how many frames are in each transmission.  The -T option will add timestamps.   Finally it is all captured in a file so we can examine it later.

jgindc1@...
 

Attachment and console output sent to your personal address.

John KM7LJ


On Mon, Feb 25, 2019 at 5:26 PM Basil Gunn <basil@...> wrote:

I know of a timing problem in paclink-unix but the file sizes are in the
10k to 20k byte range. Could you please send the file you are trying to
send as an attachment to my personal email address, not the udrc
group. Also copy/paste the entire console session output so that I can
replicate your problem.

The AX.25 frame size is set in /etc/ax25/axports configuration file and
should be 255 bytes.

I only use direwolf as a sound modem. You should NOT be setting any
AX.25 parameters there.

Regarding Winlink message file sizes:

From a google groups thread (Adam KF7LJH)

ARES typically recommends no more than 5KB winlink messages. More than
than can risk your radio (and the gateway's radio) since the output
finals can get so hot because of the long transmission time.

Attachments are generally a bad idea with winlink. Keep it plain text
only.

From the Winlink site:
Message size maximum, including Attachments: 120000 bytes (compressed)

/Basil

jgindc1@... writes:

> I am sending/receiving Winlink messages using a Raspberry pi with the
> DRAWS hat. All is well as long as the messages/attachments are short,
> less than a couple of kBytes.
>
> When attempting to send longer messages/attachments, each transmission
> increases in time starting at about 4 seconds then climbing up to
> about 14-15 seconds at which time I get a fail message - "Exchanged
> failed: read udr0: connection timed out". I would like to set a limit
> to the maximum transmission period.
>
> I am unsure at which software level the maximum packet/frame length is
> determined. I have looked at direwolf.conf but did not see any
> reference to frame or packet length.
>
> Any suggestions would be gratefully received.
>
> John KM7LJ



Basil Gunn
 

John,
Thanks for the files.

You are having a problem with Pat timeouts. I support paclink-unix as a
Linux Winlink client/transport and not Pat.

It looks like you have a pending message coming in and you successfully
sent your 144.8k picture of a Pactor modem and then the AX.25 socket
opened by Pat times out.

What I would do is simplify your problem by receiving your pending
message. You can do that by using your Winlink Web account.

Try transmitting your file again. If it still times out try transmitting
some smaller attached file. Also you might want to post this problem on
the Pat support forums.

I see you successfully connected to RMS Gateway K7GJT-10 which is not
configured to beacon to Winlink services, ie. I could not find it in the
Winlink packet RMS list. This gateway will eventually stop responding if
that isn't fixed.

Sorry I couldn't be of more help.

/Basil


jgindc1@... writes:

Attachment and console output sent to your personal address.

John KM7LJ

jgindc1@...
 

Basil,

Thanks for taking the time to investigate. Any information is worth having.

John KM7LJ


On Tue, Feb 26, 2019 at 5:02 PM Basil Gunn <basil@...> wrote:

John,
Thanks for the files.

You are having a problem with Pat timeouts. I support paclink-unix as a
Linux Winlink client/transport and not Pat.

It looks like you have a pending message coming in and you successfully
sent your 144.8k picture of a Pactor modem and then the AX.25 socket
opened by Pat times out.

What I would do is simplify your problem by receiving your pending
message. You can do that by using your Winlink Web account.

Try transmitting your file again. If it still times out try transmitting
some smaller attached file. Also you might want to post this problem on
the Pat support forums.

I see you successfully connected to RMS Gateway K7GJT-10 which is not
configured to beacon to Winlink services, ie. I could not find it in the
Winlink packet RMS list. This gateway will eventually stop responding if
that isn't fixed.

Sorry I couldn't be of more help.

/Basil


jgindc1@... writes:

> Attachment and console output sent to your personal address.
>
> John KM7LJ



jgindc1@...
 

John, WB2OSZ,

I am using a pre-installed/configured version of direwolf that is included with the Raspberry Pi image. I use a provided shell script to start and stop direwolf. 

 In order to run direwolf with your suggested arguments, I have to invoke the ax25-stop script to stop the current direwolf instance. I then run direwolf with your suggested arguments which appears to be successful.

Unfortunately, my email client application (PAT) reports that "No AX25 ports configured" and therefore I am unable to attempt to send the large message. I do not know if there is a way to change the PAT configuration to help with this issue.

I plan to post to the PAT group as Basil suggested.

Thanks for your suggestions,

John KM7LJ

On Mon, Feb 25, 2019 at 6:35 PM WB2OSZ <wb2osz@...> wrote:
There are two different ways that applications can use direwolf as a TNC.

(1) As a stupid KISS TNC.  In this case the application is totally in control.  The stupid TNC just does what it is told.  Decisions about PACLEN, MAXFRAME, etc. are made entirely by the application layer.  (Or AX.25 for Linux if that is in the middle.)

(2) The AGW network interface allows direwolf to perform the link layer (connected mode) function.  In this case the direwolf configuration has the usual PACLEN, MAXFRAME, etc.

This block diagram illustrates how the AGW network interface can access more functionality inside the TNC.   https://github.com/wb2osz/direwolf/blob/master/direwolf-block-diagram.png   It is advantageous to use that interface if your application supports it. 

This application note  https://github.com/wb2osz/direwolf/raw/dev/doc/Why-is-9600-only-twice-as-fast-as-1200.pdf  explains the differences between using the AX.25 link layer built in to direwolf or having the application treat it as a stupid KISS TNC.

Back to your question.  We need to run a test to see what is going on.  Run direwolf with these options:

direwolf -d nao -T %T  2>&1 | tee w.log

This will capture information about the conversation between your application and direwolf.  It will also print information about Carrier Detect and PTT so we can see how many frames are in each transmission.  The -T option will add timestamps.   Finally it is all captured in a file so we can examine it later.

John Spoonhower
 

Basil, and others,
I occasionally see these or similar errors (premature disconnects) at my Winlink RMS, NX2I-10. Other users reported the problem but without a lot of additional information. I have been experimenting with different file sizes as attachments. The problem for me occurs when file sizes are greater than 5K and typically in the 9-12K range. My test setup uses a Winlink Express client (current rev.) on a PC (Win 7) with Direwolf 1.5. The server is a Raspberry Pi3 with a UDRC-II and Direwolf 1.4. The Pi has an earlier version of compass as the OS distribution. Any guidance regarding what/where to look would be appreciated. 
73,
John, NX2I