ffx

Fuchsia's developer tool


Usage: ffx [-c <config...>] [-e <env>] [--machine <machine>] [--schema] [--stamp <stamp>] [-t <target>] [--timeout <timeout>] [-l <log-level>] [--isolate-dir <isolate-dir>] [-v] [-o <log-output>] [--no-environment] [subcommand...]

Options  
--help display usage information
-c, --config override configuration values (key=value, JSON string, or path to a JSON config file)
-e, --env override the path to the environment configuration file (file path)
--machine produce output for a machine in the specified format; available formats: "json", "json-pretty"
--schema produce the JSON schema for the MachineWriter output. The --machine option is required when producing the schema.
--stamp create a stamp file at the given path containing the exit code
-t, --target apply operations across single or multiple targets
--timeout override default proxy timeout (default is 1 second)
-l, --log-level sets the log level for ffx output (default = Info). Other possible values are Info, Error, Warn, and Trace. Can be persisted via log.level config setting.
--isolate-dir turn on isolation mode using the given directory to isolate all config and socket files into the specified directory. This overrides the FFX_ISOLATE_DIR env variable, which can also put ffx into this mode.
-v, --verbose logs ffx output to stdio according to log level
-o, --log-output specify destination of log output. "-" or "stdout" for stdout, "stderr" for stderr. If no destination is specified, log.dir will be used. If a destination is specified, then log.dir will be ignored.
--no-environment disables loading configuration from the file system and only uses configuration specified on the command line or the compiled in default values. Intended for use when running ffx as part of a hermetic build.
Subcommands  
component Discover and manage components
config View and switch default and user configurations
daemon Interact with/control the ffx daemon
debug Start a debugging session.
doctor Run common checks for the ffx tool and host environment
emu Start and manage Fuchsia emulators.
net View and manage target network configuration
package Create and publish Fuchsia packages
platform Manage platform build prerequisites
product Discover and access product bundle metadata and image data.
repository Inspect and manage package repositories
sdk Modify or query the installed SDKs
session Control the session component.
target Interact with a target device or emulator
version Print out ffx tool and daemon versions

component

Discover and manage components


Usage:  ffx component [subcommand...]

Options  
--help display usage information
Subcommands  
capability Lists component instances that reference a capability
collection Manages collections in the component topology
copy copies files to/from directories associated with a component.
create Creates a dynamic component instance, adding it to the collection designated by
debug Debug a running component with zxdb.
destroy Destroys a dynamic component instance, removing it from the collection designated by
doctor Perform diagnostic checks on a component at runtime.
explore Spawns a shell scoped to a component instance.
graph Outputs a Graphviz dot graph for the components in the component topology. Children of unresolved components are not included in this list.
list Lists components in the component topology. Children of unresolved components are not included in this list.
reload Recursively stops, unresolves, and starts a component instance, updating the code and topology while preserving resources
resolve Resolves a component instance
route Perform capability routing on a component at runtime.
run Creates and starts a component instance in an existing collection
show Shows detailed information about a component instance
start Starts a component
stop Stops a component instance
storage Manages storage capabilities of components

capability

Lists component instances that reference a capability


Usage:  ffx component capability capability

Options  
--help display usage information

Examples

To show all components that reference a capability:

    $ ffx component capability fuchsia.net.routes

collection

Manages collections in the component topology


Usage:  ffx component collection [subcommand...]

Options  
--help display usage information
Subcommands  
list List all collections in the component topology
show Shows detailed information about a collection in the component topology

list

List all collections in the component topology


Usage:  ffx component collection list

Options  
--help display usage information

show

Shows detailed information about a collection in the component topology


Usage:  ffx component collection show query

Options  
--help display usage information

copy

copies files to/from directories associated with a component. Paths may be any combination of local or remote paths.


Usage:  ffx component copy [-v] [paths...]

Options  
--help display usage information
-v, --verbose verbose output: outputs a line for each file copied.

Examples

To copy from a component to a local path: 
ffx component copy /some/moniker::/path/file.txt /local/file.txt 

To copy from a local path to a component: 
ffx component copy /local/file.txt /some/moniker::/dir/file.txt

To copy between two components: 
ffx component copy /some/moniker::/dir/file.txt /some/moniker::/dir/file.txt

