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

Reply via email to