lircrcd

title: lircrcd(8)

text:
# lircrcd(8)

## NAME
lircrcd - Synchronize lircrc state among client applications.

## SYNOPSIS
lircrcd [options] config-file

## DESCRIPTION
lircrcd reads the given .lircrc config file and synchronises the mode that the LIRC clients such as irexec(1), irxevent(1), etc., are in. Using lircrcd has to be explicitly enabled in the lircrc config file by adding the following line at the beginning of the file:

lircrc_class default

This must be done at the top-level file, not an included one. The lircrc_class string (here "default") could actually be anything; clients using the same string in their lircrc will be synchronized.

## OPTIONS
-h --help

Display help message.

-v --version

Display version.

-p, --permission=mode

The --permission option gives the file permission of the Unix domain socket lircrcd creates on startup in octal representation. Read the documentation for chmod for further details. If no --permission option is given when the socket is created the default is to give only the user owning the file read and write permissions (0600 in octal representation).

-o, --output=socket

With the --output option you can select the Unix domain socket, which lircrcd will create. The default is to create a socket in VARRUNDIR (/var/run/lirc), see FILES.

## SOCKET PROTOCOL
lircrcd syntactically uses the same protocol as lircd described in the lircd(8) manpage. It supports the following commands:

IDENT ident

Each program connecting to lircrcd identifies itself using this program. ident is the string that is used in the Prog = token inside the .lircrc file.

CODE code

When the client receives the code string from lircd it will send it to lircrcd and will receive back the applicable config string from the .lircrc config file. It should resend the CODE command until nothing is returned back which means that nothing (more) should happen in response to code. This command is used each time the lirc_code2char() function is called by a client.

GETMODE

lircrcd will return the current mode string.

SETMODE mode

lircrcd will set the actual mode, reflecting a mode in the .lircrc file.

## FILES
lircrcd creates its socket(s) in the VARRUNDIR directory (/var/run/lirc). The socket basename includes the user UID and the string from the lircrc_class option.

## SEE ALSO
The documentation for lirc is maintained as html pages. They are located under html/ in the documentation directory.


lizardfs-admin

package: lizardfs-adm

title: lizardfs-admin(8)

text:
# lizardfs-admin(8)

## NAME
lizardfs-admin, lizardfs-probe - LizardFS monitoring and administration tool

## SYNOPSIS
lizardfs-admin COMMAND [OPTIONS...] [ARGUMENTS...]

## AVAILABLE COMMANDS
chunks-health <master ip> <master port>

Returns chunks health reports in the installation. By default (if no report is specified) all reports will be shown. In replication and deletion states, the column means the number of chunks with number of copies specified in the label to replicate/delete. Possible command-line options:

--availability

Print report about availability of chunks.

--replication

Print report about about number of chunks that need replication.

--deletion

Print report about about number of chunks that need deletion.

info <master ip> <master port>

Prints statistics concerning the LizardFS installation.

iolimits-status <master ip> <master port>

Prints current configuration of global I/O limiting

list-chunkservers <master ip> <master port>

Prints information about all connected chunkservers.

list-disks <master ip> <master port>

Prints information about all connected chunkservers. Possible command-line options:

--verbose

Be a little more verbose and show operations statistics.

list-goals <master ip> <master port>

List goal definitions. Possible command-line options:

--pretty

Print nice table

list-mounts <master ip> <master port>

Prints information about all connected mounts. Possible command-line options

--verbose

Be a little more verbose and show goal and trash time limits.

metadataserver-status <master ip> <master port>

Prints status of a master or shadow master server

list-metadataservers <master ip> <master port>

Prints status of active metadata servers.

ready-chunkservers-count <master ip> <master port>

Prints number of chunkservers ready to be written to.

promote-shadow <shadow ip> <shadow port>

Promotes metadata server. Works only if personality ha-cluster-managed is used. Authentication with the admin password is required.

stop-master-without-saving-metadata <master ip> <master port>

Stop the master server without saving metadata in the metadata.mfs file. Used to quickly migrate a metadata server (works for all personalities). Authentication with the admin password is required.

reload-config <master ip> <master port>

Requests reloading configuration from the config file. This is synchronous (waits for reload to finish). Authentication with the admin password is required.

save-metadata <metadataserver ip> <metadataserver port>

Requests saving the current state of metadata into the metadata.mfs file. With --async fail if the process cannot be started, e.g. because the process is already in progress. Without --async, fails if either the process cannot be started or if it finishes with an error (i.e., no metadata file is created). Authentication with the admin password is required. Possible command-line options:

--async

Don’t wait for the task to finish.

## COMMON COMMAND OPTIONS
--porcelain

Make the output parsing-friendly.

## COPYRIGHT
Copyright 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.


lizardfs-cgiserver

package: lizardfs-cgiserv

title: lizardfs-cgiserver(8)

text:
# lizardfs-cgiserver(8)

## NAME
lizardfs-cgiserver - simple HTTP/CGI server for Lizard File System monitoring

## SYNOPSIS

```
lizardfs-cgiserver [-H BIND-HOST] [-P BIND-PORT] [-R ROOT-PATH] [-v]
```

```
lizardfs-cgiserver -h
```

## DESCRIPTION
lizardfs-cgiserver is a very simple HTTP server capable of running CGI scripts for Lizard File System monitoring. It just runs in foreground and works until killed with e.g. SIGINT or SIGTERM.

## OPTIONS
-h

print usage information and exit

-H BIND_HOST

local address to listen on (default: any)

-P BIND_PORT

port to listen on (default: 9425)

-R ROOT_PATH

local path to use as HTTP document root (default is CGIDIR set up at configure time)

-v

log requests on stderr

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
moosefs(7)


mfscgiserv

title: mfscgiserv(8)

text:
# mfscgiserv(8)

## NAME
mfscgiserv - start HTTP/CGI server for Lizard File System monitoring

## SYNOPSIS

```
mfscgiserv [-H BIND-HOST] [-P BIND-PORT] [-R ROOT-PATH]

             [-D DATA-PATH] [-t LOCKTIMEOUT] [-f [-v]] [ACTION]
```

```
mfscgiserv -h
```

## DESCRIPTION

```
######################## ! DEPRECATION WARNING ! #########################
#                                                                        #
# mfscgiserv service is deprecated, please use lizardfs-cgiserv instead. #
# See manual entry lizardfs-cgiserver(8) for details.                    #
#                                                                        #
######################## ! DEPRECATION WARNING ! #########################
```

mfscgiserv is a very simple HTTP server capable of running CGI scripts for Lizard File System monitoring.

## OPTIONS
-h

print usage information and exit

-H BIND_HOST

local address to listen on (default: any)

-P BIND_PORT

port to listen on (default: 9425)

-R ROOT_PATH

local path to use as HTTP document root (default is CGIDIR set up at configure time)

-D DATA_PATH

local path to store data, e.g. a lockfile (default is DATA_PATH set up at configure time)

-f

run in foreground, don’t daemonize

-v

log requests on stderr

-t LOCKTIMEOUT

how long to wait for lockfile (default is 60 seconds)

ACTION is the one of start, stop, restart or test. Default action is restart.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
moosefs(7)


mfschunkserver

package: lizardfs-chunkserver

title: mfschunkserver(8)

text:
# mfschunkserver(8)

## NAME
mfschunkserver - start, restart or stop Lizard File System chunkserver process

## SYNOPSIS

```
mfschunkserver [-f] [-c CFGFILE] [-u] [-d] [-t LOCKTIMEOUT] [ACTION]
```

```
mfschunkserver -s [-c CFGFILE]
```

```
mfschunkserver -v
```

```
mfschunkserver -h
```

## DESCRIPTION
mfschunkserver is the data server of Lizard File System. Depending on parameters it can start, restart or stop LizardFS chunkserver process. Without any options it starts LizardFS chunkserver, killing previously run process if lock file exists.

SIGHUP (or reload ACTION) forces mfschunkserver to reload all configuration files.

Chunkserver periodically tests stored chunks (see HDD_TEST_FREQ option in mfschunkserver.cfg manual).

LizardFS master doesn’t send metadata change logs to chunkserver and expect at least one mfsmetalogger daemon to connect.

Chunkserver scans attached disks in background.

## OPTIONS
-v

print version information and exit

-h

print usage information and exit

-f

(deprecated, use start action instead) forcily run LizardFS chunkserver process, without trying to kill previous instance (this option allows to run LizardFS chunkserver if stale PID file exists)

-s

(deprecated, use stop action instead) stop LizardFS chunkserver process

-c CFGFILE

specify alternative path of configuration file (default is mfschunkserver.cfg in system configuration directory)

-u

log undefined configuration values (when default is assumed)

-d

run in foreground, don’t daemonize

-t LOCKTIMEOUT

how long to wait for lockfile (default is 60 seconds)

ACTION is the one of start, stop, restart, reload, test, isalive or kill. Default action is restart.

## FILES
mfschunkserver.cfg

configuration file for LizardFS chunkserver process; refer to mfschunkserver.cfg(5) manual for defails

mfshdd.cfg

list of directories (mountpoints) used for LizardFS storage (one per line; directory prefixed by * character causes given directory to be freed by replicating all data already stored there to another locations)

mfschunkserver.lock

PID file of running LizardFS chunkserver process

.mfschunkserver.lock

lock file of running LizardFS chunkserver process (created in data directory)

data.csstats

Chunkserver charts state

