Project

General

Profile

Actions

Feature #5667

closed

Test different PM3 for ZModem throughput

Added by laforge 3 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
08/29/2022
Due date:
% Done:

100%


Description

We've observed very strange low ZModem throughput on the PM3 currently used in the OCTOI setup (with any of the tcp/telnet forwarding). jolly had observed good throughtput with a PM4 and as far as I remember somebody else also has shown proper througput on their PM3.

as I have 3 PM3 currently at my home: Compare and see if there's any difference; if there is, make sure that a unit with good throughput ends up in the co-location (see #5542)


Related issues

Related to OCTOI - Osmocom Community TDM over IP - Bug #5542: Move hub to datacenter colocationResolvedlaforge04/21/202209/19/2022

Actions
Actions #1

Updated by laforge 3 months ago

  • Related to Bug #5542: Move hub to datacenter colocation added
Actions #2

Updated by laforge 3 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

did the [hopefully sufficient] configuration of PM3-2 (my third PM3, from monaco telecom) last night.

Some of the original config, out of curiosity:

Livingston Enterprises, Inc. Boot Prom Rev P

Testing Low Memory....
Checking Boot Rom....
Testing System Clock....
Sizing System Memory... 4MB
CPU Type.... 486DE2-66
Starting FLASH Boot.....
Booting From Flash Type Am29F040
16384  flash copy complete
Verifying Loader Module Checksum...
Starting Loader ...
Scheduler Process: 
Loading kernel... 1280840 bytes
Testing High Memory ... . 4096K
munich_init_device: NO DEVICE 1
Found 31 ports....
ether0 active ... 64K burst-IO
Running ComOS...

PortMaster Console login: !root
Password: 

CHALLENGE: 3F7=F8PDKWYQFABA
Invalid Login
PortMaster Console login: <KVS3>O>CM2WM7A:
Password: 
Invalid Login
PortMaster Console login: !root
Password: 
titan4a> version
Lucent PortMaster PM-3 ComOS 3.9.1c1
System uptime is 1 minutes
titan4a> set password foobar
!root password changed from zee9 to foobar
titan4a> show glo
       System Name: titan4a
      Default Host: 0.0.0.0
   Alternate Hosts:
        IP Gateway: 194.51.26.254
    Gateway Metric: 1
   Default Routing: Quiet (Off)
      Name Service: DNS
       Name Server: 194.51.26.1, 194.51.26.2
            Domain: monaco.mc
Telnet Access Port: 23
           Loghost: 212.234.168.7
 Maximum PMconsole: 1
  Assigned Address: 194.51.26.225  (Pool Size 20)
     RADIUS Server: 212.234.168.7* 1645
  Alternate Server: 194.51.26.6 1645
 Accounting Server: 212.234.168.7 1646
 Alt. Acct. Server: 194.51.26.6 1646
Acct Retry Interval: 30 Sec
   Acct Retry Count: 6
Auth Retry Interval: 0 Sec
     Auth Failover: off
  ChoiceNet Server: 0.0.0.0
 Alt. ChNet Server: 0.0.0.0
PPP Authentication: PAP: on    CHAP: on 
  ISDN Switch Type: etsi
    End Point Disc: None
  Disabled Modules: SNMP OSPF L2TP BGP
titan4a> show netco
Hnd Recv-Q Send-Q  Local Address          Foreign Address        (state)
  8      0      0  194.51.26.224.67       0.0.0.0.0              UDP
  7      0      0  194.51.26.224.23       0.0.0.0.0              LISTEN
  6      0      0  194.51.26.224.1643     0.0.0.0.0              LISTEN
  5      0      0  194.51.26.224.1026     194.51.26.6.1646       UDP
  4      0      0  194.51.26.224.1023     212.234.168.7.514      UDP
  3      0     44  194.51.26.224.1025     194.51.26.1.53         UDP
  1      0      0  194.51.26.224.520      0.0.0.0.0              UDP
