@@ -6,25 +6,56 @@ script which makes it more convenient to run these scripts; otherwise
6
6
you have to make sure to pass the correct DTrace flags to import the
7
7
local library file and common header.
8
8
9
+ Some scripts also include USDT versions. Those can be useful when
10
+ running unit/integration tests.
11
+
9
12
|===
10
13
|Script |Description
11
14
15
+ a|`opte-bad-packet.d`
16
+ |Trace "bad" packets as they occur. A bad packet is merly one that we
17
+ failed to parse, typically because it had an unexpected structure.
18
+ This probe may fire quite often given xde's current use of
19
+ promiscuous mode; and that is to be expected until we can make use of
20
+ mac flows (see
21
+ https://github.com/oxidecomputer/opte/issues/61[opte#61]).
22
+
12
23
a|`opte-flow-expire.d`
13
- |Track flows as they expire.
24
+ |Track flows as they expire. This includes the Unified Flow Table
25
+ (UFT), Layer Flow Tables (LFTs), and the TCP flow table.
14
26
15
27
a|`opte-gen-desc-fail.d`
16
- |Track `gen_desc()` failures of stateful actions.
28
+ |Track `Action::Stateful::gen_desc()` failures. A failure here
29
+ typically indicates failure to acquire a finite resource due to
30
+ exhaustion.
17
31
18
32
a|`opte-gen-ht-fail.d`
19
- |Track `StaticAction::gen_gt()` failures.
33
+ |Track `StaticAction::gen_ht()` failures.
34
+
35
+ a|`opte-guest-loopback.d`
36
+ |Track packets that travel the "guest loopback" path. This is the path
37
+ taken when two VPC guests live on the same sled.
20
38
21
39
a|`opte-ht.d`
22
- |Track header transpositions as they happen. Printing the direction,
23
- location, and before/after flow IDs.
40
+ |Track header transformations as they happen. This only tracks rule
41
+ processing, it does not track transformations that take place in the
42
+ hot-path (UFT hit).
43
+
44
+ a|`opte-ioctl.d`
45
+ |Track opte ioctl commands as they happen.
24
46
25
47
a|`opte-layer-process.d`
26
48
|Track a flow as it is processed by the different layers. This only
27
- applies to flows without a UFT entry.
49
+ applies to packets that do not match a flow in the UFT.
50
+
51
+ a|`opte-next-hop.d`
52
+ |Track the Oxide Rack Network (the "physical" network to the VPC) next
53
+ hop resolution.
54
+
55
+ a|`opte-port-process.d`
56
+ |Track packet processing results as they happen. Print the port,
57
+ direction, epoch, before/after flow ID, the packet length, and the
58
+ result of processing.
28
59
29
60
a|`opte-rule-match.d`
30
61
|Track rule match/no-match as it happens. Printing the direction,
@@ -35,4 +66,12 @@ a|`opte-tcp-flow-state.d`
35
66
|Track the TCP flow state changes as they happen. Printing the state
36
67
transition as well as the flow ID.
37
68
69
+ a|`opte-uft-invalidate.d`
70
+ |Track Unified Flow Table invalidation as it happens. A UFT entry is
71
+ invalidated whenever the rule set has been updated causing the port's
72
+ epoch to leap ahead of the UFT entry's epoch value.
73
+
74
+ a|`protos.d`
75
+ |This doesn't track anything, it's just a nice way to share IP
76
+ protocol definitions across all scripts.
38
77
|===
0 commit comments