## REPORTING BUGS
Report bugs to <contact@lizardfs.org>.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfsmaster(8), mfsmount(1), mfschunkserver.cfg(5), mfshdd.cfg(5), moosefs(7)


mfsmaster

package: lizardfs-master

title: mfsmaster(8)

text:
# mfsmaster(8)

## NAME
mfsmaster - start, restart or stop Lizard File System metadata server process

## SYNOPSIS

```
mfsmaster [-f] [-c CFGFILE] [-u] [-d] [-t LOCKTIMEOUT] [ACTION]
```

```
mfsmaster -s [-c CFGFILE]
```

```
mfsmaster -v
```

```
mfsmaster -h
```

## DESCRIPTION
mfsmaster is the metadata server program of Lizard File System. Depending on parameters it can start, restart or stop LizardFS metadata server process. Without any options it starts LizardFS metadata server, killing previously run process if lock file exists.

Metadata server can work in one of two modes (personalities):

1.master

2.shadow

If metadata server works with master personality it acts as main metadata server govering all file system metadata modifications. If metadata server works with shadow personality it acts as backup metadata server ready for immediate deployment as new master in case of current master failure. Shadow only accepts connections from lizardfs-admin, i.e. mfschunkserver, mfsmetalogger and mfsmount (the client) are not allowed to connect to shadow instance.

Current metadata server personality is defined in metadata server configuration file and can be changed on the fly from shadow to master by proper modification and reloading of its configuration file.

Master and shadow are designed to run simultaneously in sync forever. It is very unlikely but still (due to a memory corruption or a bug) possible that after some time their metadata will somehow differ. Since version 2.5.2 metadata checksum is maintained both by master and shadow, in order to detect and fix possible metadata corruptions. In case mismatch is detected shadow asks master to double check its metadata and dump its current snapshot. After the metadata is dumped and the checksum in master is recalculated shadow downloads the new metadata snapshot, which should ensure that master and all shadows have exactly the same metadata.

SIGHUP (or reload ACTION) forces mfsmaster to reload all configuration files.

-v

print version information and exit

-h

print usage information and exit

-f

(deprecated, use start action instead) forcily run LizardFS master process, without trying to kill previous instance (this option allows to run LizardFS master if stale PID file exists)

-s

(deprecated, use stop action instead) stop LizardFS master process

-c CFGFILE

specify alternative path of configuration file (default is mfsmaster.cfg in system configuration directory)

-u

log undefined configuration values (when default is assumed)

-d

run in foreground, don’t daemonize

-t LOCKTIMEOUT

how long to wait for lockfile (default is 60 seconds)

ACTION

is the one of start, stop, restart, reload, test, isalive or kill. Default action is restart.

## FILES
mfsmaster.cfg

configuration file for LizardFS master process (see mfsmaster.cfg(5) manual)

mfsexports.cfg

LizardFS access control file (used with mfsmounts 1.6.0 or later, see mfsexports.cfg(5) manual)

mfstopology.cfg

Network topology definitions (see mfstopology.cfg(5) manual)

mfsmaster.lock

PID file of running LizardFS master process

.mfsmaster.lock

lock file of running LizardFS master process (created in data directory)

metadata.mfs, metadata.mfs.back

LizardFS filesystem metadata image

changelog.*.mfs

LizardFS filesystem metadata change logs (merged into metadata.mfs once per hour)

data.stats

LizardFS master charts state

## REPORTING BUGS
Report bugs to <contact@lizardfs.org>.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfsmetarestore(8), mfschunkserver(8), mfsmount(1), mfsmaster.cfg(5), mfsexports.cfg(5), mfstopology.cfg(5), moosefs(7)


mfsmetadump

title: mfsmetadump(8)

text:
# mfsmetadump(8)

## NAME
mfsmetadump - a networking, distributed, highly available file system

## SYNOPSIS

```
mfsmetadump metadata_file...
```

## DESCRIPTION
mfsmetadump dumps file system metadata into specified file.

## COPYRIGHT
Copyright 2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfstools(1)


mfsmetarestore

title: mfsmetarestore(8)

text:
# mfsmetarestore(8)

## NAME
mfsmetarestore - replay LizardFS metadata change logs or dump LizardFS metadata image

## SYNOPSIS

```
mfsmetarestore [-z] -m OLDMETADATAFILE -o NEWMETADATAFILE [CHANGELOGFILE...]
```

```
mfsmetarestore -m METADATAFILE
```

```
mfsmetarestore [-z] -a [-d DIRECTORY]
```

```
mfsmetarestore -g -d DIRECTORY
```

```
mfsmetarestore -v
```

```
mfsmetarestore -?
```

## DESCRIPTION
When mfsmetarestore is called with both -m and -o options, it replays given CHANGELOGFILEs on OLDMETADATAFILE and writes result to NEWMETADATAFILE. Multiple change log files can be given.

mfsmetarestore with just -m METADATAFILE option dumps LizardFS metadata image file in human readable form.

mfsmetarestore called with -a option automatically performs all operations needed to merge change log files. Master data directory can be specified using -d DIRECTORY option.

mfsmetarestore -g with path to metadata files, prints latest metadata version that can be restored from disk. Prints 0 if metadata files are corrupted.

-v

print version information and exit

-?

print version information and exit

-a

autorestore mode (see above)

-d DATAPATH

master data directory (for autorestore mode)

-m METADATAFILE

specify input metadata image file

-o NEWMETADATAFILE

specify output metadata image file

-z

ignore metadata checksum inconsistency while applying changelogs

## FILES
metadata.mfs

Lizard File System metadata image as read by mfsmaster process

metadata.mfs.back

Lizard File System metadata image as left by killed or crashed mfsmaster process

changelog.*.mfs

Lizard File System metadata change logs

## REPORTING BUGS
Report bugs to <contact@lizardfs.org>.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfsrestoremaster(8), mfsmaster(8), moosefs(7)


mfsrestoremaster

title: mfsrestoremaster(8)

text:
# mfsrestoremaster(8)

## NAME
mfsrestoremaster - scripts automating starting master server on a metalogger machine.

## SYNOPSIS

```
mfsrestoremaster <net-interface> [<etc-lfs-dir>]
```

<net-interface>

Network interface to reconfigure.

<etc-lfs-dir>

LizardFS configuration directory to use (default: /etc/lizardfs).

## DESCRIPTION
This scripts performs the following steps:

•verify basic sanity of configuration files,

•update metadata image with data from metalogger changelogs,

•set master’s IP address on given network interface,

•start the master server.

## NOTES
mfsrestoremaster makes use of mfsmetarestore.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfsmetarestore(8), mfstools(1)


mfsmetalogger

package: lizardfs-metalogger

title: mfsmetalogger(8)

text:
# mfsmetalogger(8)

## NAME
mfsmetalogger - start, restart or stop Lizard File System metalogger process

## SYNOPSIS

```
mfsmetalogger [-f] [-c CFGFILE] [-u] [-d] [-t LOCKTIMEOUT] [ACTION]
```

```
mfsmetalogger -s [-c CFGFILE]
```

```
mfsmetalogger -v
```

```
mfsmetalogger -h
```

## DESCRIPTION
mfsmetalogger is the metadata replication server of Lizard File System. Depending on parameters it can start, restart or stop LizardFS metalogger process. Without any options it starts LizardFS metalogger, killing previously run process if lock file exists.

SIGHUP (or reload ACTION) forces mfsmetalogger to reload all configuration files.

-v

print version information and exit

-h

print usage information and exit

-c CFGFILE

specify alternative path of configuration file (default is mfsmetalogger.cfg in system configuration directory)

-u

log undefined configuration values (when default is assumed)

-d

run in foreground, don’t daemonize

-t LOCKTIMEOUT

how long to wait for lockfile (default is 60 seconds)

ACTION is the one of start, stop, restart, reload, test, isalive or kill. Default action is restart.

## FILES
mfsmetalogger.cfg

configuration file for LizardFS metalogger process; refer to mfsmetalogger.cfg(5) manual for defails

mfsmetalogger.lock

PID file of running LizardFS metalogger process

.mfsmetalogger.lock

lock file of running LizardFS metalogger process (created in data directory)

changelog_ml.*.mfs

LizardFS filesystem metadata change logs (backup of master change log files)

metadata.ml.mfs.back

Latest copy of complete metadata.mfs.back file from LizardFS master.

sessions.ml.mfs

Latest copy of sessions.mfs file from LizardFS master.

## REPORTING BUGS
Report bugs to <contact@lizardfs.org>.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfsmaster(8), mfsmetalogger.cfg(5), moosefs(7)


lizardfs-uraft

package: lizardfs-uraft

title: lizardfs-uraft(8)

text:
# lizardfs-uraft(8)

## NAME
lizardfs-uraft - LizardFS high availability cluster management tool

## SYNOPSIS

```
lizardfs-uraft [--help]
```

```
lizardfs-uraft [-c CFGFILE]
```

## DESCRIPTION
lizardfs-uraft is a high availability management daemon. It can provide master server failover mechanisms based on floating ip.

lizardfs-uraft internal algorithms are based on Raft (raft.github.io). Functions used to manage (promote/demote/check/kill/etc) nodes are called through lizardfs-uraft-helper, a script that implements uraft API for a specific backend (in this case, LizardFS). See lizardfs-uraft-helper(8) man entry for details.

For more configuration info and examples, refer to lizardfs-uraft.cfg file and lizardfs-uraft.cfg(5) man entry.

## OPTIONS
--help

print usage information and exit

--config CFGFILE

provide an alternative configuration file path.

