title: jfs_fscklog(8)

text:
# jfs_fscklog(8)

## NAME
jfs_fscklog - extract a JFS fsck service log into a file and/or format and display the extracted file

## SYNOPSIS
jfs_fscklog [ -d ] [ -e device ] [ -f output.file ] [ -p ] [ -V ]

## DESCRIPTION
jfs_fscklog with option -e device extracts the contents of either the most recent or immediately prior (specified with option -p) JFS fsck service log from the specified device, and writes the output to a file. The file name may be specified with the -f option, or the default file name is <pwd>fscklog.new. If the -p option is used, the default file name is <pwd>fscklog.old.

jfs_fscklog with option -d formats and displays the contents of the extracted file.

jfs_fscklog with options -d and -e device extracts and displays the JFS fsck service log.

## OPTIONS
-d

Format and display a previously extracted JFS fsck service log.

-e device

Extract the JFS fsck service log from device and store it in a file. (device is the special file name corresponding to the actual device from which the fsck log will be extracted (e.g. /dev/hdb1 )).

-f file.name

Specify the file name, overriding the default file name. When used with -e device, file.name specifies the name of the file into which the JFS fsck log will be extracted. When used with -d, file.name specifies the name of the extracted file whose contents will be formatted and displayed.

file.name must be 127 characters or less in length.

file.name will be created in the present working directory unless it is fully qualified.

-p

Extract the prior log (as opposed to the most recent log).

-V

Print version information and exit (regardless of any other chosen options).

## EXAMPLES

Extract the most recent JFS fsck log on /dev/hda5 into <pwd>fscklog.new:

jfs_fscklog -e /dev/hda5

Extract the most recent JFS fsck log on /dev/hdb3 into /temp/l9651107.log:

jfs_fscklog -e /dev/hdb3 -f /temp/l9651107.log

Display the JFS fsck log that was extracted into /temp/l9651107.log:

jfs_fscklog -d -f /temp/l9651107.log

Extract and display the previous JFS fsck log from /dev/hda8:

jfs_fscklog -e /dev/hda8 -d -p

## REPORTING BUGS
If you find a bug in JFS or jfs_fscklog, please report it via the bug tracking system ("Report Bugs" section) of the JFS project web site:

```
http://jfs.sourceforge.net/
```

Please send as much pertinent information as possible, including any jfs_fscklog error messages and the complete output of running jfs_fsck with the -v option on the JFS device.

## SEE ALSO
jfs_fsck(8), jfs_mkfs(8), jfs_tune(8), jfs_logdump(8), jfs_debugfs(8)

## AUTHOR

```
Barry Arndt  (barndt@us.ibm.com)
```

jfs_fscklog is maintained by IBM.

```
See the JFS project web site for more details:
http://jfs.sourceforge.net/
```


package: jfsutils

title: jfs_logdump(8)

text:
# jfs_logdump(8)

## NAME
jfs_logdump - dump a JFS formatted device's journal log

## SYNOPSIS
jfs_logdump [ -a ] device

## DESCRIPTION
jfs_logdump dumps the contents of the journal log from the specified JFS formatted device into output file ./jfslog.dmp.

device is the special file name corresponding to the actual device from which the journal log will be dumped (e.g. /dev/hdb1 ).

jfs_logdump must be run as root.

## OPTIONS
-a

Dump the entire contents of the journal log instead of just the committed transactions since the last synch point.

## EXAMPLE
Dump the entire JFS journal log from the 3rd partition of the 2nd hard disk into ./jfslog.dmp:

jfs_logdump -a /dev/hdb3

## REPORTING BUGS
If you find a bug in JFS or jfs_logdump, please report it via the bug tracking system ("Report Bugs" section) of the JFS project web site:

```
http://jfs.sourceforge.net/
```

Please send as much pertinent information as possible, including any jfs_logdump error messages and the complete output of running jfs_fsck with the -v option on the JFS device.

## SEE ALSO
jfs_fsck(8), jfs_mkfs(8), jfs_fscklog(8), jfs_tune(8), jfs_debugfs(8)

## AUTHORS

```
Barry Arndt  (barndt@us.ibm.com)
William Braswell, Jr.
```

jfs_logdump is maintained by IBM.

```
See the JFS project web site for more details:
http://jfs.sourceforge.net/
```

branch: sisyphus


title: jfs_mkfs(8)

summary: create a JFS formatted partition

text:
# jfs_mkfs(8)

## NAME
jfs_mkfs - create a JFS formatted partition

## SYNOPSIS
jfs_mkfs [options] device [ blocks ]

## DESCRIPTION
jfs_mkfs is used to create (format) a JFS partition. jfs_mkfs must be run as root.

device is the special file name corresponding to the actual device (e.g. /dev/hdb1) on which a JFS file system and/or JFS journal will be created. blocks is the number of blocks to be used for the file system. If omitted, jfs_mkfs automatically figures the file system size.

The default block size is 4096.

## WARNING
jfs_mkfs will destroy all data on the specified device!

## OPTIONS
-c

Check the device for bad blocks before building the file system.

-j journal_device

Create the external JFS journal on journal_device , create the JFS file system on device , and attach the external journal to the file system.

-J journal-options

Create the JFS journal on its own device or attach an external JFS journal to the JFS file system using options specified on the command-line. The following journal options are supported:

journal_dev

Create an external JFS journal on the given device.

device=external-journal

Attach an existing external JFS journal located on external-journal to the JFS file system that will be created on device. The external journal must already have been created using the command

jfs_mkfs -J journal_dev external-journal

Attach the external journal to the file system being created by using the command

jfs_mkfs -J device=external-journal device

Instead of specifying a device name directly, external-journal can also be specified by either LABEL=label or UUID=UUID to locate the external journal by either the volume label or UUID stored in the JFS external log superblock at the start of the journal. Use jfs_tune(8) to display a journal device's volume label and UUID. (See the -l, -L, and -U options of jfs_tune(8).)

Only one of the journal_dev or device= options can be given per jfs_mkfs issuance.

-L volume_label

Set the volume label for the newly formatted device.

If -L volume_label is used along with -J journal_device, the volume label of the specified external journal device will be set to volume_label. Otherwise, the volume label of the JFS file system will be set to volume_label.

-O

Provide case-insensitive support for compatibility with OS/2.

-q

Quiet execution - do not ask for confirmation before creating the file system.

-s log_size

Set the log size (in megabytes) of the inline log. If the -s option is not used, the default log size is 0.4% of the aggregate size.

-V

Print version information and exit (regardless of any other chosen options).

## EXAMPLES
Format 3rd partition on 2nd hard disk with the volume label "JFS_hdb3":

jfs_mkfs -L JFS_hdb3 /dev/hdb3

Format 5th partition on 1st hard disk, verifying each block created:

jfs_mkfs -c /dev/hda5

Format 3rd partition on 2nd hard disk as external journal, format 4th partition on 1st hard disk as JFS file system, and attach the external journal to the file system:

jfs_mkfs -j /dev/hdb3 /dev/hda4

## REPORTING BUGS
If you find a bug in JFS or jfs_mkfs, please report it via the bug tracking system ("Report Bugs" section) of the JFS project web site:

```
http://jfs.sourceforge.net/
```

Please send as much pertinent information as possible including any error messages resulting from running jfs_mkfs.

## SEE ALSO
mkfs(8), jfs_fsck(8), jfs_fscklog(8), jfs_tune(8), jfs_logdump(8), jfs_debugfs(8)

## AUTHORS

```
Barry Arndt  (barndt@us.ibm.com)
William Braswell, Jr.
```

jfs_mkfs is maintained by IBM.

```
See the JFS project web site for more details:
http://jfs.sourceforge.net/
```


title: jfs_tune(8)

text:
# jfs_tune(8)

## NAME
jfs_tune - adjust tunable file system parameters on JFS

## SYNOPSIS
jfs_tune [options] device

## DESCRIPTION
jfs_tune adjusts tunable parameters on a Linux JFS file system or external journal. jfs_tune must be run as root.

device is the special file name corresponding to the actual device (e.g. /dev/hdb1) on which a JFS file system or JFS external journal has been created.

## OPTIONS
-J device=external-journal

Attach the JFS external journal located on external-journal to the JFS file system on device.

The external journal must already have been created using the command. More than one file system may share the same external journal.

mkfs.jfs -J journal_dev external-journal

Attach the external journal to the file system by using the command

jfs_tune -J device=external-journal device

