[2.4.5] Mysterious behaviour of pppd at 56K modem
Hallo all!
I detected a very mysterious behaviour with my serial connected 56K modem. If you do a ftp-download e.g., the datas come at the following way:
5,9 kB -- -- --- -- -- -- -- --
4,4 kB - - - -- - - - -
The speed of the incoming data is always swinging between 5.9kB and 4.4kB. Why? I didn't have this problem with Kernel 2.2.x (with the same pppd-versions).
Neverthless, the overallspeed seems to be equal to kernel 2.2.x (about 5.1kB/s) - but not slower; it even could be faster. But I think, the speed could be much higher, if it wouldn't swing as much.
I'm using pppd 2.4.0b or 2.4.1. My modem (USR Sportster Message +) is connected with 115200 Baud (56000 tested but doesn't work properly), the connect to my provider is 50,6kB/s.
My serial hardware is
ttyS00 at 0x03f8 (irq = 4) is a 16550A
on a AMD K6 2 400 with ALI 1541-chipset.
I can't see any errors in messages or with ifconfig.
I tested it with or without firewall - always the same behaviour.
The login-protocoll seems not to bee suspicious:
Jun 5 08:55:23 kernel: CSLIP: code copyright 1989 Regents of the University of California Jun 5 08:55:23 kernel: PPP generic driver version 2.4.1 Jun 5 08:55:23 pppd[1559]: pppd 2.4.1 started by ausgang, uid 1003 Jun 5 08:55:23 pppd[1559]: using channel 1 Jun 5 08:55:23 pppd[1559]: Using interface ppp0 Jun 5 08:55:23 pppd[1559]: Connect: ppp0 <--> /dev/ttyS0 Jun 5 08:55:23 pppd[1559]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x165bafd8> <pcomp> <accomp>] Jun 5 08:55:25 last message repeated 2 times Jun 5 08:55:25 pppd[1559]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x165bafd8> <pcomp> <accomp>] Jun 5 08:55:26 pppd[1559]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x165bafd8> <pcomp> <accomp>] Jun 5 08:55:26 pppd[1559]: rcvd [LCP ConfReq id=0xd6 <asyncmap 0xa0000> <auth pap> <magic 0x3ceda072> <pcomp> <accomp>] Jun 5 08:55:26 pppd[1559]: sent [LCP ConfAck id=0xd6 <asyncmap 0xa0000> <auth pap> <magic 0x3ceda072> <pcomp> <accomp>] Jun 5 08:55:26 pppd[1559]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x165bafd8> <pcomp> <accomp>] Jun 5 08:55:26 pppd[1559]: sent [PAP AuthReq id=0x1 user="somebody" password=<hidden>] Jun 5 08:55:26 pppd[1559]: rcvd [PAP AuthAck id=0x1 ""] Jun 5 08:55:26 pppd[1559]: sent [IPCP ConfReq id=0x1 <addr 192.168.1.2> <compress VJ 0f 01>] Jun 5 08:55:26 pppd[1559]: rcvd [IPCP ConfReq id=0xaa <addr 62.104.220.42>] Jun 5 08:55:26 pppd[1559]: sent [IPCP ConfAck id=0xaa <addr 62.104.220.42>] Jun 5 08:55:26 pppd[1559]: rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>] Jun 5 08:55:26 pppd[1559]: sent [IPCP ConfReq id=0x2 <addr 192.168.1.2>] Jun 5 08:55:27 pppd[1559]: rcvd [IPCP ConfNak id=0x2 <addr 213.7.17.225>] Jun 5 08:55:27 pppd[1559]: sent [IPCP ConfReq id=0x3 <addr 213.7.17.225>] Jun 5 08:55:27 pppd[1559]: rcvd [IPCP ConfAck id=0x3 <addr 213.7.17.225>] Jun 5 08:55:27 pppd[1559]: local IP address 213.7.17.225 Jun 5 08:55:27 pppd[1559]: remote IP address 62.104.220.42
I tried to switch off all softwarecompression. But it doesn't matter.
Do you have any advice for me?
Regards,
Andreas Hartmann
lspci
00:00.0 Host bridge: Acer Laboratories Inc. [ALi] M1541 (rev 04)
Subsystem: Acer Laboratories Inc. [ALi] ALI M1541 Aladdin V/V+ AGP
System Controller
Flags: bus master, slow devsel, latency 64
Memory at e6000000 (32-bit, non-prefetchable) [size=16M]
Capabilities: [b0] AGP version 1.0
00:01.0 PCI bridge: Acer Laboratories Inc. [ALi] M5243 (rev 04) (prog-if 00 [Normal decode])
Flags: bus master, slow devsel, latency 64
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: e4800000-e5ffffff
Prefetchable memory behind bridge: e7f00000-e7ffffff00:03.0 Bridge: Acer Laboratories Inc. [ALi] M7101 PMU
Subsystem: Acer Laboratories Inc. [ALi] ALI M7101 Power Management
Controller
Flags: medium devsel
00:07.0 ISA bridge: Acer Laboratories Inc. [ALi] M1533 PCI to ISA Bridge [Aladdin IV] (rev c3)
Flags: bus master, medium devsel, latency 0
00:0a.0 Multimedia audio controller: Xilinx, Inc. RME Digi96
Flags: slow devsel, IRQ 12
Memory at e3000000 (32-bit, non-prefetchable) [size=16M]
00:0b.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 10/100 Ethernet (rev 02)
Subsystem: Silicon Integrated Systems [SiS] SiS900 10/100 Ethernet
Adapter
Flags: bus master, medium devsel, latency 32, IRQ 10 I/O ports at b800 [size=256]
Memory at e2800000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: [40] Power Management version 1
00:0f.0 IDE interface: Acer Laboratories Inc. [ALi] M5229 IDE (rev c1) (prog-if 8a [Master SecP PriP])
Flags: bus master, medium devsel, latency 32
I/O ports at b400 [size=16]
01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c) (prog-if 00 [VGA])
Subsystem: ATI Technologies Inc: Unknown device 0084
Flags: bus master, stepping, medium devsel, latency 64, IRQ 11
Memory at e5000000 (32-bit, non-prefetchable) [size=16M]
I/O ports at d800 [size=256]
Memory at e4800000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at e7fe0000 [disabled] [size=128K]
Capabilities: [50] AGP version 1.0Linux name 2.4.5 #3 Sam Jun 2 16:07:35 CEST 2001 i586 unknown
Gnu C egcs-2.91.66 Gnu make 3.76.1 binutils 2.9.5.0.12 util-linux 2.10s mount 2.10s modutils 2.4.6 e2fsprogs 1.14 PPP 2.4.1 Linux C Library 2.1.3 Dynamic linker (ldd) 2.1.3 Procps 2.0.2 Net-tools 1.55 Kbd 0.96 Sh-utils 2.0g Modules Loaded ipt_LOG ipt_REJECT ipt_state iptable_filter ip_tables
ip_conntrack_ftp ip_conntrack sis900 serial reiserfs unix
grep -v "not set" .config
#
# Automatically generated by make menuconfig: don't edit #CONFIG_X86=yCONFIG_ISA=yCONFIG_UID16=y
#
# Code maturity level options
#CONFIG_EXPERIMENTAL=y
#
# Loadable module support
#CONFIG_MODULES=yCONFIG_MODVERSIONS=yCONFIG_KMOD=y
#
# Processor type and features
#CONFIG_MK6=yCONFIG_X86_WP_WORKS_OK=yCONFIG_X86_INVLPG=yCONFIG_X86_CMPXCHG=yCONFIG_X86_XADD=yCONFIG_X86_BSWAP=yCONFIG_X86_POPAD_OK=yCONFIG_RWSEM_XCHGADD_ALGORITHM=yCONFIG_X86_L1_CACHE_SHIFT=5CONFIG_X86_ALIGNMENT_16=yCONFIG_X86_TSC=yCONFIG_X86_USE_PPRO_CHECKSUM=yCONFIG_NOHIGHMEM=yCONFIG_X86_UP_IOAPIC=yCONFIG_X86_IO_APIC=yCONFIG_X86_LOCAL_APIC=y
#
# General setup
#CONFIG_NET=yCONFIG_PCI=yCONFIG_PCI_GOANY=yCONFIG_PCI_BIOS=yCONFIG_PCI_DIRECT=yCONFIG_PCI_NAMES=yCONFIG_HOTPLUG=y
#
# PCMCIA/CardBus support
#CONFIG_SYSVIPC=yCONFIG_BSD_PROCESS_ACCT=yCONFIG_SYSCTL=yCONFIG_KCORE_ELF=yCONFIG_BINFMT_ELF=y
#
# Memory Technology Devices (MTD)
#
#
# Parallel port support
#
#
# Plug and Play configuration
#
#
# Block devices
#CONFIG_BLK_DEV_FD=yCONFIG_BLK_DEV_LOOP=mCONFIG_BLK_DEV_RAM=mCONFIG_BLK_DEV_RAM_SIZE=4096
#
# Multi-device support (RAID and LVM)
#
#
# Networking options
#CONFIG_PACKET=mCONFIG_NETFILTER=yCONFIG_UNIX=mCONFIG_INET=yCONFIG_IP_MULTICAST=y
#
# IP: Netfilter Configuration
#CONFIG_IP_NF_CONNTRACK=mCONFIG_IP_NF_FTP=mCONFIG_IP_NF_IPTABLES=mCONFIG_IP_NF_MATCH_LIMIT=mCONFIG_IP_NF_MATCH_MAC=mCONFIG_IP_NF_MATCH_MARK=mCONFIG_IP_NF_MATCH_MULTIPORT=mCONFIG_IP_NF_MATCH_TOS=mCONFIG_IP_NF_MATCH_TCPMSS=mCONFIG_IP_NF_MATCH_STATE=mCONFIG_IP_NF_MATCH_UNCLEAN=mCONFIG_IP_NF_MATCH_OWNER=mCONFIG_IP_NF_FILTER=mCONFIG_IP_NF_TARGET_REJECT=mCONFIG_IP_NF_TARGET_MIRROR=mCONFIG_IP_NF_NAT=mCONFIG_IP_NF_NAT_NEEDED=yCONFIG_IP_NF_TARGET_MASQUERADE=mCONFIG_IP_NF_TARGET_REDIRECT=mCONFIG_IP_NF_NAT_FTP=mCONFIG_IP_NF_MANGLE=mCONFIG_IP_NF_TARGET_TOS=mCONFIG_IP_NF_TARGET_MARK=mCONFIG_IP_NF_TARGET_LOG=mCONFIG_IP_NF_TARGET_TCPMSS=m
#
# QoS and/or fair queueing
#
#
# Telephony Support
#
#
# ATA/IDE/MFM/RLL support
#CONFIG_IDE=y
#
# IDE, ATA and ATAPI Block devices
#CONFIG_BLK_DEV_IDE=yCONFIG_BLK_DEV_IDEDISK=yCONFIG_BLK_DEV_IDECD=mCONFIG_BLK_DEV_IDEPCI=yCONFIG_IDEPCI_SHARE_IRQ=yCONFIG_BLK_DEV_IDEDMA_PCI=yCONFIG_IDEDMA_PCI_AUTO=yCONFIG_BLK_DEV_IDEDMA=yCONFIG_BLK_DEV_ALI15X3=yCONFIG_IDEDMA_AUTO=yCONFIG_BLK_DEV_IDE_MODES=y
#
# SCSI support
#
#
# IEEE 1394 (FireWire) support
#
#
# I2O device support
#
#
# Network device support
#CONFIG_NETDEVICES=y
#
# ARCnet devices
#CONFIG_DUMMY=m
#
# Ethernet (10 or 100Mbit)
#CONFIG_NET_ETHERNET=yCONFIG_NET_PCI=yCONFIG_SIS900=m
#
# Ethernet (1000 Mbit)
#CONFIG_PPP=mCONFIG_PPP_ASYNC=mCONFIG_PPP_DEFLATE=mCONFIG_PPP_BSDCOMP=m
#
# Wireless LAN (non-hamradio)
#
#
# Token Ring devices
#
#
# Wan interfaces
#
#
# Amateur Radio support
#
#
# IrDA (infrared) support
#
#
# ISDN subsystem
#
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
#
# Input core support
#
#
# Character devices
#CONFIG_VT=yCONFIG_VT_CONSOLE=yCONFIG_SERIAL=mCONFIG_UNIX98_PTYS=yCONFIG_UNIX98_PTY_COUNT=256
#
# I2C support
#
#
# Mice
#
#
# Joysticks
#
#
# Watchdog Cards
#
#
# Ftape, the floppy tape device driver
#
#
# Multimedia devices
#
#
# File systems
#CONFIG_REISERFS_FS=mCONFIG_FAT_FS=mCONFIG_MSDOS_FS=mCONFIG_UMSDOS_FS=mCONFIG_VFAT_FS=mCONFIG_TMPFS=yCONFIG_ISO9660_FS=mCONFIG_JOLIET=yCONFIG_PROC_FS=yCONFIG_DEVPTS_FS=yCONFIG_EXT2_FS=y
#
# Network File Systems
#CONFIG_NFS_FS=yCONFIG_NFSD=yCONFIG_SUNRPC=yCONFIG_LOCKD=y
#
# Partition Types
#CONFIG_MSDOS_PARTITION=yCONFIG_NLS=y
#
# Native Language Support
#CONFIG_NLS_DEFAULT="iso8859-1"
#
# Console drivers
#CONFIG_VGA_CONSOLE=y
#
# Frame-buffer support
#
#
# Sound
#CONFIG_SOUND=m
#
# USB support
#CONFIG_USB=yCONFIG_USB_UHCI_ALT=y
#
# USB Serial Converter support
#
#
# Kernel hacking
#
Quoted 3 lines · Andreas Hartmann
The speed of the incoming data is always swinging between 5.9kB and 4.4kB. Why? I didn't have this problem with Kernel 2.2.x (with the same pppd-versions).
Well, I'm not seeing the same thing here with 2.4, but I can give you some general bits and pieces to look at:
* Check ATI6 after disconnect to make sure it's not bit errors (make sure your comms package doesn't do ATZ on startup or it'll wipe the ATI6 stats)
* Force the mtu to 1500 in your /etc/ppp/options file. Note that this will stomp on interactive traffic.
* Make sure your modem is well initialised; run minicom or similar, set the baud rate to 115200, and do ATZ\nAT&F1&W
* Try setting low latency on your serial port, eg, setserial /dev/ttyS0 low_latency
Quoted 3 lines
Neverthless, the overallspeed seems to be equal to kernel 2.2.x (about 5.1kB/s) - but not slower; it even could be faster. But I think, the speed could be much higher, if it wouldn't swing as much.
If you're measuring this with pppstats, bear in mind that if you have a packet that's half transferred when pppstats does its calculation, that packet is included in the next second's stats (or so it appears to me).
Quoted 3 lines
I'm using pppd 2.4.0b or 2.4.1. My modem (USR Sportster Message +) is connected with 115200 Baud (56000 tested but doesn't work properly), the connect to my provider is 50,6kB/s.
USR modems don't set the serial interface rate to the connection rate. They also only use standard transfer speeds such as 300, 2400, 4800, 9600, 19200, 38400, 57600, 115200, and the newer ones support speeds such as 230400 and up. This is based on my experience working with the UK code back in the mid 90's (pre-3com takeover), though, so it may have changed since then.
You might also want to confirm packet throughput with another utility (eg, iptraf) and see what that says. Also try tcpdumping a connection and see if there's any packets being lost.
Cheers, Steve