## COPYRIGHT
Copyright 2018-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
lizardfs-uraft-helper(8), lizardfs-uraft.cfg(5)


lizardfs-uraft-helper

title: lizardfs-uraft-helper(8)

summary: LizardFS HA suite helper

text:
# lizardfs-uraft-helper(8)

## NAME
lizardfs-uraft-helper - LizardFS HA suite helper

## SYNOPSIS

```
lizardfs-uraft-helper
```

## DESCRIPTION
lizardfs-uraft-helper is a helper script, used internally by lizardfs-uraft to manage nodes. The script should implement the following operations: isalive metadata-version quick-stop promote demote assign-ip drop-ip

Except from isalive, this script should not be used on its own. If anyone needs special actions to be taken during lizardfs-uraft management stages (such as promotion, demotion), editing this script is sufficient to do so.

## COPYRIGHT
Copyright 2018-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
lizardfs-uraft(8), lizardfs-uraft.cfg(5)


dcbtool

package: lldpad

title: dcbtool(8)

text:
# dcbtool(8)

## NAME
dcbtool - manage the Data Center Bridging (DCB) settings of a CEE DCB interface

## SYNOPSIS
dcbtool -h

dcbtool -v

dcbtool [-rR]

dcbtool [-rR] [command] [command arguments]

## DESCRIPTION
dcbtool is used to query and set the DCB settings of a Converged Enhanced Ethernet (CEE) DCB capable Ethernet interface. It connects to the client interface of lldpad to perform these operations. dcbtool will operate in interactive mode if it is executed without a command. In interactive mode, dcbtool also functions as an event listener and will print out events received from lldpad as they arrive. It will use libreadline for interactive input when available. 802.1Qaz DCBX is not controllable from dcbtool instead lldptool can be used in this case.

## OPTIONS
-h

show the dcbtool usage message

-v

shows dcbtool version information

-r

display the raw lldpad client interface messages as well as the readable output.

-R

display only the raw lldpad client interface messages

## COMMANDS
help

shows the dcbtool usage message

ping

test command. lldpad responds with "PPONG" if the client interface is operational.

license

displays dcbtool license information

quit

exit from interactive mode

The following commands interact with lldpad to manage the daemon and DCB features on DCB capable interfaces.

dcbtool general configuration commands:

<gc|go> dcbx

Get the configured or operational legacy version of the DCBX protocol which will be supported by lldpad. The configured version, if different from the operational version, will take effect after lldpad is restarted.

sc dcbx v:[cin|cee|force-cin|force-cee]

Set the legacy version of DCBX which will be supported by lldpad the next time it is started.

Information about the CIN version can be found at:

<http://download.intel.com/technology/eedc/dcb_cep_spec.pdf>

Information about the CEE version can be found at:

<http://www.ieee802.org/1/files/public/docs2008/az-wadekar-dcbx-capability-exchange-discovery-protocol-1108-v1.01.pdf>

The dcbx setting is a global setting and changes only take effect when lldpad is restarted. The default DCBX version used is the IEEE standard version. If a pre-IEEE DCBX version is received (per port) which matches the dcbx setting, then lldpad will fall back to the configured global dcbx setting. If the dcbx setting is set to either 'force-cin' or 'force-cee' then any port doing DCBX will start out in the corresponding legacy DCBX mode.

DCB per-interface commands:

gc <ifname> <feature>

get configuration of feature on interface ifname.

go <ifname> <feature>

get operational status of feature on interface ifname.

gp <ifname> <feature>

get peer configuration of feature on interface ifname.

sc <ifname> <feature> <args>

set the configuration of feature on interface ifname.

feature may be one of the following:

dcb

DCB state of the port

pg

priority groups

pfc

priority flow control

app:<subtype>

application specific data

ll:<subtype>

logical link status

subtype can be:

0|fcoe

Fiber Channel over Ethernet (FCoE)

1|iscsi

Internet Small Computer System Interface (iSCSI)

2|fip

FCoE Initialization Protocol (FIP)

args can include:

e:<0|1>

controls feature enable

a:<0|1>

controls whether the feature is advertised via DCBX to the peer

w:<0|1>

controls whether the feature is willing to change its operational configuration based on what is received from the peer

[feature specific args]

arguments specific to a DCB feature

Feature specific arguments for dcb:

on|off

enable or disable DCB for the interface. The go and gp commands are not needed for the dcb feature. Also, the enable(e), advertise(a) and willing(w) arguments are not required.

Feature specific arguments for pg:

pgid:xxxxxxxx

Priority group ID for the 8 priorities. From left to right (priorities 0-7), x is the corresponding priority group ID value, which can be 0-7 for priority groups with bandwidth allocations or f (priority group ID 15) for the unrestricted priority group.

pgpct:x,x,x,x,x,x,x,x

Priority group percentage of link bandwidth. From left to right (priority groups 0-7), x is the percentage of link bandwidth allocated to the corresponding priority group. The total bandwidth must equal 100%.

uppct:x,x,x,x,x,x,x,x

Priority percentage of priority group bandwidth. From left to right (priorities 0-7), x is the percentage of priority group bandwidth allocated to the corresponding priority. The sum of percentages for priorities which belong to the same priority group must total 100% (except for priority group 15).

strict:xxxxxxxx

Strict priority setting. From left to right (priorities 0-7), x is 0 or 1. 1 indicates that the priority may utilize all of the bandwidth allocated to its priority group.

up2tc:xxxxxxxx

Priority to traffic class mapping. From left to right (priorities 0-7), x is the traffic class (0-7) to which the priority is mapped.

Feature specific arguments for pfc:

pfcup:xxxxxxxx

Enable/disable priority flow control. From left to right (priorities 0-7), x is 0 or 1. 1 indicates that the corresponding priority is configured to transmit priority pause.

Feature specific arguments for app:<subtype>:

The app features uses global enable and willing bits for all subtypes. To remove or add subtypes to the TLV set the advertise bit.

appcfg:xx

xx is a hexadecimal value representing an 8 bit bitmap where 1 bits indicate the priorities which frames for the applications specified by subtype should use. The lowest order bit maps to priority 0.

Feature specific arguments for ll:<subtype>:

status:[0|1]

For testing purposes, the logical link status may be set to 0 or 1. Changes to the logical link status are not saved in the configuration file.

## EXAMPLES
Enable DCB on interface eth2

dcbtool sc eth2 dcb on

Assign priorities 0-3 to priority group 0, priorities 4-6 to priority group 1 and priority 7 to the unrestricted priority. Also, allocate 25% of link bandwidth to priority group 0 and 75% to group 1.

dcbtool sc eth2 pg pgid:0000111f pgpct:25,75,0,0,0,0,0,0

Enable transmit of Priority Flow Control for priority 3 and assign FCoE to priority 3.

dcbtool sc eth2 pfc pfcup:00010000

dcbtool sc eth2 app:0 appcfg:08

## SEE ALSO
lldpad(8), lldptool(8), lldptool-dcbx(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8)

## COPYRIGHT
dcbtool - DCB configuration utility

Copyright(c) 2007-2012 Intel Corporation. Portions of dcbtool are based on:

hostapd-0.5.7

Copyright

(c) 2004-2008, Jouni Malinen <j@w1.fi>

## LICENSE
This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

The full GNU General Public License is included in this distribution in the file called "COPYING".

## SUPPORT
Contact Information: open-lldp Mailing List <lldp-devel@open-lldp.org>


lldpad

title: lldpad(8)

text:
# lldpad(8)

## NAME
lldpad - Link Layer Discovery Protocol (LLDP) agent daemon

## SYNOPSIS
lldpad [-h] [-v] [-V level] [-d] [-k] [-p] [-s] [-t] [-f filename]

## DESCRIPTION
Executes the LLDP protocol for supported network interfaces. The list of TLVs currently supported are:

-

IEEE 802.1AB Mandatory TLVs

-

IEEE 802.1AB Basic Management TLVs

-

IEEE 802.3 Organizationally Specific TLVs

-

LLDP-MED Organizationally Specific TLVs

-

Data Center Bridging capabilities exchange protocol (DCBX) TLVs

-

Edge Virtual Bridging (EVB) TLVs

Capabilities of lldpad include:

-

Transmission of LLDP PDUs containing enabled TLVs from enabled ports.

-

Reception of LLDP PDUs from enabled ports.

-

Operation of the DCBX protocol for interfaces which support the DCB rtnetlink interface. This includes operation of the DCBX state machines above LLDP and corresponding configuration of the DCB parameters of the network interface. Supported DCB features are: Extended Transmission Selection, Priority Flow Control and the FCoE application.

-

Configuring the DCB settings of the network driver based on the operation of DCBX.

-

Provides a multi-channel interface for client applications to query and configure features. Events are also generated on the client interface to inform clients of changes. The lldpad package includes two clients: lldptool for general LLDP agent management and dcbtool for DCB management.

lldpad supports the versions of the DCB capabilities exchange (DCBX) protocol listed as follows:

version 1 - also known as CIN DCBX

<http://download.intel.com/technology/eedc/dcb_cep_spec.pdf>

version 2 - also known as CEE DCBX

<http://www.ieee802.org/1/files/public/docs2008/az-wadekar-dcbx-capability-exchange-discovery-protocol-1108-v1.01.pdf>

IEEE DCBX

See the IEEE 802.1Qaz-2011 specification for details.

