On 18.01.2025 22:18, Hauke Mehrtens wrote:
On 1/12/25 15:09, Sergey Ryazanov wrote:
ATM TC layer have some issues which effectively prevent VRX518 from
being used as ADSL modem. Specifically, there one crash during the ATM
layer configuration and wrong PVC ID selection on packet receiving what
breaks RX path. Fix both of the issues. Make subif iface registration
optional to prevent the crash (see more details in the new patch) and
update the hardcoded PVC ID to match the first allocated channel.

Run tested with FRITZ!Box 7530.

Fixes: 474bbe23b7 ("kernel: add Intel/Lantiq VRX518 TC driver")
Reported-and-tested-by: nebibigo...@yandex.ru
Signed-off-by: Sergey Ryazanov <ryazanov....@gmail.com>
---
  .../lantiq/vrx518_tc/patches/100-compat.patch |  2 +-
  ...tm_tc-fix-crash-on-subif_reg-absence.patch | 75 +++++++++++++++++++
  2 files changed, 76 insertions(+), 1 deletion(-)
  create mode 100644 package/kernel/lantiq/vrx518_tc/patches/207-dcdp- atm_tc-fix-crash-on-subif_reg-absence.patch

diff --git a/package/kernel/lantiq/vrx518_tc/patches/100-compat.patch b/package/kernel/lantiq/vrx518_tc/patches/100-compat.patch
index d04c1ed5df..81e32369ba 100644
--- a/package/kernel/lantiq/vrx518_tc/patches/100-compat.patch
+++ b/package/kernel/lantiq/vrx518_tc/patches/100-compat.patch
@@ -166,7 +166,7 @@
  -    return (skb->DW0 >> 3) & 0xF;
  +//     return (skb->DW0 >> 3) & 0xF;
-+    return 1;
++    return 0;    /* We use only one connection for now, so return the first connection id */
   }
   static int atm_get_qid_by_vcc(struct net_device *dev, struct sk_buff *skb,

Do we have the information atm_get_pvc_id() should return somewhere else in the skb?

At the ATM/PTM TC level, skb lacks any metadata at the moment. We build skb in rxout_action() in sw_plat.c and copy only the actual data in it.

Technically, we have one unclear field in the rx descriptor called 'qid' which is commented as 'DW 0'. Maybe we can reverse engineer its format and use it to map a received packet to a specific PVC.

Suddenly, I do not have access to that device anymore and unlikely can have it a reasonable time. And cannot verify any guess. We can leave a fully functional mapping for a future development. In a worst case scenario we will receive a bug report from someone who needs an extra PVC for e.g. IPTV. But receives all the IPTV packets on the first (data) PVC.

The DW0 attribute is the patched in DMA descriptor used to transfer this packet.

Cannot follow you here. Could you clarify at bit?

--
Sergey

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to