Hi everyone, I'm looking to add some logic that would allow me to manually trigger the sending of a PING frame on existing QUIC connections.
In my first approach, I created a thread that listened to a local UDP socket and called QuicConnection::SendPing on the reception of a packet to this socket. I ran into a lot of thread affinity errors with this approach.
So in my second approach, I'm trying to repurpose the "keep alive" PING alarm so that it is triggered every 1 ms, and on each trigger checks a flag set by a separate thread to see if it should send a PING frame.
In this second approach, I'm noticing that the PING alarm isn't being triggered consistently -- in a wireshark capture, I can confirm that PING frames are not being sent every 1 ms when the flag is statically set to "send". I also see a delay between when a PING frame is sent and when the flag is set to "send".
Does anyone have any insight into this behavior? I'm guessing there's some sort of invariant preventing PING packets from being sent when the connection is in a certain state?
Thanks!