Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
nibanks committed Sep 11, 2023
1 parent 05a8a90 commit c3244cf
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 54 deletions.
51 changes: 0 additions & 51 deletions docs/Architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,57 +28,6 @@ It uses asynchronous callbacks driven by the current execution model (see [below

Currently, it also has preview support of XDP on Windows.

```mermaid
flowchart TB
Datapath-.->p1[Partition]
Datapath-.->Socket
Datapath-.->p2[Partition]
subgraph p1[Partition]
rx1["RX IO
Pool"]
tx1["TX IO
Pool"]
end
subgraph p2[Partition]
rx2["RX IO
Pool"]
tx2["TX IO
Pool"]
end
Socket-.->q1
Socket-.->q2
subgraph q1[Queue]
plat_sock1[Platform Socket]
end
q1-.->p1
subgraph q2[Queue]
plat_sock2[Platform Socket]
end
q2-.->p2
subgraph rxio[RX IO]
rx_meta[Internal Data]
rx_packet[IP/Client Data]
rx_buffer[Packet Payload]
end
rx1-.->rxio
rx2-.->rxio
subgraph txio[TX IO]
tx_meta[Internal Data]
tx_packet[IP/Client Data]
tx_buffer[Packet Payload]
end
tx1-.->txio
tx2-.->txio
```

There are a few high-level concepts for the datapath implementations:

- **Datapath** - The top-level, public object that is used to create and manage all other options. It sets up multiple partitions for the given execution mode.
- **Parition** - An internal object used to isolate different instances of data for performance. By isolating the data, sockets can be efficiently parallelized, usually on different processors. They maintain a pool for RX and TX IO blocks.
- **Socket** - The public object that exposes a highly parallelized interface for sending and receiving packets in the current execution mode and partitions.
- **Queue** - Another internal object used in conjunction with partitions to parallelize the work of a given socket.
- **RX/TX IO** - A contiguous block of memory containing both internal/external metadata as well as the payload buffers. If batching (e.g. USO/URO) is supported by the datapath, then multiple IO blocks may be allocated together and organized slightly differently.

### Crypto

The PAL exposes various cryptographic interfaces as well, such has encryption/decryption and cryptographic hashing. This layer currently supports BCrypt and OpenSSL variants on Windows, and OpenSSL on Linux.
Expand Down
3 changes: 0 additions & 3 deletions src/core/loss_detection.c
Original file line number Diff line number Diff line change
Expand Up @@ -331,9 +331,6 @@ QuicLossDetectionUpdateTimer(
LossDetection, Path, 1 << LossDetection->ProbeCount);
}

//
// The units for the delay values start in microseconds.
//
uint64_t Delay; // In microseconds
if (CxPlatTimeAtOrBefore64(TimeFires, TimeNow)) {
//
Expand Down

0 comments on commit c3244cf

Please sign in to comment.