IEEE DCBX is the default DCBX mode for a DCB capable interface so the default and configured IEEE DCBX TLVs will be transmitted when the interface comes up. lldpad can be globally configured to support one of the legacy DCBX versions (CIN or CEE). If the remote LLDP agent does not transmit any IEEE DCBX TLVs and does transmit a legacy DCBX TLV which matches the configured legacy DCBX version, then the DCBX mode will drop back to legacy DCBX mode. It will not transition back to IEEE DCBX mode until the next link reset. If lldpad has dropped back to legacy DCBX mode for a given interface and the daemon is stopped and restarted, the legacy DCBX mode for that interface will be used instead of starting out in IEEE DCBX mode. This behavior only applies to the case where lldpad is restarted and is not persistent across a system reboot.

See dcbtool for information on how to globally configure which legacy version of DCBX lldpad executes.

See lldptool for information on how to reset the DCBX mode of an interface back to default (starts out in IEEE DCBX mode).

lldpad also supports edge virtual bridging as currently under specification in the IEEE 802.1Qb working group. <http://www.ieee802.org/1/pages/802.1bg.html>

## OPTIONS
lldpad has the following command line options:

-h

show usage information

-f filename

use the specified file as the configuration file instead of the default file: /var/lib/lldpad/lldpad.conf lldpad expects the directory of the configuration file to exist, but if the configuration file does not exist, then a default configuration file will be created. lldpad creates and maintains the contents of the configuration file. Configuration should be performed by using lldptool or dcbtool.

-d

run lldpad as a daemon

-v

show lldpad version

-V level

set lldpad debugging level. Uses syslog debug levels see syslog.2 for details.

-k

used to terminate the first instance of lldpad that was started (e.g. from initrd). Once lldpad -k has been invoked and lldpad has been restarted, subsequent invocations of lldpad -k will not terminate lldpad.

-s

remove lldpad state records from shared memory

-p

do not create PID file /var/run/lldpad.pid on startup

-t

omit timestamps from logging messages

## NOTE
On termination, lldpad does not undo any of the configurations that it has set. This approach minimizes the risk of restarting the daemon to perform a software update, or of having storage issues during shutdown. Ongoing operation of network interfaces that had been controlled by lldpad may result in unexpected behavior.

## SEE ALSO
dcbtool(8), lldptool(8), lldptool-dcbx(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8), lldptool-med(8), lldptool-vdp(8), lldptool-evb(8)

## COPYRIGHT
lldpad - LLDP agent daemon with DCBX support

Copyright(c) 2007-2012 Intel Corporation. Portions of lldpad are based on:

hostapd-0.5.7

Copyright

(c) 2004-2008, Jouni Malinen <j@w1.fi>

## LICENSE
This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

The full GNU General Public License is included in this distribution in the file called "COPYING".

## SUPPORT
Contact Information: open-lldp Mailing List <lldp-devel@open-lldp.org>


lldptool

title: lldptool(8)

text:
# lldptool(8)

## NAME
lldptool - manage the LLDP settings and status of lldpad

## SYNOPSIS
lldptool <command> [options] [argument]

## DESCRIPTION
lldptool is used to query and configure lldpad. It connects to the client interface of lldpad to perform these operations. lldptool will operate in interactive mode if it is executed without a command. In interactive mode, lldptool will also function as an event listener to print out events as they are received asynchronously from lldpad. It will use libreadline for interactive input when available.

## OPTIONS
-i [ifname]

specifies the network interface to which the command applies. Most lldptool commands require specifying a network interface.

-V [tlvid]

specifies the TLV identifier

The tlvid is an integer value used to identify specific LLDP TLVs. The tlvid value is the Type value for types not equal to 127 (the organizationally specific type). For organizationally specific TLVs, the tlvid is the value represented by the 3 byte OUI and 1 byte subtype - where the subtype is the lowest order byte of the tlvid.

The tlvid can be entered as a numerical value (e.g. 10 or 0xa), or for supported TLVs, as a keyword. Review the lldptool help output to see the list of supported TLV keywords.

-n

"neighbor" option for commands which can use it (e.g. get-tlv)

-g [bridge scope]

specify the bridge scope this command operates on. Allows to set and query all LLDP TLV modules for "nearest_bridge" (short: "nb"), "nearest_customer_bridge" ("ncb") and "nearest_nontpmr_bridge" ("nntpmrb") group mac addresses. Configurations are saved into independent sections in lldpad.conf. If no bridge scope is supplied this defaults to "nearest bridge" to preserve the previous behaviour.

-c <argument list>

"config" option for TLV queries. Indicates that the query is for the configuration elements for the specified TLV. The argument list specifies the specific elements to query. If no arguments are listed, then all configuration elements for the TLV are returned.

-r

show raw client interface messages

-R

show only raw Client interface messages

## COMMANDS
license

show license information

-h, help

show usage information

-v, version

show version information

-S, stats

get LLDP statistics for the specified interface

-t, get-tlv

get TLV information for the specified interface

-T, set-tlv

set TLV information for the specified interface

-l, get-lldp

get LLDP parameters for the specified interface

-L, set-lldp

set LLDP parameters for the specified interface

-p, ping

display the process identifier of the running lldpad process

-q, quit

exit from interactive mode

## ARGUMENTS
This section lists arguments which are available for administration of LLDP parameters. Arguments for basic TLV's (non-organizationally specific TLVs) are also described. See the SEE ALSO section for references to other lldptool man pages which contain usage details and arguments for various organizationally specific TLVs.

adminStatus

Argument for the get-lldp/set-lldp commands. Configures the LLDP adminStatus parameter for the specified interface. Valid values are: disabled, rx, tx, rxtx

enableTx

Argument for the get-tlv/set-tlv commands. May be applied per interface for a specified TLV. Valid values are: yes, no. If the DCBX TLV enableTx is set to no, then all of the DCB feature TLVs DCBX advertise settings will be turned off as well. Setting enableTx to yes will enable the DCBX advertise settings.

ipv4

Argument for the get-tlv/set-tlv commands with respect to the Management Address TLV. The get command will retrieve the configured value. Set values take the form of an IPv4 address: A.B.C.D

ipv6

Argument for the get-tlv/set-tlv commands with respect to the Management Address TLV. The get command will retrieve the configured value. Set values take the form of an IPv6 address: 1111:2222:3333:4444:5555:6666:7777:8888 and various shorthand variations.

## EXAMPLES
Configure LLDP adminStatus to Receive and Transmit for interface eth2

lldptool -L -i eth2 adminStatus=rxtx

lldptool set-lldp -i eth2 adminStatus=rxtx

Query the LLDP adminStatus for interface eth3

lldptool -l -i eth3 adminStatus

lldptool get-lldp -i eth3 adminStatus

Query the LLDP statistics for interface eth3

lldptool -S -i eth3

lldptool stats -i eth3

Query the local TLVs which are being transmitted for a given interface:

lldptool -t -i eth3

lldptool get-tlv -i eth3

Query the received neighbor TLVs received on a given interface:

lldptool -t -n -i eth3

lldptool get-tlv -n -i eth3

Query the value of the System Description TLV as received from the neighbor on a given interface:

lldptool -t -n -i eth3 -V sysDesc

lldptool get-tlv -n -i eth3 -V 6

Disable transmit of the IEEE 802.3 MAC/PHY Configuration Status TLV for a given interface:

lldptool -T -i eth3 -V macPhyCfg enableTx=no

lldptool set-tlv -i eth3 -V 0x120f01 enableTx=no

Query value of the transmit setting for the Port Description TLV for a given interface:

lldptool -t -i eth3 -V portDesc -c enableTx

lldptool get-tlv -i eth3 -V 4 -c enableTx

Set a Management Address TLV on eth3 to carry IPv4 address 192.168.10.10

lldptool -T -i eth3 -V mngAddr ipv4=192.168.10.10

Set a Management Address TLV on eth3 to carry IPv6 address ::192.168.10.10

lldptool -T -i eth3 -V mngAddr ipv6=::192.168.10.10

Get the configured IPv4 address for the Management Address TLV on eth3

lldptool -t -i eth3 -V mngAddr -c ipv4

Get all configured attributes for the Management Address TLV on eth3

lldptool -t -i eth3 -V mngAddr -c

Enable transmit of the Edge Virtual Bridging TLV for interface eth4

lldptool -i eth4 -T -g ncb -V evbCfg enableTx=yes

Enable transmit of VDP for interface eth4

lldptool -i eth4 -T -V vdp enableTx=yes

Display process identifier of lldpad

lldptool -p

## SEE ALSO
lldptool-dcbx(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8), lldptool-med(8), lldptool-vdp(8), lldptool-evb(8), lldptool-evb22(8), dcbtool(8), lldpad(8)

## COPYRIGHT
lldptool - LLDP agent configuration utility

Copyright(c) 2007-2012 Intel Corporation. Portions of lldptool are based on:

hostapd-0.5.7

Copyright

(c) 2004-2008, Jouni Malinen <j@w1.fi>

## LICENSE
This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

The full GNU General Public License is included in this distribution in the file called "COPYING".

## SUPPORT
Contact Information: open-lldp Mailing List <lldp-devel@open-lldp.org>


lldptool-app

title: lldptool-app(8)

summary: Show / manipulate APP TLV configuration

text:
# lldptool-app(8)

## NAME
APP - Show / manipulate APP TLV configuration

## SYNOPSIS
lldptool -t -i ethx -V APP [-c app]

lldptool -T -i ethx -V APP [-d] app=prio,sel,pid

## DESCRIPTION
The APP TLV is an informational TLV and will advertise the current configured application table. If the peer APP TLV and a local APP TLV match the same selector and protocol field the local parameter is used.

## ARGUMENTS
app

Configures a local application data field using the three parameters: priority (prio), selector (sel), and protocol (pid). The -d option can be provided to remove an entry which matches the three parameters.

## Theory of Operations
The APP TLV is an informational TLV for most end stations. It is not expected that setting APP data should be required. Peer data will be processed and added to the application data table by default assuming there does not already exist a local entry with matching selector and priority fields.

By adding APP data to the application table it is available for applications, eg iscsid, to query. Applications query for a specific protocol and selector and may use this data to map traffic to the corresponding traffic class.

## EXAMPLE & USAGE
Configure ISCSI application for priority 4 on eth2

lldptool -T -i eth2 -V APP app=4,2,3260

Configure FCoE application for priority 3 on eth2

lldptool -T -i eth2 -V APP app=3,1,35078

Remove FCoE application for priority 3 on eth2

lldptool -T -i eth2 -V APP -d app=3,1,35078

Display locally configured application table on eth2

lldptool -t -i eth2 -V APP -c app

Display last transmitted APP TLV on eth2

lldptool -t -i eth2 -V APP

## SOURCE
o

