# Glossary #

<!-- RQ -- Alphabetize before finalization. -->

FCS
: Final Checksum. Bytes added to the end of a packet to help determine if the packet was received without corruption.

NCP
: Network Control Processor.

NLI
: Network Link Identifier. May be a value between zero and three. See (#nli-network-link-identifier) for more information.

OS
: Operating System, i.e. the IPv6 node using Spinel to control and manage one or more of its IPv6 network interfaces.

PHY
: Physical layer. Refers to characteristics and parameters related to the physical implementation and operation of a networking medium.

PUI
: Packed Unsigned Integer. A way to serialize an unsigned integer using one, two, or three bytes. Used throughout the Spinel protocol. See (#packed-unsigned-integer) for more information.

TID
: Transaction Identifier. May be a value between zero and fifteen. See (#tid-transaction-identifier) for more information.

