Skip to content

support enable_jumbo_frames option in instance from-image subcommand - #1525

Merged
askfongjojo merged 4 commits into
mainfrom
fromimage-jumboframes
Aug 28, 2026
Merged

support enable_jumbo_frames option in instance from-image subcommand#1525
askfongjojo merged 4 commits into
mainfrom
fromimage-jumboframes

Conversation

@askfongjojo

Copy link
Copy Markdown
Contributor

Catch up on the support for a new instance attribute known as enable_jumbo_frames. The option is uncommon (use of it requires upstream network support and fleet-admin explicitly enabling the option) but having the CLI support will simplify internal test automation.

@askfongjojo

askfongjojo commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

Testing notes

$ oxide instance from-image -h
Launch an instance from a disk image.

Usage: oxide instance from-image [OPTIONS] --name <NAME> --project <PROJECT> --description <DESCRIPTION> --hostname <HOSTNAME> --memory <MEMORY> --ncpus <NCPUS> --image <IMAGE> --size <SIZE>

Options:
      --name <NAME>                                 Name of the instance to create
      --project <PROJECT>                           Project for image and instance
      --description <DESCRIPTION>                   Description of the instance
      --hostname <HOSTNAME>                         The hostname to be assigned to the instance
      --memory <MEMORY>                             Amount of RAM to be allocated to the instance; unit suffixes are in powers of two (1k = 1024 bytes)
                                                    for example: 6GiB, 512k, 2048mib
      --ncpus <NCPUS>                               Number of vCPUs to be allocated to the instance
      --cpu-platform <CPU_PLATFORM>                 CPU platform to place the instance
      --anti-affinity-group <ANTI_AFFINITY_GROUPS>  Anti-affinity group(s) to add the instance to (may be specified multiple times)
      --enable-jumbo-frames                         Enable jumbo frames (8500 byte MTU) on the instance's primary OPTE
      --image <IMAGE>                               Source image
      --size <SIZE>                                 Boot disk size; unit suffixes are in powers of two (1k = 1024 bytes) for example: 6GiB, 512k,
                                                    2048mib
      --start                                       Start the instance immediately
  -h, --help                                        Print help
$ oxide --insecure --timeout 300 --profile oxide-rack2 instance from-image --image f7edf1ae-90b7-4884-9a38-40178f3a24a2 --name jumbo-dumbo --project product-assurance --description 'iperf server instance for the antbench scenario' --hostname iperf-server-avx512 --memory 4g --ncpus 2 --cpu-platform amd_turin_v2  --size 20g --start --enable-jumbo-frames
instance 6dff744a-ddc5-44ba-ada3-c8efc7c4f736 created

$ oxide --profile oxide-rack2 instance view --instance 6dff744a-ddc5-44ba-ada3-c8efc7c4f736
{
  "auto_restart_enabled": true,
  "boot_disk_id": "aa815698-e5c6-44fc-ad99-1fdb4007f02d",
  "cpu_platform": "amd_turin_v2",
  "description": "iperf server instance for the antbench scenario",
  "enable_jumbo_frames": true,
  "hostname": "iperf-server-avx512",
  "id": "6dff744a-ddc5-44ba-ada3-c8efc7c4f736",
  "memory": 4294967296,
  "name": "jumbo-dumbo",
  "ncpus": 2,
  "project_id": "85355f83-899b-461e-91ec-9e29d2ba50d1",
  "run_state": "starting",
  "time_created": "2026-08-25T21:48:50.357194Z",
  "time_modified": "2026-08-25T21:48:50.357194Z",
  "time_run_state_updated": "2026-08-25T21:48:58.652846Z"
}
$ oxide --insecure --timeout 300 --profile oxide-rack2 instance from-image --image f7edf1ae-90b7-4884-9a38-40178f3a24a2 --name dumbo-jumbo --project product-assurance --description 'iperf server instance for the antbench scenario' --hostname iperf-server-avx512 --memory 4g --ncpus 2 --cpu-platform amd_turin_v2  --size 20g --start
instance fa2e4c79-5f6f-427c-a552-0397489c7b0b created

$ oxide --profile oxide-rack2 instance view --instance fa2e4c79-5f6f-427c-a552-0397489c7b0b
{
  "auto_restart_enabled": true,
  "boot_disk_id": "1bad8805-33fa-4865-83d0-6d6ea24f2bb2",
  "cpu_platform": "amd_turin_v2",
  "description": "iperf server instance for the antbench scenario",
  "enable_jumbo_frames": false,
  "hostname": "iperf-server-avx512",
  "id": "fa2e4c79-5f6f-427c-a552-0397489c7b0b",
  "memory": 4294967296,
  "name": "dumbo-jumbo",
  "ncpus": 2,
  "project_id": "85355f83-899b-461e-91ec-9e29d2ba50d1",
  "run_state": "running",
  "time_created": "2026-08-25T22:07:41.431991Z",
  "time_modified": "2026-08-25T22:07:41.431991Z",
  "time_run_state_updated": "2026-08-25T22:07:55.997564Z"
}

@askfongjojo
askfongjojo requested a review from ahl August 26, 2026 00:05

@ahl ahl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

Comment thread cli/src/cmd_instance.rs Outdated
askfongjojo and others added 2 commits August 27, 2026 13:52
Co-authored-by: Adam Leventhal <ahl@oxide.computer>
@askfongjojo
askfongjojo merged commit 92c9c12 into main Aug 28, 2026
17 checks passed
@askfongjojo
askfongjojo deleted the fromimage-jumboframes branch August 28, 2026 22:06
david-crespo added a commit to oxidecomputer/omicron that referenced this pull request Aug 29, 2026
Closes #9359, closes #4942, closes #7649, and redoes #9871.

- `silo_user_list` and `silo_user_view` said "built-in (system) users",
but they are for regular silo users (#9359)
- Clarify that the audit log `start_time` and `end_time` params filter
on `time_completed` (redo of #9871)
- Add missing doc comment on `SiloCreate.discoverable` and reword the
matching one on the `Silo` view (#4942)
- Reword `AffinityPolicy` variant docs to avoid the ambiguous "affinity
request": constraints apply when an instance starts, and with `fail` the
start request errors and the instance remains stopped (#7649)

Also say "network interface" instead of "OPTE" in the jumbo frames doc
comments — noticed in the discussion on
[oxidecomputer/oxide.rs#1525](oxidecomputer/oxide.rs#1525),
where the OPTE wording had been copied into the CLI. "Primary network
interface" is accurate: the jumbo MTU is applied only to the primary
NIC's OPTE port, and only when both the fleet flag and the instance bit
are set.


https://github.com/oxidecomputer/omicron/blob/bc1e632df4f9f8b18de7f78bc1602071fca75536/nexus/src/app/instance.rs#L2923-L2935
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants