You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For detailed parameters, you can check the [documentation of `rattan-core`](https://docs.rs/rattan-core/latest/rattan-core) or the example config file [config.example.toml](https://github.com/stack-rs/rattan/blob/main/config.example.toml).
222
224
225
+
To make the result more duplicable, Rattan synchronize the start time of all cell types that are time-dependent, including `DelayReplay`, `BwReplay`, and `LossReplay`, for them to replay traces at the same time base.
226
+
The start time is conditionally defined. By default, we use the `FIRST_PACKET` time as the start time. But users can also choose to use the Rattan start-up time as the start time.
227
+
228
+
The `FIRST_PACKET` is defined as the first L2 unicast packet to enter Rattan. An L2 unicast packet has a **destination** MAC address with the 8th bit (the Individual/Group bit) set to `0`.
229
+
230
+
For example, `38:7e:58:e7:02:01` is a unicast MAC address because the 8th bit (the least-significant bit of the first byte, `0x38`) is `0`. In contrast, MAC addresses like `01:00:5e:00:00:fb` or `33:33:00:00:02` are **not** unicast.
231
+
232
+
**Examples of a `FIRST_PACKET`:**
233
+
234
+
- A TCP SYN packet from the client.
235
+
- An ICMP Echo Request (Ping).
236
+
237
+
**Packets that cannot be a `FIRST_PACKET` (often generated by the Linux network stack):**
238
+
239
+
- An ICMPv6 Router Solicitation.
240
+
- An mDNS (Multicast Domain Name System) query.
241
+
242
+
This design ensures that the trace does not begin replaying until actual application traffic has started.
0 commit comments