Hello,
On Tue, 26 Nov 2024, at 20:44, Mark Glines wrote:
> Here is an imperfect patch that calculates the UDP checksum if none was
> present.
>
> This allows the 4to6 machinery to do its thing, the aforementioned DNS
> responses go through successfully, and now I can access the ESA
> website. (Hooray!)
>
> The imperfection is that I had to add an asm("":::"memory") memory
> barrier, after the newly assigned checksum gets written to the checksum
> field in the UDP header. Without this memory barrier, it wasn't working
> for me (arm64, gcc 14.2.0). When I temporarily changed -O2 to -O1, the
> problem went away. The memory barrier gets it working with -O2. I
> guess it's an aliasing problem, the compiler reordered something it
> shouldn't have, but I don't fully understand it. Here's hoping this
> patch can serve as a starting point for something cleaner.
Thanks, I will look into it. I can’t promise when, though, but it’s in my
backlog.
--
Cheers,
Andrej