[PATCH v3 3/4] ipq40xx: fix compatibility with linux-atm tools

Andre Heider a.heider at gmail.com
Mon Jan 13 04:17:16 PST 2025


On 13/01/2025 9:17 am, Martin Schiller wrote:
> On 2025-01-12 15:09, Sergey Ryazanov wrote:
>> atm_qos struct should be the same both for user and kernel spaces. Via
>> the __SO_ENCODE() macro it is used to define the SO_ATMQOS socket IOC.
>>
>> During the VRX518 support introduction, the atm_trafprm sturct nested
>> into the atm_qos stucture was update with newer fields that are
>> referenced by the ATM TC layer of the VRX518 TC driver. These new fields
>> are intended to communicate information for extra traffic classes
>> supported by the driver. But we are still using vanilla kernel headers
>> to build the toolchain. Due to the atm.h header incoherency br2684ctl
>> from linux-atm tools is incapable to configure the ATM bridge netdev:
>>
>>   br2684ctl: Interface "dsl0" created sucessfully
>>   br2684ctl: Communicating over ATM 0.1.2, encapsulation: LLC
>>   br2684ctl: setsockopt SO_ATMQOS 22 <-- EINVAL errno
>>   br2684ctl: Fatal: failed to connect on socket; File descriptor in 
>> bad state
> 
> Hmmm... I have fixed this problem in the past by including the
> "user_headers". See commit e53ed6af8744 (“linux-atm: use target specific
> kernel headers”) [1]. Felix suggested this to me in [2].
> Does this no longer work?

Good question, I didn't know about that patch.

At least on ipq40xx there's nothing writing the custom classes to 
qos->txtp.traffic_class, it's all just code that reads and checks for 
those, so it's basically useless and dead code. This removal here allows 
us to drop the atm.h patch.

If that's the case too for lantiq, we could apply the same logic there 
and make linux-atm shared again?

In any case, this set still works on my ipq40xx device and vdsl seems to 
work just fine!

Cheers,
Andre



More information about the openwrt-devel mailing list