Skip to content

Files

dtrace

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
May 10, 2024
Dec 31, 2022
Nov 19, 2024
May 10, 2024
Jun 13, 2024
Dec 12, 2023
Dec 15, 2022
Dec 15, 2022
Sep 19, 2022
Dec 15, 2022
Feb 3, 2023
May 10, 2024
Mar 28, 2022
Nov 19, 2024
Dec 15, 2022
Sep 19, 2022
Mar 14, 2022
Dec 12, 2023
Sep 6, 2023
Sep 19, 2022
Dec 12, 2023
Sep 24, 2022
Apr 1, 2022
Apr 1, 2022
Apr 1, 2022
Sep 24, 2022
May 11, 2022

DTrace Scripts

This directory contains DTrace scripts for monitoring and debugging various aspects of OPTE’s operation. It also contains the opte-trace script which makes it more convenient to run these scripts; otherwise you have to make sure to pass the correct DTrace flags to import the local library file and common header.

Some scripts also include USDT versions. Those can be useful when running unit/integration tests.

Script Description

opte-bad-packet.d

Trace "bad" packets as they occur. A bad packet is merly one that we failed to parse, typically because it had an unexpected structure. This probe may fire quite often given xde’s current use of promiscuous mode; and that is to be expected until we can make use of mac flows (see opte#61).

opte-flow-expire.d

Track flows as they expire. This includes the Unified Flow Table (UFT), Layer Flow Tables (LFTs), and the TCP flow table.

opte-gen-desc-fail.d

Track Action::Stateful::gen_desc() failures. A failure here typically indicates failure to acquire a finite resource due to exhaustion.

opte-gen-ht-fail.d

Track StaticAction::gen_ht() failures.

opte-guest-loopback.d

Track packets that travel the "guest loopback" path. This is the path taken when two VPC guests live on the same sled.

opte-ht.d

Track header transformations as they happen. This only tracks rule processing, it does not track transformations that take place in the hot-path (UFT hit).

opte-ioctl.d

Track opte ioctl commands as they happen.

opte-layer-process.d

Track a flow as it is processed by the different layers. This only applies to packets that do not match a flow in the UFT.

opte-next-hop.d

Track the Oxide Rack Network (the "physical" network to the VPC) next hop resolution.

opte-port-process.d

Track packet processing results as they happen. Print the port, direction, epoch, before/after flow ID, the packet length, and the result of processing.

opte-rule-match.d

Track rule match/no-match as it happens. Printing the direction, layer, and flow ID of the match/no-match, as well as the resulting Action of the match.

opte-tcp-flow-state.d

Track the TCP flow state changes as they happen. Printing the state transition as well as the flow ID.

opte-uft-invalidate.d

Track Unified Flow Table invalidation as it happens. A UFT entry is invalidated whenever the rule set has been updated causing the port’s epoch to leap ahead of the UFT entry’s epoch value.

protos.d

This doesn’t track anything, it’s just a nice way to share IP protocol definitions across all scripts.