To copy multiple files: 
ffx component copy /some/moniker::/dir/* /some/local/dir
ffx component copy /file/one.txt /file/two.txt ... /some/moniker::/dir/

To copy a file from a component's outgoing directory: 
ffx component copy /some/moniker::out::/path/file.txt /local/file.txt

To copy a file from a component's package directory: 
ffx component copy /some/moniker::pkg::/meta/foo /tmp

Notes

  • To learn more about the command see https://fuchsia.dev/fuchsia-src/development/sdk/ffx/copy-files-to-and-from-a-component

create

Creates a dynamic component instance, adding it to the collection designated by


Usage:  ffx component create [--config <config...>] moniker url

Options  
--help display usage information
--config provide a configuration override to the component being run. Requires mutability: \[ "parent" ] on the configuration field. Specified in the format KEY=VALUE where VALUE is a JSON string which can be resolved as the correct type of configuration value.

Examples

To create a component instance designated by the moniker `/core/ffx-laboratory:foo`:

    $ ffx component create /core/ffx-laboratory:foo fuchsia-pkg://fuchsia.com/hello-world-rust#meta/hello-world-rust.cm

Notes

  • To learn more about running components, see https://fuchsia.dev/go/components/run

debug

Debug a running component with zxdb.


Usage:  ffx component debug query

Options  
--help display usage information

Examples

To debug the `brightness_manager` component instance, all of the
following commands are valid:

    $ ffx component debug /core/brightness_manager
    $ ffx component debug fuchsia-pkg://fuchsia.com/brightness_manager#meta/brightness_manager.cm
    $ ffx component debug meta/brightness_manager.cm
    $ ffx component debug brightness_manager

If the component is not yet running, consider `ffx component start --debug`
to start the component in the debugger.

Notes

  • This command supports partial matches over the moniker, URL and instance ID

destroy

Destroys a dynamic component instance, removing it from the collection designated by


Usage:  ffx component destroy query

Options  
--help display usage information

Examples

To destroy a component instance designated by the moniker `/core/ffx-laboratory:foo`:

    $ ffx component destroy /core/ffx-laboratory:foo

Notes

  • To learn more about running components, see https://fuchsia.dev/go/components/run

doctor

Perform diagnostic checks on a component at runtime.


Usage:  ffx component doctor [-p] query

Options  
--help display usage information
-p, --plain whether or not to display the output without color and wrapping.

Examples

To run diagnostics:

$ ffx component doctor /core/network/netstack

This will run checks on the capabilities configuration of the component, checking that all of the
`use` and `expose` capabilities can be routed successfully by the component manager.

explore

Spawns a shell scoped to a component instance.


Usage:  ffx component explore [--tools <tools...>] [-c <command>] [-l <layout>] query

Options  
--help display usage information
--tools list of URLs of tools packages to include in the shell environment. the PATH variable will be updated to include binaries from these tools packages. repeat --tools url for each package to be included. The path preference is given by command line order.
-c, --command execute a command instead of reading from stdin. the exit code of the command will be forwarded to the host.
-l, --layout changes the namespace layout that is created for the shell. nested: nests all instance directories under subdirs (default) namespace: sets the instance namespace as the root (works better for tools)

Examples

To explore the Archivist instance interactively:

> ffx component explore /bootstrap/archivist
$ ls
exposed
ns
out
runtime
svc
$ exit
Connection to terminal closed

To run a command directly from the command line:
> ffx component explore /bootstrap/archivist -c 'printenv'
PATH=/.dash/tools/debug-dash-launcher
PWD=/

Notes

  • When --layout=nested (the default), the environment contains the following
    directories of the explored instance:
  • /ns The namespace of the instance
  • /exposed The capabilities exposed by the instance
  • /out The outgoing directory of the instance, if it is running
  • /runtime The runtime directory of the instance, if it is running

The environment also contains the following directories, irrespective of the explored instance: * /.dash User-added and built-in dash tools * /svc Protocols required by the dash shell

When --layout=namespace, the contents of the /ns dir above are placed at / with two protocols (fuchsia.process.Launcher and fuchsia.process.Resolver) overlayed into /svc. In this mode, the exposed, out, and runtime directories will not be accessible.

With --tools, tools in the specified package will be loaded into /.dash/tools// The path is set so that they can be run by name. The path preference is in the command line order of the --tools arguments, with any built-in tools taking lowest priority.

--tools URLs may be package or binary URLs. If a package URL is given, tool executables are expected to be in a bin/ dir within the package. If a specific tool URL is given, append the tool path to the package URL. For example: --tools fuchsia-pkg://fuchsia.com/my_package#bin/my_tool. Note that naming collisions can occur if multiple packages share a package or binary name. An error, NonUniqueBinaryName, is returned if a binary name collision occurs.

graph

Outputs a Graphviz dot graph for the components in the component topology. Children of unresolved components are not included in this list.


Usage:  ffx component graph [-o <only>] [-r <orientation>]

Options  
--help display usage information
-o, --only filter the instance list by a criteria: ancestor, descendant, relative
-r, --orientation changes the visual orientation of the graph's nodes. Allowed values are "lefttoright"/"lr" and "toptobottom"/"tb".

Examples

To graph components in the topology:

    $ ffx component graph

    To graph all running components in the topology:

    $ ffx component graph --only running

    To graph all stopped components in the topology:

    $ ffx component graph --only stopped

    To graph the ancestors of a component named `foo`:

    $ ffx component graph --only ancestor:foo

    To graph the descendants of a component named `foo`:

    $ ffx component graph --only descendant:foo

    To graph both the ancestors and descendants of a component named `foo`:

    $ ffx component graph --only relatives:foo

    To order the graph's nodes from left-to-right (instead of top-to-bottom):

    $ ffx component graph --orientation left_to_right

list

Lists components in the component topology. Children of unresolved components are not included in this list.


Usage:  ffx component list [-o <only>] [-v]

Options  
--help display usage information
-o, --only filter the instance list by a criteria: running, stopped, ancestors:, descendants:, or relatives:
-v, --verbose show detailed information about each instance

Examples

To list components in the topology:

    $ ffx component list

    To list all running components in the topology:

    $ ffx component list --only running

    To list all stopped components in the topology:

    $ ffx component list --only stopped

    To list the ancestors of a component named `foo`:

    $ ffx component list --only ancestor:foo

    To list the descendants of a component named `foo`:

    $ ffx component list --only descendant:foo

    To list both the ancestors and descendants of a component named `foo`:

    $ ffx component list --only relatives:foo

reload

Recursively stops, unresolves, and starts a component instance, updating the code and topology while preserving resources


Usage:  ffx component reload query

Options  
--help display usage information

Examples

To reload a component instance designated by the moniker `/core/ffx-laboratory:foo`:

    $ ffx component reload /core/ffx-laboratory:foo

Notes

  • To learn more about running components, see https://fuchsia.dev/go/components/run

resolve

Resolves a component instance


Usage:  ffx component resolve query

Options  
--help display usage information

Examples

To resolve the component designated by the provided moniker `/core/brightness_manager`:

    $ ffx component resolve /core/brightness_manager

route

Perform capability routing on a component at runtime.


Usage:  ffx component route target [filter]

Options  
--help display usage information

Examples

To route capabilities from `font_provider`:

$ ffx component route /core/font_provider

This will perform routing on all the capabilities used or exposed by `font_provider`, and display
information for each route including its status (success or failure) and the identity of the source
component providing the capability.

$ ffx component route fonts.cm

This does the same thing, except with a fuzzy match (on the URL).

$ ffx component route /core/font_provider fuchsia.pkg.FontResolver

This will perform routing on capabilities used or exposed by `font_provider` that match
`fuchsia.pkg.FontResolver`.

$ ffx component route /core/font_provider use:fuchsia.pkg.FontResolver,expose:fuchsia.fonts.Provider

This will perform routing from `font_provider` on used capability `fuchsia.pkg.FontResolver` and
exposed capability `fuchsia.fonts.Provider`.

$ ffx component route /core/font_provider fuchsia.pkg

Fuzzy matching by capability is also supported. This will perform routing from `font_provider` on
any used or exposed capability matching *fuchsia.pkg*.

run

Creates and starts a component instance in an existing collection within the component topology.


Usage:  ffx component run [-r] [-f] [--connect-stdio] [--config <config...>] moniker url

Options  
--help display usage information
-r, --recreate destroy and recreate the component instance if it already exists
-f, --follow-logs start printing logs from the started component after it has started
--connect-stdio connect stdin, stdout, and stderr to the component (requires component to be in a collection with single_run durability)
--config provide a configuration override to the component being run. Requires mutability: \[ "parent" ] on the configuration field. Specified in the format KEY=VALUE where VALUE is a JSON string which can be resolved as the correct type of configuration value.

Examples

To create a component instance from the `hello-world-rust` component URL:

    $ ffx component run /core/ffx-laboratory:hello-world fuchsia-pkg://fuchsia.com/hello-world-rust#meta/hello-world-rust.cm

Notes

  • This command is a shorthand for the following:

    $ ffx component create $ ffx component start

To learn more about running components, see https://fuchsia.dev/go/components/run

show

Shows detailed information about a component instance


Usage:  ffx component show query

Options  
--help display usage information

Examples

To show information about the `brightness_manager` component instance, all of the
following commands are valid:

    $ ffx component show /core/brightness_manager
    $ ffx component show fuchsia-pkg://fuchsia.com/brightness_manager#meta/brightness_manager.cm
    $ ffx component show meta/brightness_manager.cm
    $ ffx component show brightness_manager

Notes

  • This command supports partial matches over the moniker, URL and instance ID

start

Starts a component


Usage:  ffx component start [--debug] query

Options  
--help display usage information
--debug start the component in the debugger. To debug a component that is already running, consider ffx component debug.

Examples

To start the component instance designated by the moniker `/core/brightness_manager`:

    $ ffx component start /core/brightness_manager

The start the brightness manager in the debugger, use the --debug flag:

    $ ffx component start /core/brightness_manager --debug

Notes

  • To learn more about running components, see https://fuchsia.dev/go/components/run

stop

Stops a component instance


Usage:  ffx component stop query

Options  
--help display usage information

Examples

To stop the component instance designated by the moniker `/core/brightness_manager`:

    $ ffx component stop /core/brightness_manager

Notes

  • To learn more about running components, see https://fuchsia.dev/go/components/run

storage

Manages storage capabilities of components


Usage:  ffx component storage [--provider <provider>] [--capability <capability>] [subcommand...]

Options  
--help display usage information
--provider the moniker of the storage provider component. Defaults to "/core"
--capability the capability name of the storage to use. Examples: "data", "cache", "tmp" Defaults to "data"
Subcommands  
copy Copy files to/from a component's storage. If the file already exists at the destination it is overwritten.
delete Delete files from a component's storage.
delete-all Delete the contents of the storage for a specific component.
list List the contents of a component's storage.
make-directory Create a new directory in a component's storage. If the directory already exists, this operation is a no-op.

copy

Copy files to/from a component's storage. If the file already exists at the destination it is overwritten.


Usage:  ffx component storage copy source_path destination_path

Options  
--help display usage information

Examples

To copy `credentials.json` from the current working directory on the host to the `settings` directory of a component's storage:

    $ ffx component storage copy ./credentials.json 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520::settings/credentials.json

To copy `credentials.json` from the current working directory on the host to the `settings` directory from a different provider and capability:

    $ ffx component storage --provider /core/test_manager --capability data copy ./credentials.json f1a52f7b4d7081060a3295fd36df7b68fb0518f80aae0eae8a3fc1d55231375f::settings/credentials.json

Note: 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520 is the instance ID of
the component whose storage is being accessed.

To learn about component instance IDs, see https://fuchsia.dev/go/components/instance-id

delete

Delete files from a component's storage.


Usage:  ffx component storage delete path

Options  
--help display usage information

Examples

To delete `credentials.json` from the root directory of a component's persistent storage:

    $ ffx component storage delete 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520::credentials.json

Note: 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520 is the instance ID of
the component whose storage is being accessed.

To learn about component instance IDs, see https://fuchsia.dev/go/components/instance-id

delete-all

Delete the contents of the storage for a specific component.


Usage:  ffx component storage delete-all moniker

Options  
--help display usage information

Examples

To delete the contents of the storage for a component with moniker `foo`:

    $ ffx component storage delete-all foo

Note: although unusual, the user may specify internal instance IDs in the moniker such as `foo:0/bar:2`.

list

List the contents of a component's storage.


Usage:  ffx component storage list path

Options  
--help display usage information

Examples

To list the contents of the `settings` directory in a component's storage:

    $ ffx component storage list 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520::settings

To list the contents of the root directory of a component's storage:

    $ ffx component storage list 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520::/

To list the contents of a directory using a different provider and capability:

    $ ffx component storage --provider /core/test_manager --capability data list f1a52f7b4d7081060a3295fd36df7b68fb0518f80aae0eae8a3fc1d55231375f::/

Note: 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520 is the instance ID of
the component whose storage is being accessed.

To learn about component instance IDs, see https://fuchsia.dev/go/components/instance-id

make-directory

Create a new directory in a component's storage. If the directory already exists, this operation is a no-op.


Usage:  ffx component storage make-directory path

Options  
--help display usage information

Examples

To make a `settings` directory in a storage:

    $ ffx component storage make-directory 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520::settings

To make a `settings` directory in a storage from a different provider and capability:

    $ ffx component storage --provider /core/test_manager --capability data make-directory f1a52f7b4d7081060a3295fd36df7b68fb0518f80aae0eae8a3fc1d55231375f::settings

Note: 2042425d4b16ac396ebdb70e40845dc51516dd25754741a209d1972f126a7520 is the instance ID of
the component whose storage is being accessed.

To learn about component instance IDs, see https://fuchsia.dev/go/components/instance-id

config

View and switch default and user configurations


Usage:  ffx config [subcommand...]

Options  
--help display usage information
Subcommands  
add add config value the end of an array
analytics enable or disable analytics
check-ssh-keys check the ssh key configuration and create keys if needed.
env list environment settings
get display config values
remove remove config for a given level
set set config settings

add

add config value the end of an array


Usage:  ffx config add [-l <level>] [-b <build-dir>] name value

Options  
--help display usage information
-l, --level config level. Possible values are "user", "build", "global". Defaults to "user".
-b, --build-dir an optional build directory to associate the build config provided - used for "build" configs. If not provided, it may attempt to autodiscover your active build directory.

Notes

  • This will always add to the end of an array.  Adding to a subtree is not supported. If the current value is not an array, it will convert the value to an array.  If you want to insert a value in a different position, consider editing the configuration file directly.  Configuration file locations can be found by running ffx config env get command.

analytics

enable or disable analytics


Usage:  ffx config analytics [subcommand...]

Options  
--help display usage information
Subcommands  
disable disable analytics
enable enable basic (redacted) analytics
enable-enhanced enable enhanced analytics (Googlers only)
show show analytics

disable

disable analytics


Usage:  ffx config analytics disable

Options  
--help display usage information

enable

enable basic (redacted) analytics


Usage:  ffx config analytics enable

Options  
--help display usage information

enable-enhanced

enable enhanced analytics (Googlers only)


Usage:  ffx config analytics enable-enhanced

Options  
--help display usage information

show

show analytics


Usage:  ffx config analytics show

Options  
--help display usage information

check-ssh-keys

check the ssh key configuration and create keys if needed.


Usage:  ffx config check-ssh-keys

Options  
--help display usage information

env

list environment settings


Usage:  ffx config env [subcommand...]

Options  
--help display usage information
Subcommands  
get list environment for a given level
set set environment settings

get

list environment for a given level


Usage:  ffx config env get [level]

Options  
--help display usage information

set

set environment settings


Usage:  ffx config env set [-l <level>] [-b <build-dir>] file

Options  
--help display usage information
-l, --level config level. Possible values are "user", "build", "global". Defaults to "user".
-b, --build-dir an optional build directory to associate the build config provided - used for "build" configs. If not provided, it may attempt to autodiscover your active build directory.

get

display config values


Usage:  ffx config get [-p <process>] [-s <select>] [-b <build-dir>] [name]

Options  
--help display usage information
-p, --process how to process results. Possible values are "r/raw", "s/sub/substitute", or "f/file". Defaults to "substitute". Currently only supported if a name is given. The process type "file" returns a scalar value. In the case of the configuration being a list, it is treated as an ordered list of alternatives and takes the first value that exists.
-s, --select how to collect results. Possible values are "first" and "all". Defaults to "first". If the value is "first", the first value found in terms of priority is returned. If the value is "all", all values across all configuration levels are aggregrated and returned. Currently only supported if a name is given.
-b, --build-dir an optional build directory to associate the build config provided - used for "build" configs. If not provided, it may attempt to autodiscover your active build directory.
Errors  
2 No value found

remove

remove config for a given level


Usage:  ffx config remove [-l <level>] [-b <build-dir>] name

Options  
--help display usage information
-l, --level config level. Possible values are "user", "build", "global". Defaults to "user".
-b, --build-dir an optional build directory to associate the build config provided - used for "build" configs. If not provided, it may attempt to autodiscover your active build directory.

Notes

  • This will remove the entire value for the given name.  If the value is a subtree or array, the entire subtree or array will be removed.  If you want to remove a specific value from an array, consider editing the configuration file directly.  Configuration file locations can be found by running ffx config env get command.

set

set config settings


Usage:  ffx config set [-l <level>] [-b <build-dir>] name value

Options  
--help display usage information
-l, --level config level. Possible values are "user", "build", "global". Defaults to "user".
-b, --build-dir an optional build directory to associate the build config provided - used for "build" configs. If not provided, it may attempt to autodiscover your active build directory.

daemon

Interact with/control the ffx daemon


Usage:  ffx daemon [subcommand...]

Options  
--help display usage information
Subcommands  
crash crash the daemon
echo run echo test against the daemon
hang hang the daemon
log Dumps the daemon log
socket query information about the daemon socket without connecting to it
start run as daemon -- normally unnecessary, as the daemon is automatically started on demand. Used primarily for debugging
stop stops a running daemon

crash

crash the daemon


Usage:  ffx daemon crash

Options  
--help display usage information

echo

run echo test against the daemon


Usage:  ffx daemon echo [text]

Options  
--help display usage information

hang

hang the daemon


Usage:  ffx daemon hang

Options  
--help display usage information

log

Dumps the daemon log


Usage:  ffx daemon log [-f] [-l <line-count>]

Options  
--help display usage information
-f, --follow print appended logs as they happen
-l, --line-count display most recent log lines.

socket

query information about the daemon socket without connecting to it


Usage:  ffx daemon socket

Options  
--help display usage information

start

run as daemon -- normally unnecessary, as the daemon is automatically started on demand. Used primarily for debugging


Usage:  ffx daemon start [--path <path>]

Options  
--help display usage information
--path override the path the socket will be bound to

stop

stops a running daemon


Usage:  ffx daemon stop [-w] [--no-wait] [-t <timeout-ms>]

Options  
--help display usage information
-w, --wait wait indefinitely for the daemon to stop before exiting (should not be used in automated systems)
--no-wait do not wait for daemon to stop (default behavior -- eventually to be deprecated)
-t, --timeout-ms optional timeout (in milliseconds) to wait for the daemon to stop. Will try killing the daemon if it does not exit on its own.

debug

Start a debugging session.


Usage:  ffx debug [subcommand...]

Options  
--help display usage information
Subcommands  
connect start the debugger and connect to the target
core start the debugger and open a minidump
crash catch a crashing process on the target
fidl monitor FIDL traffic on the target
limbo control the process limbo on the target
symbol-index manage symbol sources used by other debug commands
symbolize symbolize backtraces in markup format

connect

start the debugger and connect to the target


Usage:  ffx debug connect [--debugger <debugger>] [--agent-only] [-a <attach...>] [-e <execute...>] [--new-agent] [zxdb_args...]

Options  
--help display usage information
--debugger start zxdb in another debugger. Currently, the only valid option is "lldb".
--agent-only only start the debug agent but not the zxdb. The path to the UNIX socket will be printed and can be connected via "connect -u" in zxdb shell.
-a, --attach attaches to given processes. The argument will be parsed in the same way as the "attach" command in the console.
-e, --execute execute one zxdb command. Multiple commands will be executed sequentially.
--new-agent always spawn a new DebugAgent instance for this zxdb invocation.

core

start the debugger and open a minidump


Usage:  ffx debug core [--zxdb-args <zxdb-args...>] [minidump]

Options  
--help display usage information
--zxdb-args extra arguments passed to zxdb.

crash

catch a crashing process on the target


Usage:  ffx debug crash

Options  
--help display usage information

fidl

monitor FIDL traffic on the target


Usage:  ffx debug fidl [--from <from>] [--to <to>] [--format <format>] [--with <with...>] [--with-process-info] [--stack <stack>] [--syscalls <syscalls...>] [--exclude-syscalls <exclude-syscalls...>] [--messages <messages...>] [--exclude-messages <exclude-messages...>] [--trigger <trigger...>] [--thread <thread...>] [--dump-messages] [--remote-pid <remote-pid...>] [-f <remote-name...>] [--extra-name <extra-name...>] [-c <remote-component...>] [--extra-component <extra-component...>] [--fidl-ir-path <fidl-ir-path...>] [extra_args...]

Options  
--help display usage information
--from specifies the source. Source can be: device: this is the default input. The input comes from the live monitoring of one or several processes. At least one of '--remote-pid', '--remote-name', '--remote-job-id', --'remote-job-name', 'run' must be specified. dump: The input comes from stdin which is the log output of one or several programs. The lines in the log which dump syscalls are decoded and replaced by the decoded version. All other lines are unchanged. : playback. Used to replay a session previously recorded with --to (protobuf format). Path gives the name of the file to read. If path is '-' then the standard input is used. This option must be used at most once.
--to the session is saved to the specified file (binary protobuf format). When a session is saved, you can replay it using "--from ". The raw data is saved. That means that the data saved is independent from what is displayed.
--format the display format for the session dump. The available formats are: pretty: the session is pretty printed (with colors). This is the default output if --with is not used. json: the session is printed using a json format. textproto: the session is printed using a text protobuf format. none: nothing is displayed on the standard output (this option only makes sense when used with --to or with --with). When there is no output, fidlcat is faster (this is better to monitor real time components). This is the default output when --with is used.
--with specifies an extra summarized output. summary: at the end of the session, a summary of the session is displayed on the standard output. top: at the end of the session, generate a view that groups the output by process, protocol, and method. The groups are sorted by number of events, so groups with more associated events are listed earlier. group-by-thread: for each thread display a short version of all the events. An equal sign followed by a path can be concatanated to the option to output the result in a file instead of the standard output (for example: --with summary=/tmp/x). This option can be used several times.
--with-process-info display the process name, process id and thread id on each line (useful for grep).
--stack define the amount of stack frame to display 0: none (default value) 1: call site (1 to 4 levels) 2: full stack frame (adds some overhead)
--syscalls a regular expression which selects the syscalls to decode and display. This option can be specified multiple times. By default, only zxchannel.* syscalls are displayed. To display all the syscalls, use: --syscalls ".*"
--exclude-syscalls a regular expression which selects the syscalls to not decode and display. This option can be specified multiple times. To be displayed, a syscall must verify --syscalls and not verify --exclude-syscalls. To display all the syscalls but the zx_handle syscalls, use: --syscalls "." --exclude-syscalls "zxhandle."
--messages a regular expression which selects the messages to display. To display a message, the method name must satisfy the regexp. This option can be specified multiple times. Message filtering works on the method's fully qualified name.
--exclude-messages a regular expression which selects the messages to not display. If a message method name satisfy the regexp, the message is not displayed (even if it satisfies --messages). This option can be specified multiple times. Message filtering works on the method's fully qualified name.
--trigger start displaying messages and syscalls only when a message for which the method name satisfies the filter is found. This option can be specified multiple times. Message filtering works on the method's fully qualified name.
--thread only display the events for the specified thread. This option can be specified multiple times. By default all the events are displayed.
--dump-messages always does a hexadecimal dump of the messages even if we can decode them.
--remote-pid the koid of the remote process to trace.
-f, --remote-name the of a process. Fidlcat will monitor all existing and future processes whose names includes ( is a substring of the process name). This option can be specified multiple times. When used with --remote-job-id or --remote-job-name, only the processes from the selected jobs are taken into account.
--extra-name like "--remote-name" but for these processes, monitoring starts only when one of the "--remote-name" or "--remote-component" is launched. Also, fidlcat stops when the last "--remote-name" or "--remote-component" stops, even if some "--extra-name" processes are still running. You must specify at least one filter with "--remote-name" or "--remote-component" if you use this option. This option can be specified multiple times.
-c, --remote-component the URL or the moniker of a component for which we want to monitor. All processes running in the component will be monitered. This option can be specified multiple times.
--extra-component like "--remote-component" but for these components, monitoring starts only when one of the "--remote-name" or "--remote-component" is launched. Also, fidlcat stops when the last "--remote-name" or "--remote-component" stops, even if some "--extra-component" are still running. You must specify at least one filter with "--remote-name" or "--remote-component" if you use this option. This option can be specified multiple times.
--fidl-ir-path add the given path as a repository for FIDL IR, in the form of .fidl.json files. Passing a file adds the given file. Passing a directory adds all of the .fidl.json files in that directory and any directory transitively reachable from there. An argfile contains a newline-separated list of .fidl.json files relative to the directory containing the argfile; passing an argfile (starting with the '@' character) adds all files listed in that argfile. This option can be specified multiple times.

limbo

control the process limbo on the target


Usage:  ffx debug limbo [subcommand...]

Options  
--help display usage information
Subcommands  
disable disable the process limbo. Will free any pending processes waiting in it.
enable enable the process limbo. It will now begin to capture crashing processes.
list lists the processes currently waiting on limbo. The limbo must be active.
release release a process from limbo. The limbo must be active.
status query the status of the process limbo.

disable

disable the process limbo. Will free any pending processes waiting in it.


Usage:  ffx debug limbo disable

Options  
--help display usage information

enable

enable the process limbo. It will now begin to capture crashing processes.


Usage:  ffx debug limbo enable

Options  
--help display usage information

list

lists the processes currently waiting on limbo. The limbo must be active.


Usage:  ffx debug limbo list

Options  
--help display usage information

release

release a process from limbo. The limbo must be active.


Usage:  ffx debug limbo release pid

Options  
--help display usage information

status

query the status of the process limbo.


Usage:  ffx debug limbo status

Options  
--help display usage information

symbol-index

manage symbol sources used by other debug commands


Usage:  ffx debug symbol-index [subcommand...]

Options  
--help display usage information
Subcommands  
add add a path or url to the symbol index
clean remove all non-existent paths
list show the content in symbol index
remove remove a path from the symbol index

Notes

  • symbol-index is a global configuration used by debugging tools to locate
    symbol files.

add

add a path or url to the symbol index


Usage:  ffx debug symbol-index add [--build-dir <build-dir>] source

Options  
--help display usage information
--build-dir optional build directory used by zxdb to locate the source code

Notes

  • Add a path or a debuginfod server to the symbol index, e.g.,
    
    • A build-id directory, with an optional build directory.
    • An ids.txt file, with an optional build directory.
    • A file that ends with .symbol-index.json.
    • https://debuginfod.debian.net

Duplicated adding of the same path or url is a no-op, regardless of the optional build directory.

clean

remove all non-existent paths


Usage:  ffx debug symbol-index clean

Options  
--help display usage information

Notes

  • Remove all non-existent paths from the symbol index, useful as a garbage
    collection.

list

show the content in symbol index


Usage:  ffx debug symbol-index list [-a]

Options  
--help display usage information
-a, --aggregated show the aggregated symbol index

remove

remove a path from the symbol index


Usage:  ffx debug symbol-index remove source

Options  
--help display usage information

Notes

  • Remove a path or a debuginfod server from the symbol index, e.g.,
    
    • A build-id directory.
    • An ids.txt file.
    • A file that ends with .symbol-index.json.
    • https://debuginfod.debian.net

symbolize

symbolize backtraces in markup format


Usage:  ffx debug symbolize [--auth] [--no-prettify] [symbolizer_args...]

Options  
--help display usage information
--auth start the authentication process.
--no-prettify do not prettify the backtraces.

doctor

Run common checks for the ffx tool and host environment


Usage:  ffx doctor [--record] [--no-config] [--retry-count <retry-count>] [--retry-delay <retry-delay>] [--restart-daemon] [-v] [--output-dir <output-dir>] [--repair-keys]

Options  
--help display usage information
--record generates an output zip file with logs
--no-config do not include the ffx configuration file
--retry-count number of times to retry failed connection attempts
--retry-delay timeout delay in ms during connection attempt
--restart-daemon force restart the daemon, even if the connection is working
-v, --verbose verbose, display all steps
--output-dir override the default output directory for doctor records
--repair-keys checks SSH key consistency and repairs them if needed. This may cause any devices to be reflashed.

Examples

To run diagnostics:

    $ ffx doctor

To capture the output and additional logs:

    $ ffx doctor --record

By default, this outputs the zip in the current directory.

To override output dir:

    $ ffx doctor --record --output-dir /tmp/ffx

Notes

  • The doctor subcommand automatically attempts to repair common target
    interaction issues and provides useful diagnostic information to the user.

By default, running ffx doctor attempts to establish a connection with the daemon, and restarts the daemon if there is no connection. The default retry_count is '3' and the default 'retry_delay` is '2000' milliseconds.

emu

Start and manage Fuchsia emulators.


Usage:  ffx emu [subcommand...]

Options  
--help display usage information
Subcommands  
console [EXPERIMENTAL] Connect to a running Fuchsia emulator's console.
list List running Fuchsia emulators.
show Show Fuchsia emulator details.
start Start the Fuchsia emulator.
stop Shut down a running Fuchsia emulator.

Notes

  • The emu command is used to start up, manage, and shut down Fuchsia emulators.

The start subcommand launches an emulator according to the configuration in the Product Bundle. Once one or more emulators are running, you can use the list subcommand to see the name and status of all running emulators, and the show subcommand to get a printout of the configuration for a specific emulator. When you're done with an emulator, use the stop subcommand to cleanly terminate that emulator.

For more information on the Fuchsia emulator, see the Getting Started page at https://fuchsia.dev/fuchsia-src/get-started/set_up_femu.

console

[EXPERIMENTAL] Connect to a running Fuchsia emulator's console.


Usage:  ffx emu console [--console-type <console-type>] [-c] [-m] [-s] [name]

Options  
--help display usage information
--console-type selector for which console to attach to. Accepted values are: command machine serial
-c, --command attach to the user-interactive command console. Equivalent to "--console-type command".
-m, --machine attach to the machine-readable command console. Equivalent to "--console-type machine".
-s, --serial attach to the Fuchsia serial console. Equivalent to "--console-type serial".

Examples

ffx emu console -s
ffx emu console fuchsia-emulator --console-type serial

list

List running Fuchsia emulators.


Usage:  ffx emu list [-r]

Options  
--help display usage information
-r, --only-running list only the emulators that are currently in the "running" state.

show

Show Fuchsia emulator details.


Usage:  ffx emu show [--all] [--cmd] [--config] [--device] [--net] [name]

Options  
--help display usage information
--all show all of the available details, which is the default.
--cmd show the command line used to launch the emulator.
--config show the configuration in a format consistent with the 'start' command's --config flag.
--device show the virtual device information used to launch this emulator, in a format consistent with the 'start' command's --device flag.
--net switch to show network details.

start

Start the Fuchsia emulator.


Usage:  ffx emu start [--accel <accel>] [--config <config>] [--dev-config <dev-config>] [--console] [--debugger] [--device <device>] [--device-list] [--dry-run] [--edit] [--engine <engine>] [--gpu <gpu>] [-H] [--hidpi-scaling <hidpi-scaling>] [-c <kernel-args...>] [-l <log>] [-m] [--name <name>] [--net <net>] [--port-map <port-map...>] [--reuse] [--reuse-with-check] [--stage] [-s <startup-timeout>] [-V] [product_bundle]

Options  
--help display usage information
--accel virtualization acceleration. Valid choices are "none" to disable acceleration, "hyper" to use the host's hypervisor interface (KVM on Linux and HVF on MacOS), or "auto" to use the hypervisor if detected. The default value is "auto".
--config specify a configuration file to populate the command line flags for the emulator. Defaults to a Handlebars config specified in the Product Bundle manifest.
--dev-config specify developer config file to append onto the configuration. This is a JSON file with the object structure: {{ "args": [], "kernel_args": [], "env" : {{"key": "value"}} }}
--console launch the emulator in serial console mode. This redirects the virtual serial port to the host's input/output streams, multi-plexed with the QEMU monitor console, then maintains a connection to those streams rather than returning control to the host terminal. This is especially useful when the guest is running without networking enabled. Note: Control sequences are passed through to the guest system in this mode, so Crtl-c will terminate the guest system's shell, rather than the emulator process itself. If you need to hard-kill the emulator, use the QEMU sequence 'Ctrl-a x' instead.
--debugger pause on launch and wait for a debugger process to attach before resuming. The guest operating system will not begin execution until a debugger, such as gdb or lldb, attaches to the emulator process and signals the emulator to continue.
--device the virtual device specification used to configure the emulator. This can be the name of a device listed in the product bundle, or the path to a custom virtual device file. A default for this flag can be set by running ffx config set emu.device <type>. If --device is not specified and no default is set, then ffx emu will attempt to use the first device listed in the PBM(v1), or the product bundle's recommended device(v2).
--device-list print the list of available virtual devices.
--dry-run sets up the emulation configuration, but doesn't stage files or start the emulator. The command line arguments that the current configuration generates will be printed to stdout for review.
--edit open the user's default editor to modify the command line flags for the emulator.
--engine emulation engine to use for this instance. Allowed values are "femu" which is based on Android Emulator, and "qemu" which uses the version of Qemu packaged with Fuchsia. Default is "femu". This can be overridden by running ffx config set emu.engine <type>.
--gpu GPU acceleration mode. Allowed values are "swiftshader_indirect", "host", or "auto". Default is "swiftshader_indirect". "host" and "auto" are for experimental use only and are not officially supported by the Fuchsia emulator team; graphics artifacts, test failures and emulator crashes may occur. Note: this is unused when using the "qemu" engine type. See https://developer.android.com/studio/run/emulator-acceleration#command-gpu for details on the available options. This can be overridden by running ffx config set emu.gpu <type>.
-H, --headless run the emulator without a GUI. The guest system may still initialize graphics drivers, but no graphics interface will be presented to the user.
--hidpi-scaling enable pixel scaling on HiDPI devices. Defaults to true for MacOS, false otherwise.
-c, --kernel-args passes the given string to the emulator executable, appended after all other arguments (since duplicated values favor the later value). This means command-line values will override configuration-provided values for any of these kernel arguments. Can be repeated arbitrarily many times for multiple additional kernel arguments.
-l, --log store the emulator log at the provided filesystem path. By default, all output goes to a log file in the emulator working directory. The path to this file is printed onscreen during start-up.
-m, --monitor launch the emulator in Qemu monitor console mode. See https://qemu-project.gitlab.io/qemu/system/monitor.html for more information on the Qemu monitor console.
--name name of this emulator instance. This is used to identify the instance in other commands and tools. Default is "fuchsia-emulator". This value can also be set via configuration using the key emu.name.
--net specify the networking mode for the emulator. Allowed values are "none" which disables networking, "tap" which attaches to a Tun/Tap interface, "user" which sets up mapped ports via SLiRP, and "auto" which will check the host system's capabilities and select "tap" if it is available and "user" otherwise. Default is "auto". This can be overridden by running ffx config set emu.net <type>.
--port-map specify a host port mapping for user-networking mode. Ignored in other networking modes. Syntax is "--port-map :". The must be one of those specified in the virtual device specification. This flag may be repeated for multiple port mappings.
--reuse reuse a persistent emulator's state when starting up. If an emulator with the same name as this instance has been previously started and then stopped without cleanup, this instance will reuse the images from the previous instance. If no previous instance is found, or if the old instance is still running, the new emulator will not attempt to start.
--reuse-with-check reuse a persistent emulator's state when starting up after version check. If an emulator with the same name as this instance has been previously started and then stopped without cleanup, the zbi and disk volume files are compared against the original. If they match, the instance will reuse the images from the previous instance. If the files do not match, the instance is started using the latest files. If there is no staged instance, the emulator is started using the latest files and the hash information is recorded so this instance can take advantage of this option.
--stage sets up the emulation configuration and stages files, but doesn't start the emulator. The command line arguments that the staged configuration generates will be printed to stdout for review.
-s, --startup-timeout the maximum time (in seconds) to wait on an emulator to boot before returning control to the user. A value of 0 will skip the check entirely. Default is 60 seconds. This can be overridden with ffx config set emu.start.timeout <seconds>.
-V, --verbose enables extra logging for debugging.

Examples

ffx emu start

Notes

  • The start subcommand is the starting point for all emulator interactions.
    The name provided here will be used for all later interactions to indicate
    which emulator to target. Emulator names must be unique.

The start command will compile all of the necessary configuration for an emulator, launch the emulator, and then store the configuration on disk for future reference. The configuration comes from the Product Bundle, which includes a virtual device specification and a start-up flag template. See https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0100_product_metadata for more information.

stop

Shut down a running Fuchsia emulator.


Usage:  ffx emu stop [--all] [-p] [name]

Options  
--help display usage information
--all shut down and clean up all emulator instances running on the device.
-p, --persist don't remove the state directory on stop, just terminate the emulator.

Examples

ffx emu stop
ffx emu stop --all
ffx emu stop fuchsia-emulator --persist

Notes

  • By default, the stop command will remove an emulator's on-disk
    working directory, which contains emulator state, staged image files, etc.

Use the --persist flag if you need to leave the working directory intact while shutting down the emulator, for debugging or troubleshooting purposes. The working directory will be left in place, and the emulator will be marked [Inactive] in ffx emu list results until stop is called for that instance without the --persist flag.

net

View and manage target network configuration


Usage:  ffx net [--realm <realm>] [subcommand...]

Options  
--help display usage information
--realm a realm to target when sending commands. Defaults to the core network realm.
Subcommands  
dhcp commands for an interfaces dhcp client
dhcpd commands to control a dhcp server
dns commands to control the dns resolver
filter commands for configuring packet filtering
filter-deprecated commands for configuring packet filtering with the deprecated API
if commands for network interfaces
log commands for logging
migration controls netstack selection for migration from netstack2 to netstack3
neigh commands for neighbor tables
route commands for routing tables

dhcp

commands for an interfaces dhcp client


Usage:  ffx net dhcp [subcommand...]

Options  
--help display usage information
Subcommands  
start starts a dhcp client on the interface
stop stops the dhcp client on the interface

start

starts a dhcp client on the interface


Usage:  ffx net dhcp start nicid or name:ifname

Options  
--help display usage information

stop

stops the dhcp client on the interface


Usage:  ffx net dhcp stop nicid or name:ifname

Options  
--help display usage information

dhcpd

commands to control a dhcp server


Usage:  ffx net dhcpd [subcommand...]

Options  
--help display usage information
Subcommands  
clear-leases A primary command to clear the leases maintained by dhcpd.
get A primary command to retrieve the value of a DHCP option or server parameter.
list A primary command to list the values of all DHCP options or server parameters.
reset A primary command to reset the values of all DHCP options or server parameters.
set A primary command to set the value of a DHCP option or server parameter.
start A primary command to start the DHCP server.
stop A primary command to stop the DHCP server.

clear-leases

A primary command to clear the leases maintained by dhcpd.


Usage:  ffx net dhcpd clear-leases

Options  
--help display usage information

get

A primary command to retrieve the value of a DHCP option or server parameter.


Usage:  ffx net dhcpd get [subcommand...]

Options  
--help display usage information
Subcommands  
option A secondary command indicating a DHCP option argument.
parameter A secondary command indicating a server parameter argument.
option

A secondary command indicating a DHCP option argument.


Usage:  ffx net dhcpd get option [subcommand...]

Options  
--help display usage information
Subcommands  
all-subnets-local Flag indicating if all subnets of the connected network have the same MTU.
arp-cache-timeout Timeout for ARP cache entries.
boot-file-size Size of the default boot image for the client.
bootfile-name Bootfile name for the client.
broadcast-address Broadcast address of the client's subnet.
cookie-server RFC 865 Cookie servers available to the client.
default-finger-server Default Finger servers available to the client.
default-ip-ttl Default time-to-live to use on outgoing IP datagrams.
default-irc-server Default IRC servers available to the client.
default-www-server Default WWW servers available to the client.
domain-name Domain name of the client.
domain-name-server Domain Name System servers available to the client.
ethernet-encapsulation Flag specifying whether the client should use Ethernet v2 or IEEE 802.3 encapsulation.
extensions-path Path name to a TFTP-retrievable file containing vendor-extension information.
host-name Name of the client.
impress-server Imagen Impress servers available to the client.
interface-mtu MTU for the client's interface.
ip-forwarding Flag enabling/disabling IP layer packet forwarding.
log-server MIT-LCS UDP Log servers available to the client.
lpr-server RFC 1179 Line Printer servers available to the client.
mask-supplier Flag indicating whether the client should respond to subnet mask discovery requests via ICMP.
max-datagram-reassembly-size Maximum sized datagram that the client should be able to reassemble.
max-message-size Maximum length of a DHCP message that the participant is willing to accept.
merit-dump-file Path name of a core dump file.
mobile-ip-home-agent Mobile IP home agents available to the client.
name-server IEN 116 Name servers available to the client.
net-bios-over-tcpip-distribution-server NetBIOS datagram distribution servers available to the client.
net-bios-over-tcpip-name-server NetBIOS name servers available to the client.
net-bios-over-tcpip-node-type The NetBIOS node type which should be used by the client.
net-bios-over-tcpip-scope NetBIOS scope parameter for the client.
network-information-servers Network Information Service servers available to the client.
network-information-service-domain Name of the client's Network Information Service domain.
network-information-service-plus-domain Network Information System+ domain name.
network-information-service-plus-servers Network Information System+ servers available to the client.
network-time-protocol-servers Network Time Protocol servers available to the client.
nntp-server NNTP servers available to the client.
non-local-source-routing Flag enabling/disabling forwarding of IP packets with non-local source routes.
path-mtu-aging-timeout Timeout to use when aging Path MTU values.
path-mtu-plateau-table Table of MTU sizes for Path MTU Discovery.
perform-mask-discovery Flag indicating whether the client should perform subnet mask discovery via ICMP.
perform-router-discovery Flag indicating whether the client should solicit routers using Router Discovery.
policy-filter Policy filters for non-local source routing.
pop3-server POP3 servers available to the client.
rebinding-time-value Time interval from address assignment at which the client transitions to a Rebinding state.
renewal-time-value Time interval from address assignment at which the client transitions to a Renewing state.
resource-location-server RFC 887 Resource Location servers available to the client.
root-path Path name to a TFTP-retrievable file containing vendor-extension information.
router The routers within a client's subnet.
router-solicitation-address Destination address for Router Solicitation requests.
smtp-server SMTP servers available to the client.
static-route Static Routes which the client should put in its routing cache.
stda-server StreetTalk Directory Assistance servers available to the client.
street-talk-server StreetTalk servers available to the client.
subnet-mask The client's subnet mask.
swap-server Address of the client's swap server.
tcp-default-ttl Default time-to-live for outgoing TCP segments.
tcp-keepalive-garbage Flag specifying whether the client should send TCP keepalive messages with an octet of garbage.
tcp-keepalive-interval Interval the client should wait before sending a TCP keepalive message.
tftp-server-name TFTP server available to the client.
time-offset The client's offset from UTC.
time-server Time Protocol servers available to the client.
trailer-encapsulation Flag specifying whether the client should negotiate the use of trailers in ARP.
vendor-specific-information Option for exchanging vendor-specific information between the DHCP client and DHCP server.
x-window-system-display-manager X window System Display Manager systems available to the client.
x-window-system-font-server X Window System Font servers available to the client.
all-subnets-local

Flag indicating if all subnets of the connected network have the same MTU.


Usage:  ffx net dhcpd get option all-subnets-local [--local]

Options  
--help display usage information
--local a flag indicating if all subents of the IP network to which the client is connected have the same MTU.
arp-cache-timeout

Timeout for ARP cache entries.


Usage:  ffx net dhcpd get option arp-cache-timeout [--timeout <timeout>]

Options  
--help display usage information
--timeout the timeout for ARP cache entries, in seconds.
boot-file-size

Size of the default boot image for the client.


Usage:  ffx net dhcpd get option boot-file-size [--size <size>]

Options  
--help display usage information
--size the size of the client's default boot image in 512-octet blocks.
bootfile-name

Bootfile name for the client.


Usage:  ffx net dhcpd get option bootfile-name [--name <name>]

Options  
--help display usage information
--name the bootfile name for the client. This option should be used when the file field has been overloaded to carry options.
broadcast-address

Broadcast address of the client's subnet.


Usage:  ffx net dhcpd get option broadcast-address [--addr <addr>]

Options  
--help display usage information
--addr the broadcast address of the client's subnet. Legal values are defined in RFC 1122.

RFC 865 Cookie servers available to the client.


Usage:  ffx net dhcpd get option cookie-server [--cookie-servers <cookie-servers...>]

Options  
--help display usage information
--cookie-servers a list of RFC 865 Cookie servers available to the client, in order of preference.
default-finger-server

Default Finger servers available to the client.


Usage:  ffx net dhcpd get option default-finger-server [--finger-servers <finger-servers...>]

Options  
--help display usage information
--finger-servers a list of default Finger server addresses available to the client, listed in order of preference.
default-ip-ttl

Default time-to-live to use on outgoing IP datagrams.


Usage:  ffx net dhcpd get option default-ip-ttl [--ttl <ttl>]

Options  
--help display usage information
--ttl the default time-to-live to use on outgoing IP datagrams. The value must be between 1 and 255.
default-irc-server

Default IRC servers available to the client.


Usage:  ffx net dhcpd get option default-irc-server [--irc-servers <irc-servers...>]

Options  
--help display usage information
--irc-servers a list of Internet Relay Chat server addresses available to the client, listed in order of preference.
default-www-server

Default WWW servers available to the client.


Usage:  ffx net dhcpd get option default-www-server [--www-servers <www-servers...>]

Options  
--help display usage information
--www-servers a list of default World Wide Web (WWW) server addresses available to the client, listed in order of preference.
domain-name

Domain name of the client.


Usage:  ffx net dhcpd get option domain-name [--name <name>]

Options  
--help display usage information
--name the client's domain name for use in resolving hostnames in the DNS.
domain-name-server

Domain Name System servers available to the client.


Usage:  ffx net dhcpd get option domain-name-server [--domain-name-servers <domain-name-servers...>]

Options  
--help display usage information
--domain-name-servers a list of DNS servers available to the client, in order of preference;
ethernet-encapsulation

Flag specifying whether the client should use Ethernet v2 or IEEE 802.3 encapsulation.


Usage:  ffx net dhcpd get option ethernet-encapsulation [--encapsulate]

Options  
--help display usage information
--encapsulate a flag specifying that the client should use Ethernet v2 encapsulation when false, and IEEE 802.3 encapsulation when true.
extensions-path

Path name to a TFTP-retrievable file containing vendor-extension information.


Usage:  ffx net dhcpd get option extensions-path [--path <path>]

Options  
--help display usage information
--path the path name to a TFTP-retrievable file. This file contains data which can be interpreted as the BOOTP vendor-extension field. Unlike the BOOTP vendor-extension field, this file has an unconstrained length and any references to Tag 18 are ignored.
host-name

Name of the client.


Usage:  ffx net dhcpd get option host-name [--name <name>]

Options  
--help display usage information
--name the name of client, which may or may not be qualified with the local domain name.
impress-server

Imagen Impress servers available to the client.


Usage:  ffx net dhcpd get option impress-server [--impress-servers <impress-servers...>]

Options  
--help display usage information
--impress-servers a list of Imagen Impress servers available to the client, in order of preference.
interface-mtu

MTU for the client's interface.


Usage:  ffx net dhcpd get option interface-mtu [--mtu <mtu>]

Options  
--help display usage information
--mtu the MTU for the client's interface. Minimum value of 68.
ip-forwarding

Flag enabling/disabling IP layer packet forwarding.


Usage:  ffx net dhcpd get option ip-forwarding [--enabled]

Options  
--help display usage information
--enabled a flag which will enabled IP layer packet forwarding when true.
log-server

MIT-LCS UDP Log servers available to the client.


Usage:  ffx net dhcpd get option log-server [--log-servers <log-servers...>]

Options  
--help display usage information
--log-servers a list of MIT-LCS UDP Log servers available to the client, in order of preference.
lpr-server

RFC 1179 Line Printer servers available to the client.


Usage:  ffx net dhcpd get option lpr-server [--lpr-servers <lpr-servers...>]

Options  
--help display usage information
--lpr-servers a list of RFC 1179 Line Printer servers available to the client, in order of preference.
mask-supplier

Flag indicating whether the client should respond to subnet mask discovery requests via ICMP.


Usage:  ffx net dhcpd get option mask-supplier [--supplier]

Options  
--help display usage information
--supplier a flag indicating whether the client should respond to subnet mask discovery requests via ICMP.
max-datagram-reassembly-size

Maximum sized datagram that the client should be able to reassemble.


Usage:  ffx net dhcpd get option max-datagram-reassembly-size [--size <size>]

Options  
--help display usage information
--size the maximum sized datagram that the client should be able to reassemble, in octets. The minimum legal value is 576.
max-message-size

Maximum length of a DHCP message that the participant is willing to accept.


Usage:  ffx net dhcpd get option max-message-size [--length <length>]

Options  
--help display usage information
--length the maximum length in octets of a DHCP message that the participant is willing to accept. The minimum value is 576.
merit-dump-file

Path name of a core dump file.


Usage:  ffx net dhcpd get option merit-dump-file [--path <path>]

Options  
--help display usage information
--path the path name to the client's core dump in the event the client crashes.
mobile-ip-home-agent

Mobile IP home agents available to the client.


Usage:  ffx net dhcpd get option mobile-ip-home-agent [--home-agents <home-agents...>]

Options  
--help display usage information
--home-agents a list of mobile IP home agent addresses available to the client, listed in order of preference.
name-server

IEN 116 Name servers available to the client.


Usage:  ffx net dhcpd get option name-server [--name-servers <name-servers...>]

Options  
--help display usage information
--name-servers a list of IEN 116 Name servers available to the client, in order of preference.
net-bios-over-tcpip-distribution-server

NetBIOS datagram distribution servers available to the client.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-distribution-server [--servers <servers...>]

Options  
--help display usage information
--servers a list of NetBIOS datagram distribution servers available to the client, listed in order of preference.
net-bios-over-tcpip-name-server

NetBIOS name servers available to the client.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-name-server [--servers <servers...>]

Options  
--help display usage information
--servers a list of NetBIOS name server addresses available to the client, listed in order of preference.
net-bios-over-tcpip-node-type

The NetBIOS node type which should be used by the client.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-node-type [subcommand...]

Options  
--help display usage information
Subcommands  
b-node A B node type.
h-node A H node type.
m-node A M node type.
p-node A P node type.
# b-node

A B node type.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-node-type b-node

Options  
--help display usage information
# h-node

A H node type.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-node-type h-node

Options  
--help display usage information
# m-node

A M node type.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-node-type m-node

Options  
--help display usage information
# p-node

A P node type.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-node-type p-node

Options  
--help display usage information
net-bios-over-tcpip-scope

NetBIOS scope parameter for the client.


Usage:  ffx net dhcpd get option net-bios-over-tcpip-scope [--scope <scope>]

Options  
--help display usage information
--scope the NetBIOS over TCP/IP scope parameter, as defined in RFC 1001, for the client.
network-information-servers

Network Information Service servers available to the client.


Usage:  ffx net dhcpd get option network-information-servers [--servers <servers...>]

Options  
--help display usage information
--servers a list of Network Information Service server addresses available to the client, listed in order of preference.
network-information-service-domain

Name of the client's Network Information Service domain.


Usage:  ffx net dhcpd get option network-information-service-domain [--domain-name <domain-name>]

Options  
--help display usage information
--domain-name the name of the client's Network Information Service domain.
network-information-service-plus-domain

Network Information System+ domain name.


Usage:  ffx net dhcpd get option network-information-service-plus-domain [--domain-name <domain-name>]

Options  
--help display usage information
--domain-name the name of the client's Network Information System+ domain.
network-information-service-plus-servers

Network Information System+ servers available to the client.


Usage:  ffx net dhcpd get option network-information-service-plus-servers [--servers <servers...>]

Options  
--help display usage information
--servers a list of Network Information System+ server addresses available to the client, listed in order of preference.
network-time-protocol-servers

Network Time Protocol servers available to the client.


Usage:  ffx net dhcpd get option network-time-protocol-servers [--servers <servers...>]

Options  
--help display usage information
--servers a list of Network Time Protocol (NTP) server addresses available to the client, listed in order of preference.
nntp-server

NNTP servers available to the client.


Usage:  ffx net dhcpd get option nntp-server [--nntp-servers <nntp-servers...>]

Options  
--help display usage information
--nntp-servers a list Network News Transport Protocol (NNTP) server addresses available to the client, listed in order of preference.
non-local-source-routing

Flag enabling/disabling forwarding of IP packets with non-local source routes.


Usage:  ffx net dhcpd get option non-local-source-routing [--enabled]

Options  
--help display usage information
--enabled a flag which will enable forwarding of IP packets with non-local source routes.
path-mtu-aging-timeout

Timeout to use when aging Path MTU values.


Usage:  ffx net dhcpd get option path-mtu-aging-timeout [--timeout <timeout>]

Options  
--help display usage information
--timeout the timeout, in seconds, to be used when again Path MTU values by the mechanism in RFC 1191.
path-mtu-plateau-table

Table of MTU sizes for Path MTU Discovery.


Usage:  ffx net dhcpd get option path-mtu-plateau-table [--mtu-sizes <mtu-sizes...>]

Options  
--help display usage information
--mtu-sizes A list of MTU sizes, ordered from smallest to largest. The smallest value cannot be smaller than 68.
perform-mask-discovery

Flag indicating whether the client should perform subnet mask discovery via ICMP.


Usage:  ffx net dhcpd get option perform-mask-discovery [--do-discovery]

Options  
--help display usage information
--do-discovery a flag indicating whether the client should perform subnet mask discovery via ICMP.
perform-router-discovery

Flag indicating whether the client should solicit routers using Router Discovery.


Usage:  ffx net dhcpd get option perform-router-discovery [--do-discovery]

Options  
--help display usage information
--do-discovery A flag indicating whether the client should solicit routers using Router Discovery as defined in RFC 1256.
policy-filter

Policy filters for non-local source routing.


Usage:  ffx net dhcpd get option policy-filter [--addresses <addresses...>]

Options  
--help display usage information
--addresses a list of IP Address and Subnet Mask pairs. If an incoming source-routed packet has a next-hop that does not match one of these pairs, then the packet will be dropped.
pop3-server

POP3 servers available to the client.


Usage:  ffx net dhcpd get option pop3-server [--pop3-servers <pop3-servers...>]

Options  
--help display usage information
--pop3-servers a list of Post Office Protocol (POP3) server addresses available to the client, listed in order of preference.
rebinding-time-value

Time interval from address assignment at which the client transitions to a Rebinding state.


Usage:  ffx net dhcpd get option rebinding-time-value [--interval <interval>]

Options  
--help display usage information
--interval the time interval, in seconds, after address assignment at which the client will transition to the Rebinding state.
renewal-time-value

Time interval from address assignment at which the client transitions to a Renewing state.


Usage:  ffx net dhcpd get option renewal-time-value [--interval <interval>]

Options  
--help display usage information
--interval the time interval, in seconds, after address assignment at which the client will transition to the Renewing state.
resource-location-server

RFC 887 Resource Location servers available to the client.


Usage:  ffx net dhcpd get option resource-location-server [--resource-location-servers <resource-location-servers...>]

Options  
--help display usage information
--resource-location-servers a list of RFC 887 Resource Location servers available to the client, in order of preference.
root-path

Path name to a TFTP-retrievable file containing vendor-extension information.


Usage:  ffx net dhcpd get option root-path [--path <path>]

Options  
--help display usage information
--path the path name to a TFTP-retrievable file. This file contains data which can be interpreted as the BOOTP vendor-extension field. Unlike the BOOTP vendor-extension field, this file has an unconstrained length and any references to Tag 18 are ignored.
router

The routers within a client's subnet.


Usage:  ffx net dhcpd get option router [--routers <routers...>]

Options  
--help display usage information
--routers a list of the routers in a client's subnet, listed in order of preference.
router-solicitation-address

Destination address for Router Solicitation requests.


Usage:  ffx net dhcpd get option router-solicitation-address [--addr <addr>]

Options  
--help display usage information
--addr the address to which the client should transmit Router Solicitation requests.
smtp-server

SMTP servers available to the client.


Usage:  ffx net dhcpd get option smtp-server [--smtp-servers <smtp-servers...>]

Options  
--help display usage information
--smtp-servers a list of Simple Mail Transport Protocol (SMTP) server address available to the client, listed in order of preference.
static-route

Static Routes which the client should put in its routing cache.


Usage:  ffx net dhcpd get option static-route [--routes <routes...>]

Options  
--help display usage information
--routes a list of Destination address/Next-hop address pairs defining static routes for the client's routing table. The routes should be listed in descending order of priority. It is illegal to use 0.0.0.0 as the destination in a static route.
stda-server

StreetTalk Directory Assistance servers available to the client.


Usage:  ffx net dhcpd get option stda-server [--stda-servers <stda-servers...>]

Options  
--help display usage information
--stda-servers a list of StreetTalk Directory Assistance server addresses available to the client, listed in order of preference.
street-talk-server

StreetTalk servers available to the client.


Usage:  ffx net dhcpd get option street-talk-server [--streettalk-servers <streettalk-servers...>]

Options  
--help display usage information
--streettalk-servers a list of StreetTalk server addresses available to the client, listed in order of preference.
subnet-mask

The client's subnet mask.


Usage:  ffx net dhcpd get option subnet-mask [--mask <mask>]

Options  
--help display usage information
--mask a 32-bit IPv4 subnet mask.
swap-server

Address of the client's swap server.


Usage:  ffx net dhcpd get option swap-server [--address <address>]

Options  
--help display usage information
--address the address of the client's swap server.
tcp-default-ttl

Default time-to-live for outgoing TCP segments.


Usage:  ffx net dhcpd get option tcp-default-ttl [--ttl <ttl>]

Options  
--help display usage information
--ttl the default time-to-live that the client should use for outgoing TCP segments. The minimum value is 1.
tcp-keepalive-garbage

Flag specifying whether the client should send TCP keepalive messages with an octet of garbage.


Usage:  ffx net dhcpd get option tcp-keepalive-garbage [--send-garbage]

Options  
--help display usage information
--send-garbage a flag specifying whether the client should send TCP keepalive messages with an octet of garbage for compatibility with older implementations.
tcp-keepalive-interval

Interval the client should wait before sending a TCP keepalive message.


Usage:  ffx net dhcpd get option tcp-keepalive-interval [--interval <interval>]

Options  
--help display usage information
--interval the interval, in seconds, the client should wait before sending a TCP keepalive message. A value of 0 indicates that the client should not send keepalive messages unless specifically requested by an application.
tftp-server-name

TFTP server available to the client.


Usage:  ffx net dhcpd get option tftp-server-name [--name <name>]

Options  
--help display usage information
--name the TFTP server name available to the client. This option should be used when the sname field has been overloaded to carry options.
time-offset

The client's offset from UTC.


Usage:  ffx net dhcpd get option time-offset [--offset <offset>]

Options  
--help display usage information
--offset the client's offset from UTC in seconds. A positive offset is east of the zero meridian, and a negative offset is west of the zero meridian.
time-server

Time Protocol servers available to the client.


Usage:  ffx net dhcpd get option time-server [--time-servers <time-servers...>]

Options  
--help display usage information
--time-servers a list of time servers available to the client, in order of preference.
trailer-encapsulation

Flag specifying whether the client should negotiate the use of trailers in ARP.


Usage:  ffx net dhcpd get option trailer-encapsulation [--trailers]

Options  
--help display usage information
--trailers a flag specifying whether the client negotiate the use of trailers when using ARP, per RFC 893.
vendor-specific-information

Option for exchanging vendor-specific information between the DHCP client and DHCP server.


Usage:  ffx net dhcpd get option vendor-specific-information [--data <data...>]

Options  
--help display usage information
--data an opaque object of octets for exchanging vendor-specific information.
x-window-system-display-manager

X window System Display Manager systems available to the client.


Usage:  ffx net dhcpd get option x-window-system-display-manager [--display-servers <display-servers...>]

Options  
--help display usage information
--display-servers a list of X Window System Display Manager system addresses available to the client, listed in order of preference.
x-window-system-font-server

X Window System Font servers available to the client.


Usage:  ffx net dhcpd get option x-window-system-font-server [--servers <servers...>]

Options  
--help display usage information
--servers a list of X Window System Font server addresses available to the client, listed in order of preference.
parameter

A secondary command indicating a server parameter argument.


Usage:  ffx net dhcpd get parameter [subcommand...]

Options  
--help display usage information
Subcommands  
address-pool The pool of addresses which the DHCP server manages.
arp-probe Enables server behavior where the server ARPs an IP address prior to issuing it in a lease.
bound-device-names The names of the network devices on which the server will listen.
ip-addrs The IPv4 addresses to which the server is bound.
lease-length The duration of leases offered by the server.
permitted-macs The client MAC addresses which the server will issue leases to.
statically-assigned-addrs Addresses in the AddressPool which will only be leased to specified clients. Assigned addresses will be paired with hosts in order, e.g. hosts (A, B, C) and addresses (1, 2, 3) pair as ((A, 1), (B, 2), (C, 3)).
address-pool

The pool of addresses which the DHCP server manages.


Usage:  ffx net dhcpd get parameter address-pool [--prefix-length <prefix-length>] [--range-start <range-start>] [--range-stop <range-stop>]

Options  
--help display usage information
--prefix-length the prefix length of the network's subnet mask
--range-start the starting address, inclusive, of the range of addresses which the DHCP server will lease to clients
--range-stop the ending address, inclusive, of the range of addresses which the server will to clients
arp-probe

Enables server behavior where the server ARPs an IP address prior to issuing it in a lease.


Usage:  ffx net dhcpd get parameter arp-probe [--enabled]

Options  
--help display usage information
--enabled enables server behavior where the server ARPs an IP address prior to issuing it in a lease. If the server receives a response, the server will mark the address as in-use and try again with a different address. By default, this behavior is disabled.
bound-device-names

The names of the network devices on which the server will listen.


Usage:  ffx net dhcpd get parameter bound-device-names [names...]

Options  
--help display usage information
ip-addrs

The IPv4 addresses to which the server is bound.


Usage:  ffx net dhcpd get parameter ip-addrs [--addrs <addrs...>]

Options  
--help display usage information
--addrs A list of IPv4 Addresses to which the server is bound.
lease-length

The duration of leases offered by the server.


Usage:  ffx net dhcpd get parameter lease-length [--default <default>] [--max <max>]

Options  
--help display usage information
--default the default lease length, in seconds, to be issued to clients.
--max the maximum lease length value, in seconds, which the server will issue to clients who have requested a specific lease length. With the default value of 0, the max lease length is equivalent to the default lease length.
permitted-macs

The client MAC addresses which the server will issue leases to.


Usage:  ffx net dhcpd get parameter permitted-macs [--macs <macs...>]

Options  
--help display usage information
--macs the client MAC addresses which the server will issue leases to. By default, the server will not have a permitted MAC list, in which case it will attempt to issue a lease to every client which requests one. If permitted_macs has a non-zero length then the server will only respond to lease requests from clients with a MAC in the list.
statically-assigned-addrs

Addresses in the AddressPool which will only be leased to specified clients. Assigned addresses will be paired with hosts in order, e.g. hosts (A, B, C) and addresses (1, 2, 3) pair as ((A, 1), (B, 2), (C, 3)).


Usage:  ffx net dhcpd get parameter statically-assigned-addrs [--hosts <hosts...>] [--assigned-addrs <assigned-addrs...>]

Options  
--help display usage information
--hosts hosts which will be leased the addresses reserved by assigned_addrs.
--assigned-addrs addresses in the AddressPool which will not be leased to clients. Typically, a network administrator will statically assign these addresses to always-on network devices which should always have the same IP address, such as network printers.

list

A primary command to list the values of all DHCP options or server parameters.


Usage:  ffx net dhcpd list [subcommand...]

Options  
--help display usage information
Subcommands  
option Perform the command on DHCP options.
parameter Perform the command on server parameters.
option

Perform the command on DHCP options.


Usage:  ffx net dhcpd list option

Options  
--help display usage information
parameter

Perform the command on server parameters.


Usage:  ffx net dhcpd list parameter

Options  
--help display usage information

reset

A primary command to reset the values of all DHCP options or server parameters.


Usage:  ffx net dhcpd reset [subcommand...]

Options  
--help display usage information
Subcommands  
option Perform the command on DHCP options.
parameter Perform the command on server parameters.
option

Perform the command on DHCP options.


Usage:  ffx net dhcpd reset option

Options  
--help display usage information
parameter

Perform the command on server parameters.


Usage:  ffx net dhcpd reset parameter

Options  
--help display usage information

set

A primary command to set the value of a DHCP option or server parameter.


Usage:  ffx net dhcpd set [subcommand...]

Options  
--help display usage information
Subcommands  
option A secondary command indicating a DHCP option argument.
parameter A secondary command indicating a server parameter argument.
option

A secondary command indicating a DHCP option argument.


Usage:  ffx net dhcpd set option [subcommand...]

Options  
--help display usage information
Subcommands  
all-subnets-local Flag indicating if all subnets of the connected network have the same MTU.
arp-cache-timeout Timeout for ARP cache entries.
boot-file-size Size of the default boot image for the client.
bootfile-name Bootfile name for the client.
broadcast-address Broadcast address of the client's subnet.
cookie-server RFC 865 Cookie servers available to the client.
default-finger-server Default Finger servers available to the client.
default-ip-ttl Default time-to-live to use on outgoing IP datagrams.
default-irc-server Default IRC servers available to the client.
default-www-server Default WWW servers available to the client.
domain-name Domain name of the client.
domain-name-server Domain Name System servers available to the client.
ethernet-encapsulation Flag specifying whether the client should use Ethernet v2 or IEEE 802.3 encapsulation.
extensions-path Path name to a TFTP-retrievable file containing vendor-extension information.
host-name Name of the client.
impress-server Imagen Impress servers available to the client.
interface-mtu MTU for the client's interface.
ip-forwarding Flag enabling/disabling IP layer packet forwarding.
log-server MIT-LCS UDP Log servers available to the client.
lpr-server RFC 1179 Line Printer servers available to the client.
mask-supplier Flag indicating whether the client should respond to subnet mask discovery requests via ICMP.
max-datagram-reassembly-size Maximum sized datagram that the client should be able to reassemble.
max-message-size Maximum length of a DHCP message that the participant is willing to accept.
merit-dump-file Path name of a core dump file.
mobile-ip-home-agent Mobile IP home agents available to the client.
name-server IEN 116 Name servers available to the client.
net-bios-over-tcpip-distribution-server NetBIOS datagram distribution servers available to the client.
net-bios-over-tcpip-name-server NetBIOS name servers available to the client.
net-bios-over-tcpip-node-type The NetBIOS node type which should be used by the client.
net-bios-over-tcpip-scope NetBIOS scope parameter for the client.
network-information-servers Network Information Service servers available to the client.
network-information-service-domain Name of the client's Network Information Service domain.
network-information-service-plus-domain Network Information System+ domain name.
network-information-service-plus-servers Network Information System+ servers available to the client.
network-time-protocol-servers Network Time Protocol servers available to the client.
nntp-server NNTP servers available to the client.
non-local-source-routing Flag enabling/disabling forwarding of IP packets with non-local source routes.
path-mtu-aging-timeout Timeout to use when aging Path MTU values.
path-mtu-plateau-table Table of MTU sizes for Path MTU Discovery.
perform-mask-discovery Flag indicating whether the client should perform subnet mask discovery via ICMP.
perform-router-discovery Flag indicating whether the client should solicit routers using Router Discovery.
policy-filter Policy filters for non-local source routing.
pop3-server POP3 servers available to the client.
rebinding-time-value Time interval from address assignment at which the client transitions to a Rebinding state.
renewal-time-value Time interval from address assignment at which the client transitions to a Renewing state.
resource-location-server RFC 887 Resource Location servers available to the client.
root-path Path name to a TFTP-retrievable file containing vendor-extension information.
router The routers within a client's subnet.
router-solicitation-address Destination address for Router Solicitation requests.
smtp-server SMTP servers available to the client.
static-route Static Routes which the client should put in its routing cache.
stda-server StreetTalk Directory Assistance servers available to the client.
street-talk-server StreetTalk servers available to the client.
subnet-mask The client's subnet mask.
swap-server Address of the client's swap server.
tcp-default-ttl Default time-to-live for outgoing TCP segments.
tcp-keepalive-garbage Flag specifying whether the client should send TCP keepalive messages with an octet of garbage.
tcp-keepalive-interval Interval the client should wait before sending a TCP keepalive message.
tftp-server-name TFTP server available to the client.
time-offset The client's offset from UTC.
time-server Time Protocol servers available to the client.
trailer-encapsulation Flag specifying whether the client should negotiate the use of trailers in ARP.
vendor-specific-information Option for exchanging vendor-specific information between the DHCP client and DHCP server.
x-window-system-display-manager X window System Display Manager systems available to the client.
x-window-system-font-server X Window System Font servers available to the client.
all-subnets-local

Flag indicating if all subnets of the connected network have the same MTU.


Usage:  ffx net dhcpd set option all-subnets-local [--local]

Options  
--help display usage information
--local a flag indicating if all subents of the IP network to which the client is connected have the same MTU.
arp-cache-timeout

Timeout for ARP cache entries.


Usage:  ffx net dhcpd set option arp-cache-timeout [--timeout <timeout>]

Options  
--help display usage information
--timeout the timeout for ARP cache entries, in seconds.
boot-file-size

Size of the default boot image for the client.


Usage:  ffx net dhcpd set option boot-file-size [--size <size>]

Options  
--help display usage information
--size the size of the client's default boot image in 512-octet blocks.
bootfile-name

Bootfile name for the client.


Usage:  ffx net dhcpd set option bootfile-name [--name <name>]

Options  
--help display usage information
--name the bootfile name for the client. This option should be used when the file field has been overloaded to carry options.
broadcast-address

Broadcast address of the client's subnet.


Usage:  ffx net dhcpd set option broadcast-address [--addr <addr>]

Options  
--help display usage information
--addr the broadcast address of the client's subnet. Legal values are defined in RFC 1122.

RFC 865 Cookie servers available to the client.


Usage:  ffx net dhcpd set option cookie-server [--cookie-servers <cookie-servers...>]

Options  
--help display usage information
--cookie-servers a list of RFC 865 Cookie servers available to the client, in order of preference.
default-finger-server

Default Finger servers available to the client.


Usage:  ffx net dhcpd set option default-finger-server [--finger-servers <finger-servers...>]

Options  
--help display usage information
--finger-servers a list of default Finger server addresses available to the client, listed in order of preference.
default-ip-ttl

Default time-to-live to use on outgoing IP datagrams.


Usage:  ffx net dhcpd set option default-ip-ttl [--ttl <ttl>]

Options  
--help display usage information
--ttl the default time-to-live to use on outgoing IP datagrams. The value must be between 1 and 255.
default-irc-server

Default IRC servers available to the client.


Usage:  ffx net dhcpd set option default-irc-server [--irc-servers <irc-servers...>]

Options  
--help display usage information
--irc-servers a list of Internet Relay Chat server addresses available to the client, listed in order of preference.
default-www-server

Default WWW servers available to the client.


Usage:  ffx net dhcpd set option default-www-server [--www-servers <www-servers...>]

Options  
--help display usage information
--www-servers a list of default World Wide Web (WWW) server addresses available to the client, listed in order of preference.
domain-name

Domain name of the client.


Usage:  ffx net dhcpd set option domain-name [--name <name>]

Options  
--help display usage information
--name the client's domain name for use in resolving hostnames in the DNS.
domain-name-server

Domain Name System servers available to the client.


Usage:  ffx net dhcpd set option domain-name-server [--domain-name-servers <domain-name-servers...>]

Options  
--help display usage information
--domain-name-servers a list of DNS servers available to the client, in order of preference;
ethernet-encapsulation

Flag specifying whether the client should use Ethernet v2 or IEEE 802.3 encapsulation.


Usage:  ffx net dhcpd set option ethernet-encapsulation [--encapsulate]

Options  
--help display usage information
--encapsulate a flag specifying that the client should use Ethernet v2 encapsulation when false, and IEEE 802.3 encapsulation when true.
extensions-path

Path name to a TFTP-retrievable file containing vendor-extension information.


Usage:  ffx net dhcpd set option extensions-path [--path <path>]

Options  
--help display usage information
--path the path name to a TFTP-retrievable file. This file contains data which can be interpreted as the BOOTP vendor-extension field. Unlike the BOOTP vendor-extension field, this file has an unconstrained length and any references to Tag 18 are ignored.
host-name

Name of the client.


Usage:  ffx net dhcpd set option host-name [--name <name>]

Options  
--help display usage information
--name the name of client, which may or may not be qualified with the local domain name.
impress-server

Imagen Impress servers available to the client.


Usage:  ffx net dhcpd set option impress-server [--impress-servers <impress-servers...>]

Options  
--help display usage information
--impress-servers a list of Imagen Impress servers available to the client, in order of preference.
interface-mtu

MTU for the client's interface.


Usage:  ffx net dhcpd set option interface-mtu [--mtu <mtu>]

Options  
--help display usage information
--mtu the MTU for the client's interface. Minimum value of 68.
ip-forwarding

Flag enabling/disabling IP layer packet forwarding.


Usage:  ffx net dhcpd set option ip-forwarding [--enabled]

Options  
--help display usage information
--enabled a flag which will enabled IP layer packet forwarding when true.
log-server

MIT-LCS UDP Log servers available to the client.


Usage:  ffx net dhcpd set option log-server [--log-servers <log-servers...>]

Options  
--help display usage information
--log-servers a list of MIT-LCS UDP Log servers available to the client, in order of preference.
lpr-server

RFC 1179 Line Printer servers available to the client.


Usage:  ffx net dhcpd set option lpr-server [--lpr-servers <lpr-servers...>]

Options  
--help display usage information
--lpr-servers a list of RFC 1179 Line Printer servers available to the client, in order of preference.
mask-supplier

Flag indicating whether the client should respond to subnet mask discovery requests via ICMP.


Usage:  ffx net dhcpd set option mask-supplier [--supplier]

Options  
--help display usage information
--supplier a flag indicating whether the client should respond to subnet mask discovery requests via ICMP.
max-datagram-reassembly-size

Maximum sized datagram that the client should be able to reassemble.


Usage:  ffx net dhcpd set option max-datagram-reassembly-size [--size <size>]

Options  
--help display usage information
--size the maximum sized datagram that the client should be able to reassemble, in octets. The minimum legal value is 576.
max-message-size

Maximum length of a DHCP message that the participant is willing to accept.


Usage:  ffx net dhcpd set option max-message-size [--length <length>]

Options  
--help display usage information
--length the maximum length in octets of a DHCP message that the participant is willing to accept. The minimum value is 576.
merit-dump-file

Path name of a core dump file.


Usage:  ffx net dhcpd set option merit-dump-file [--path <path>]

Options  
--help display usage information
--path the path name to the client's core dump in the event the client crashes.
mobile-ip-home-agent

Mobile IP home agents available to the client.


Usage:  ffx net dhcpd set option mobile-ip-home-agent [--home-agents <home-agents...>]

Options  
--help display usage information
--home-agents a list of mobile IP home agent addresses available to the client, listed in order of preference.
name-server

IEN 116 Name servers available to the client.


Usage:  ffx net dhcpd set option name-server [--name-servers <name-servers...>]

Options  
--help display usage information
--name-servers a list of IEN 116 Name servers available to the client, in order of preference.
net-bios-over-tcpip-distribution-server

NetBIOS datagram distribution servers available to the client.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-distribution-server [--servers <servers...>]

Options  
--help display usage information
--servers a list of NetBIOS datagram distribution servers available to the client, listed in order of preference.
net-bios-over-tcpip-name-server

NetBIOS name servers available to the client.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-name-server [--servers <servers...>]

Options  
--help display usage information
--servers a list of NetBIOS name server addresses available to the client, listed in order of preference.
net-bios-over-tcpip-node-type

The NetBIOS node type which should be used by the client.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-node-type [subcommand...]

Options  
--help display usage information
Subcommands  
b-node A B node type.
h-node A H node type.
m-node A M node type.
p-node A P node type.
# b-node

A B node type.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-node-type b-node

Options  
--help display usage information
# h-node

A H node type.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-node-type h-node

Options  
--help display usage information
# m-node

A M node type.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-node-type m-node

Options  
--help display usage information
# p-node

A P node type.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-node-type p-node

Options  
--help display usage information
net-bios-over-tcpip-scope

NetBIOS scope parameter for the client.


Usage:  ffx net dhcpd set option net-bios-over-tcpip-scope [--scope <scope>]

Options  
--help display usage information
--scope the NetBIOS over TCP/IP scope parameter, as defined in RFC 1001, for the client.
network-information-servers

Network Information Service servers available to the client.


Usage:  ffx net dhcpd set option network-information-servers [--servers <servers...>]

Options  
--help display usage information
--servers a list of Network Information Service server addresses available to the client, listed in order of preference.
network-information-service-domain

Name of the client's Network Information Service domain.


Usage:  ffx net dhcpd set option network-information-service-domain [--domain-name <domain-name>]

Options  
--help display usage information
--domain-name the name of the client's Network Information Service domain.
network-information-service-plus-domain

Network Information System+ domain name.


Usage:  ffx net dhcpd set option network-information-service-plus-domain [--domain-name <domain-name>]

Options  
--help display usage information
--domain-name the name of the client's Network Information System+ domain.
network-information-service-plus-servers

Network Information System+ servers available to the client.


Usage:  ffx net dhcpd set option network-information-service-plus-servers [--servers <servers...>]

Options  
--help display usage information
--servers a list of Network Information System+ server addresses available to the client, listed in order of preference.
network-time-protocol-servers

Network Time Protocol servers available to the client.


Usage:  ffx net dhcpd set option network-time-protocol-servers [--servers <servers...>]

Options  
--help display usage information
--servers a list of Network Time Protocol (NTP) server addresses available to the client, listed in order of preference.
nntp-server

NNTP servers available to the client.


Usage:  ffx net dhcpd set option nntp-server [--nntp-servers <nntp-servers...>]

Options  
--help display usage information
--nntp-servers a list Network News Transport Protocol (NNTP) server addresses available to the client, listed in order of preference.
non-local-source-routing

Flag enabling/disabling forwarding of IP packets with non-local source routes.


Usage:  ffx net dhcpd set option non-local-source-routing [--enabled]

Options  
--help display usage information
--enabled a flag which will enable forwarding of IP packets with non-local source routes.
path-mtu-aging-timeout

Timeout to use when aging Path MTU values.


Usage:  ffx net dhcpd set option path-mtu-aging-timeout [--timeout <timeout>]

Options  
--help display usage information
--timeout the timeout, in seconds, to be used when again Path MTU values by the mechanism in RFC 1191.
path-mtu-plateau-table

Table of MTU sizes for Path MTU Discovery.


Usage:  ffx net dhcpd set option path-mtu-plateau-table [--mtu-sizes <mtu-sizes...>]

Options  
--help display usage information
--mtu-sizes A list of MTU sizes, ordered from smallest to largest. The smallest value cannot be smaller than 68.
perform-mask-discovery

Flag indicating whether the client should perform subnet mask discovery via ICMP.


Usage:  ffx net dhcpd set option perform-mask-discovery [--do-discovery]

Options  
--help display usage information
--do-discovery a flag indicating whether the client should perform subnet mask discovery via ICMP.
perform-router-discovery

Flag indicating whether the client should solicit routers using Router Discovery.


Usage:  ffx net dhcpd set option perform-router-discovery [--do-discovery]

Options  
--help display usage information
--do-discovery A flag indicating whether the client should solicit routers using Router Discovery as defined in RFC 1256.
policy-filter

Policy filters for non-local source routing.


Usage:  ffx net dhcpd set option policy-filter [--addresses <addresses...>]

Options  
--help display usage information
--addresses a list of IP Address and Subnet Mask pairs. If an incoming source-routed packet has a next-hop that does not match one of these pairs, then the packet will be dropped.
pop3-server

POP3 servers available to the client.


Usage:  ffx net dhcpd set option pop3-server [--pop3-servers <pop3-servers...>]

Options  
--help display usage information
--pop3-servers a list of Post Office Protocol (POP3) server addresses available to the client, listed in order of preference.
rebinding-time-value

Time interval from address assignment at which the client transitions to a Rebinding state.


Usage:  ffx net dhcpd set option rebinding-time-value [--interval <interval>]

Options  
--help display usage information
--interval the time interval, in seconds, after address assignment at which the client will transition to the Rebinding state.
renewal-time-value

Time interval from address assignment at which the client transitions to a Renewing state.


Usage:  ffx net dhcpd set option renewal-time-value [--interval <interval>]

Options  
--help display usage information
--interval the time interval, in seconds, after address assignment at which the client will transition to the Renewing state.
resource-location-server

RFC 887 Resource Location servers available to the client.


Usage:  ffx net dhcpd set option resource-location-server [--resource-location-servers <resource-location-servers...>]

Options  
--help display usage information
--resource-location-servers a list of RFC 887 Resource Location servers available to the client, in order of preference.
root-path

Path name to a TFTP-retrievable file containing vendor-extension information.


Usage:  ffx net dhcpd set option root-path [--path <path>]

Options  
--help display usage information
--path the path name to a TFTP-retrievable file. This file contains data which can be interpreted as the BOOTP vendor-extension field. Unlike the BOOTP vendor-extension field, this file has an unconstrained length and any references to Tag 18 are ignored.
router

The routers within a client's subnet.


Usage:  ffx net dhcpd set option router [--routers <routers...>]

Options  
--help display usage information
--routers a list of the routers in a client's subnet, listed in order of preference.
router-solicitation-address

Destination address for Router Solicitation requests.


Usage:  ffx net dhcpd set option router-solicitation-address [--addr <addr>]

Options  
--help display usage information
--addr the address to which the client should transmit Router Solicitation requests.
smtp-server

SMTP servers available to the client.


Usage:  ffx net dhcpd set option smtp-server [--smtp-servers <smtp-servers...>]

Options  
--help display usage information
--smtp-servers a list of Simple Mail Transport Protocol (SMTP) server address available to the client, listed in order of preference.
static-route

Static Routes which the client should put in its routing cache.


Usage:  ffx net dhcpd set option static-route [--routes <routes...>]

Options  
--help display usage information
--routes a list of Destination address/Next-hop address pairs defining static routes for the client's routing table. The routes should be listed in descending order of priority. It is illegal to use 0.0.0.0 as the destination in a static route.
stda-server

StreetTalk Directory Assistance servers available to the client.


Usage:  ffx net dhcpd set option stda-server [--stda-servers <stda-servers...>]

Options  
--help display usage information
--stda-servers a list of StreetTalk Directory Assistance server addresses available to the client, listed in order of preference.
street-talk-server

StreetTalk servers available to the client.


Usage:  ffx net dhcpd set option street-talk-server [--streettalk-servers <streettalk-servers...>]

Options  
--help display usage information
--streettalk-servers a list of StreetTalk server addresses available to the client, listed in order of preference.
subnet-mask

The client's subnet mask.


Usage:  ffx net dhcpd set option subnet-mask [--mask <mask>]

Options  
--help display usage information
--mask a 32-bit IPv4 subnet mask.
swap-server

Address of the client's swap server.


Usage:  ffx net dhcpd set option swap-server [--address <address>]

Options  
--help display usage information
--address the address of the client's swap server.
tcp-default-ttl

Default time-to-live for outgoing TCP segments.


Usage:  ffx net dhcpd set option tcp-default-ttl [--ttl <ttl>]

Options  
--help display usage information
--ttl the default time-to-live that the client should use for outgoing TCP segments. The minimum value is 1.
tcp-keepalive-garbage

Flag specifying whether the client should send TCP keepalive messages with an octet of garbage.


Usage:  ffx net dhcpd set option tcp-keepalive-garbage [--send-garbage]

Options  
--help display usage information
--send-garbage a flag specifying whether the client should send TCP keepalive messages with an octet of garbage for compatibility with older implementations.
tcp-keepalive-interval

Interval the client should wait before sending a TCP keepalive message.


Usage:  ffx net dhcpd set option tcp-keepalive-interval [--interval <interval>]

Options  
--help display usage information
--interval the interval, in seconds, the client should wait before sending a TCP keepalive message. A value of 0 indicates that the client should not send keepalive messages unless specifically requested by an application.
tftp-server-name

TFTP server available to the client.


Usage:  ffx net dhcpd set option tftp-server-name [--name <name>]

Options  
--help display usage information
--name the TFTP server name available to the client. This option should be used when the sname field has been overloaded to carry options.
time-offset

The client's offset from UTC.


Usage:  ffx net dhcpd set option time-offset [--offset <offset>]

Options  
--help display usage information
--offset the client's offset from UTC in seconds. A positive offset is east of the zero meridian, and a negative offset is west of the zero meridian.
time-server

Time Protocol servers available to the client.


Usage:  ffx net dhcpd set option time-server [--time-servers <time-servers...>]

Options  
--help display usage information
--time-servers a list of time servers available to the client, in order of preference.
trailer-encapsulation

Flag specifying whether the client should negotiate the use of trailers in ARP.


Usage:  ffx net dhcpd set option trailer-encapsulation [--trailers]

Options  
--help display usage information
--trailers a flag specifying whether the client negotiate the use of trailers when using ARP, per RFC 893.
vendor-specific-information

Option for exchanging vendor-specific information between the DHCP client and DHCP server.


Usage:  ffx net dhcpd set option vendor-specific-information [--data <data...>]

Options  
--help display usage information
--data an opaque object of octets for exchanging vendor-specific information.
x-window-system-display-manager

X window System Display Manager systems available to the client.


Usage:  ffx net dhcpd set option x-window-system-display-manager [--display-servers <display-servers...>]

Options  
--help display usage information
--display-servers a list of X Window System Display Manager system addresses available to the client, listed in order of preference.
x-window-system-font-server

X Window System Font servers available to the client.


Usage:  ffx net dhcpd set option x-window-system-font-server [--servers <servers...>]

Options  
--help display usage information
--servers a list of X Window System Font server addresses available to the client, listed in order of preference.
parameter

A secondary command indicating a server parameter argument.


Usage:  ffx net dhcpd set parameter [subcommand...]

Options  
--help display usage information
Subcommands  
address-pool The pool of addresses which the DHCP server manages.
arp-probe Enables server behavior where the server ARPs an IP address prior to issuing it in a lease.
bound-device-names The names of the network devices on which the server will listen.
ip-addrs The IPv4 addresses to which the server is bound.
lease-length The duration of leases offered by the server.
permitted-macs The client MAC addresses which the server will issue leases to.
statically-assigned-addrs Addresses in the AddressPool which will only be leased to specified clients. Assigned addresses will be paired with hosts in order, e.g. hosts (A, B, C) and addresses (1, 2, 3) pair as ((A, 1), (B, 2), (C, 3)).
address-pool

The pool of addresses which the DHCP server manages.


Usage:  ffx net dhcpd set parameter address-pool [--prefix-length <prefix-length>] [--range-start <range-start>] [--range-stop <range-stop>]

Options  
--help display usage information
--prefix-length the prefix length of the network's subnet mask
--range-start the starting address, inclusive, of the range of addresses which the DHCP server will lease to clients
--range-stop the ending address, inclusive, of the range of addresses which the server will to clients
arp-probe

Enables server behavior where the server ARPs an IP address prior to issuing it in a lease.


Usage:  ffx net dhcpd set parameter arp-probe [--enabled]

Options  
--help display usage information
--enabled enables server behavior where the server ARPs an IP address prior to issuing it in a lease. If the server receives a response, the server will mark the address as in-use and try again with a different address. By default, this behavior is disabled.
bound-device-names

The names of the network devices on which the server will listen.


Usage:  ffx net dhcpd set parameter bound-device-names [names...]

Options  
--help display usage information
ip-addrs

The IPv4 addresses to which the server is bound.


Usage:  ffx net dhcpd set parameter ip-addrs [--addrs <addrs...>]

Options  
--help display usage information
--addrs A list of IPv4 Addresses to which the server is bound.
lease-length

The duration of leases offered by the server.


Usage:  ffx net dhcpd set parameter lease-length [--default <default>] [--max <max>]

Options  
--help display usage information
--default the default lease length, in seconds, to be issued to clients.
--max the maximum lease length value, in seconds, which the server will issue to clients who have requested a specific lease length. With the default value of 0, the max lease length is equivalent to the default lease length.
permitted-macs

The client MAC addresses which the server will issue leases to.


Usage:  ffx net dhcpd set parameter permitted-macs [--macs <macs...>]

Options  
--help display usage information
--macs the client MAC addresses which the server will issue leases to. By default, the server will not have a permitted MAC list, in which case it will attempt to issue a lease to every client which requests one. If permitted_macs has a non-zero length then the server will only respond to lease requests from clients with a MAC in the list.
statically-assigned-addrs

Addresses in the AddressPool which will only be leased to specified clients. Assigned addresses will be paired with hosts in order, e.g. hosts (A, B, C) and addresses (1, 2, 3) pair as ((A, 1), (B, 2), (C, 3)).


Usage:  ffx net dhcpd set parameter statically-assigned-addrs [--hosts <hosts...>] [--assigned-addrs <assigned-addrs...>]

Options  
--help display usage information
--hosts hosts which will be leased the addresses reserved by assigned_addrs.
--assigned-addrs addresses in the AddressPool which will not be leased to clients. Typically, a network administrator will statically assign these addresses to always-on network devices which should always have the same IP address, such as network printers.

start

A primary command to start the DHCP server.


Usage:  ffx net dhcpd start

Options  
--help display usage information

stop

A primary command to stop the DHCP server.


Usage:  ffx net dhcpd stop

Options  
--help display usage information

dns

commands to control the dns resolver


Usage:  ffx net dns [subcommand...]

Options  
--help display usage information
Subcommands  
lookup performs dns resolution on the specified hostname

lookup

performs dns resolution on the specified hostname


Usage:  ffx net dns lookup [--ipv4 <ipv4>] [--ipv6 <ipv6>] [--sort <sort>] hostname

Options  
--help display usage information
--ipv4 include ipv4 results (defaults to true)
--ipv6 include ipv6 results (defaults to true)
--sort sort addresses in order of preference (defaults to true)

filter

commands for configuring packet filtering


Usage:  ffx net filter [subcommand...]

Options  
--help display usage information
Subcommands  
list A command to list filtering configuration.

list

A command to list filtering configuration.


Usage:  ffx net filter list

Options  
--help display usage information

filter-deprecated

commands for configuring packet filtering with the deprecated API


Usage:  ffx net filter-deprecated [subcommand...]

Options  
--help display usage information
Subcommands  
get-nat-rules gets nat rules
get-rdr-rules gets rdr rules
get-rules gets filter rules
set-nat-rules sets nat rules (see the netfilter::parser library for the NAT rules format)
set-rdr-rules sets rdr rules (see the netfilter::parser library for the RDR rules format)
set-rules sets filter rules (see the netfilter::parser library for the rules format)

get-nat-rules

gets nat rules


Usage:  ffx net filter-deprecated get-nat-rules

Options  
--help display usage information

get-rdr-rules

gets rdr rules


Usage:  ffx net filter-deprecated get-rdr-rules

Options  
--help display usage information

get-rules

gets filter rules


Usage:  ffx net filter-deprecated get-rules

Options  
--help display usage information

set-nat-rules

sets nat rules (see the netfilter::parser library for the NAT rules format)


Usage:  ffx net filter-deprecated set-nat-rules rules

Options  
--help display usage information

set-rdr-rules

sets rdr rules (see the netfilter::parser library for the RDR rules format)


Usage:  ffx net filter-deprecated set-rdr-rules rules

Options  
--help display usage information

set-rules

sets filter rules (see the netfilter::parser library for the rules format)


Usage:  ffx net filter-deprecated set-rules rules

Options  
--help display usage information

if

commands for network interfaces


Usage:  ffx net if [subcommand...]

Options  
--help display usage information
Subcommands  
addr commands for updating network interface addresses
bridge creates a bridge between network interfaces
disable disables a network interface
enable enables a network interface
get queries a network interface
igmp get or set IGMP configuration
ip-forward get or set IP forwarding for an interface
list lists network interfaces (supports ffx machine output)
mld get or set MLD configuration

addr

commands for updating network interface addresses


Usage:  ffx net if addr [subcommand...]

Options  
--help display usage information
Subcommands  
add adds an address to the network interface
del deletes an address from the network interface
wait waits for an address to be assigned on the network interface. by default waits for any address; if --ipv6 is specified, waits for an IPv6 address.
add

adds an address to the network interface


Usage:  ffx net if addr add [--no-subnet-route] nicid or name:ifname addr prefix

Options  
--help display usage information
--no-subnet-route skip adding a local subnet route for this interface and address
del

deletes an address from the network interface


Usage:  ffx net if addr del nicid or name:ifname addr [prefix]

Options  
--help display usage information
wait

waits for an address to be assigned on the network interface. by default waits for any address; if --ipv6 is specified, waits for an IPv6 address.


Usage:  ffx net if addr wait [--ipv6] nicid or name:ifname

Options  
--help display usage information
--ipv6 wait for an IPv6 address

bridge

creates a bridge between network interfaces


Usage:  ffx net if bridge [nicid or name:ifname...]

Options  
--help display usage information

disable

disables a network interface


Usage:  ffx net if disable nicid or name:ifname

Options  
--help display usage information

enable

enables a network interface


Usage:  ffx net if enable nicid or name:ifname

Options  
--help display usage information

get

queries a network interface


Usage:  ffx net if get nicid or name:ifname

Options  
--help display usage information

igmp

get or set IGMP configuration


Usage:  ffx net if igmp [subcommand...]

Options  
--help display usage information
Subcommands  
get get IGMP configuration for an interface
set set IGMP configuration for an interface
get

get IGMP configuration for an interface


Usage:  ffx net if igmp get nicid or name:ifname

Options  
--help display usage information
set

set IGMP configuration for an interface


Usage:  ffx net if igmp set [--version <version>] nicid or name:ifname

Options  
--help display usage information
--version the version of IGMP to perform.

ip-forward

get or set IP forwarding for an interface


Usage:  ffx net if ip-forward [subcommand...]

Options  
--help display usage information
Subcommands  
get get IP forwarding for an interface
set set IP forwarding for an interface
get

get IP forwarding for an interface


Usage:  ffx net if ip-forward get nicid or name:ifname ip_version

Options  
--help display usage information
set

set IP forwarding for an interface


Usage:  ffx net if ip-forward set nicid or name:ifname ip_version enable

Options  
--help display usage information

list

lists network interfaces (supports ffx machine output)


Usage:  ffx net if list [name_pattern]

Options  
--help display usage information

mld

get or set MLD configuration


Usage:  ffx net if mld [subcommand...]

Options  
--help display usage information
Subcommands  
get get MLD configuration for an interface
set set MLD configuration for an interface
get

get MLD configuration for an interface


Usage:  ffx net if mld get nicid or name:ifname

Options  
--help display usage information
set

set MLD configuration for an interface


Usage:  ffx net if mld set [--version <version>] nicid or name:ifname

Options  
--help display usage information
--version the version of MLD to perform.

log

commands for logging


Usage:  ffx net log [subcommand...]

Options  
--help display usage information
Subcommands  
set-packets log packets to stdout

set-packets

log packets to stdout


Usage:  ffx net log set-packets enabled

Options  
--help display usage information

migration

controls netstack selection for migration from netstack2 to netstack3


Usage:  ffx net migration [subcommand...]

Options  
--help display usage information
Subcommands  
clear clears netstack version for migration configuration.
get prints the currently configured netstack version for migration.
set sets the netstack version at next boot to

clear

clears netstack version for migration configuration.


Usage:  ffx net migration clear

Options  
--help display usage information

get

prints the currently configured netstack version for migration.


Usage:  ffx net migration get

Options  
--help display usage information

set

sets the netstack version at next boot to |ns2| or |ns3|.


Usage:  ffx net migration set version

Options  
--help display usage information

neigh

commands for neighbor tables


Usage:  ffx net neigh [subcommand...]

Options  
--help display usage information
Subcommands  
add adds an entry to the neighbor table
clear removes all entries associated with a network interface from the neighbor table
config commands for the Neighbor Unreachability Detection configuration
del removes an entry from the neighbor table
list lists neighbor table entries (supports ffx machine output)
watch watches neighbor table entries for state changes (supports ffx machine output)

add

adds an entry to the neighbor table


Usage:  ffx net neigh add nicid or name:ifname ip mac

Options  
--help display usage information

clear

removes all entries associated with a network interface from the neighbor table


Usage:  ffx net neigh clear nicid or name:ifname ip_version

Options  
--help display usage information

config

commands for the Neighbor Unreachability Detection configuration


Usage:  ffx net neigh config [subcommand...]

Options  
--help display usage information
Subcommands  
get returns the current NUD configuration options for the provided interface
update updates the current NUD configuration options for the provided interface
get

returns the current NUD configuration options for the provided interface


Usage:  ffx net neigh config get nicid or name:ifname ip_version

Options  
--help display usage information
update

updates the current NUD configuration options for the provided interface


Usage:  ffx net neigh config update [--base-reachable-time <base-reachable-time>] nicid or name:ifname ip_version

Options  
--help display usage information
--base-reachable-time a base duration, in nanoseconds, for computing the random reachable time

del

removes an entry from the neighbor table


Usage:  ffx net neigh del nicid or name:ifname ip

Options  
--help display usage information

list

lists neighbor table entries (supports ffx machine output)


Usage:  ffx net neigh list

Options  
--help display usage information

watch

watches neighbor table entries for state changes (supports ffx machine output)


Usage:  ffx net neigh watch

Options  
--help display usage information

route

commands for routing tables


Usage:  ffx net route [subcommand...]

Options  
--help display usage information
Subcommands  
add adds a route to the route table
del deletes a route from the route table
list lists devices (supports ffx machine output)

add

adds a route to the route table


Usage:  ffx net route add --destination <destination> --netmask <netmask or prefix length> [--gateway <gateway>] [--nicid <nicid or name:ifname>] [--metric <metric>]

Options  
--help display usage information
--destination the network id of the destination network
--netmask the netmask or prefix length corresponding to destination
--gateway the ip address of the first hop router
--nicid the outgoing network interface of the route
--metric the metric for the route

del

deletes a route from the route table


Usage:  ffx net route del --destination <destination> --netmask <netmask or prefix length> [--gateway <gateway>] [--nicid <nicid or name:ifname>] [--metric <metric>]

Options  
--help display usage information
--destination the network id of the destination network
--netmask the netmask or prefix length corresponding to destination
--gateway the ip address of the first hop router
--nicid the outgoing network interface of the route
--metric the metric for the route

list

lists devices (supports ffx machine output)


Usage:  ffx net route list

Options  
--help display usage information

package

Create and publish Fuchsia packages


Usage:  ffx package [subcommand...]

Options  
--help display usage information
Subcommands  
archive Archive Fuchsia packages
build Builds a package.
far Work with Fuchsia Archive Format (FAR) files
file-hash Compute the merkle tree root hash of one or more files.

archive

Archive Fuchsia packages


Usage:  ffx package archive [subcommand...]

Options  
--help display usage information
Subcommands  
add add a file () to an existing package archive (), overwriting the archive
cat write the contents of inside the Fuchsia package archive file to stdout
create create a package archive from a package_manifest.json
extract extract the contents of inside the Fuchsia package archive file to the output directory
list List the contents of Fuchia package archive file
remove remove a file () from an existing package archive (), placing the resulting archive in

add

add a file () to an existing package archive (), overwriting the archive


Usage:  ffx package archive add -a <archive> -f <file-to-add> -p <path-of-file-in-archive> -o <output> [-w <overwrite>]

Options  
--help display usage information
-a, --archive package archive
-f, --file-to-add file to add to the package archive
-p, --path-of-file-in-archive the destination path in the archive for
-o, --output the name of the resulting archive. Can be the same as to overwrite
-w, --overwrite if false, refuses to overwrite files in named by

cat

write the contents of inside the Fuchsia package archive file to stdout


Usage:  ffx package archive cat archive far_path

Options  
--help display usage information

create

create a package archive from a package_manifest.json


Usage:  ffx package archive create -o <out> [-r <root-dir>] [--depfile <depfile>] package_manifest

Options  
--help display usage information
-o, --out output package archive
-r, --root-dir root directory for paths in package_manifest.json
--depfile produce a depfile file at the provided path

extract

extract the contents of inside the Fuchsia package archive file to the output directory


Usage:  ffx package archive extract [-o <out>] [--repository <repository>] [--blobs-json] [--namespace] archive

Options  
--help display usage information
-o, --out output directory for writing the extracted files. Defaults to the current directory.
--repository repository of the package
--blobs-json produce a blobs.json file
--namespace extract the package namespace into /pkg

list

List the contents of Fuchia package archive file


Usage:  ffx package archive list [-l] archive

Options  
--help display usage information
-l, --long-format show long information for each entry

remove

remove a file () from an existing package archive (), placing the resulting archive in


Usage:  ffx package archive remove -a <archive> -f <file-to-remove> -o <output>

Options  
--help display usage information
-a, --archive package archive
-f, --file-to-remove file to add to the package archive
-o, --output file to add to the package archive

build

Builds a package.


Usage:  ffx package build [-o <out>] --api-level <api-level> [--published-name <published-name>] [--repository <repository>] [--depfile] [--blobs-json] [--blobs-manifest] [--subpackages-build-manifest-path <subpackages-build-manifest-path>] package_build_manifest_path

Options  
--help display usage information
-o, --out directory to save package artifacts
--api-level package API level
--published-name name of the package
--repository repository of the package
--depfile produce a depfile file
--blobs-json produce a blobs.json file
--blobs-manifest produce a blobs.manifest file
--subpackages-build-manifest-path path to the subpackages build manifest file

far

Work with Fuchsia Archive Format (FAR) files


Usage:  ffx package far [subcommand...]

Options  
--help display usage information
Subcommands  
cat Dump the contents of the entry associated with to stdout
create Create a FAR file from a directory. WARNING: this will overwrite if it exists.
extract Extract from to . WARNING: this may overwrite existing files.
list List the entries contained in a FAR file

cat

Dump the contents of the entry associated with to stdout


Usage:  ffx package far cat far_file path

Options  
--help display usage information

create

Create a FAR file from a directory. WARNING: this will overwrite if it exists.


Usage:  ffx package far create input_directory output_file

Options  
--help display usage information

extract

Extract from to . WARNING: this may overwrite existing files.


Usage:  ffx package far extract [-v] [-o <output-dir>] far_file [paths...]

Options  
--help display usage information
-v, --verbose verbose output: print file names that were extracted
-o, --output-dir output directory (defaults to current directory, creates the directory if it doesn't exist)

list

List the entries contained in a FAR file


Usage:  ffx package far list [-l] far_file

Options  
--help display usage information
-l, --long-format show detailed information for each entry (does nothing if --machine json is specified, which shows everything)

file-hash

Compute the merkle tree root hash of one or more files.


Usage:  ffx package file-hash [paths...]

Options  
--help display usage information

platform

Manage platform build prerequisites


Usage:  ffx platform [subcommand...]

Options  
--help display usage information
Subcommands  
preflight Evaluate suitability for building and running Fuchsia

preflight

Evaluate suitability for building and running Fuchsia


Usage:  ffx platform preflight [--json]

Options  
--help display usage information
--json outputs json instead of human-readable text.

product

Discover and access product bundle metadata and image data.


Usage:  ffx product [subcommand...]

Options  
--help display usage information
Subcommands  
create Create a Product Bundle using the outputs of Product Assembly.
download Download Product Bundle from GCS.
get-artifacts Get the paths of a group of artifacts inside a Product Bundle.
get-image-path Get the path of an image inside a Product Bundle based on type and slot.
get-repository Get the info of repository inside a Product Bundle.
get-version Get the product version of a Product Bundle.
list List all available products for a specific SDK version.
lookup Retrieve image data.
show Display a list of details from within a product bundle.

create

Create a Product Bundle using the outputs of Product Assembly.


Usage:  ffx product create --product-name <product-name> --product-version <product-version> --partitions <partitions> [--system-a <system-a>] [--system-b <system-b>] [--system-r <system-r>] [--tuf-keys <tuf-keys>] [--update-package-version-file <update-package-version-file>] [--update-package-epoch <update-package-epoch>] [--virtual-device <virtual-device...>] [--recommended-device <recommended-device>] --out-dir <out-dir> [--delivery-blob-type <delivery-blob-type>] [--with-deprecated-flash-manifest] [--gerrit-size-report <gerrit-size-report>]

Options  
--help display usage information
--product-name product.board label. e.g. "workstation_eng.x64".
--product-version unique version of this product.board.
--partitions path to a partitions config, which lists the physical partitions of the target.
--system-a path to an assembly manifest, which specifies images to put in slot A.
--system-b path to an assembly manifest, which specifies images to put in slot B.
--system-r path to an assembly manifest, which specifies images to put in slot R.
--tuf-keys path to the directory of TUF keys, which should include root.json, snapshot.json, targets.json, and timestamp.json. If provided, then a TUF repository will be created inside the product bundle and filled with the product blobs.
--update-package-version-file file containing the version of the Product to put in the update package.
--update-package-epoch backstop OTA version. Fuchsia will reject updates with a lower epoch.
--virtual-device path to a Virtual Device Specification file to include in the product bundle. May be repeated to include multiple Virtual Devices.
--recommended-device name of a Virtual Device Specification file to mark as the "recommended" device for emulation.
--out-dir directory to write the product bundle.
--delivery-blob-type the type of delivery blob the product needs.
--with-deprecated-flash-manifest create a deprecated flash manifest for backward compatibility.
--gerrit-size-report an optional image size report to generate that indicates the sizes of the images when mapped to partitions.

download

Download Product Bundle from GCS.


Usage:  ffx product download [--force] [--auth <auth>] [--base-url <base-url>] [--version <version>] [--branch <branch>] manifest_url product_dir

Options  
--help display usage information
--force get the data again, even if it's already present locally.
--auth use specific auth flow for oauth2 (see examples; default: pkce).
--base-url location to look for product bundles manifest inside GCS.
--version filter on products of . The version number is in the format of a.b.c.d. e.g. 19.20240302.2.1. If this value is not passed in, the version will be defaulted to version of ffx tool itself.
--branch filter on products of . The branch is either in the form of f (e.g. f18) or LATEST. This option is exclusive with version option.

Examples

Sample invocations:

    // Download core.vim3 of current ffx version.
    ffx product download core.vim3 ~/local_pb

    // Download core.vim3 with version 19.20240302.2.1
    ffx product download core.vim3 ~/local_pb --version 19.20240302.2.1

    // Download core.vim3 for latest version of f18
    ffx product download core.vim3 ~/local_pb --branch f18 --force

    Auth flow choices for --auth include:

      `--auth no-auth` do not use auth.
      `--auth pkce` to use PKCE auth flow (requires GUI browser).
      `--auth device-experimental` to use device flow.
      `--auth ` run tool at given path which will print an access
        token to stdout and exit 0.
      `--auth default` let the tool decide which auth flow to use.
    

get-artifacts

Get the paths of a group of artifacts inside a Product Bundle.


Usage:  ffx product get-artifacts -g <artifacts-group> [-r] [product_bundle]

Options  
--help display usage information
-g, --artifacts-group select what group of artifacts to list. One of flash, emu, update, bootloader
-r, --relative-path return relative path or not

get-image-path

Get the path of an image inside a Product Bundle based on type and slot.


Usage:  ffx product get-image-path [--slot <slot>] [--image-type <image-type>] [-b <bootloader>] [-r] [product_bundle]

Options  
--help display usage information
--slot the slot where image will be located in. Valid slots are A,B,R.
--image-type the type of image. Supported types are fvm, fxfs, qemu-kernel, vbmeta, zbi.
-b, --bootloader the type of bootloader.
-r, --relative-path return relative path or not

get-repository

Get the info of repository inside a Product Bundle.


Usage:  ffx product get-repository product_bundle

Options  
--help display usage information

get-version

Get the product version of a Product Bundle.


Usage:  ffx product get-version product_bundle

Options  
--help display usage information

list

List all available products for a specific SDK version.


Usage:  ffx product list [--auth <auth>] [--base-url <base-url>] [--version <version>] [--branch <branch>]

Options  
--help display usage information
--auth use specific auth flow for oauth2 (see examples; default: pkce).
--base-url location to look for product bundles manifest inside GCS.
--version filter on products of . The version number is in the format of a.b.c.d. e.g. 19.20240302.2.1. If this value is not passed in, the version will be defaulted to version of ffx tool itself.
--branch filter on products of . The branch is either in the form of f (e.g. f18) or LATEST. This option is exclusive with version option.

Examples

Sample invocations:

    // List all product names of current ffx version.
    ffx product list

    // List all product names with version 19.20240302.2.1
    ffx product list --version 19.20240302.2.1

    // List all product names for latest version of f18
    ffx product list --branch f18

    Auth flow choices for --auth include:

      `--auth no-auth` do not use auth.
      `--auth pkce` to use PKCE auth flow (requires GUI browser).
      `--auth device-experimental` to use device flow.
      `--auth ` run tool at given path which will print an access
        token to stdout and exit 0.
      `--auth default` let the tool decide which auth flow to use.
    

lookup

Retrieve image data.


Usage:  ffx product lookup [--auth <auth>] [--base-url <base-url>] name version

Options  
--help display usage information
--auth use specific auth flow for oauth2 (see examples; default: pkce).
--base-url where to look for product bundles manifest.

Examples

Auth flow choices for --auth include:
  `--auth oob` to use Out-of-Band auth (deprecated).
  `--auth pkce` to use PKCE auth flow (requires GUI browser).
  `--auth ` run tool at given path which will print an access token to stdout and exit 0.
    

show

Display a list of details from within a product bundle.


Usage:  ffx product show [--devices] [--device <device>] product_bundle_path

Options  
--help display usage information
--devices list the virtual devices linked to this product bundle.
--device print the details of a virtual device linked to this product bundle.

repository

Inspect and manage package repositories


Usage:  ffx repository [subcommand...]

Options  
--help display usage information
Subcommands  
add Make the daemon aware of specific product bundle repositories
add-from-pm Make the daemon aware of a specific pm-built repository
create Create a repository.
default Manage the default repository
list List all repositories
package List the packages inside a repository
publish Publish packages.
remove
serve serve repositories and product bundles, and register repositories to device
server Inspect and manage the repository server

add

Make the daemon aware of specific product bundle repositories


Usage:  ffx repository add [-p <prefix>] product_bundle_dir

Options  
--help display usage information
-p, --prefix repositories will have the prefix NAME. Defaults to devhost.

add-from-pm

Make the daemon aware of a specific pm-built repository


Usage:  ffx repository add-from-pm [-r <repository>] [--alias <alias...>] pm_repo_path

Options  
--help display usage information
-r, --repository repositories will be named NAME. Defaults to devhost.
--alias alias this repository to these names when this repository is registered on a target.

create

Create a repository.


Usage:  ffx repository create [--time-versioning] [--keys <keys>] repo_path

Options  
--help display usage information
--time-versioning set repository version based on the current time rather than monotonically increasing version
--keys path to the repository keys directory. Default to generate keys at 'repo_path'/keys.

default

Manage the default repository


Usage:  ffx repository default [subcommand...]

Options  
--help display usage information
Subcommands  
get Get the default configured repository
set Set the default repository
unset Clears the default configured repository

Examples

For one-off overrides for the default use `--repository` option:

    $ ffx repository  --repository  ...

Or use the `--config` option:

    $ ffx --config repository.default= repository 

Notes

  • Manages the default configured repository for all operations. The default
    repository is designated by a * next to the name. This is an alias for the
    repository.default configuration key.

get

Get the default configured repository


Usage:  ffx repository default get

Options  
--help display usage information

Notes

  • Returns the default configured repository from the 'User Configuration'.
    Returns an empty string if no default is configured.

set

Set the default repository


Usage:  ffx repository default set [-l <level>] [-b <build-dir>] name

Options  
--help display usage information
-l, --level config level, such as 'user', 'build', or 'global'
-b, --build-dir optional directory to associate the provided build config

Examples

To set the default repository:

   $ ffx repository default set 

To set the 'repository.default` key at the global configuration:

   $ ffx repository default set -l global 

To specify a default repository for a specific build directory:

   $ ffx repository default set -l build -b ~/fuchsia/out 

Notes

  • Sets the repository.default configuration key. By default sets the key in
    the 'User Configuration'. Can be used in conjuction with ffx repository list
    to list the names of the discovered repositorys.

After setting the default repository, ffx repository list will mark the default with a * in the output list.

unset

Clears the default configured repository


Usage:  ffx repository default unset [-l <level>] [-b <build-dir>]

Options  
--help display usage information
-l, --level config level, such as 'user', 'build', or 'global'
-b, --build-dir optional directory to associate the provided build config

Examples

To clear the default repository:

    $ ffx repository default unset

To clear the `repository.default` key from global configuration:

    $ ffx repository default unset -l global

To specify a specific build directory:

    $ ffx repository default unset -l build -b ~/fuchsia/out

Notes

  • Clears the repository.default configuration key. By default clears the
    'User Configuration'. Returns a warning if the key is already empty.

list

List all repositories


Usage:  ffx repository list

Options  
--help display usage information

package

List the packages inside a repository


Usage:  ffx repository package [subcommand...]

Options  
--help display usage information
Subcommands  
extract-archive Extract a package archive from the repository
list Inspect and manage package repositories
show Inspect content of a package

extract-archive

Extract a package archive from the repository


Usage:  ffx repository package extract-archive -o <out> [-r <repository>] package

Options  
--help display usage information
-o, --out output path for the extracted archive.
-r, --repository extract package from this repository.

list

Inspect and manage package repositories


Usage:  ffx repository package list [-r <repository>] [--full-hash] [--include-components <include-components>]

Options  
--help display usage information
-r, --repository list packages from this repository.
--full-hash if true, package hashes will be displayed in full (i.e. not truncated).
--include-components toggle whether components in each package will be fetched and shown in the output table

show

Inspect content of a package


Usage:  ffx repository package show [-r <repository>] [--full-hash] [--include-subpackages <include-subpackages>] package

Options  
--help display usage information
-r, --repository list package contents from this repository.
--full-hash if true, package hashes will be displayed in full (i.e. not truncated).
--include-subpackages if true, show contents of subpackages contained in the package.

publish

Publish packages.


Usage:  ffx repository publish [--signing-keys <signing-keys>] [--trusted-keys <trusted-keys>] [--trusted-root <trusted-root>] [--package <package...>] [--package-list <package-list...>] [--package-archive <package-archive...>] [--product-bundle <product-bundle...>] [--time-versioning] [--metadata-current-time <metadata-current-time>] [--refresh-root] [--clean] [--depfile <depfile>] [--copy-mode <copy-mode>] [--delivery-blob-type <delivery-blob-type>] [--watch] [--ignore-missing-packages] [--blob-manifest <blob-manifest>] [--blob-repo-dir <blob-repo-dir>] repo_path

Options  
--help display usage information
--signing-keys path to the keys used to sign metadata, but not trust for key rotation
--trusted-keys path to the keys used to sign and trust metadata (default repository keys/ directory)
--trusted-root path to the initial trusted root metadata (default is to use 1.root.json from the repository)
--package path to a package manifest
--package-list path to a packages list manifest
--package-archive path to a package archive
--product-bundle path to a product bundle
--time-versioning set repository version based on time rather than monotonically increasing version
--metadata-current-time the RFC 3339 time used to see if metadata has expired, and when new metadata should expire (default uses the current time)
--refresh-root generate a new root metadata along side all the other metadata
--clean clean the repository so only new publications remain
--depfile produce a depfile file
--copy-mode mode used to copy blobs to repository. Either 'copy', 'copy-overwrite', or 'hard-link' (default 'copy').
--delivery-blob-type the type of delivery blob to generate (default: type 1)
--watch republish packages on file change
--ignore-missing-packages ignore if package paths do not exist
--blob-manifest path to write the blob manifest to
--blob-repo-dir path to the blobs directory (default '$repo_path/repository/blobs')

remove


Usage:  ffx repository remove name

Options  
--help display usage information

serve

serve repositories and product bundles, and register repositories to device


Usage:  ffx repository serve [-r <repository>] [--trusted-root <trusted-root>] [--address <address>] [--repo-path <repo-path>] [--product-bundle <product-bundle>] [--alias <alias...>] [--storage-type <storage-type>] [--alias-conflict-mode <alias-conflict-mode>] [--port-path <port-path>] [--no-device] [--refresh-metadata]

Options  
--help display usage information
-r, --repository register this repository. Default is devhost.
--trusted-root path to the root metadata that was used to sign the repository TUF metadata. This establishes the root of trust for this repository. If the TUF metadata was not signed by this root metadata, running this command will result in an error. Default is to use 1.root.json from the repository.
--address address on which to serve the repository. Note that this can be either IPV4 or IPV6. For example, [::]:8083 or 127.0.0.1:8083 Default is \[::]:8083.
--repo-path location of the package repo. Default is given by the build directory obtained from the ffx context.
--product-bundle location of product bundle.
--alias set up a rewrite rule mapping each alias host to the repository identified by name.
--storage-type enable persisting this repository across reboots. Default is Ephemeral.
--alias-conflict-mode resolution mechanism when alias registrations conflict. Must be either error-out or replace. Default is replace.
--port-path location to write server port information to, in case port dynamically instantiated.
--no-device if true, will not register repositories to device. Default is false.
--refresh-metadata refresh repository metadata during startup. Note that this is not necessary if package-tool runs in the background taking care of it, e.g. as part of fx serve. Default is false.

server

Inspect and manage the repository server


Usage:  ffx repository server [subcommand...]

Options  
--help display usage information
Subcommands  
start Starts the repository server. Note that all repositories listed from ffx repository list will be started as subpaths.
status Retrieves the status of the repository server. If server is running will also return socket address. Note that all repositories under ffx repository list will be running as subpaths at the returned address.
stop Stops the repository server

start

Starts the repository server. Note that all repositories listed from ffx repository list will be started as subpaths.


Usage:  ffx repository server start [--address <address>]

Options  
--help display usage information
--address address on which to start the repository. Note that this can be either IPV4 or IPV6. For example, [::]:8083 or 127.0.0.1:8083

status

Retrieves the status of the repository server. If server is running will also return socket address. Note that all repositories under ffx repository list will be running as subpaths at the returned address.


Usage:  ffx repository server status

Options  
--help display usage information

stop

Stops the repository server


Usage:  ffx repository server stop

Options  
--help display usage information

sdk

Modify or query the installed SDKs


Usage:  ffx sdk [subcommand...]

Options  
--help display usage information
Subcommands  
populate-path Populates the given path with symlinks to the fuchsha-sdk-run tool to run project-specific sdk tools
run Run a host tool from the active sdk
set Set sdk-related configuration options
version Retrieve the version of the current SDK

populate-path

Populates the given path with symlinks to the fuchsha-sdk-run tool to run project-specific sdk tools


Usage:  ffx sdk populate-path path

Options  
--help display usage information

run

Run a host tool from the active sdk


Usage:  ffx sdk run name args

Options  
--help display usage information

set

Set sdk-related configuration options


Usage:  ffx sdk set [subcommand...]

Options  
--help display usage information
Subcommands  
root Sets the path to the root of the preferred SDK

root

Sets the path to the root of the preferred SDK


Usage:  ffx sdk set root path

Options  
--help display usage information

version

Retrieve the version of the current SDK


Usage:  ffx sdk version

Options  
--help display usage information

session

Control the session component.


Usage:  ffx session [subcommand...]

Options  
--help display usage information
Subcommands  
add Add an element to the current session.
drop-power-lease Drop the power lease reserved for the current session component.
launch Launch a session component.
remove Remove an element from the current session.
restart Restart the current session component.
show Show information about the current session
start Start the default session component.
stop Stop the session component.

Notes

  • See https://fuchsia.dev/fuchsia-src/glossary#session-component.

add

Add an element to the current session.

If the --persist option is used, the package should be in the base or cache package set as otherwise it might fail to launch after a reboot.


Usage:  ffx session add [--interactive] [--persist] [--name <name>] url

Options  
--help display usage information
--interactive pass to keep element alive until command exits
--persist pass to have the element persist over reboots
--name name for the element which defaults to random if not specified

Examples

To add the `bouncing_ball.cm` component as an element:

    $ ffx session add fuchsia-pkg://fuchsia.com/bouncing_ball#meta/bouncing_ball.cm

drop-power-lease

Drop the power lease reserved for the current session component.


Usage:  ffx session drop-power-lease

Options  
--help display usage information

Notes

  • This command is useful for testing system suspension. If the session component has not taken the lease, then the lease will be dropped. If no other components on the system hold a power lease on the execution state, this will suspend the system.

launch

Launch a session component.


Usage:  ffx session launch url

Options  
--help display usage information

Examples

To launch the `hello-world-session.cm` component as a session:

    $ ffx session launch fuchsia-pkg://fuchsia.com/hello-world-session#meta/hello-world-session.cm

remove

Remove an element from the current session.

Persistent elements will be removed permanently. Any persistent storage used by elements will not be removed.


Usage:  ffx session remove name

Options  
--help display usage information

restart

Restart the current session component.


Usage:  ffx session restart

Options  
--help display usage information

Notes

  • Destroys the existing session component, if any, then creates and starts a new component with the same URL. Requires that a session componentwas previously launched.

show

Show information about the current session


Usage:  ffx session show

Options  
--help display usage information

start

Start the default session component.


Usage:  ffx session start

Options  
--help display usage information

Notes

  • The default session component is specified by the URL session_urlin session_manager's structured configuration.

stop

Stop the session component.


Usage:  ffx session stop

Options  
--help display usage information

target

Interact with a target device or emulator


Usage:  ffx target [subcommand...]

Options  
--help display usage information
Subcommands  
add Make the daemon aware of a specific target
bootloader Communicates with the bootloader
clear-preferred-ssh-address Clears a previously configured SSH address
default Manage the default target
echo run echo test against the target
flash Flash an image to a target device
get-ssh-address Get the target's ssh address
get-time Returns the current time in the system monotonic clock.
list List all targets
off Powers off a target
reboot Reboots a target
remove Make the daemon forget a specific target
repository Interact with target repository registration
screenshot Takes a screenshot of the target
set-preferred-ssh-address Sets the preferred SSH address
show Display relevant information for the target
snapshot Takes a snapshot of the target's state
ssh SSH to a target device
update Update base system software on target
wait Wait until able to establish a remote control connection to the target.

Notes

  • The target subcommand contains various commands for target management
    and interaction.

Typically, this is the entry workflow for users, allowing for target discovery and provisioning before moving on to component or session workflows once the system is up and running on the target.

Most of the commands depend on the RCS (Remote Control Service) on the target.

add

Make the daemon aware of a specific target


Usage:  ffx target add [-n] addr

Options  
--help display usage information
-n, --nowait do not wait for a connection to be verified on the Fuchsia device.

Examples

To add a remote target forwarded via ssh:

    $ ffx target add 127.0.0.1:8022

Or to add a target using its IPV6:

    $ ffx target add fe80::32fd:38ff:fea8:a00a

Notes

  • Manually add a target based on its IP address. The command accepts IPV4
    or IPV6 addresses, including a port number: <addr> = <ip addr:port>.

Typically, the daemon automatically discovers targets as they come online. However, manually adding a target allows for specifying a port number or address, often used for remote workflows.

This command will attempt to connect to the target in order to verify that RCS can be used, allowing for typical FFX related workflows. If you do not wish to use this, then you can run use the --nowait flag to return immediately. This can be useful for debugging connection issues.

If you send SIGINT (Ctrl-C) to the command before the connection to the target is verified, the target will be removed. If RCS cannot be connected to (e.g. some connectivity error is encountered), the target will also be removed.

bootloader

Communicates with the bootloader


Usage:  ffx target bootloader [-m <manifest>] [-p <product>] [-b <product-bundle>] [--skip-verify] [subcommand...]

Options  
--help display usage information
-m, --manifest path to flashing manifest or zip file containing images and manifest
-p, --product product entry in manifest - defaults to fuchsia
-b, --product-bundle optional product bundle name
--skip-verify skip hardware verification. This is dangerous, please be sure the images you are using match the device
Subcommands  
boot RAM boots a fastboot target.
info Prints fastboot variables for target.
lock Locks a fastboot target.
unlock Unlocks a fastboot target.

boot

RAM boots a fastboot target.


Usage:  ffx target bootloader boot [-z <zbi>] [-v <vbmeta>] [-s <slot>]

Options  
--help display usage information
-z, --zbi optional zbi image file path to use
-v, --vbmeta optional vbmeta image file path to use
-s, --slot slot corresponding to partitions in the flash manifest -

only used if zbi and vbmeta files are not present

info

Prints fastboot variables for target.


Usage:  ffx target bootloader info

Options  
--help display usage information

lock

Locks a fastboot target.


Usage:  ffx target bootloader lock

Options  
--help display usage information

unlock

Unlocks a fastboot target.


Usage:  ffx target bootloader unlock [-c <cred>] [--force]

Options  
--help display usage information
-c, --cred optional path to credential file to use to unlock the device
--force skips the warning message that this command is dangerous

clear-preferred-ssh-address

Clears a previously configured SSH address


Usage:  ffx target clear-preferred-ssh-address

Options  
--help display usage information

Notes

  • Clears a preferred SSH address that was set using the
    set-preferred-ssh-address command on the default target. Executing this command
    severs any existing connection to the target and establishes a new connection.
    The newly selected address is chosen using the standard address selection
    logic.

default

Manage the default target


Usage:  ffx target default [subcommand...]

Options  
--help display usage information
Subcommands  
get Get the default configured target
set Set the default target
unset Clears the default configured target

Examples

For one-off overrides for the default use `--target` option:

    $ ffx --target  

Or use the `--config` option:

    $ ffx --config target.default= 

Notes

  • Manages the default configured target for all operations. The default
    target is designated by a * next to the name. This is an alias for the
    target.default configuration key.

get

Get the default configured target


Usage:  ffx target default get [-l <level>] [-b <build-dir>]

Options  
--help display usage information
-l, --level config level, such as 'user', 'build', or 'global' - defaults to searching all levels
-b, --build-dir optional directory to associate the provided build config

Notes

  • Returns the default configured target from the 'User Configuration'.
    Returns an empty string if no default is configured.

set

Set the default target


Usage:  ffx target default set [-l <level>] [-b <build-dir>] nodename

Options  
--help display usage information
-l, --level config level, such as 'user', 'build', or 'global'
-b, --build-dir optional directory to associate the provided build config

Examples

To set the default target:

   $ ffx target default set 

To set the 'target.default` key at the global configuration:

   $ ffx target default set -l global 

To specify a default target for a specific build directory:

   $ ffx target default set -l build -b ~/fuchsia/out 

Notes

  • Sets the target.default configuration key. By default sets the key in
    the 'User Configuration'. Can be used in conjuction with ffx target list
    to list the names of the discovered targets.

After setting the default target, ffx target list will mark the default with a * in the output list.

unset

Clears the default configured target


Usage:  ffx target default unset [-l <level>] [-b <build-dir>]

Options  
--help display usage information
-l, --level config level, such as 'user', 'build', or 'global'
-b, --build-dir optional directory to associate the provided build config

Examples

To clear the default target:

    $ ffx target default unset

To clear the `target.default` key from global configuration:

    $ ffx target default unset -l global

To specify a specific build directory:

    $ ffx target default unset -l build -b ~/fuchsia/out

Notes

  • Clears the target.default configuration key. By default clears the
    'User Configuration'. Returns a warning if the key is already empty.

echo

run echo test against the target


Usage:  ffx target echo [--repeat] [text]

Options  
--help display usage information
--repeat run the echo test repeatedly until the command is killed

flash

Flash an image to a target device


Usage:  ffx target flash [-p <product>] [-b <product-bundle>] [-m <manifest>] [--oem-stage <oem-stage...>] [--authorized-keys <authorized-keys>] [--no-bootloader-reboot] [--skip-verify] [manifest_path]

Options  
--help display usage information
-p, --product product entry in manifest - defaults to fuchsia
-b, --product-bundle optional product bundle name
-m, --manifest optional manifest path
--oem-stage oem staged file - can be supplied multiple times
--authorized-keys path to authorized keys file - will default to the value configured for ssh.pub key in ffx config. If the file does not exist, it will be created.
--no-bootloader-reboot the device should not reboot after bootloader images are flashed
--skip-verify skip hardware verification. This is dangerous, please be sure the images you are flashing match the device

Examples

To flash a specific image:

    $ ffx target flash --manifest $(fx get-build-dir)/flash.json --product fuchsia

To include SSH keys as well:

    $ ffx target flash
    --authorized-keys ~/fuchsia/.ssh/authorized_keys
    $(fx get-build-dir)/flash.json
    --product fuchsia

Notes

  • Flashes an image to a target device using the fastboot protocol.
    Requires a specific  file and  name as an input.

This is only applicable to a physical device and not an emulator target. The target device is typically connected via a micro-USB connection to the host system.

The format is a JSON file generated when building a fuchsia and can be found in the build output directory.

The --oem-stage option can be supplied multiple times for several OEM files. The format expects a single OEM command to execute after staging the given file.

The format for the --oem-stage parameter is a comma separated pair: ','

get-ssh-address

Get the target's ssh address


Usage:  ffx target get-ssh-address [-t <timeout>]

Options  
--help display usage information
-t, --timeout the timeout in seconds [default = 1.0]

Notes

  • Return the SSH address of the default target defined in the
    target.default key. By default this comes from the 'User Configuration'.

The command takes a value in seconds with a default of 1.0 and overrides the value in the target.interaction.timeout key.

Errors  
1 Timeout while getting ssh address
2 Unable to get ssh address from target

get-time

Returns the current time in the system monotonic clock. This is the number of nanoseconds since the system was powered on. It does not always reset on reboot and does not adjust during sleep, and thus should not be used as a reliable source of uptime.

See https://fuchsia.dev/reference/syscalls/clock_get_monotonic


Usage:  ffx target get-time

Options  
--help display usage information

Examples

To get the target time:

    $ ffx target get-time

list

List all targets


Usage:  ffx target list [-f <format>] [--no-ipv4] [--no-ipv6] [--no-probe] [--no-mdns] [--no-usb] [nodename]

Options  
--help display usage information
-f, --format determines the output format for the list operation
--no-ipv4 do not return IPv4 addresses
--no-ipv6 do not return IPv6 addresses
--no-probe do not connect to targets (local discovery only)
--no-mdns do not do mDNS discovery (local discovery only)
--no-usb do not do USB discovery (local discovery only)

Examples

To list targets in short form:

    $ ffx target list --format s
    fe80::4415:3606:fb52:e2bc%zx-f80ff974f283 pecan-guru-clerk-rhyme

To list targets with only their addresses:

    $ ffx target list --format a
    fe80::4415:3606:fb52:e2bc%zx-f80ff974f283

Notes

  • List all targets that the daemon currently has in memory. This includes
    manually added targets. The daemon also proactively discovers targets as
    they come online. Use ffx target list to always get the latest list
    of targets. Targets are sorted by name.

The default target is marked with a '*' next to the node name. The table has the following columns:

NAME = The name of the target.
SERIAL = The serial number of the target.
TYPE = The product type of the target.
STATE = The high-level state of the target.
ADDRS/IP = The discovered and known addresses of the target.
RCS = Indicates if the Remote Control Service is running on the target.

The NAME column shows the target's advertised name. When the target is in early boot state such as fastboot, the NAME column may be <unknown> with a STATE being fastboot and a SERIAL attribute.

By default, the list command outputs in a tabular format. To override the format, pass --format and can take the following options: 'simple' , 'tabular|table|tab', 'addresses|addrs|addr', 'name-only', 'json|JSON' or in short form 's', 't', 'a', 'n', 'j'.

By default, Zedboot discovery is disabled. To enable discovery of Zedboot targets run:

$ ffx config set discovery.zedboot.enabled true

Errors  
2 If a nodename is supplied, an error code of 2 will be returned if the nodename cannot be resolved

off

Powers off a target


Usage:  ffx target off

Options  
--help display usage information

Notes

  • Power off a target. Uses the 'fuchsia.hardware.power.statecontrol.Admin'
    FIDL API to send the power off command.

'fuchsia.hardware.power.statecontrol.Admin' is exposed by the 'power_manager' component. To verify that the target exposes this service, ffx component select or ffx component knock can be used.

Errors  
1 Timeout while powering off target.

reboot

Reboots a target


Usage:  ffx target reboot [-b] [-r]

Options  
--help display usage information
-b, --bootloader reboot to bootloader
-r, --recovery reboot to recovery

Notes

  • Reboot a target. Uses the 'fuchsia.hardware.power.statecontrol.Admin'
    FIDL API to send the reboot command.

By default, target boots fully. This behavior can be overrided by passing in either --bootloader or --recovery to boot into the bootloader or recovery, respectively.

'fuchsia.hardware.power.statecontrol.Admin' is exposed by the 'power_manager' component. To verify that the target exposes this service, ffx component select or ffx component knock can be used.

Errors  
1 Timeout while powering off target.

remove

Make the daemon forget a specific target


Usage:  ffx target remove [--all] [name_or_addr]

Options  
--help display usage information
--all remove all manually added targets

Examples

To remove a target by its target name:

    $ ffx target remove correct-horse-battery-staple

Or to remove a target using its IP address:

    $ ffx target remove fe80::32fd:38ff:fea8:a00a

Notes

  • IP addresses are matched by their full string representation.
    for best results, copy the exact address from ffx target list.

repository

Interact with target repository registration


Usage:  ffx target repository [subcommand...]

Options  
--help display usage information
Subcommands  
deregister Make the target forget a specific repository
list List all the repositories on a target
register Make the target aware of a specific repository

Notes

  • The `repository` subcommand contains various commands for repository management
    and interaction on targets.
    
    Most of the commands depend on the RCS (Remote Control Service) on the target.

deregister

Make the target forget a specific repository


Usage:  ffx target repository deregister [-r <repository>]

Options  
--help display usage information
-r, --repository remove the repository named name from the target, rather than the default.

list

List all the repositories on a target


Usage:  ffx target repository list

Options  
--help display usage information

register

Make the target aware of a specific repository


Usage:  ffx target repository register [-r <repository>] [--storage-type <storage-type>] [--alias <alias...>] [--alias-conflict-mode <alias-conflict-mode>]

Options  
--help display usage information
-r, --repository register this repository, rather than the default.
--storage-type enable persisting this repository across reboots.
--alias set up a rewrite rule mapping each alias host to to the repository identified by name.
--alias-conflict-mode resolution mechanism when alias registrations conflict. Must be either error-out or replace. Default is replace.

screenshot

Takes a screenshot of the target


Usage:  ffx target screenshot [-d <dir>] [--format <format>]

Options  
--help display usage information
-d, --dir override the default directory where the screenshot will be saved
--format screenshot format. If no value is provided bgra will be used.
    Accepted values: bgra, rgba, png

Examples

Store the target's screenshot in a directory:

    $ ffx target screenshot -d .
    Exported ./screenshot

Notes

  • This command connects to a running target to take its screenshot.
    The --dir can be supplied to override the default
    screenshot saving location /tmp/screenshot/YYYYMMDD_HHMMSS/.
    The --format can be supplied to override the default format png.
    Accepted format values: bgra, rgba, png.
    The screenshot file name is screenshot.<format>.

set-preferred-ssh-address

Sets the preferred SSH address


Usage:  ffx target set-preferred-ssh-address addr

Options  
--help display usage information

Examples

To set a preferred IPv4 SSH address:

    $ ffx target set-preferred-ssh-address 127.0.0.1

Or to set a preferred IPv6 SSH address:

    $ ffx target set-preferred-ssh-addres fe80::32fd:38ff:fea8:a00a%qemu

If provided, the scope may either correspond to the numerical ID or the
interface name.

Notes

  • Manually set the preferred SSH address on the default target. If
    successful, then any existing connection to the target is severed and a new
    connection is established. The specified address is not persisted across daemon
    version changes or restarts.

show

Display relevant information for the target


Usage:  ffx target show [--desc] [--label]

Options  
--help display usage information
--desc display descriptions of entries
--label display label of entries

Notes

  • Displays a detailed information about the target.

The default output is intended for a human reader. This output can be decorated with machine readable labels (--label) and descriptions of each field (--desc).

The 'label' fields in the machine readable output (--json) will remain stable across software updates and is not localized (compare to 'title' which may change or be localized). The 'value' field will be one of: 'null', 'bool', 'string', or a list of strings.

Errors  
1 Timeout retrieving target information.

snapshot

Takes a snapshot of the target's state


Usage:  ffx target snapshot [-d <dir>] [--dump-annotations]

Options  
--help display usage information
-d, --dir valid directory where the snapshot will be stored
--dump-annotations print annotations without capturing the snapshot, ignores dir flag

Examples

Store the target's snapshot in the current directory:

    $ ffx target snapshot -d .
    Exported ./snapshot.zip

Notes

  • This command connects to a running target to acquire its snapshot, which contains
    useful debugging information about the target. The --dir can be supplied to override the default
    snapshot directory /tmp/snapshots/YYYYMMDD_HHMMSS/.

Snapshot contents: - Build information and annotations - Kernel and system logs - Inspect data

ssh

SSH to a target device


Usage:  ffx target ssh [--sshconfig <sshconfig>] [command...]

Options  
--help display usage information
--sshconfig path to the custom ssh config file to use.

Examples

To ssh to a specific device:

    $ ffx -t fuchsia-EEEE-NNNN target ssh

To ssh and run a command:

    $ ffx target ssh 'echo $USER'

update

Update base system software on target


Usage:  ffx target update [subcommand...]

Options  
--help display usage information
Subcommands  
channel View and manage update channels
check-now Check and perform the system update operation
force-install Trigger the system updater manually

Notes

  • This command interfaces with system update services on the target.

channel

View and manage update channels


Usage:  ffx target update channel [subcommand...]

Options  
--help display usage information
Subcommands  
get-current Return the currently configured update channel
get-next Return the next or target update channel
list List the known update channels
set Sets the update channel

Notes

  • Channel management commands and operations. Interfaces directly with
    the 'fuchsia.update.channelcontrol.ChannelControl' service on the target
    system.
get-current

Return the currently configured update channel


Usage:  ffx target update channel get-current

Options  
--help display usage information

Notes

  • For developer product configurations, this is by default 'devhost'.
Errors  
1 Timeout while getting update channel.
get-next

Return the next or target update channel


Usage:  ffx target update channel get-next

Options  
--help display usage information

Notes

  • Returns the next or target channel. This differs from get when the
    next successful update changes the configured update channel on the
    system.
Errors  
1 Timeout while getting update channel.
list

List the known update channels


Usage:  ffx target update channel list

Options  
--help display usage information

Notes

  • This lists all the known next or target update channels on the system.

Returns an empty list if no other update channels are configured.

Errors  
1 Timeout while getting list of update channel.
set

Sets the update channel


Usage:  ffx target update channel set channel

Options  
--help display usage information

Examples

To list all the known update channels:

    $ ffx target update channel list

Then, use a valid channel from the list:

    $ ffx target update channel set 

Notes

  • Sets the next or target update channel on the device. When paired with
    ffx target update check-now, ensures the update is check against the
    next or target channel. When the update is successful, next or target
    channel becomes the current channel.

Use ffx target update channel list to list known system update channels.

Errors  
1 Timeout while setting update channel.

check-now

Check and perform the system update operation


Usage:  ffx target update check-now [--service-initiated] [--monitor]

Options  
--help display usage information
--service-initiated the update check was initiated by a service, in the background.
--monitor monitor for state update.

Examples

To check for update and monitor progress:

    $ ffx target update check-now --monitor

Notes

  • Triggers an update check operation and performs the update if available.
    Interfaces using the 'fuchsia.update Manager' protocol with the system
    update service on the target.

The command takes in an optional --monitor switch to watch the progress of the update. The output is displayed in stdout.

The command also takes an optional --service-initiated switch to indicate a separate service has initiated a check for update.

force-install

Trigger the system updater manually


Usage:  ffx target update force-install [--reboot <reboot>] update_pkg_url

Options  
--help display usage information
--reboot automatically trigger a reboot into the new system

Examples

With a known update package URL, trigger an update and reboot:

    $ ffx target update force-install fuchsia-pkg://fuchsia.com/update

Don't reboot after update:

    $ ffx target update force-install
    fuchsia-pkg://fuchsia.com/update
    --reboot false

Notes

  • Directly invoke the system updater to install the provided update,
    bypassing any update checks.

Interfaces using the 'fuchsia.update.installer' protocol to update the system. Requires an in the following format:

fuchsia-pkg://fuchsia.com/update

Takes an optional --reboot <true|false> to trigger a system reboot after update has been successfully applied.

wait

Wait until able to establish a remote control connection to the target.


Usage:  ffx target wait [-t <timeout>] [-d]

Options  
--help display usage information
-t, --timeout the timeout in seconds [default = 120]. A value of 0 implies no timeout.
-d, --down wait for target to go down
Errors  
1 Timeout while getting ssh address

version

Print out ffx tool and daemon versions


Usage:  ffx version [-v]

Options  
--help display usage information
-v, --verbose if true, includes details about both ffx and the daemon