titan4a> show files
File Name        Length
---------------- -------
confdata         15713
config           218
snmp             21
hfile            47275
m2d_2.2          86810   (262144 uncompressed)
m2c_2.2          22749   (74070 uncompressed)
wanctl.0         9951    (40746 uncompressed)
mipsboot         23363   (65988 uncompressed)
                 -------
Total            206100
titan4a> show ospf
OSPF is not active
titan4a> show syslog

   Syslog Configuration Settings

    admin-logins: auth.info
     user-logins: auth.info
  packet-filters: auth.notice
        commands: disabled
     termination: disabled
             nat: disabled
           ipsec: disabled
titan4a> show modems
Mdm Port Status  Speed  Compression Protocol  Calls Retrain Disconnect
--- ---- ------  -----  ----------- -------- ------ ------- ------------
M20      READY   UNKNWN NONE        NONE          0       0 NORMAL
M21      READY   UNKNWN NONE        NONE          0       0 NORMAL
M22      READY   UNKNWN NONE        NONE          0       0 NORMAL
M23      READY   UNKNWN NONE        NONE          0       0 NORMAL
M24      READY   UNKNWN NONE        NONE          0       0 NORMAL
M25      READY   UNKNWN NONE        NONE          0       0 NORMAL
M26      READY   UNKNWN NONE        NONE          0       0 NORMAL
M27      READY   UNKNWN NONE        NONE          0       0 NORMAL
M28      READY   UNKNWN NONE        NONE          0       0 NORMAL
M29      READY   UNKNWN NONE        NONE          0       0 NORMAL
titan4a> show hosts
Host Internet Addr: 0.0.0.0
Gateways: Default: 194.51.26.254 
titan4a> show isdn
D  Ports   State L1 L2   Change  init  Up    Down
-- ------- ------------- ------- ----- ----- -----
 0  S0-S29 DOWN Inactive       7     0     0     0
 1  Not configured for PRI
titan4a> show routes
Destination        Mask Gateway              Source  Flag Met  Interface
-----------------  ---- -------------------- ------- ---- ---  ---------
0.0.0.0             0   194.51.26.254        local   NS     1  ether0
194.51.26.192      26   194.51.26.224        local   NL     1  ether0
titan4a> show ether0
  Ethernet Status: IP - Enabled   IPX - Disabled

   Interface Addr: 194.51.26.224
          Netmask: 255.255.255.192
Broadcast Address: 194.51.26.255

      IPX Network: 00000000
   IPX Frame Type: ETHERNET_802.2
 Ethernet Address: 00:c0:05:04:59:dc

          Routing: RIP(Broadcast, Listen (On))
     Input Filter: 
    Output Filter: 

Configuration is to allow it tobe placed in the same iP network as the pm3-lrw34a currently used by OCTOI:

pm3-2> show global
       System Name: pm3-2
      Default Host: 0.0.0.0
   Alternate Hosts:
        IP Gateway: 192.168.7.254
    Gateway Metric: 1
   Default Routing: Quiet (Off)
      Name Service: DNS
       Name Server: 192.168.7.2
            Domain: retronetworking.org
Telnet Access Port: 23
           Loghost: 192.168.7.2
 Maximum PMconsole: 1
  Assigned Address: 0.0.0.0
     RADIUS Server: 192.168.7.2* 1813
  Alternate Server: 0.0.0.0
 Accounting Server: 192.168.7.2 1812
 Alt. Acct. Server: 0.0.0.0
Acct Retry Interval: 30 Sec
   Acct Retry Count: 6
Auth Retry Interval: 0 Sec
     Auth Failover: off
  ChoiceNet Server: 0.0.0.0
 Alt. ChNet Server: 0.0.0.0
PPP Authentication: PAP: on    CHAP: on 
  ISDN Switch Type: etsi  (Call Check Enabled)
 L2TP LAC
   ISDN numberplan: ISDN E.164
   ISDN numbertype: Local
    End Point Disc: None
  Disabled Modules: SNMP IPX OSPF BGP
pm3-2> exit
Actions #3

Updated by laforge 3 months ago

Ok, so I now have the following setup:

  • client side:
  • network side:
    • Auerswald COMmander Basic 2 (to go from BRI to PRI)
    • TE820 with yate as softswitch
  • server side:
    • 2x Livingston Portmaster3 attached via E1
      • using tcp-clear forwarding to a remote telnet server, serving random bytes

