Jump to content

richardknowles

Validating
  • Posts

    1
  • Joined

  • Last visited

  1. Dear Armbian ARM64 6.6.x kernel people: Orange Pi 5 delivers incorrect larger SCTP chunks to SCTP. from lower IP stack in kernel. This can be seen from the computed CRC-32 checksum below. The packet length is right. This CRC-32 checksum process works correctly on OpenSuSE x86_64 Tumbleweed with kernel 6.5.4-1. It also works correctly on Armbian ARM64 5.10.110. Hence we believe the IP code is faulty in the 6.6.x kernel "stable rolling release" from Armbian. This SCTP driver is used in Telecom by companies like Nokia and Ericsson instead of Linux kernel SCTP and we would like to get it working on the OrangePi 5. Shorter packets like the SCTP INIT are are unaffected, and in the failing INIT_ACK and COOKIE_ECHO the initial 20 bytes or so are correct. This was tested on the 2023 October 9 release of the 6.6.x rolling release and previous releases.. -------------------------------------------------------------------- SCTP/T Trace showing corrupted packet after successful INIT packet of length 60 bytes received (correctly). NB: INIT is a short packet. INIT_ACK and COOKIE_ECHO are 580 or 560 bytes respectively and both fail the CRC-32 check. The SCTP packet contains a checksum (pkt-csum) and the receiver recalculates the checksum (c-csum) and compares it to the enclosed checksum. They re failing to match on larger >500 byte packets. root@orangepi5:/tmp/sctp# dmesg -T | tail -22 [Mon Oct 9 11:47:49 2023] Adax_STRM_IP: Linux Streams-to-IP driver [Mon Oct 9 11:47:49 2023] Adax_STRM_IP: Copyright (C) 2001-2022 ADAX [Mon Oct 9 11:53:45 2023] sctp: S1 init_rproc: q 0x6ca71c0 state 1 IPv4/6 0x6800a8c0 len 4 src 2001 dst 3001 vtag 0 [Mon Oct 9 11:53:45 2023] sctp: S1 init_rproc: q 0x6ca71c0 state 1 cookie w/ alen 0 num_addrs 0 [Mon Oct 9 11:53:45 2023] : current paddrs 0x0 num_addrs 0 [Mon Oct 9 11:53:45 2023] sctp: S1 sa_sendINIT_ACK: len 20 cookielen 548. [Mon Oct 9 11:53:45 2023] sctp: S1 putIP() 0x6800a8c0 src 3001 dst 2001 SKB_HASH-like k 19498 lower port 2 lwq 0x000000004df10be3 [Mon Oct 9 11:53:45 2023] sctp: S1 putIP() final lwput: 0x6800a8c0 src 3001 dst 2001 lower port 2 lwq 0x000000004df10be3 [Mon Oct 9 11:53:45 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x55cc0838 [Mon Oct 9 11:53:48 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x7f2c8d7a [Mon Oct 9 11:53:51 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x55cc0838 [Mon Oct 9 11:53:52 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 529 len 216 rs 0 ws 0 ts 0 nets 1. [Mon Oct 9 11:53:52 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 534 len 16 rs 0 ws 0 ts 0 nets 1. [Mon Oct 9 11:53:52 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 573 len 4 rs 0 ws 0 ts 0 nets 1. [Mon Oct 9 11:53:54 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x55cc0838 [Mon Oct 9 11:53:57 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x55cc0838 [Mon Oct 9 11:54:00 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x978abd22 [Mon Oct 9 11:54:00 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 529 len 216 rs 0 ws 0 ts 0 nets 1. [Mon Oct 9 11:54:00 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 534 len 16 rs 0 ws 0 ts 0 nets 1. [Mon Oct 9 11:54:00 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 573 len 4 rs 0 ws 0 ts 0 nets 1. [Mon Oct 9 11:54:03 2023] sctp: prep_input: totlen 560 pkt-csum 0x3da864fb c-csum 0x744581f1 [Mon Oct 9 11:54:05 2023] sctpwput: S1 state 1 q ffff000106ca7360 mon 0 IOCTL 538 len 4 rs 0 ws 0 ts 0 nets 1. We are using the Orange PI 5 Ethernet interface. Also TCP, like in large file transfers over scp, works fine.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines