Documentation > Userspace Clients > General usage
Userspace Clients General Usage
Index
Syntax
All userspace client command line requests adhere to the following syntax:
(jool | jool_siit) [<argp1>] <mode> <operation> [<argp2>]
Arguments
(jool | jool_siit)
jool and jool_siit are the names of the two available userspace client binaries. The jool client speaks to the jool kernel module, and the jool_siit client speaks to the jool_siit kernel module.
<argp1>
argp1 is a first batch of classic getopt-based arguments:
<argp1> := ( --help | --usage | --version | --instance <name> | --file <file> )
--help(-?): Print a summary of this document.--usage: Print program usage syntax. (Also available amidst the output of--help.)--version(-V): Print program version.--instance <name>(-i <name>): Specify the name of the Jool instance to interact with.--file <file>(-f <name>): Specify a JSON file which contains the name of the instance to interact with.
The instance name is a 15-character maximum ASCII string. It defaults to default. It’s the same one you specify during instance add.
The bare minimum legal JSON file looks like this:
{
"instance": "<name>"
}
All JSON tags other than "instance" are ignored. (The idea is to allow you to reuse an atomic configuration file as a --file file.)
<mode>
<mode> is (usually) one of the following keywords:
instancestatsglobaleamt(SIIT only)denylist4(SIIT only)pool4(NAT64 only)bib(NAT64 only)session(NAT64 only)
<operation>
<operation> is (usually) one of the following keywords:
displayaddupdateremoveflush
See the respective mode documentation for details.
<argp2>
<arg2> is a second batch of traditional getopt-parsed arguments. (Though these are actually handled by argp.) They depend on the <mode> <operation> context. For example, list the instance add flags by running
user@T:~$ jool instance add --helpThe only exception is global update, where the value key acts as a third keyword level:
user@T:~$ jool global update <key> --helpQuirks
As long as you don’t reach ambiguity, you can abbreviate keywords:
user@T:~# jool_siit i a # instance add
user@T:~# jool g u # global update
user@T:~# jool_siit s d # stats display
user@T:~# jool s d # Error: stats or session? displayOf course, do not rely on these shorthands during scripts. There is no guarantee that future new keywords will not induce ambiguity.