The old random ZModem number is 030-1234-3005, the new PM3 random ZModem number is 030-1234-5005

When I make a data call with X.75 or V.120 to either of the two PM3, I'm getting about 2200 cps, which is abysimal. It should be around 7000.

The good news is that both PM3 behave identical, so it's not a hardware issue with either of them.

The question remains: why is it so slow?

Maybe it's something on the client side? Guess I need to bring on more ISDN TA.

Actions #4

Updated by manawyrm 3 months ago

Maybe it's something on the client side? Guess I need to bring on more ISDN TA.

Hm, I don't think so. I've seen this with both my AVM ISDN Stack on Windows and ELSA MicroLink isdn TA.

As L2TP is fast -- could we somehow isolate if maybe the network stack / TCP implementation in the PM3 is bad? Are there some other ways to input data, like an RS232 port or something?

Actions #5

Updated by laforge 3 months ago

For the record,
  • The DTE rate between TA and minicom is 115200 bps
  • There is no hardware or software flow control enabled
  • Enabling hardware flow control doesn't improve the situation
  • Most testing was done with a PL2303 USB-serial IC; switching to a FT232RL doesn't change the low throughput.
Actions #6

Updated by laforge 3 months ago

manawyrm wrote in #note-4:

Maybe it's something on the client side? Guess I need to bring on more ISDN TA.

Hm, I don't think so. I've seen this with both my AVM ISDN Stack on Windows and ELSA MicroLink isdn TA.

remote over OCTOI or locally at the last CCC congress?

As L2TP is fast -- could we somehow isolate if maybe the network stack / TCP implementation in the PM3 is bad? Are there some other ways to input data, like an RS232 port or something?

no, I don't think therer is any way. I'd really like to know what's going on, especially since there were reports from other people who didn't have that problem, AFAIR.

For ISDN (X.75/V.120) it should be "relatively easy" to write a functionally equivalent open source replacement for the PM3. Use a Q.931 library for the signaling side and get X.75 and V.120 implemented. That's my mid-term strategy anyway. For the analog modems it's of course harder, as we'd need a proper softmodem implementation for the various relevant standards first, which is a separate, comprehensive project in itself.

Actions #7

Updated by laforge 3 months ago

  • % Done changed from 10 to 40

looking at the IRC logs, it seems like the higher CPS rates were only reported with other equipment (Ascend Max, Portmaster 4), but not with PM3.

I also recall having looked at the tcpdumps in the past and did not see anything odd there, either.

The context of this ticket was to compare multiple PM3, and I've now just done that: At least those two out of three I tested are comparable poor in "login" type use cases.

Actions #8

Updated by manawyrm 3 months ago

Those tests were done remote over OCTOI. Communication between 2 machines on OCTOI via X.75 (without a PM3 involved) works at the full 7xxx bytes/second, which is why I figured that this test should be fine to do remotely.

Doing X.75 and V.120 in software sounds like a very good idea. Maybe the idea by supersat done for https://github.com/Shadytel/shadysoftmodem (operating as an external script in YATE) would be a good idea for terminating data calls?
Could skip all the Q.931 handling and just focus on the X.75 for the time being.
shadysoftmodem is also very promising (even if it can't do V.90 in answer mode), but it's a i386 closed software blob after all, so really not ideal.

(this discussion is probably better done somewhere else, maybe in another ticket :D)

Actions #9

Updated by laforge about 2 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 40 to 100

I've now tested all my three PM3 in different configurations: With and without radius call-check; locally in my basemenet with no TDMoIP and remote. The CPS for ISDN X.75/V.120 is always abysimal around 3900cps, no matter if telnet or tcp-clear are used. The TCP socket is using SO_NODELAY, so that's not the problem.

I looked at the raw B channels occasionally and it just looks like there are long pauses (flag octets) between actual HDLC frames.

So I guess we can conclude that the PM3 is really not a good device for achieving full throughput when using telnet/tcp-clear forwarding.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)