Instead of specifying a device name directly, external-journal can also be specified by either LABEL=label or UUID=UUID (Use jfs_tune -l device to display a journal device's volume label and UUID.)

-l

List the contents of the JFS file system or external journal superblock that resides on device.

-L volume-label

Set the volume label of the JFS file system or external journal. JFS labels can be at most 16 characters long; if volume-label is longer than 16 characters, jfs_tune will truncate it and print a warning. The volume label can be used by mount(8), fsck(8), and /etc/fstab(5) (and possibly others) by specifying LABEL=volume_label instead of a block special device name like /dev/hda5.

-U UUID

Set the universally unique identifier (UUID) of the file system or external journal device to UUID. The format of the UUID is a series of hex digits separated by hyphens, like this: "c1b9d5a2-f162-11cf-9ece-0020afc76f16". The UUID parameter may also be one of the following:

clear

clear the file system UUID

random

generate a new randomly-generated UUID

time

generate a new time-based UUID

The UUID may be used by mount(8), fsck(8), and /etc/fstab(5) (and possibly others) by specifying UUID=uuid instead of a block special device name like /dev/hda1.

See uuidgen(8) for more information.

-V

Print version information and exit (regardless of any other chosen options).

## EXAMPLES
Set a randomly-generated UUID for the JFS file system on the 3rd partition of the 2nd hard disk, and view the resultant superblock:

jfs_tune -l -U random /dev/hdb3

Attach an already existing external journal on a device labeled JFSLog to a JFS file system on /dev/hda8:

jfs_tune -J device=LABEL=JFSLog /dev/hda8

## REPORTING BUGS
If you find a bug in JFS or jfs_tune, please report it via the bug tracking system ("Report Bugs" section) of the JFS project web site:

```
http://jfs.sourceforge.net/
```

Please send as much pertinent information as possible including any error messages resulting from running jfs_tune.

## SEE ALSO
jfs_fsck(8), jfs_mkfs(8), jfs_fscklog(8), jfs_logdump(8), jfs_debugfs(8)

## AUTHOR

```
Barry Arndt  (barndt@us.ibm.com)
```

jfs_tune is maintained by IBM.

```
See the JFS project web site for more details:
http://jfs.sourceforge.net/
```


jnettop

package: jnettop

title: jnettop(8)

text:
# jnettop(8)

## NAME
jnettop - View hosts/ports taking up the most network traffic

## SYNOPSIS
jnettop [options] [-i interface] [-d filename] [-f filename] [-x rule]

## DESCRIPTION
This manual page documents briefly the jnettop command. This manual page is OBSOLETE. Please use jnettop -h as a main source of information about usage.

jnettop captures traffic coming across the host it is running on and displays streams sorted by bandwidth they use. Result is a nice listing of communication on network by host and port, how many bytes went through this transport and the bandwidth it is consuming.

## OPTIONS
These programs follow the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below.

-h, --help

Show summary of options.

-v, --version

Show version of program.

-c, --content-filter

disable content filtering

-d, --debug filename

write debug information into file

-f, --config-file filename

reads configuration from filename. defaults to ~/.jnettop. an example can be found at /usr/share/doc/jnettop/dot.jnettop.

-i, --interface name

capture packets on specified interface

--local-aggr [none|host|port|host+port]

set local aggregation to specified value

-n, --no-resolver

disable resolving of ip addresses

-p, --promiscuous

enables promiscuous mode on the sniffed interface

--remote-aggr [none|host|port|host+port]

set remote aggregation to specified value

-s, --select-rule name

selects one of the rules defined in .jnettop configuration file (by it's name)

-x, --filter rule

allows for specification of custom filtering rule. this allows for tcpdump(1) style syntax. don't forget to enclose the filter into quotes when running from a shell.

## CONFIGURATION
Program looks for settings in the file specified by parameter -f, which defaults to ~/.jnettop. Configuration file is an ordinary text file with keywords and their arguments. You HAVE to enclose arguments into double quotes. Available keywords are:

interface "<interface_name>"

The interface keyword specifies network interface on which to start listening. Example:

interface "eth0"

local_aggregation [none|host|port|host+port]

The local_aggregation keyword specifies initial active local aggregation. Valid values are none, host, port, and host+port. Example:

local_aggregation host

promisc [on|off]

The promisc keyword specifies, whether jnettop captures packets in promiscuous mode. Example:

promisc on

remote_aggregation [none|host|port|host+port]

The remote_aggregation keyword specifies initial active remote aggregation. Valid values are none, host, port, and host+port. Example:

remote_aggregation port

resolve [on|off]

The resolve keyword specifies, whether resolving is performed on the IP addresses or not.

resolve off

resolve_rule "<network address>" "<network mask>" [normal|external] (<arguments> ...)

The resolve_rule keyword adds one resolver into list of resolvers for specified address. When resolving, jnettop examines all the rules in the order how they were specified in configuration file. If the network address matches specified range, declared resolver is used. Resolver can be normal, which means the standard DNS lookup or external, which executes specified external program to perform resolving. This can be used with bundled jnettop-lookup-nmb script, which looks up IP addresses using nmblookup(1) tool. If a tool returns empty string or DNS is not found, next rule is examined. If jnettop runs out of rules, than the standard DNS lookup is executed.

resolve_rule "192.168.0.0" "255.255.255.0" normal

resolve_rule "192.168.0.0" "255.255.255.0" external "/usr/share/jnettop/jnettop-lookup-nbm"

rule "<rule_name>" "<rule_definition>"

The rule keyword defines a set of predefined tcpdump(1)-like filters to apply. You can specify various filters as "show me what 192.168.1.32" sends:

rule "show 192.168.1.32" "src 192.168.1.32"

select_rule "<rule_name>"

The select_rule keyword specifies initial active predefined rule. The rule must be defined before this keyword is used. Example:

select_rule "show 192.168.1.32"

variable "<variable_name>" "<variable_contents>"

The variable keyword introduces a string variable for use in future rule definitions. It can be used to shorten rule definitions. Example:

variable "intranet" "net 192.168.0.0/16 or 10.0.0.0/8 or 172.16.0.0/12"

For more information, see README file or .jnettop example configuration file included in distribution.

## AUTHOR
This manual page was originally written by Ari Pollak <ari@debian.org>, for the Debian GNU/Linux system. Small changes were introduced by Jakub Skopal <j@kubs.cz>


clrunimap

package: kbd

title: clrunimap(8)

summary: Clear the current console unicode map

text:
# clrunimap(8)

## NAME
clrunimap - Clear the current console unicode map

## SYNOPSIS
clrunimap

## DESCRIPTION
The command clrunimap clears the unicode map (also called "Screen Font Map") for the current console.

## NOTES
If you are not the maintainer of the kbd package, it is very unlikely that you want to use this command. On many kernels the result will be that your screen is black. On some kernels a reboot will be necessary.

Use setfont -u to load a Unicode map for a console.

## SEE ALSO
setfont(8).


getkeycodes

title: getkeycodes(8)

text:
# getkeycodes(8)

## NAME
getkeycodes - print kernel scancode-to-keycode mapping table

## SYNOPSIS
getkeycodes

## DESCRIPTION
The getkeycodes command prints the kernel scancode-to-keycode mapping table.

## OPTIONS
None.

## SEE ALSO
setkeycodes(8)


getunimap

title: getunimap(8)

text:
# getunimap(8)

## NAME
getunimap - dump the unicode map for the current console to stdout

## SYNOPSIS
getunimap [ -s ] [ -C console ]

## DESCRIPTION
The getunimap program is old and obsolete. It is now part of setfont (1).

The getunimap program outputs the unicode map (also called a "Screen Font Map") for the current console to standard output.

The -C option may be used with Linux 2.6.1 and later to get the map for a console different from the current one. Its argument is a pathname.

The output of getunimap is of the form

0xAA U+1234 # comment

where 0xAA is the font character code and U+1234 is a unicode character, that if displayed, will be displayed using glyph 0xAA in the font. Many unicode characters may be mapped to the same glyph.

the Hash symbol # is used as a comment delimiter; characters after a hash sign (to the end of the line) are comments.

The -s option will sort and merge elements, sorting on font character. Hence, it will produce output of the form:

0x22 U+1234 U+5678 U+3456

0x23 U+0023

etc., listing the multiple unicode characters that map to a font glyph.

The output of getunimap is of the form accepted by setfont and psfaddtable

## SEE ALSO
psfaddtable(1), setfont(1).


loadunimap

title: loadunimap(8)

text:
# loadunimap(8)

## NAME
loadunimap - load the kernel unicode-to-font mapping table

## SYNOPSIS
loadunimap [ -C console ] [ -o oldmap ] [ map ]

## DESCRIPTION
The loadunimap command is obsolete - its function is now built-in into setfont(8). However, for backwards compatibility it is still available as a separate command.

The program loadunimap loads the specified map in the kernel unicode-to-font mapping table. If no map is given def mapping table is assumed. The default extension (that can be omitted) is .uni.

If the -o oldmap option is given, the old map is saved in the file specified.

On Linux 2.6.1 and later one can specify the console device using the -C option.

Usually one does not call loadunimap directly - its function is also built into setfont(8).

## FILES
/lib/kbd/unimaps

The default directory for unicode mappings.

/lib/kbd/unimaps/def.uni

The default mapping file.

## SEE ALSO
mapscrn(8), setfont(8)


mapscrn

title: mapscrn(8)

summary: load screen output mapping table

text:
# mapscrn(8)

## NAME
mapscrn - load screen output mapping table

## SYNOPSIS
mapscrn [-V] [-v] [-o map.orig] mapfile

## DESCRIPTION
The mapscrn command is obsolete - its function is now built-in into setfont. However, for backwards compatibility it is still available as a separate command.

The mapscrn command loads a user defined output character mapping table into the console driver. The console driver may be later put into use user-defined mapping table mode by outputting a special escape sequence to the console device. This sequence is <esc>(K for the G0 character set and <esc>)K for the G1 character set. When the -o option is given, the old map is saved in map.orig.

## USE
There are two kinds of mapping tables: direct-to-font tables, that give a font position for each user byte value, and user-to-unicode tables that give a unicode value for each user byte. The corresponding glyph is now found using the unicode index of the font. The command

mapscrn trivial

sets up a one-to-one direct-to-font table where user bytes directly address the font. This is useful for fonts that are in the same order as the character set one uses. A command like mapscrn 8859-2

sets up a user-to-unicode table that assumes that the user uses ISO 8859-2.

## INPUT FORMAT
The mapscrn command can read the map in either of two formats:

1. 256 or 512 bytes binary data

2. two-column text file

Format (1) is a direct image of the translation table. The 256-bytes tables are direct-to-font, the 512-bytes tables are user-to-unicode tables. Format (2) is used to fill the table as follows: cell with offset mentioned in the first column is filled with the value mentioned in the second column. When values larger than 255 occur, or values are written using the U+xxxx notation, the table is assumed to be a user-to-unicode table, otherwise it is a direct-to-font table.

Values in the file may be specified in one of several formats:

1. Decimal: String of decimal digits not starting with '0'

2. Octal: String of octal digits beginning with '0'.

3. Hexadecimal: String of hexadecimal digits preceded by "0x".

4. Unicode: String of four hexadecimal digits preceded by "U+".

5. Character: Single character enclosed in single quotes. (And the binary value is used.) Note that blank, comma, tab character and '#' cannot be specified with this format.

6. UTF-8 Character: Single (possibly multi-byte) UTF-8 character, enclosed in single quotes.

Note that control characters (with codes < 32) cannot be re-mapped with mapscrn because they have special meaning for the driver.

## OTHER OPTIONS
-V

Prints version number and exits.

-v

Be verbose.

## FILES
/lib/kbd/consoletrans

The default directory for screen mappings.

## SEE ALSO
setfont(8)

## AUTHOR
Copyright (C) 1993 Eugene G. Crosser

<crosser@pccross.msk.su>

This software and documentation may be distributed freely.


title: mk_modmap(8)

text:
# mk_modmap(8)

## NAME
mk_modmap - translate a Linux keytable file into an xmodmap file

## SYNOPSIS
mk_modmap [ -v ] keymap_file

## DESCRIPTION
The mk_modmap command tries to translate a Linux console keytable file into a file that can be parsed by xmodmap, and used within X. It outputs the results to standard out.

If the -v flag is used, verbose output is given.

It requires the X header files to be installed. (In Debian, these are in the "xlibs-dev" package).

## NOTES
Since XFree version 2.1, X initialises its keymap using the Linux keymap, so xmodmap will often be superfluous.

## SEE ALSO
dumpkeys(1), keymaps(5), xmodmap(1)


resizecons

title: resizecons(8)

summary: change kernel idea of the console size

text:
# resizecons(8)

## NAME
resizecons - change kernel idea of the console size

## SYNOPSIS
resizecons COLSxROWS

resizecons -lines ROWS

## DESCRIPTION
The resizecons command tries to change the videomode of the console. There are several aspects to this: (a) the kernel must know about it, (b) the hardware must know about it, (c) user programs must know about it, (d) the console font may have to be adapted.

(a) The kernel is told about the change using the ioctl VT_RESIZE. This causes the kernel to reallocate console screen memory for all virtual consoles, and might fail if there is not enough memory. (In that case, try to disallocate some virtual consoles first.) If this ioctl succeeds, but a later step fails (e.g., because you do not have root permissions), you may be left with a very messy screen.

The most difficult part of this is (b), since it requires detailed knowledge of the video card hardware, and the setting of numerous registers. Only changing the number of rows is slightly easier, and resizecons will try to do that itself, when given the -lines option. (Probably, root permission will be required.) The command resizecons COLSxROWS will execute restoretextmode -r COLSxROWS (and hence requires that you have svgalib installed). Here COLSxROWS is a file that was created earlier by restoretextmode -w COLSxROWS. Again, either root permissions are required, or restoretextmode has to be suid root.

In order to deal with (c), resizecons does a `stty rows ROWS cols COLS' for each active console (in the range tty0..tty15), and sends a SIGWINCH signal to selection if it finds the file /tmp/selection.pid.

Finally, (d) is dealt with by executing a setfont command. Most likely, the wrong font is loaded, and you may want to do another setfont yourself afterwards.

## BUGS
resizecons does not work on all hardware. This command used to be called resize, but was renamed to avoid conflict with another command with the same name.

## SEE ALSO
setfont(8), stty(1), selection(1), restoretextmode(8), disalloc(8)


setfont

title: setfont(8)

summary: load EGA/VGA console screen font

text:
# setfont(8)

## NAME
setfont - load EGA/VGA console screen font

## SYNOPSIS
setfont [-O font+umap.orig] [-o font.orig] [-om cmap.orig] [-ou umap.orig] [-N] [font.new ...] [-m cmap] [-u umap] [-C console] [-hH] [-f] [-v] [-V]

## DESCRIPTION
The setfont command reads a font from the file font.new and loads it into the EGA/VGA character generator, and optionally outputs the previous font. It can also load various mapping tables and output the previous versions.

If no args are given (or only the option -N for some number N), then a default (8xN) font is loaded (see below). One may give several small fonts, all containing a Unicode table, and setfont will combine them and load the union. Typical use:

setfont

Load a default font.

setfont drdos8x16

Load a given font (here the 448-glyph drdos font).

setfont cybercafe -u cybercafe

Load a given font that does not have a Unicode map and provide one explicitly.

setfont LatArCyrHeb-19 -m 8859-2

Load a given font (here a 512-glyph font combining several character sets) and indicate that one's local character set is ISO 8859-2.

Note: if a font has more than 256 glyphs, only 8 out of 16 colors can be used simultaneously. It can make console perception worse (loss of intensity and even some colors).

## FONT FORMATS
The standard Linux font format is the PSF font. It has a header describing font properties like character size, followed by the glyph bitmaps, optionally followed by a Unicode mapping table giving the Unicode value for each glyph. Several other (obsolete) font formats are recognized. If the input file has code page format (probably with suffix .cp), containing three fonts with sizes e.g. 8x8, 8x14 and 8x16, then one of the options -8 or -14 or -16 must be used to select one. Raw font files are binary files of size 256*N bytes, containing bit images for each of 256 characters, one byte per scan line, and N bytes per character (0 < N <= 32). Most fonts have a width of 8 bits, but with the framebuffer device (fb) other widths can be used.

## FONT HEIGHT
The program setfont has no built-in knowledge of VGA video modes, but just asks the kernel to load the character ROM of the video card with certain bitmaps. However, since Linux 1.3.1 the kernel knows enough about EGA/VGA video modes to select a different line distance. The default character height will be the number N inferred from the font or specified by option. However, the user can specify a different character height H using the -h option.

## CONSOLE MAPS
Several mappings are involved in the path from user program output to console display. If the console is in utf8 mode (see unicode_start(1)) then the kernel expects that user program output is coded as UTF-8 (see utf-8(7)), and converts that to Unicode (ucs2). Otherwise, a translation table is used from the 8-bit program output to 16-bit Unicode values. Such a translation table is called a Unicode console map. There are four of them: three built into the kernel, the fourth settable using the -m option of setfont. An escape sequence chooses between these four tables; after loading a cmap, setfont will output the escape sequence Esc ( K that makes it the active translation.

Suitable arguments for the -m option are for example 8859-1, 8859-2, ..., 8859-15, cp437, ..., cp1250.

Given the Unicode value of the symbol to be displayed, the kernel finds the right glyph in the font using the Unicode mapping info of the font and displays it.

Old fonts do not have Unicode mapping info, and in order to handle them there are direct-to-font maps (also loaded using -m) that give a correspondence between user bytes and font positions. The most common correspondence is the one given in the file trivial (where user byte values are used directly as font positions). Other correspondences are sometimes preferable since the PC video hardware expects line drawing characters in certain font positions.

Giving a -m none argument inhibits the loading and activation of a mapping table. The previous console map can be saved to a file using the -om file option. These options of setfont render mapscrn(8) obsolete. (However, it may be useful to read that man page.)

## UNICODE FONT MAPS
The correspondence between the glyphs in the font and Unicode values is described by a Unicode mapping table. Many fonts have a Unicode mapping table included in the font file, and an explicit table can be indicated using the -u option. The program setfont will load such a Unicode mapping table, unless a -u none argument is given. The previous Unicode mapping table will be saved as part of the saved font file when the -O option is used. It can be saved to a separate file using the -ou file option. These options of setfont render loadunimap(8) obsolete.

The Unicode mapping table should assign some glyph to the `missing character' value U+fffd, otherwise missing characters are not translated, giving a usually very confusing result.

Usually no mapping table is needed, and a Unicode mapping table is already contained in the font (sometimes this is indicated by the .psfu extension), so that most users need not worry about the precise meaning and functioning of these mapping tables.

One may add a Unicode mapping table to a psf font using psfaddtable(1).

## OPTIONS
-h H

Override font height.

-d

Doubles the size of the font, by replicating all of its pixels vertically and horizontally. This is suitable for high pixel density (e.g. "4k") displays on which the standard fonts are too small to be easily legible. Due to kernel limitations, this is suitable only for 16x16 or smaller fonts.

-m file

Load console map or Unicode console map from file.

-o file

Save previous font in file.

-O file

Save previous font and Unicode map in file.

-om file

Store console map in file.

-ou file

Save previous Unicode map in file.

-u file

Load Unicode table describing the font from file.

-C console

Set the font for the indicated console. (May require root permissions.)

-f

Force-load unicode map: Setfont`issues the system call to load the unicode map even if the specified map is empty. This may be useful in unusual cases.

-v

Be verbose.

-V

Print version and exit.

## NOTE
PC video hardware allows one to use the "intensity" bit either to indicate brightness, or to address 512 (instead of 256) glyphs in the font. So, if the font has more than 256 glyphs, the console will be reduced to 8 (instead of 16) colors.

## FILES
/lib/kbd/consolefonts

The default font directory.

/lib/kbd/unimaps

The default directory for Unicode maps.

/lib/kbd/consoletrans

The default directory for screen mappings.

The default font is a file default (or default8xN if the -N option was given for some number N) perhaps with suitable extension (like .psf).

## SEE ALSO
psfaddtable(1), unicode_start(1), loadunimap(8), utf-8(7), mapscrn(8)


setkeycodes

title: setkeycodes(8)

text:
# setkeycodes(8)

## NAME
setkeycodes - load kernel scancode-to-keycode mapping table entries

## SYNOPSIS
setkeycodes scancode keycode ...

## DESCRIPTION
The setkeycodes command reads its arguments two at a time, each pair of arguments consisting of a scancode (given in hexadecimal) and a keycode (given in decimal). For each such pair, it tells the kernel keyboard driver to map the specified scancode to the specified keycode.

This command is useful only for people with slightly unusual keyboards, that have a few keys which produce scancodes that the kernel does not recognize.

## THEORY
The usual PC keyboard produces a series of scancodes for each key press and key release. (Scancodes are shown by showkey -s, see showkey(1) ) The kernel parses this stream of scancodes, and converts it to a stream of keycodes (key press/release events). (Keycodes are shown by showkey.) Apart from a few scancodes with special meaning, and apart from the sequence produced by the Pause key, and apart from shiftstate related scancodes, and apart from the key up/down bit, the stream of scancodes consists of unescaped scancodes xx (7 bits) and escaped scancodes e0 xx (8+7 bits). To these scancodes or scancode pairs, a corresponding keycode can be assigned (in the range 1-127). For example, if you have a Macro key that produces e0 6f according to showkey(1), the command

setkeycodes e06f 112

will assign the keycode 112 to it, and then loadkeys(1) can be used to define the function of this key. Some older kernels might hardwire a low scancode range to the equivalent keycodes; setkeycodes will fail when you try to remap these.

## 2.6 KERNELS
In 2.6 kernels key codes lie in the range 1-255, instead of 1-127. (It might be best to confine oneself to the range 1-239.)

In 2.6 kernels raw mode, or scancode mode, is not very raw at all. The code returned by showkey -s will change after use of setkeycodes. A kernel bug. See also showkey(1).

## OPTIONS
None.

## BUGS
The keycodes of X have nothing to do with those of Linux. Unusual keys can be made visible under Linux, but not under X.

## SEE ALSO
dumpkeys(1), loadkeys(1), showkey(1), getkeycodes(8)


setlogcons

title: setlogcons(8)

summary: Send kernel messages to console N

text:
# setlogcons(8)

## NAME
setlogcons - Send kernel messages to console N

## SYNOPSIS
setlogcons N

## DESCRIPTION
The command setlogcons N sets all kernel messages to the console specified as N.

By default kernel messages are sent to the current console.

To change the level of messages sent, use dmesg

## AUTHORS
setlogcons was originally written by Andries Brouwer for the kbd package.

This manual page was written by Alastair McKinstry.

## SEE ALSO
dmesg(1)


setvesablank

title: setvesablank(8)

summary: Turn VESA screen blanking on or off

text:
# setvesablank(8)

## NAME
setvesablank - Turn VESA screen blanking on or off

## SYNOPSIS
setvesablank [ [ -b --blanking ] on | ON | off | OFF ] [ -h --help ] [ -v --verbose ]

## DESCRIPTION
The program setvesablank sets VESA screen blanking on or off.


setvtrgb

title: setvtrgb(8)

summary: set the virtual terminal RGB colors

text:
# setvtrgb(8)

## NAME
setvtrgb - set the virtual terminal RGB colors

## SYNOPSIS
setvtrgb [options] vga|FILE|-

## DESCRIPTION
The setvtrgb command takes a single argument, either the string vga , or a path to a file containing the colors to be used by the Linux virtual terminals.

You can choose to write the colors in decimal or hexadecimal format, it will be detected on runtime.

Decimal FILE format should be exactly 3 lines of 16 comma-separated decimal values for RED, GREEN, and BLUE.

To seed a valid FILE :

cat /sys/module/vt/parameters/default_{red,grn,blu} > FILE

And then edit the values in FILE

Hexadecimal FILE format should be exactly 16 lines of hex triplets for RED, GREEN and BLUE, prefixed with a number sign (#). For example:

```
#000000
#AA0000
#00AA00
#AA5500
#0000AA
#AA00AA
#00AAAA
#AAAAAA
#555555
#FF5555
#55FF55
#FFFF55
#5555FF
#FF55FF
#55FFFF
#FFFFFF
```

```

```

## OPTIONS
-C, --console=DEV

the console device to be used;

-h, --help

Prints usage message and exits.

-V, --version

Prints version number and exists.

## AUTHOR
The utility is written by Alexey Gladkov, Seth Forshee, Dustin Kirkland.

## DOCUMENTATION
Documentation by Dustin Kirkland.


showconsolefont

title: showconsolefont(8)

text:
# showconsolefont(8)

## NAME
showconsolefont - Show the current EGA/VGA console screen font

## SYNOPSIS
showconsolefont [ -V | --version ] [ -v ] [ -i ] [ -C console ]

## DESCRIPTION
The showconsolefont command outputs the current console font to stdout. The option -v prints additional information, while the option -V prints the program version number. The option -i doesn't print out the font table, just shows ROWSxCOLSxCOUNT and exits. On Linux 2.6.1 and later, the option -C allows one to indicate the console involved. Its argument is a pathname.

## SEE ALSO
setfont(8)


vcstime

title: vcstime(8)

text:
# vcstime(8)

## NAME
vcstime - Show time in upper right hand corner of the console screen

## SYNOPSIS
vcstime

## DESCRIPTION
vcstime shows the current time in the upper right-hand corner of the console screen.

This simple program shows the current time in the corner of the console screen.

It needs to be run by root, in order to have write permissions to /dev/vcsa

## AUTHORS
vcstime was written by Andries Brouwer, based on a suggestion by Miguel de Icaza. This manual page was Written by Alastair McKinstry, Debian, Jan 2003.


kbdrate

package: kbdrate

title: kbdrate(8)

text:
# kbdrate(8)

## NAME
kbdrate - reset the keyboard repeat rate and delay time

## SYNOPSIS
kbdrate [options...]

## DESCRIPTION
kbdrate is used to change the keyboard repeat rate and delay time. The delay is the amount of time that a key must be depressed before it will start to repeat.

Using kbdrate without any options will reset the repeat rate to 10.9 characters per second (cps) and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems. These are the IBM defaults. On SPARC-based systems it will reset the repeat rate to 5 cps and the delay to 200 ms.

## OPTIONS
-r, --rate=NUMBER

Change the keyboard repeat rate to NUMBER cps. For Intel-based systems, the allowable range is from 2.0 to 30.0 cps. Only certain, specific values are possible, and the program will select the nearest possible value to the one specified. The possible values are given, in characters per second, as follows: 2.0, 2.1, 2.3, 2.5, 2.7, 3.0, 3.3, 3.7, 4.0, 4.3, 4.6, 5.0, 5.5, 6.0, 6.7, 7.5, 8.0, 8.6, 9.2, 10.0, 10.9, 12.0, 13.3, 15.0, 16.0, 17.1, 18.5, 20.0, 21.8, 24.0, 26.7, 30.0. For SPARC-based systems, the allowable range is from 0 (no repeat) to 50 cps.

-d, --delay=NUMBER

Change the delay to NUMBER milliseconds. For Intel-based systems, the allowable range is from 250 to 1000 ms, in 250 ms steps. For SPARC systems, possible values are between 10 ms and 1440 ms, in 10 ms steps.

-s, --silent

Silent. No messages are printed.

-h, --help

Display a help text.

-V, --version

Display a version number and exit.

## BUGS
Not all keyboards support all rates.

Not all keyboards have the rates mapped in the same way.

Setting the repeat rate on the Gateway AnyKey keyboard does not work. If someone with a Gateway figures out how to program the keyboard, please send mail to util-linux@math.uio.no.

All this is very architecture dependent. Nowadays kbdrate first tries the KDKBDREP and KIOCSRATE ioctls. (The former usually works on an m68k/i386 machine, the latter for SPARC.) When these ioctls fail an ioport interface.

## FILES
/etc/rc.local

/dev/port


kdump-config

package: kdump-tools

title: kdump-config(8)

text:
# kdump-config(8)

## NAME
kdump-config - configure kdump, check status, or save a vmcore file

## SYNOPSIS
kdump-config { help | test | show | status | load | unload | savecore | propagate | symlinks {kernel-version} }

## DESCRIPTION
kdump-config manages the kdump feature of the Linux kernel. When a kdump enabled kernel panics, it immediately boots into a clean kernel called the kdump kernel. The memory image of the panicked kernel will be presented in /proc/vmcore while the kdump kernel (or "capture kernel") is running.

kdump-config loads the kdump kernel into the current kernel and after a kdump, captures the vmcore image via kdump kernel. kdump-config can take advantage of the linux-image-$(uname -r)-dbg package and will try to use makedumpfile to capture the vmcore. The crash tool can then be used to analyze the vmcore at a later time.

kdump-config exits with 0 on success and 1 on failure.

## COMMANDS
help

Print a usage summary.

test

Determine the parameters that would be used to load the kdump kernel, but do not load the kdump kernel. Useful for evaluating your configuration settings.

show

Show current parameters and the saved kexec command from the last kdump-config load.

status

Evaluate /sys/kernel/kexec_crash_loaded or /sys/kernel/fadump_register depending on the dump mode and print a corresponding message.

load

Load the kdump kernel or register if using firmware assisted dump (fadump)

unload

Unload the kdump kernel or unregister if using firmware assisted dump (fadump)

savecore

If /proc/vmcore exists, save it using makedumpfile.

propagate

Sends public ssh key to remote host for passwordless connection

symlinks {kernel-version}

Verify and create vmlinuz and initrd.img links in /var/lib/kdump according to the provided kernel version. If the target initrd.img file is absent, it will create it.

## FILES
/etc/rc.d/init.d/kdump-tools

init script to automatically load a kdump kernel, or save a vmcore and reboot.

/etc/default/kdump-tools

configuration file

/var/crash/kernel_link

a link to the current debug kernel

/var/crash/kexec_cmd

the last kexec_cmd executed by kdump-config

/var/lib/kdump/vmlinuz

Symbolic link pointing to the current kernel file in /boot

/var/lib/kdump/initrd.img

Symbolic link pointing to the initrd.img file with the current kernel version in /boot

## DIAGNOSTICS
USE_KDUMP is not set or zero

The variable USE_KDUMP in the file /etc/default/kdump-tools

is 0. To use kdump, edit the file and change the value to 1.

kdump is not supported by this kernel

The file /sys/kernel/kexec_crash_loaded does not exist. This means that the currently running kernel either was not configured to support kdump, or that a crashkernel= commandline parameter was not used when the currently running kernel booted.

no crashkernel= parameter in the kernel cmdline

a crashkernel= commandline parameter was not used when the currently running kernel booted. You will need to add a crashkernel= parameter to your /etc/lilo.conf, /etc/elilo.conf or grub /boot/grub/menu.lst file and reboot, before kdump will work. See installed READMEs for suggestions.

KDUMP_KERNEL does not exist: $KDUMP_KERNEL

A KDUMP_KERNEL was specified in /etc/default/kdump-tools, but it cannot be found.

KDUMP_INITRD does not exist: $KDUMP_INITRD

A KDUMP_INITRD was specified in /etc/default/kdump-tools, but it cannot be found.

```
no KDUMP_KERNEL in $KDUMP_DEFAULTS and
can't find a kdump package directory in /usr/lib
```

no kdump kernel could be found.

```
found a linux-kdump package in $KDUMP_PKG_DIR
but can't find a kdump kernel in $KDUMP_PKG_DIR
```

this indicates a broken linux-kdump package installation.

```
no kdump initrd image: $KDUMP_INITRD
an initrd will not be used
```

this indicates that although a kdump kernel was found, a corresponding initrd was not found.

kdump kernel relocation address does not match crashkernel= parameter

For non-relocatable architectures, the kdump kernel must be built with a predetermined start address. This message indicates that the start address of the kdump kernel and the start address in the crashkernel= parameter do not match.

failed to load kdump kernel

kexec reported that it could not load the kdump kernel.

failed to unload kdump kernel

kexec reported that it could not unload the kdump kernel. Run 'kexec -u' directly for more detail.

makedumpfile failed, falling back to 'cp'

this message is printed if the kdump-tools init script attempts to save a /proc/vmcore file using makedumpfile and the save fails.

failed to save vmcore in $KDUMP_STAMPDIR

this message indicates that makedumpfile and the fallback method of using cp has failed. This usually occurs if pathnames are wrong or if the disk is full.

Invalid argument : missing kernel version

The symlinks command was used with a kernel version that is not installed on this server

Invalid symlink : {symbolic link}

The listed symbolic link is absent, broken or pointing to the wrong version

Cannot change symbolic links when kdump is loaded

The defined symbolic links are already in use. You must unload kdump before using the symlinks command

Unable to locate kernel hook

The kdump-tools script responsible for the creation of smaller initrd.img files is absent from /usr/kernel/postinst.d

Invalid kernel version : {kernel version}

The kernel version given to the symlinks command does not exist

fadump is not configured in this kernel.

The Firmware Assisted Dump (fadump) facility is not available on this platform

SSH and NFS cannot be defined concurrently

Both variables are defined in /etc/default/kdump-tools. You must choose one or the other as configuration option.

Unable to mount remote NFS directory {directory}. Cannot save core

The remote NFS server does not authorize this server to mount the directory to save the crash dump.

Unable to write to the remote NFS directory {directory}. Cannot save core

The remote NFS directory can be mounted but this server cannot write files to it.

makedumpfile --dump-dmesg failed. dmesg content will be unavailable

The command to capture the content of the dmesg buffer failed. It will not be available in the crash directory

Unable to reach remote server {server}. No reason to continue

kdump-tools is configured for remote dump but the remote server cannot be reached.

makedumpfile scp failed. The vmcore file will not be available

The makedumpfile command was successful but the resulting file could not be copied over SSH to the remote server.

Remote ssh dump is not configured. No reason to propagate"

The propagate command was used but kdump is not configured for remote dump.

## SEE ALSO
/usr/share/doc/kdump-tools/README

/usr/share/doc/kdump-tools/README.Debian

kdump-tools(5), kexec(8), crash(8), gdb(1), makedumpfile(8)

## AUTHOR
Written by Terry Loftin <terry.loftin@hp.com> and Louis Bouchard <louis.bouchard@ubuntu.com>


kea-admin

package: kea-admin

title: kea-admin(8)

summary: Shell script for managing Kea databases

text:
# kea-admin(8)

## NAME
kea-admin - Shell script for managing Kea databases

## SYNOPSIS
kea-admin [command] [backend] [-h database_host] [-P database_port] [-u database_username] [-p [database_password]] [-n database_name] [-d script_directory] [-v] [-x extra_argument [-x extra_argument ...]] [-4 | -6] [-i input_file] [-o output_file] [-y]

## DESCRIPTION
kea-admin is a shell script that offers database maintenance. In particular, it features database initialization, database version checking, and database schema upgrading.

## ARGUMENTS
command

Specifies the command to be issued to the servers. It can be one of the following:

db-init

Initializes a new database schema. This is useful during a new Kea installation. The database is initialized to the latest version supported by the version of the software being installed.

db-version

Reports the database backend version number. This is not necessarily equal to the Kea version number, as each backend has its own versioning scheme.

db-upgrade

Conducts a database schema upgrade. This is useful when upgrading Kea.

lease-dump

Dumps the contents of the lease database (for MySQL or PostgreSQL backends) to a CSV (comma-separated values) text file. (Support for the Cassandra backend has been deprecated.) The first line of the file contains the column names. This can be used as a way to switch from a database backend to a memfile backend. It can also be used as a diagnostic tool, as it provides a portable form of the lease data. There are other mandatory arguments that must be used together with this command: either -4 or -6 must be specified, and either -o or --output must be provided.

lease-upload

Uploads leases from a CSV (comma-separated values) text file to a MySQL or a PostgreSQL lease database. The CSV file needs to be in memfile format. There are other mandatory arguments that must be used together with this command: either -4 or -6 must be specified, and either -i or --input must be provided.

stats-recount

Recounts lease statistics for a MySQL or PostgreSQL database.

backend

Specifies the backend type. Currently allowed backends are: memfile, mysql, and pgsql; cql has been deprecated.

-h|--host hostname

Specifies the hostname when connecting to a database. The default value is localhost.

-i|--input input_file

Specifies the CSV (comma-separated values) text file with the leases to be uploaded; required for lease-upload.

-P|--port port

Specifies the port when connecting to a database. If not specified, the default value chosen by the database client is used.

-u|--user username

Specifies the username when connecting to a database. The default value is keatest.

-p|--password password

Specifies the password when connecting to a database. If only -p or --password is given, the user is prompted for a password. If not specified at all, the KEA_ADMIN_DB_PASSWORD environment variable is checked for a value and used if it exists. Otherwise the default value of 1234 is used.

-n|--name database-name

Specifies the name of the database to connect to. The default value is keatest.

-d|--directory script-directory

Specifies the override scripts directory. That script is used during upgrades, database initialization, and possibly other operations. The default value is (prefix)/share/kea/scripts/.

-o|--output output_file

Specifies the file to which the lease data will be dumped. Required for lease-dump.

-v|--version

Displays the Kea version.

-V

Displays the extended Kea version.

-4

Directs kea-admin to lease-dump the DHCPv4 leases. Incompatible with the -6 option.

-6

Directs kea-admin to lease-dump the DHCPv6 leases. Incompatible with the -4 option.

-x|--extra

Specifies an extra argument to pass to the database command tool e.g. to invoke mysql with the --ssl argument. This can be repeated to pass more than one argument. Quotes are not preserved. Avoid commands containing spaces.

-y|--yes

Assume yes on overwriting temporary files.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## SEE ALSO
kea-dhcp4(8), kea-dhcp6(8), kea-dhcp-ddns(8), kea-ctrl-agent(8), keactrl(8), perfdhcp(8), kea-netconf(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


kea-shell

title: kea-shell(8)

summary: Text client for Control Agent process

text:
# kea-shell(8)

## NAME
kea-shell - Text client for Control Agent process

## SYNOPSIS
kea-shell [-h] [-v] [--host] [--port] [--path] [--ca] [--cert] [--key] [--auth-user] [--auth-password] [--auth-password-file] [--timeout] [--service] [command]

## DESCRIPTION
The kea-shell provides a REST client for the Kea kea-dhcp4, kea-dhcp6 and kea-dhcp-ddns servers. Previously it was meant for the Control Agent (CA) daemon, which is deprecated. It takes commands as a command-line parameter that is sent to the Kea server with proper JSON encapsulation. Optional arguments may be specified on the standard input. The request is sent via HTTP and a response is retrieved, displayed on the standard output. Basic HTTP authentication and HTTPS, i.e. TLS transport, are supported.

## ARGUMENTS
The arguments are as follows:

-h

Displays help regarding command-line parameters.

-v

Displays the Kea version.

--host

Specifies the host to connect to. The Kea server must be running at the specified host. If not specified, 127.0.0.1 is used.

--port

Specifies the TCP port to connect to. The server must be listening at the specified port. If not specified, 8000 is used.

--path

Specifies the path in the URL to connect to. If not specified, an empty path is used. As Kea servers listen at the empty path, this parameter is useful only with a reverse proxy.

--ca

Specifies the file or directory name of the Certification Authority. If not specified, HTTPS is not used.

--cert

Specifies the file name of the user end-entity public key certificate. If specified, the file name of the user key must also be specified.

--key

Specifies the file name of the user key file. If specified, the file name of the user certificate must also be specified. Encrypted key files are not supported.

--auth-user

Specifies the user ID for basic HTTP authentication. If not specified, or specified as the empty string, authentication is not used.

--auth-password

Specifies the password for basic HTTP authentication. If not specified but the user ID is specified, an empty password is used. If used together with --auth-password-file, it is disregarded.

--auth-password-file

Specifies a text file whose first line contains the password to be used for basic HTTP authentication. This flag takes precedence over --auth-password flag.

--timeout

Specifies the connection timeout, in seconds. The default is 10.

--service

(Obsolete) Kea kea-dhcp4, kea-dhcp6 and kea-dhcp-ddns servers ignore this argument. It was meant for communication with deprecated Control Agent daemon. If used with Kea version < 2.7.2: specifies the service that is the target of a command. If not specified, the Control Agent itself is targeted. May be used more than once to specify multiple targets.

command

Specifies the command to be sent to the server. If not specified, list-commands is used.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The kea-shell was first coded in March 2017 by Tomek Mrugalski.

## SEE ALSO
kea-dhcp4(8), kea-dhcp6(8), kea-dhcp-ddns(8), kea-ctrl-agent(8), kea-admin(8), keactrl(8), perfdhcp(8), kea-lfc(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


kea-lfc

package: kea-common

title: kea-lfc(8)

summary: Lease File Cleanup process in Kea

text:
# kea-lfc(8)

## NAME
kea-lfc - Lease File Cleanup process in Kea

## SYNOPSIS
kea-lfc [-4**|-6**] [-c config-file] [-p pid-file] [-x previous-file] [-i copy-file] [-o output-file] [-f finish-file] [-v] [-V] [-W] [-d] [-h]

## DESCRIPTION
The kea-lfc service process removes redundant information from the files used to provide persistent storage for the memfile database backend. The service is written to run as a stand-alone process. While it can be started externally, there is usually no need to do this. It is run periodically by the Kea DHCP servers.

## ARGUMENTS
The arguments are as follows:

-4 | -6

Indicates the protocol version of the lease files; must be either 4 or 6.

-c config-file

Specifies the file with the configuration for the kea-lfc process. It may also contain configuration entries for other Kea services. Currently kea-lfc gets all of its arguments from the command line.

-p pid-file

Specifies the PID file. When the kea-lfc process starts, it attempts to determine if another instance of the process is already running, by examining the PID file. If one is already running, the new process is terminated. If one is not running, Kea writes its PID into the PID file.

-x previous-file

Specifies the previous or ex-lease file. When kea-lfc starts, this is the result of any previous run of kea-lfc; when kea-lfc finishes, it is the result of the current run. If kea-lfc is interrupted before completing, this file may not exist.

-i copy-file

Specifies the input or copy of lease file. Before the DHCP server invokes kea-lfc, it moves the current lease file here and then calls kea-lfc with this file.

-o output-file

Specifies the output lease file, which is the temporary file kea-lfc should use to write the leases. Once this file is finished writing, it is moved to the finish file (see below).

-f finish-file

Specifies the finish or completion file, another temporary file kea-lfc uses for bookkeeping. When kea-lfc finishes writing the output file, it moves it to this file name. After kea-lfc finishes deleting the other files (previous and input), it moves this file to the previous lease file. By moving the files in this fashion, the kea-lfc and the DHCP server processes can determine the correct file to use even if one of the processes was interrupted before completing its task.

-v

Displays the Kea version.

-V

Displays the extended Kea version.

-W

Displays the configuration report.

-d

Sets the logging level to debug with extra verbosity. This is primarily for development purposes in stand-alone mode.

-h

Causes the usage string to be printed.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The kea-lfc process was first coded in January 2015 by the ISC Kea/DHCP team.

## SEE ALSO
kea-dhcp4(8), kea-dhcp6(8), kea-dhcp-ddns(8), kea-ctrl-agent(8), kea-admin(8), keactrl(8), perfdhcp(8), kea-netconf(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


kea-ctrl-agent

package: kea-ctrl-agent

title: kea-ctrl-agent(8)

summary: Control Agent process in Kea

text:
# kea-ctrl-agent(8)

## NAME
kea-ctrl-agent - Control Agent process in Kea

## SYNOPSIS
kea-ctrl-agent [-v] [-V] [-W] [-d] [-c config-file] [-t config-file]

## DESCRIPTION
The kea-ctrl-agent provides a REST service for controlling Kea services. The received HTTP requests are decapsulated and forwarded to the respective Kea services in JSON format. Received JSON responses are encapsulated within HTTP responses and returned to the controlling entity. Some commands may be handled by the Control Agent directly, and not forwarded to any Kea service.

## ARGUMENTS
The arguments are as follows:

-v

Displays the Kea version.

-V

Displays the extended Kea version.

-W

Displays the configuration report.

-d

Sets the logging level to debug with extra verbosity. This is primarily for development purposes in stand-alone mode.

-c config-file

Specifies the file with the configuration for the Control Agent server. It may also contain configuration entries for other Kea services.

-t config-file

Checks the syntax of the configuration file and reports the first error, if any. Note that not all parameters are completely checked; in particular, service and client sockets are not opened, and hook libraries are not loaded.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The kea-ctrl-agent was first coded in December 2016 by Marcin Siodelski.

## SEE ALSO
kea-dhcp4(8), kea-dhcp6(8), kea-dhcp-ddns(8), kea-admin(8), keactrl(8), perfdhcp(8), kea-lfc(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


kea-dhcp-ddns

package: kea-dhcp-ddns

title: kea-dhcp-ddns(8)

summary: DHCP-DDNS process in Kea

text:
# kea-dhcp-ddns(8)

## NAME
kea-dhcp-ddns - DHCP-DDNS process in Kea

## SYNOPSIS
kea-dhcp-ddns [-v] [-V] [-W] [-d] [-c config-file] [-t config-file]

## DESCRIPTION
The kea-dhcp-ddns service process requests an update of DNS mapping based on DHCP lease-change events. It runs as a separate process that expects to receive Name Change Requests from Kea DHCP servers.

## ARGUMENTS
The arguments are as follows:

-v

Displays the Kea version.

-V

Displays the extended Kea version.

-W

Displays the configuration report.

-d

Sets the logging level to debug with extra verbosity. This is primarily for development purposes in stand-alone mode.

-c config-file

Specifies the configuration file with the configuration for the DHCP-DDNS server. It may also contain configuration entries for other Kea services.

-t config-file

Checks the syntax of the configuration file and reports the first error, if any. Note that not all parameters are completely checked; in particular, a service socket is not opened.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The b10-dhcp-ddns process was first coded in May 2013 by Thomas Markwalder.

Kea became a standalone server and the BIND 10 framework was removed. The DHCP-DDNS server binary was renamed to kea-dhcp-ddns in July 2014. Kea 1.0.0 was released in December 2015.

## SEE ALSO
kea-dhcp4(8), kea-dhcp6(8), kea-ctrl-agent(8), kea-admin(8), keactrl(8), perfdhcp(8), kea-netconf(8), kea-lfc(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


title: kea-dhcp4(8)

summary: DHCPv4 server in Kea

text:
# kea-dhcp4(8)

## NAME
kea-dhcp4 - DHCPv4 server in Kea

## SYNOPSIS
kea-dhcp4 [-v] [-V] [-W] [-d] [-c config-file] [-t config-file] [-p server-port-number] [-P client-port-number]

## DESCRIPTION
The kea-dhcp4 daemon provides the DHCPv4 server implementation.

## ARGUMENTS
The arguments are as follows:

-v

Displays the Kea version.

-V

Displays the extended Kea version.

-W

Displays the configuration report.

-d

Enables the debug mode with extra verbosity.

-c config-file

Specifies the configuration file with the configuration for the DHCPv4 server. It may also contain configuration entries for other Kea services.

-t config-file

Checks the configuration file and reports the first error, if any. Note that not all parameters are completely checked; in particular, service and control channel sockets are not opened, and hook libraries are not loaded.

-T config-file

Checks the configuration file and reports the first error, if any. It performs extra checks beyond what -t offers, such as establishing database connections (for the lease backend, host reservations backend, configuration backend, and forensic logging backend), loading hook libraries, parsing hook-library configurations, etc. It does not open UNIX or TCP/UDP sockets, nor does it open or rotate files, as any of these actions could interfere with a running process on the same machine.

-p server-port-number

Specifies the server port number (1-65535) on which the server listens. This is useful for testing purposes only.

-P client-port-number

Specifies the client port number (1-65535) to which the server responds. This is useful for testing purposes only.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The b10-dhcp4 daemon was first coded in November 2011 by Tomek Mrugalski.

In mid-2014, Kea was decoupled from the BIND 10 framework and became a standalone DHCP server. The DHCPv4 server binary was renamed to kea-dhcp4. Kea 1.0.0 was released in December 2015.

## SEE ALSO
kea-dhcp6(8), kea-dhcp-ddns(8), kea-ctrl-agent(8), kea-admin(8), keactrl(8), perfdhcp(8), kea-netconf(8), kea-lfc(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


title: kea-dhcp6(8)

summary: DHCPv6 server in Kea

text:
# kea-dhcp6(8)

## NAME
kea-dhcp6 - DHCPv6 server in Kea

## SYNOPSIS
kea-dhcp6 [-v] [-V] [-W] [-d] [-c config-file] [-t config-file] [-p server-port-number] [-P client-port-number]

## DESCRIPTION
The kea-dhcp6 daemon provides the DHCPv6 server implementation.

## ARGUMENTS
The arguments are as follows:

-v

Displays the Kea version.

-V

Displays the extended Kea version.

-W

Displays the configuration report.

-d

Enables the debug mode with extra verbosity.

-c config-file

Specifies the configuration file with the configuration for the DHCPv6 server. It may also contain configuration entries for other Kea services.

-t config-file

Checks the configuration file and reports the first error, if any. Note that not all parameters are completely checked; in particular, service and control channel sockets are not opened, and hook libraries are not loaded.

-T config-file

Checks the configuration file and reports the first error, if any. It performs extra checks beyond what -t offers, such as establishing database connections (for the lease backend, host reservations backend, configuration backend, and forensic logging backend), loading hook libraries, parsing hook-library configurations, etc. It does not open UNIX or TCP/UDP sockets, nor does it open or rotate files, as any of these actions could interfere with a running process on the same machine.

-p server-port-number

Specifies the server port number (1-65535) on which the server listens. This is useful for testing purposes only.

-P client-port-number

Specifies the client port number (1-65535) to which the server responds. This is useful for testing purposes only.

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The b10-dhcp6 daemon was first coded in June 2011 by Tomek Mrugalski.

In mid-2014, Kea was decoupled from the BIND 10 framework and became a standalone DHCP server. The DHCPv6 server binary was renamed to kea-dhcp6. Kea 1.0.0 was released in December 2015.

## SEE ALSO
kea-dhcp4(8), kea-dhcp-ddns(8), kea-ctrl-agent(8), kea-admin(8), keactrl(8), perfdhcp(8), kea-netconf(8), kea-lfc(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


perfdhcp

package: kea-perfdhcp

title: perfdhcp(8)

summary: DHCP benchmarking tool

text:
# perfdhcp(8)

## NAME
perfdhcp - DHCP benchmarking tool

## SYNOPSIS
perfdhcp [-1] [-4 | -6] [-A encapsulation-level] [-b base] [-B] [-c] [-C separator] [-d drop-time] [-D max-drop] [-e lease-type] [-E time-offset] [-f renew-rate] [-F release-rate] [-g thread-mode] [-h] [-i] [-I ip-offset] [-J remote-address-list-file] [-l local-address|interface] [-L local-port] [-M mac-list-file] [-n num-request] [-N remote-port] [-O random-offset] [-o code,hexstring] [--or encapsulation-level:code,hexstring] [-p test-period] [-P preload] [-r rate] [-R num-clients] [-s seed] [-S srvid-offset] [--scenario name] [-t report] [-T template-file] [-u] [-v] [-W exit-wait-time] [-w script_name] [-x diagnostic-selector] [-X xid-offset] [server]

## DESCRIPTION
perfdhcp is a DHCP benchmarking tool. It provides a way to measure the performance of DHCP servers by generating large amounts of traffic from multiple simulated clients. It is able to test both IPv4 and IPv6 servers, and provides statistics concerning response times and the number of requests that are dropped.

The tool supports two different scenarios, which offer certain behaviors to be tested. By default (the basic scenario), tests are run using the full four-packet exchange sequence (DORA for DHCPv4, SARR for DHCPv6). An option is provided to run tests using the initial two-packet exchange (DO and SA) instead. It is also possible to configure perfdhcp to send DHCPv6 RENEW and RELEASE messages at a specified rate, in parallel with the DHCPv6 four-way exchanges. By default, if there is no response received with one second, a response is considered lost and perfdhcp continues with other transactions.

A second scenario, called avalanche, is selected via --scenario avalanche. It first sends the number of Discovery or Solicit messages specified by the -R option; then a retransmission (with an exponential back-off mechanism) is used for each simulated client, until all requests are answered. It generates a report when all clients receive their addresses, or when it is manually stopped. This scenario attempts to replicate a case where the server is not able to handle the traffic swiftly enough. Real clients will assume the packet or response was lost and will retransmit, further increasing DHCP traffic. This is sometimes called an avalanche effect, thus the scenario name. Option -p is ignored in the avalanche scenario.

When running a performance test, perfdhcp exchanges packets with the server under test as quickly as possible, unless the -r parameter is used to limit the request rate. The length of the test can be limited by setting a threshold on any or all of the number of requests made by perfdhcp, the elapsed time, or the number of requests dropped by the server.

## TEMPLATES
To allow the contents of packets sent to the server to be customized, perfdhcp allows the specification of template files that determine the contents of the packets. For example, the customized packet may contain a DHCPv6 ORO to request a set of options to be returned by the server, or it may contain the Client FQDN option to request that the server perform DNS updates. This may be used to discover performance bottlenecks for different server configurations (e.g. DDNS enabled or disabled).

Up to two template files can be specified on the command line, with each file representing the contents of a particular type of packet, and the type being determined by the test being carried out. For example, if testing DHCPv6:

- With no template files specified on the command line, perfdhcp generates both Solicit and Request packets.

- With one template file specified, that file is used as the pattern for Solicit packets: perfdhcp generates the Request packets.

- With two template files given on the command line, the first is used as the pattern for Solicit packets, and the second as the pattern for Request packets.

(A similar determination applies to DHCPv4's DHCPDISCOVER and DHCPREQUEST packets.)

The template file holds the DHCP packet, represented as a stream of ASCII hexadecimal digits; it excludes any IP/UDP stack headers. The template file must not contain any characters other than hexadecimal digits and spaces. Spaces are discarded when the template file is parsed; in the file, 12B4 is the same as 12 B4, which is the same as 1 2 B 4.

The template files should be used in conjunction with the command-line parameters which specify offsets of the data fields being modified in outbound packets. For example, the -E time-offset switch specifies the offset of the DHCPv6 Elapsed Time option in the packet template. If the offset is specified, perfdhcp injects the current elapsed-time value into this field before sending the packet to the server.

In many scenarios, perfdhcp needs to simulate multiple clients, each having a unique client identifier. Since packets for each client are generated from the same template file, it is necessary to randomize the client identifier (or HW address in DHCPv4) in the packet created from it. The -O random-offset option allows specification of the offset in the template where randomization should be performed. It is important to note that this offset points to the end (not the beginning) of the client identifier (or HW address field). The number of bytes being randomized depends on the number of simulated clients. If the number of simulated clients is between 1 and 255, only one byte (to which the randomization offset points) is randomized. If the number of simulated clients is between 256 and 65535, two bytes are randomized. Note that the last two bytes of the client identifier are randomized in this case: the byte which the randomization offset parameter points to, and the one which precedes it (random-offset - 1). If the number of simulated clients exceeds 65535, three bytes are randomized, and so on.

perfdhcp can simulate traffic from multiple subnets by enabling option -J and passing a path to a file that contains v4 or v6 addresses to be used as relays in generated messages. That enables testing of vast numbers of Kea shared networks. While testing DHCPv4, Kea should be started with the KEA_TEST_SEND_RESPONSES_TO_SOURCE environment variable, to force Kea to send generated messages to the source address of the incoming packet.

Templates may currently be used to generate packets being sent to the server in 4-way exchanges, i.e. Solicit, Request (DHCPv6) and DHCPDISCOVER, DHCPREQUEST (DHCPv4). They cannot be used when Renew or DHCPRELEASE packets are being sent.

## OPTIONS
-1

Takes the server-id option from the first received message.

-4

Establishes DHCPv4 operation; this is the default. It is incompatible with the -6 option.

-6

Establishes DHCPv6 operation. It is incompatible with the -4 option.

-b basetype=value

Indicates the base MAC or DUID used to simulate different clients. The basetype may be "mac" or "duid". (The keyword "ether" may alternatively used for MAC.) The -b option can be specified multiple times. The MAC address must consist of six octets separated by single (:) or double (::) colons; for example: mac=00:0c:01:02:03:04. The DUID value is a hexadecimal string; it must be at least six octets long and not longer than 64 bytes, and the length must be less than 128 hexadecimal digits. For example: duid=0101010101010101010110111F14.

-d drop-time

Specifies the time after which a request is treated as having been lost. The value is given in seconds and may contain a fractional component. The default is 1.

-e lease-type

Specifies the type of lease being requested from the server. It may be one of the following:

address-only

Only regular addresses (v4 or v6) are requested.

prefix-only

Only IPv6 prefixes are requested.

address-and-prefix

Both IPv6 addresses and prefixes are requested.

The -e prefix-only and -e address-and-prefix forms may not be used with the -4 option.

-F release-rate

Specifies the rate at which DHCPv4 DHCPRELEASE or DHCPv6 Release requests are sent to a server. This value is only valid when used in conjunction with the exchange rate (given by -r rate). Furthermore, the sum of this value and the renew-rate (given by -f rate) must be equal to or less than the exchange rate value.

-f renew-rate

Specifies the rate at which DHCPv4 DHCPREQUEST or DHCPv6 Renew requests are sent to a server. This value is only valid when used in conjunction with the exchange rate (given by -r rate). Furthermore, the sum of this value and the release-rate (given by -F rate) must be equal to or less than the exchange rate.

-g thread-mode

Allows selection of thread-mode, which can be either single or multi. In multi-thread mode, packets are received in a separate thread, which allows better utilisation of CPUs. In a single-CPU system it is better to run in one thread, to avoid threads blocking each other. If more than one CPU is present in the system, multi-thread mode is the default; otherwise single-thread is the default.

-h

Prints help and exits.

-i

Performs only the initial part of the exchange: DISCOVER-OFFER if -4 is selected, Solicit-Advertise if -6 is chosen. -i is incompatible with the following options: -1, -d, -D, -E, -S, -I and -F. In addition, it cannot be used with multiple instances of -O, -T, and -X.

-J remote-address-list-file

Specifies a text file that includes multiple addresses, and is designed to test shared networks. If provided, perfdhcp randomly chooses one of the addresses for each exchange, to generate traffic from multiple subnets. When testing DHCPv4, it should be started with the KEA_TEST_SEND_RESPONSES_TO_SOURCE=ENABLE environment variable; otherwise, perfdhcp will not be able to receive responses.

-l local-addr|interface

For DHCPv4 operation, specifies the local hostname/address to use when communicating with the server. By default, the interface address through which traffic would normally be routed to the server is used. For DHCPv6 operation, specifies the name of the network interface through which exchanges are initiated.

-L local-port

Specifies the local port to use. This must be zero or a positive integer up to 65535. A value of 0 (the default) allows perfdhcp to choose its own port.

-M mac-list-file

Specifies a text file containing a list of MAC addresses, one per line. If provided, a MAC address is chosen randomly from this list for every new exchange. In DHCPv6, MAC addresses are used to generate DUID-LLs. This parameter must not be used in conjunction with the -b parameter.

-N remote-port

Specifies the remote port to use. This must be zero or a positive integer up to 65535. A value of 0 (the default) allows perfdhcp to choose the standard service port.

-o code,hexstring

Forces perfdhcp to insert the specified extra option (or options if used multiple times) into packets being transmitted. The code specifies the option code, and the hexstring is a hexadecimal string that defines the content of the option. Care should be taken, as perfdhcp does not offer any kind of logic behind the options; they are simply inserted into packets and sent as is. Be careful not to duplicate options that are already inserted. For example, to insert the client-class identifier (option code 60) with the string "docsis", use -o 60,646f63736973. The -o may be used multiple times. The protocol family (-4 or -6) must be specified before using -o.

-P preload

Initiates preload exchanges back-to-back at startup. Must be 0 (the default) or a positive integer.

-r rate

Initiates the rate of DORA/SARR (or if -i is given, DO/SA) exchanges per second. A periodic report is generated showing the number of exchanges which were not completed, as well as the average response latency. The program continues until interrupted, at which point a final report is generated.

-R num-clients

Specifies how many different clients are used. With a value of 1 (the default), all requests appear to come from the same client. Must be a positive number.

-s seed

Specifies the seed for randomization, making runs of perfdhcp repeatable. This must be 0 or a positive integer. The value 0 means that a seed is not used; this is the default.

--scenario name

Specifies the type of scenario, and can be basic (the default) or avalanche.

-T template-file

Specifies a file containing the template to use as a stream of hexadecimal digits. This may be specified up to two times and controls the contents of the packets sent (see the "Templates" section above).

-u

Enables checks for address uniqueness. The lease valid-lifetime should not be shorter than the test duration, and clients should not request an address more than once without releasing it.

-v

Displays the Kea version.

-V

Displays the extended Kea version.

-W exit-wait-time

Specifies the exit-wait-time parameter, which causes perfdhcp to wait for a certain amount of time after an exit condition has been met, to receive all packets without sending any new packets. Expressed in microseconds. If not specified, 0 is used (i.e. exit immediately after exit conditions are met).

-w script_name

Specifies the name of the script to be run before/after perfdhcp. When called, the script is passed a single parameter, either "start" or "stop", indicating whether it is being called before or after perfdhcp.

-x diagnostic-selector

Includes extended diagnostics in the output. This is a string of single keywords specifying the operations for which verbose output is desired. The selector key letters are:

a

Prints the decoded command-line arguments.

e

Prints the exit reason.

i

Prints the rate-processing details.

l

Prints the received leases.

s

Prints the first server ID.

t

When finished, prints timers of all successful exchanges.

T

When finished, prints templates.

-Y seconds

Time in seconds after which perfdhcp starts simulating the client waiting longer for server responses. This increases the secs field in DHCPv4 and sends increased values in the Elapsed Time option in DHCPv6. Must be used with -y.

-y seconds

Time in seconds during which perfdhcp simulates the client waiting longer for server responses. This increases the secs field in DHCPv4 and sends increased values in the Elapsed Time option in DHCPv6. Must be used with -Y.

## DHCPV4-ONLY OPTIONS
The following options only apply for DHCPv4 (i.e. when -4 is given).

-B

Forces broadcast handling.

## DHCPV6-ONLY OPTIONS
The following options only apply for DHCPv6 (i.e. when -6 is given).

-c

Adds a rapid-commit option (exchanges are Solicit-Advertise).

-A encapsulation-level

Specifies that relayed traffic must be generated. The argument specifies the level of encapsulation, i.e. how many relay agents are simulated. Currently the only supported encapsulation-level value is 1, which means that the generated traffic is equivalent to the amount of traffic passing through a single relay agent.

--or encapsulation-level:code,hexstring

Forces perfdhcp to insert the specified extra option (or options if used multiple times) into a relayed DHCPv6 message at the given level of encapsulation; currently, the only supported encapsulation-level value is 1. This option is very similar to -o: the code specifies the option code, and the hexstring is a hexadecimal string that defines the content of the option. Care should be taken, as perfdhcp does not offer any kind of logic behind the options; they are simply inserted into packets and sent as is. encapsulation-level: is optional; if it is omitted, the default encapsulation-level value 1 is used. For example, to insert the Subscriber identifier (option code 38) with a value 1234 at the first level of encapsulation, use --or 38,31323334 or --or 1:38,31323334. The --or may be used multiple times, and it must be used in conjunction with -A.

## TEMPLATE-RELATED OPTIONS
The following options may only be used in conjunction with -T and control how perfdhcp modifies the template. The options may be specified multiple times on the command line; each occurrence affects the corresponding template file (see "Templates" above).

-E time-offset

Specifies the offset of the secs field (DHCPv4) or Elapsed Time option (DHCPv6) in the second (i.e. Request) template; must be 0 or a positive integer. A value of 0 disables this.

-I ip-offset

Specifies the offset of the IP address (DHCPv4) in the requested-ip option or IA_NA option (DHCPv6) in the second (Request) template.

-O random-offset

Specifies the offset of the last octet to randomize in the template. This must be an integer greater than 3. The -T switch must be given to use this option.

-S srvid-offset

Specifies the offset of the server-id option in the second (Request) template. This must be a positive integer, and the switch can only be used when the template option (-T) is also given.

-X xid-offset

Specifies the offset of the transaction ID (xid) in the template. This must be a positive integer, and the switch can only be used when the template option (-T) is also given.

## OPTIONS CONTROLLING A TEST
-D max-drop

Aborts the test immediately if "max-drop" requests have been dropped. Use -D 1 to abort if even a single request has been dropped. "max-drop" must be a positive integer. If "max-drop" includes the suffix %, it specifies the maximum percentage of requests that may be dropped before aborting. In this case, testing of the threshold begins after 10 requests are expected to have been received.

-n num-requests

Initiates "num-request" transactions. No report is generated until all transactions have been initiated/waited-for, after which a report is generated and the program terminates.

-p test-period

Sends requests for "test-period", which is specified in the same manner as -d. This can be used as an alternative to -n, or both options can be given, in which case the testing is completed when either limit is reached.

-t interval

Sets the delay (in seconds) between two successive reports.

-C separator

Suppresses the preliminary output and causes the interim data to only contain the values delimited by separator. Used in conjunction with -t to produce easily parsable reports at -t intervals.

## ARGUMENTS
server

Indicates the server to test, specified as an IP address. In the DHCPv6 case, the special name all can be used to refer to All_DHCP_Relay_Agents_and_Servers (the multicast address FF02::1:2), or the special name servers to refer to All_DHCP_Servers (the multicast address FF05::1:3). The server is mandatory except where the -l option is given to specify an interface, in which case it defaults to all.

## ERRORS
perfdhcp can report the following errors in the packet exchange:

tooshort

A message was received that was too short.

orphans

A message was received which does not match one sent to the server (i.e. it is a duplicate message, a message that has arrived after an excessive delay, or one that is just not recognized).

locallimit

Local system limits have been reached when sending a message.

## EXIT STATUS
perfdhcp exits with one of the following status codes:

0

Success.

1

General error.

2

Error in command-line arguments.

3

No general failures in operation, but one or more exchanges were unsuccessful.

## USAGE EXAMPLES
Here is an example that simulates regular DHCPv4 traffic of 100 DHCPv4 devices (-R 100), 10 packets per second (-r 10), shows the query/response rate details (-xi), shows a report every 2 seconds (-t 2), and sends the packets to the IP 192.0.2.1:

```
sudo perfdhcp -xi -t 2 -r 10 -R 100 192.0.2.1
```

Here's a similar case, but for DHCPv6. Note that the DHCPv6 protocol uses link-local addresses, so the interface (eth0 in this example) must be specified on which to send the traffic. all is a convenience alias for All_DHCP_Relay_Agents_and_Servers (the multicast address FF02::1:2). It is also possible to use the servers alias to refer to All_DHCP_Servers (the multicast address FF05::1:3). The default is all.

```
sudo perfdhcp -6 -xi -t 1 -r 1 -R 10 -l eth0 all
```

The following examples simulate normal DHCPv4 and DHCPv6 traffic that, after 3 seconds, starts pretending not to receive any responses from the server for 10 seconds. The DHCPv4 protocol signals this by an increased secs field, while DHCPv6 uses the Elapsed Time option. In real networks, this indicates that clients are not getting responses in a timely matter. This can be used to simulate some HA scenarios, as Kea uses the secs field and Elapsed Time option value as one of the indicators that the HA partner is not responding. When enabled with -y and -Y, the secs and Elapsed Time values increase steadily.

```
sudo perfdhcp -xi -t 1 -r 1 -y 10 -Y 3 192.0.2.1
sudo perfdhcp -6 -xi -t 1 -r 1 -y 10 -Y 3 2001:db8::1
```

## DOCUMENTATION
Kea comes with an extensive Kea Administrator Reference Manual that covers all aspects of running the Kea software - compilation, installation, configuration, configuration examples, and much more. Kea also features a Kea Messages Manual, which lists all possible messages Kea can print with a brief description for each of them. Both documents are available in various formats (.txt, .html, .pdf) with the Kea distribution. The Kea documentation is available at <https://kea.readthedocs.io>.

Kea source code is documented in the Kea Developer's Guide, available at <https://reports.kea.isc.org/dev_guide/>.

The Kea project website is available at <https://kea.isc.org>.

## MAILING LISTS AND SUPPORT
There are two public mailing lists available for the Kea project. kea-users (kea-users at lists.isc.org) is intended for Kea users, while kea-dev (kea-dev at lists.isc.org) is intended for Kea developers, prospective contributors, and other advanced users. Both lists are available at <https://lists.isc.org>. The community provides best-effort support on both of those lists.

ISC provides professional support for Kea services. See <https://www.isc.org/kea/> for details.

## HISTORY
The perfdhcp tool was initially coded in October 2011 by John DuBois, Francis Dupont, and Marcin Siodelski of ISC. Kea 1.0.0, which included perfdhcp, was released in December 2015.

## SEE ALSO
kea-dhcp4(8), kea-dhcp6(8), kea-dhcp-ddns(8), kea-ctrl-agent(8), kea-admin(8), kea-netconf(8), keactrl(8), kea-lfc(8), Kea Administrator Reference Manual.

## Author
Internet Systems Consortium

## Copyright
2019-2025, Internet Systems Consortium


keama

package: keama

title: keama(8)

text:
# keama(8)

## NAME
keama - Kea Migration Assistant

## SYNOPSIS
keama [ -4 | -6] [ -D ] [ -N ] [ -r {perform|fatal|pass} ] [ -l hook-library-path ] [ -i input-file ] [ -o output-file ]

## DESCRIPTION
The Kea Migration Assistant converts an ISC DHCP configuration file into the corresponding Kea configuration file.

## COMMAND LINE
Protocol selection options:

-4

The input configuration is for DHCPv4. Incompatible with the -6 option.

-6

The input configuration is for DHCPv6. Incompatible with the -4 option.

-D

Define ISC DHCP minimum, default and maximum builtin lifetimes.

-N

Instead of using global host reservations, put them in the matching subnet.

-r action

Specify what to do with hostnames: resolve them into their first address, raise a fatal error or pass them silently.

-p hook-library-path

Specify the path where hook libraries (e.g. flex-id) can be found

-i input-file

Specify the ISC DHCP configuration file to read. When it is not given the standard input is used.

-o output-file

Specify the Kea configuration file to write. When it is not given the standard output is used.

The number of conversion failures is returned. Note that any parsing warning or error is fatal so please check and fix the ISC DHCP configuration file before using this tool.

## SEE ALSO
dhcpd(8), kea-dhcp4(8), kea-dhcp6(8).

## AUTHOR
keama(8) To learn more about Internet Systems Consortium, see https://www.isc.org