IEEE 802.1Qaz (http://www.ieee802.org/1/pages/dcbridges.html)

## SEE ALSO
lldptool(8), lldpad(8)

## AUTHOR
John Fastabend


lldptool-dcbx

title: lldptool-dcbx(8)

summary: Show / manipulate DCBX configuration

text:
# lldptool-dcbx(8)

## NAME
DCBX - Show / manipulate DCBX configuration

## SYNOPSIS
lldptool -t -i ethx -V IEEE-DCBX -c [mode]

lldptool -T -i ethx -V IEEE-DCBX mode=reset

lldptool -t -i ethx -V <CIN-DCBX|CEE-DCBX> -c [enableTx]

lldptool -T -i ethx -V <CIN-DCBX|CEE-DCBX> enableTx=<yes|no>

## DESCRIPTION - DCBX MODE
lldpad supports the following versions of the DCB capabilities exchange (DCBX) protocol:

CIN DCBX

<http://download.intel.com/technology/eedc/dcb_cep_spec.pdf>

CEE DCBX

<http://www.ieee802.org/1/files/public/docs2008/az-wadekar-dcbx-capability-exchange-discovery-protocol-1108-v1.01.pdf>

IEEE DCBX

See the IEEE 802.1Qaz-2011 specification for details."

IEEE DCBX is the default DCBX mode for a DCB capable interface. Therefore the default and configured IEEE DCBX TLVs will be transmitted when the interface comes up. lldpad can be globally configured to support one of the legacy DCBX versions (CIN or CEE). If the remote LLDP agent does not transmit any IEEE DCBX TLVs and does transmit a legacy DCBX TLV which matches the configured legacy DCBX version, then the DCBX mode will drop back to legacy DCBX mode. It will not transition back to IEEE DCBX mode until the next link reset. If lldpad has dropped back to legacy DCBX mode for a given interface and the daemon is stopped and restarted, the legacy DCBX mode for that interface will be used instead of starting out in IEEE DCBX mode. This behavior only applies to the case where lldpad is restarted and is not persistent across a system reboot.

The DCBX mode can be queried and configured by using the special tlvid IEEE-DCBX. There is not an actual TLV which corresponds to this tlvid. Its use is to query and reset the IEEE DCBX mode. When queried, IEEE DCBX mode can take the following values:

auto - IEEE DCBX will be used (initially) if lldpad is restarted. An exception is if the DCBX mode has been forced to a legacy DCBX mode, then the specified legacy mode will be used. See information about the 'dcbx' parameter in dcbtool(8) for more information about this exception."

CEE - CEE DCBX will be used if lldpad is restarted

CIN - CIN DCBX will be used if lldpad is restarted

The IEEE DCBX mode can be reset to auto by setting the mode argument to the value reset

## DESCRIPTION - DCBX CONFIGURATION
The detailed configuration of the IEEE DCBX TLVs can be found in related lldptool man pages for each IEEE DCBX TLV (see lldptool-pfc(8), lldptool-ets(8) and lldptool-app(8)).

The detailed configuration of the CIN and CEE DCBX TLVs is performed using dcbtool (see dcbtool(8)). However, lldptool can configure the enableTx parameter of the CIN and CEE DCBX TLVs (as it can with most other TLVs). Since lldpad only transmits TLVs for one version of DCBX on any given interface, the enableTx parameter for the CIN and CEE DCBX TLVs (and for the IEEE DCBX feature TLVs) takes effect only when the corresponding DCBX version is active.

## ARGUMENTS
mode=reset

Reset the DCBX mode that will be used if lldpad is restarted by setting the mode argument to reset using the special tlvid IEEE-DCBX.

enableTx

Enable the specified DCBX TLV (CIN-DCBX or CEE-DCBX) to be transmitted in the LLDPDU if that DCBX mode for the specified interface has been selected.

## EXAMPLE & USAGE
Query the current DCBX mode that will be used if lldpad is restarted. (this is not a persistent setting)

lldptool -t -i eth3 -V IEEE-DCBX -c mode

Reset the DCBX mode to be 'auto' (start in IEEE DCBX mode) after the next lldpad restart

lldptool -T -i eth3 -V IEEE-DCBX mode=reset

Enable transmission of the CEE DCBX TLV

lldptool -T -i eth3 -V CEE-DCBX enableTx=yes

Disable transmission of the CIN DCBX TLV

lldptool -T -i eth3 -V CIN-DCBX enableTx=no

Query the configuration of enableTx for the CEE DCBX TLV

lldptool -t -i eth3 -V CEE-DCBX -c enableTx

## SEE ALSO
dcbtool(8), lldptool(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8), lldpad(8)

## AUTHOR
Eric Multanen


lldptool-ets

title: lldptool-ets(8)

summary: Show / manipulate ETS TLV configuration

text:
# lldptool-ets(8)

## NAME
ETS-{CFG|REC} - Show / manipulate ETS TLV configuration

## SYNOPSIS
lldptool -t -i ethx -V ETS-CFG <-c CONFIG_ARG ...>

CONFIG_ARG := { enableTx | willing | tsa | up2tc | numtcs | tcbw }

lldptool -T -i ethx -V ETS-CFG CONFIG_ARG=value ...

CONFIG_ARG :=

enableTx = {yes|no} |

willing = {yes|no} |

tsa = tc:{ets|strict|vendor},... |

up2tc = priority:tc,... |

tcbw = bw1,bw2,...

lldptool -t -i ethx -V ETS-REC <-c CONFIG_ARG ...>

lldptool -T -i ethx -V ETS-REC CONFIG_ARG=value ...

CONFIG_ARG :=

enableTx = {yes|no} |

tsa = tc:{ets|strict|vendor},... |

up2tc = priority:tc,... |

tcbw = bw1,bw2,...

## DESCRIPTION
The Enhanced Transmission Selection (ETS) feature has a recommendation TLV and a configuration TLV configured with ETS-REC and ETS-CFG respectively.

## ARGUMENTS
enableTx

Enables the ETS TLV to be transmitted

willing

Sets the ETS-CFG willing bit

tsa

Transmission selection algorithm, sets a comma separated list of traffic classes to the corresponding selection algorithm. Valid algorithms include "ets", "strict" and "vendor".

up2tc

Comma separated list mapping user priorities to traffic classes.

tcbw

Comma separated list of bandwidths for each traffic class the first value being assigned to traffic class 0 and the second to traffic class 1 and so on. Undefined bandwidths are presumed to be 0.

numtcs

Displays the number of ETS supported traffic classes.

## Theory of Operations
IEEE 802.1Qaz is enabled by default on hardware that supports this mode indicated by support for the DCBNL interface. Kernel config option CONFIG_DCB. The ETS-CFG TLV is advertised by default with the attributes indicated by querying the hardware for its current configuration. A valid configuration is to map all priorities to a single traffic class and use the link strict selection algorithm. This is equivalent to being in a non-DCB enabled mode.

To support legacy DCBX (CIN or CEE) the ETS-CFG and ETS-REC TLVs are disabled if a legacy DCBX TLV is received and no valid IEEE DCBX TLVs are received. The hardware DCBX mode will also be set to the legacy mode and IEEE mode is disabled. This allows switches to be configured and end nodes will then be configured accordingly without any configuration required on the end node. See lldpad(8) for more information about the operation of the DCBX selection mechanism.

Mapping applications and protocols to traffic classes is required for ETS to be useful. User space programs can encode the priority of an application with the SO_PRIORITY option. The net_prio cgroup can be used to assign application traffic to specific priorities. See the kernel documentation and cgdcbxd(8) for net_prio cgroup information.

## EXAMPLE & USAGE
Configure willing bit for interface eth2

lldptool -T -i eth2 -V ETS-CFG willing=yes

Configure traffic classes for ETS and strict priority on eth2

lldptool -T -i eth2 -V ETS-CFG tsa=0:ets,1:ets,2:ets,3:ets,4:strict,5:strict

Configure 1:1 mapping from priority to traffic classes on eth2

lldptool -T -i eth2 -V ETS-CFG up2tc=0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7

Display local configured ETS-CFG parameters for tcbw

lldptool -t -i eth2 -V ETS-CFG -c tcbw

Display last transmitted ETS-CFG TLV

lldptool -t -i eth2 -V ETS-CFG

Configure ETS-CFG and ETS-REC for default DCB on eth2

lldptool -T -i eth2 -V ETS-CFG tsa=0:ets,1:ets,2:ets,3:ets,4:ets,5:ets,6:ets,7:ets up2tc=0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7 tcbw=12,12,12,12,13,13,13,13 lldptool -T -i eth2 -V ETS-REC tsa=0:ets,1:ets,2:ets,3:ets,4:ets,5:ets,6:ets,7:ets up2tc=0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7 tcbw=12,12,12,12,13,13,13,13

## SOURCE
o

IEEE 802.1Qaz (http://www.ieee802.org/1/pages/dcbridges.html)

## NOTES
Support for tc-mqprio was added in 2.6.38 on older kernels other mechanisms may need to be used to map applications to traffic classes.

## SEE ALSO
lldptool(8), lldptool-app(8), lldpad(8), tc-mqprio(8),

## AUTHOR
John Fastabend


lldptool-evb

title: lldptool-evb(8)

summary: Show / manipulate EVB TLV configuration

text:
# lldptool-evb(8)

## NAME
evb - Show / manipulate EVB TLV configuration

## SYNOPSIS
lldptool -t -g ncb -i ethx -V evbCfg -c enableTx

lldptool -T -g ncb -i ethx -V evbCfg -c enableTx=[yes|no]

lldptool -t -g ncb -i ethx -V evbCfg -c fmode

lldptool -T -g ncb -i ethx -V evbCfg -c fmode=[bridge|reflectiverelay]

lldptool -t -g ncb -i ethx -V evbCfg -c capabilities

lldptool -T -g ncb -i ethx -V evbCfg -c capabilities=[rte|ecp|vdp|none]

lldptool -t -g ncb -i ethx -V evbCfg -c rte

lldptool -T -g ncb -i ethx -V evbCfg -c rte=[<rte>]

lldptool -t -g ncb -i ethx -V evbCfg -c vsis

lldptool -T -g ncb -i ethx -V evbCfg -c vsis=[<number of vsis>]

## DESCRIPTION
The EVB TLV is a TLV to announce the station and bridge's edge virtual bridging (evb) capabilities and request the bridge forwarding mode. If both sides have agree on edge control protocol (ECP), VSI discovery protocol (VDP) capabilities, both sides can exchange VDP TLV using ECP frames. The vsis parameter will set the maximum number of VSIs and show the number of currently configured VSIs.

## ARGUMENTS
enableTx

Enables the EVB TLV to be transmitted

fmode

shows or sets the forwarding mode between bridge (default) or reflectiverelay (RR).

capabilities

shows or sets the local capabilities that are announced to the adjacent switch in the TLV. This parameter will accept any combination of rte, vdp or ecp, separated by ",". Use the keyword "none" if you do not want to set any capabilities.

rte

shows or set the local run time exponent (RTE). The RTE will be used as the base for the timing of the ECP and VDP protocols.

vsis

shows or sets the number of virtual station interfaces (VSIs) that are announced to the adjacent switch in the TLV. This parameter expects a number between 0 and 65535.

## Theory of Operation
The EVB TLV is used to announce and exchange supported parameters between the station and an adjacent switch. The TLV uses the nearest customer bridge agent.

If "reflectiverelay" is set as forwarding mode, the switch will allow "reflection" of frames coming from different sources at the same port back to the port. This will allow communication between virtual machines on the same host via the switch.

The capabilities parameter is used to set RTE, ECP and VDP support. VDP TLVs in ECP frames can only be exchanged if both sides agree on ECP and VDP as capabilities. RTE will be used as the base timing parameter for ECP and VDP.

## EXAMPLE & USAGE
Display locally configured values for eth8

lldptool -t -g ncb -i eth8 -V evbCfg

Display remotely configured values for eth8

lldptool -n -g ncb -t -i eth8 -V evbCfg

Display wether evb tlv is configured for tx on eth8

lldptool -t -g ncb -i eth8 -V evbCfg -c enableTx

Display the currently requested forwarding mode for eth8

lldptool -t -g ncb -i eth8 -V evbCfg -c fmode

Set the forwarding mode to reflective relay

lldptool -T -g ncb -i eth8 -V evbCfg -c fmode=reflectiverelay

Display the currently configured capabilities

lldptool -t -g ncb -i ethx -V evbCfg -c capabilities

Set the locally possible capabilities to RTE, ECP and VDP

lldptool -T -g ncb -i ethx -V evbCfg -c capabilities=rte,ecp,vdp

Resets the locally possible capabilities to "none"

lldptool -T -g ncb -i ethx -V evbCfg -c capabilities=none

Display the locally configured value for RTE

lldptool -t -g ncb -i ethx -V evbCfg -c rte

Set the value for RTE

lldptool -T -g ncb -i ethx -V evbCfg -c rte=[<rte>]

Display the configured maximum number of VSIs

lldptool -t -g ncb -i ethx -V evbCfg -c vsis

Set the maximum number of VSIs

lldptool -T -g ncb -i ethx -V evbCfg -c vsis=[<number of vsis>]

## SOURCE
o

IEEE 802.1Qbg (http://www.ieee802.org/1/pages/802.1bg.html)

## NOTES
Currently the code in lldpad reflects draft 0 of the upcoming standard. EVB TLVs on the wire can be decoded with wireshark > v1.6.

## SEE ALSO
lldptool-vdp(8), lldptool(8), lldpad(8)

## AUTHOR
Jens Osterkamp


title: lldptool-evb22(8)

text:
# lldptool-evb22(8)

## NAME
evb22 - Show / manipulate EVB IEEE 802.1 Ratified Standard TLV configuration

## SYNOPSIS
lldptool -t -i ethx -g ncb -V evb

lldptool -t -i ethx -g ncb -V evb -c

lldptool -t -i ethx -g ncb -V evb -c enabletx

lldptool -T -i ethx -g ncb -V evb -c enabletx=[yes|no]

lldptool -t -i ethx -g ncb -V evb -c evbmode

lldptool -T -i ethx -g ncb -V evb -c evbmode=[bridge|station]

lldptool -t -i ethx -g ncb -V evb -c evbrrreq

lldptool -T -i ethx -g ncb -V evb -c evbrrreq=[yes|no]

lldptool -t -i ethx -g ncb -V evb -c evbrrcap

lldptool -T -i ethx -g ncb -V evb -c evbrrcap=[yes|no]

lldptool -t -i ethx -g ncb -V evb -c evbgpid

lldptool -T -i ethx -g ncb -V evb -c evbgpid=[yes|no]

lldptool -t -i ethx -g ncb -V evb -c ecpretries

lldptool -T -i ethx -g ncb -V evb -c ecpretries=[0..7]

lldptool -t -i ethx -g ncb -V evb -c ecprte

lldptool -T -i ethx -g ncb -V evb -c ecprte=[0..31]

lldptool -t -i ethx -g ncb -V evb -c vdprwd

lldptool -T -i ethx -g ncb -V evb -c vdprwd=[0..31]

lldptool -t -i ethx -g ncb -V evb -c vdprka

lldptool -T -i ethx -g ncb -V evb -c vdprka=[0..31]

## DESCRIPTION
The Edge Virtual Bridge (EVB) TLV is a TLV to announce the station and bridge's edge virtual bridging (EVB) capabilities and may request the bridge port to be set into reflective relay (hairpin) mode. If both sides agree on the modes and time out values, the edge control protocol (ECP) will be used to exchange VSI discovery protocol (VDP) data using ECP frames between the host interface and the adjacent switch port facing the host interface.

This man pages describes the IEEE 802.1 Qbg ratified standard dated from July 5th, 2012. The arguments and parameters differ from the IEEE 802.1 Qbg draft 0.2, which is also implemented. The EVB protocol version to be used depends on the organizational unique identifier (OUI) of the EVB TLV in the LLDP data stream. A OUI value of 0x001b3f stands for the IEEE 802.1 Qbg draft 0.2, a OUI value of 0x0080c2 stands for the IEEE 802.1 Qbg ratified standard. The version of the ECP and VDP protocols are determined by the ethernet type field in the ethernet header. The ethernet type value for IEEE 802.1 Qbg draft 0.2 is 0x88b7, the value for IEEE 802.1 Qbg ratified standard is 0x8890. Note that the EVB protocol is exchanged between nearest customer bridges only, employing the reserved multicast MAC address 01:80:c2:00:00:00 as destination MAC address. lldpad(8) supports both versions, the switch port configuration determines which version will be used. The switch port configuration should select only one protocol version, never both.

The command line options and arguments are explained in the lldptool(8) man pages. Only the EVB, ECP and VDP protocol specific parameters are detailed in this manual page.

## ARGUMENTS
The invocation without command line option '-c' and argument displays the complete EVB, ECP and VDP protocol settings in a pretty print out. See below for a detailed description on how to interpret the output.

-c text

Use of the command line option '-c' without any argument displays all known parameters in the format of key=value, which is suitable for post processing. Use command line option '-c' and one of the following arguments to display and set individual parameters. Text can be one of the following values:

enabletx

Enables or disables the EVB TLV to be transmitted. When set to disabled no EVB TLV will be included in the LLDP data stream. Furthermore the output of the complete EVB settings without option '-c' will be empty.

evbmode

Display the current role or sets the role the to given value. Supported values are either "station" or "bridge".

evbrrreq

Shows the current reflective relay (hairpin) request mode or sets the reflective relay (hairpin) request mode. If the value is "yes", the station requests the interface facing switch port to be set in reflective relay (hairpin) mode. This field is only valid for stations, the output of evbmode equals "station".

evbrrcap

Shows the current reflective relay (hairpin) capabilities or sets the reflective relay (hairpin) capabilities. If the value is "yes", the switch port will be set in reflective relay (hairpin) mode. This field is only valid for switches, the output of evbmode equals "bridge".

gpid

Shows the current station or switch support for grouping or turns on/off the station or switch support for grouping. If set to true, the station or switch wants to use group identifiers in VDP protocols.

ecpretries

Shows or sets the maximum number of retries for ECP frames to be retransmitted. A retransmit occurs when no ECP acknowledgement message has been received during a given time period.

ecprte

Shows or sets the local run time exponent (RTE). The RTE will be used as the base for the timing of the ECP protocol time outs and retransmits. The wait time is calculated as 10*2ecprte micro seconds.

vdprwd

Shows or sets the number of resource wait delay value. This value is calculated as 10*2vdprwd micro seconds and determines the maximum wait time for VDP protocol acknowledgements.

vdprka

Shows or sets the number of re-init keep alive value. This value is calculated as 10*2vdprka micro seconds and determines the wait time for VDP protocol to send a keep alive message.

## Theory of Operation
The EVB TLV is used to announce and exchange supported parameters between the station and an adjacent switch. If reflectiverelay is active, the switch sends back ethernet frames on the very same port it received the frame on. This is an extension to the current bridging standard and allows communication between virtual machines on the same host through the switch port.

## EXAMPLE & USAGE
Display locally configured values for eth0

lldptool -t -g ncb -i eth0 -V evb

```
EVB Configuration TLV
	bridge:(00)
	station:rrreq,rrstat(0x5)
	retries:7 rte:31
	mode:station r/l:0 rwd:31
	r/l:0 rka:8
```

This output is displayed when enabletx has been enabled. The first line shows the currently known status of the bridge. The second line shows the currently known status of the station. The status is displayed verbose appended by the hexadecimal value in parenthesis. The verbose output uses the bit naming convention used in the standard document. The third line displays the values for the ECP protocol number of retransmits (retries) and the retransmit timeout exponent. The forth line shows the current mode of operation, either bridge or station, the resource wait delay value (rwd) and an indication if the local (0) or remote (1) rwd value is used. The fifth line displays the value of the re-init keep alive counter (rka) and an indication if the local (0) or remote (1) rka value is used.

Display the currently requested forwarding mode for eth0

lldptool -t -g ncb -i eth0 -V evb -c evbrrreq

Display the locally configured value for RTE

lldptool -t -g ncb -i eth0 -V evb -c evbrte

Set the value for RTE to its maximum value

lldptool -T -g ncb -i eth0 -V evb -c rte=7

Set the value for enabletx to yes

lldptool -T -g ncb -i eth0 -V evb -c enabletx=yes

## NOTES
Currently the code in lldpad reflects IEEE 802.1 Qbg draft 0.2 of the upcoming standard. Wireshark support for IEEE 802.1 Qbg ratified standard TLVs is currently missing. Support for the IEEE 802.1 Qbg ratified standard protocols ECP and VDP is currently under development and not fully functional.

## SEE ALSO
lldptool-vdp(8), lldptool(8), lldpad(8)

IEEE 802.1Qbg (http://www.ieee802.org/1/pages/802.1bg.html)

## AUTHOR
Thomas Richter


lldptool-med

title: lldptool-med(8)

text:
# lldptool-med(8)

## NAME
LLDP-MED - Show / manipulate MED TLV configurations

## SYNOPSIS
lldptool -t -i ethx -V [ TLV_TYPE ] enableTx

lldptool -T -i ethx -V [ TLV_TYPE ] enableTx = { yes | no }

lldptool -T -i ethx -V LLDP-MED devtype = { class1 | class2 | class3 | none }

lldptool -t -i ethx -V LLDP-MED devtype

TLV_TYPE : = {LLDP-MED | medCap | medPolicy | medLoc | medPower | medHwRev | medFwRev | medSwRev | medSerNum | medManuf | medModel | medAssetID }

## DESCRIPTION
The LLDP-MED extensions support the Link Layer Discovery Protocol for Media Endpoint Devices defined in the ANSI/TIA-1057-2006 document. Each TLV can be configured as a class1 , class2 or class3 device. Class I devices are the most basic class of Endpoint Device, Class II devices support media stream capabilities and Class III devices directly support end users of the IP communication system. See ANS-TIA-1057 for clarification of class types.

## ARGUMENTS
enableTx

Enables the TLV to be transmitted

devtype

Set or query the class type of the device.

## TLV_TYPE
List of supported TLV specifiers applicable to Media Endpoint Devices.

LLDP-MED

apply arguments to all supported MED TLVs.

medCAP

LLDP-MED Capabilities TLV

medPolicy

LLDP-MED Network Policy TLV

medLoc

LLDP-MED Location TLV

medPower

LLDP-MED Extended Power-via-MDI TLV

medHwRev

LLDP-MED Hardware Revision TLV

medFwRev

LLDP-MED Firmware Revision TLV

medSwRev

LLDP-MED Software Revision TLV

medSerNum

LLDP-MED Serial Number TLV

medManuf

LLDP-MED Manufacturer Name TL

medModel

LLDP-MED Model Name TLV

medAssetID

LLDP-MED Asset ID TLV

## EXAMPLE & USAGE
Enable class1 MED device on eth2

lldptool -T -i eth2 -V LLDP-MED enableTx=yes devtype=class1

Query class type of MED on eth2

lldptool -t -i eth2 -V LLDP-MED -c devtype

Query transmit state of medPolicy on device eth2

lldptool -t -i eth2 -V medPolicy -c enableTx

## SOURCE
o

Link Layer Discovery Protocol for Media Endpoint Devices (http://www.tiaonline.org/standards/technology/voip/documents/ANSI-TIA-1057_final_for_publication.pdf)

## SEE ALSO
lldptool(8), lldpad(8)

## AUTHOR
John Fastabend


lldptool-pfc

title: lldptool-pfc(8)

summary: Show / manipulate PFC TLV configuration

text:
# lldptool-pfc(8)

## NAME
PFC - Show / manipulate PFC TLV configuration

## SYNOPSIS
lldptool -t -i ethx -V PFC [ -c [ enableTx | willing | enabled | delay ] ]

lldptool -T -i ethx -V PFC <CONFIG_ARG=value ...>

CONFIG_ARG:=

enableTx=<yes|no>

willing=<yes|no|0|1>

enabled=<none|[0..7],[0..7],...>

delay=<integer value>

## DESCRIPTION
The PFC TLV is used to display and set current PFC TLV attributes.

## ARGUMENTS
enableTx

Enable the PFC TLV to be transmitted in the LLDP PDU for the specified interface.

willing

Display or set the willing attribute. If set to yes and a peer TLV is received then the peer PFC attributes will be used. If set to no then locally configured attributes are used.

enabled

Display or set the priorities with PFC enabled. The set attribute takes a comma separated list of priorities to enable, or the string none to disable all priorities.

delay

Display or set the delay attribute used to configure PFC thresholds in hardware buffers. If PFC is enabled and frames continue to be dropped due to full hardware buffers then increasing this value may help.

## Theory of Operations
The PFC TLV uses the Symmetric attribute passing state machine defined in IEEE 802.1Qaz. This means the attributes used will depend on the willing bit. If the willing bit is set to 1 and a peer TLV is received then the peers attributes will be used. If the willing bit is set to 0 the local attributes will be used. When both the peer and local configuration are willing a tie breaking scheme is used. For more detailed coverage see the specification.

## EXAMPLE & USAGE
Enable PFC for priorities 1, 2, and 4 on eth2

lldptool -T -i eth2 -V PFC enabled=1,2,4

Disable PFC for all priorities on eth2

lldptool -T -i eth2 -V PFC enabled=none

Display configuration of PFC enabled priorities for eth2

lldptool -t -i eth2 -V PFC -c enabled

Display last transmitted PFC TLV on eth2

lldptool -t -i eth2 -V PFC

## SOURCE
o

IEEE 802.1Qaz (http://www.ieee802.org/1/pages/dcbridges.html)

## SEE ALSO
lldptool(8), lldpad(8)

## AUTHOR
John Fastabend


lldptool-vdp

title: lldptool-vdp(8)

summary: Show / manipulate VDP TLV configuration

text:
# lldptool-vdp(8)

## NAME
vdp - Show / manipulate VDP TLV configuration

## SYNOPSIS
lldptool -t -i ethx -V vdp -c enableTx

lldptool -T -i ethx -V vdp -c enableTx=[yes|no]

lldptool -t -i ethx -V vdp -c mode

lldptool -T -i ethx -V vdp -c mode=<mode>,<mgrid>,<typeid>,<typeidversion>,<instanceid>,<mac>,<vlan>

lldptool -t -i ethx -V vdp -c role

lldptool -T -i ethx -V vdp -c role=[station|bridge]

## DESCRIPTION
The VSI discovery protocol (VDP) is NOT a TLV in the LLDP sense but rather a protocol to manage the association and deassociation of virtual station interfaces (VSIs) between the station and an adjacent switch. VDP uses ECP as transport for VDP TLVs. An ECP frame may contain multiple VDP TLVs. Each VDP TLVs contains a mode, typeid, version, instanceid, mac and vlan for a VSI.

## ARGUMENTS
enableTx

Enables or disables VDP

mode

shows or sets modes for VSIs with the following parameters:

<mode>

mode (0=preassociate, 1=preassociate with RR, 2=associate, 3=deassociate)

<mgrid>

manager (database) id

<typeid>

VSI type id

<version>

VSI type id version

<instanceid>

VSI instance id

<format>

VDP filter info format

<mac>

VSI mac address

<vlan>

VSI vlan id

role

shows or sets the role of the local machine to act as either station (default) or bridge.

## Theory of Operation
The VDP protocol is used to pre-associate, associate or deassociate VSIs to and adjacent switch. Information about the VSIs is formatted into VDP TLVs which are then handed to ECP for lower-level transport. Each ECP frame may contain multiple VDP TLVs.

Two ways to receive VSI information exist in llpdad: via netlink or with lldptool. netlink is used by libvirt to communicate VSIs to lldpad. lldptool can be used to associate/deassociate VSIs from the command line. This is especially helpful for testing purposes.

## EXAMPLE & USAGE
Display if vdp is enabled on eth8

lldptool -t -i eth8 -V vdp -c enableTx

Enable vdp on eth8

lldptool -T -i eth8 -V vdp -c enableTx=yes

Display the currently configured VSIs for eth8

lldptool -t -i eth8 -V vdp -c mode

Associate a VSI on eth8

lldptool -T -i eth8 -V vdp -c mode=2,12,1193046,1,fa9b7fff-b0a0-4893-8e0e-beef4ff18f8f,2,52:54:00:C7:3E:CE,3

Display the locally configured role for VDP on eth8

lldptool -t -i eth8 -V vdp -c role

Set the local role for VDP on eth8

lldptool -T -i eth8 -V vdp -c role=bridge

## SOURCE
o

IEEE 802.1Qbg (http://www.ieee802.org/1/pages/802.1bg.html)

## NOTES
Currently the code in lldpad reflects draft 0 of the upcoming standard. ECP/VDP TLVs on the wire can be decoded with wireshark > v1.8.

## SEE ALSO
lldptool-evb(8), lldptool(8), lldpad(8)

## AUTHOR
Jens Osterkamp


vdptool

title: vdptool(8)

text:
# vdptool(8)

## NAME
vdptool - manage the VSI associations and status of lldpad

## SYNOPSIS
vdptool <command> [options] [argument]

## DESCRIPTION
vdptool is used to query and configure the VSI associations in lldpad. Only the ratified stardard version of the VDP protocol (also refered to as vdp22) is supported. It connects to the client interface of lldpad to perform these operations. vdptool will operate in interactive mode if it is executed without a command. In interactive mode, vdptool will also function as an event listener to print out events as they are received asynchronously from lldpad(still to be done). It will use libreadline for interactive input when available (still to be done).

## OPTIONS
-i [ifname]

specifies the network interface to which the command applies. Most vdptool commands require specifying a network interface.

-V [tlvid]

specifies the VDP tlv identifier to be set or queried.

The tlvid is an integer value used to identify specific VDP TLVs. The tlvid value is the type value for types not equal to 127 (the organizationally specific type). For organizationally specific TLVs, the tlvid is the value represented by the 3 byte OUI and 1 byte subtype - where the subtype is the lowest order byte of the tlvid.

The tlvid can be entered as a numerical value (e.g. 10 or 0xa), or for supported TLVs, as a keyword (such as assoc, deassoc, preassoc, preassoc-rr, etc). Review the vdptool help output to see the list of supported TLV keywords. Use option -c to specify the parameters and its values to be set or queried.

-n

"neighbor" option for commands which can use it (e.g. get-tlv). Use this flag to retrieve the last VDP22 data returned from the bridge. (not yet supported).

-c <argument list>

Specifies additional parameters for TLV queries and associations commands. The argument list varies, depending on the command option (-T) or (-t). To establish a VSI association use the command option (-T) and specify additional information as arguments in the form of key=value. See the VSI Parameter subsection and Example section below. To query a VSI specific association use the command option (-t) and specify the value of the VSI Instance Identifier (keywork uuid followed be the VSI UUID value) of the VSI association as configuration parameter.

-r

show raw client interface messages

-R

show only raw Client interface messages

-W

Wait for the bridge response message

### VSI Parameter
Each VDP22 TLVs contains a command mode, manager identifier, type identifier, type identifier version, VSI instance identifier, migration hints and filter information. The fields are explained next:

mode (Command Mode):

The command mode determines the type of the VSI association to be established. It is an ascii string can be one of:

assoc:

Create an VSI association.

preassoc:

Create an VSI preassociation. The association is only announced to the switch.

preassoc-rr:

Create an VSI preassociation. The association is only announced to the switch and the switch should reserve the resources.

deassoc:

Delete an VSI association.

Other strings are not recognized and return an error. mgrid2 (Manager identifier):

The manager identifier is a string of up to 16 alphanumeric characters. It can also be an UUID according to RFC 4122 with optional dashes in between.

typeid (Type Identifier):

The type identifier is a number in the range of 0 to 2^24 - 1.

typeidver (Type Identifier Version):

The type identifer version is a number in the range of 0 to 255.

uuid (VSI Instance Identifier):

The VSI instance identifier is an UUID according to RFC 4122 with optional dashes in between.

hints (Migration Hints):

The migration hints is a string aiding in migration of virtual machines:

none:

No hints available.

from:

The virtual machine is migrating away.

to:

The virtual machine is migrating to.

fid (Filter Information Data):

The filter information data can be supplied in four different formats identified by numbers in parathesis. Multiple filter information fields can be supplied, but all have to be of the same format.

vlan (1)

A vlan number only, also known as filter information format 1. The vlan identifier is a number in the range of 1 to 2^16 - 1. The high order 4 bits are used as quality of service bits. The vlan identifier can be zero, a vlan identifier is then selected by the switch. Refer to IEEE 802.1 Qbg ratified standard for details.

vlan-mac (2)

A vlan number and MAC address delimited by a slash ('-'), also known as filter information format 2. The MAC address is specified in the format xx:xx:xx:xx:xx:xx. The colons are mandatory. For vlan details see (1).

vlan-mac-group (4)

A vlan number, MAC address and group identifier, each delimited by a slash ('-'), also known as filter information format 4. The group identifier is a 32 bit number. For vlan and MAC address details see (1) and (2).

vlan--group (3)

A vlan number and group identifier, delimited by two slashes ('--'), also known as filter information format 3. For vlan and group details see (1) and (4).

oui (Organizationally Unique Identifier):

This defines the optional Organizationally defined information field. This contains the specific sets of values for this entry. There can be multiple organizational specific fields, in which case there will be multiple keywords oui= followed by the values. The value is of the following format:

```
oui=OUI,[Organization specific values ]

```

The OUI specifies the name of the Organization that is responsible for defining this content. A comma is mandatory after the OUI field. The fields following this

is specified by the organization and hence will be decoded based on the value of this OUI field. Currently, the following values for OUI are supported.

cisco

Specifies Cisco defined OUI.

## COMMANDS
license

show license information

-h, help

show usage information

-v, version

show version information

-t, get-vsi

get VSI information for the specified interface

-T, set-vsi

set VSI information for the specified interface

-p, ping

display the process identifier of the running lldpad process

-q, quit

exit from interactive mode

## NOTES
This tool is in its early design and development phase. It it buggy, incomplete and most of the ideas have not even been thought of.... It reflects the current state of development when I had been given another work assignment. I append it so some else can continue to work on this.

## EXAMPLES
Display process identifier of lldpad

vdptool -p

Create a VSI association on interface eth2

```
vdptool -i eth2 -T -V assoc -c mode=assoc -c mgrid2=blabla \
	-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
	-c filter=2-52:00:00:11:22:33-200
```

Create a VSI association on interface eth2 and wait for the

response from the bridge

```
vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \
	-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
	-c filter=0-52:00:00:11:22:33-200
```

Create a VSI association on interface eth2 wth OUI parameters

and wait for the response from the bridge

```
vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \
	-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
	-c filter=0-52:00:00:11:22:33-200 -c oui=CompanyA,data
```

Create a VSI association on interface eth2 wth multiple OUI parameters

and wait for the response from the bridge

```
vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \
	-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
	-c filter=0-52:00:00:11:22:33-200 -c oui=CompanyA,data \
	-c oui=CompanyB,data
```

Query all VSI association on interface eth2

vdptool -i eth2 -t -V assoc

Query VSI association on interface eth2 that matches specific

VSI parameters. Any of the VSI parameters below can be omitted.

vdptool -i eth2 -t -V assoc -t -V assoc -c mode=assoc \

-c mgrid2=blabla -c typeid=5 -c uuid=1122 \

-c typeidver=4 -c hints=none

## SEE ALSO
lldptool-dcbx(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8), lldptool-med(8), lldptool-vdp(8), lldptool-evb(8), lldptool-evb22(8), dcbtool(8), lldpad(8)

## COPYRIGHT
vdptool - VSI configuration utility

Copyright(c)

(c) 2014 IBM Corporation. Portions of vdptool are based on:

open-lldp-0.96

lldptool - LLDP agent configuration utility

Copyright(c)

2007-2012 Intel Corporation. Portions of lldptool are based on:

hostapd-0.5.7

Copyright

(c) 2004-2008, Jouni Malinen <j@w1.fi>

## LICENSE
This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

The full GNU General Public License is included in this distribution in the file called "COPYING".

## SUPPORT
Contact Information: open-lldp Mailing List <lldp-devel@open-lldp.org>