* Test perf log grabbing
* Fix
* Try more logging
* Try to see if stopping logs is failing
* Remove copies
* 1 more fix
* Move log stop to its own task
* Add way to force iterations
* Add way to cancel logs
* Remove some unnecessary changes
Spinquic revealed a synchronization bug: during cleanup, the datapath may be cleaned up before a half-opened connection, which results in a crash when trying to free pending RX packets in the connection's ReceiveQueue. This is fiexed by adding a CXPLAT_DATAPATH::SocketsRundown similar to the one in winuser for the raw datapath.
When the server uses CIBIR but the client doesn't, the connection should be rejected.
In regular sockets, the client's invalid handshake makes it up to QUIC and a transport
error is sent. But for LoLa, there is a filter based on the CIBIR ID for packet delivery to
the server, so the client's connect attempt times out instead. We already have a check
at the end for the connection not being successfully set up, so this can be addressed
by simply not asserting that we don't time out waiting for the handshake to complete.
There are cases where QuicSendFlush is called without queueing the flush with QuicSendQueueFlush, and cases where the path is switched between the route resolution in QuicSendQueueFlush and the actual flush happening. In both cases the result can be that we try to send a packet on an unresolved route. This is fixed by moving route resolution to QuicSendFlush from QuicSendQueueFlush.
QuicConnProcessRouteCompletion has also been changed to call QuicSendFlush instead of QuicSendQueueFlush. Since the main point of QuicConnProcessRouteCompletion is to finally do a send after the route resolution is finished, there isn't any point in going back to the end of the queue again.
Now that the unit tests are enabled on the XDP platform, this PR enables most of the main
tests. There are still six sets of tests that have failures and will need to be fixed and enabled,
but to split up the work these tests are disabled in this PR by adding them to the filter defined
in the XDP test job in azure-pipelines.ci.yml.