Niccli User Guide
Niccli User Guide
Broadcom Limited
Web: www.broadcom.com
Corporate Headquarters: San Jose, CA
Revision History
1
Broadcom NetXtreme - NICCLI Readme
TABLE OF CONTENTS
2
Broadcom NetXtreme - NICCLI Readme
1. Introduction
The NICCLI configuration utility sets the nonvolatile configuration elements of the
Broadcom Ethernet network adapter, such as enabling or disabling RoCE, SR-IOV, and
other options. The NICCLI configuration utility can also perform firmware upgrades. The
NICCLI configuration utility uses the L2 driver in Linux, VMWare and FreeBSD and
Windows. In the UEFI environment, theNICCLI configuration interacts with the PCIe
hardware.The NICCLI configuration utility supports both the BCM9574XX, BCM95750X,
and BCM957608 family of devices.
2. Supported Platforms
1. Linux :
- x86_64
- aarch64
2. Windows :
- x86_64
3. ESXI 7/8 onwards
- x86
- x86_64
4. FreeBSD :
- x86_64
5. UEFI :
- x86_64
- aarch64
3
Broadcom NetXtreme - NICCLI Readme
To execute the NICCLI configuration utility, unzip the provided Windows package file and
use the niccli.exe file to run it on windows OS.
NOTE:
The vib packaging is under the process of VMware signing.
To execute the NICCLI configuration Utility, unzip the provided FreeBSD package file
and use the niccli.freebsd executable to run it on FreeBSD OS.
To execute the NICCLI configuration utility, unzip the provided uefi package file in the
uefi environment and use the niccli<arch>.efi executable file to run on the UEFI shell.
4
Broadcom NetXtreme - NICCLI Readme
The NICCLI configuration utilities provide three different types of interfaces. By default,
the utility starts with the interactive interface. The utility accepts three groups of
command arguments based on the existing CLI standards.
The following syntax is used when the signed bundle of NICCLI is installed:
Examples:
1. esxcli niccli install -c i -v 1 -p=/BCM957414A4141DDLP.pkg
2. esxcli niccli install -c dev -v 1 -p=/BCM957414A4141DDLP.pkg
3. esxcli niccli install -c dev -v BC:97:E1:70:14:10 -p=/BCM957414A4141DDLP.pkg
4. esxcli niccli install -c pci -v 0000:86:00.00 -p=/BCM957414A4141DDLP.pkg
The interface arguments depend on the hardware connection type and its specified
dependent arguments. The NICCLI configuration utility supports the -pci interface which
5
Broadcom NetXtreme - NICCLI Readme
takes the PCI Bus/Device/Location of the device. Alternatively, the utility also offers to list
all the available Ethernet network adapter PCI devices in the system along with the
appropriate Ethernet/Network interface names.
The NICCLI configuration utility has the -i/-dev index support which can select when
more than one device is found within the host.
The utility arguments are optional. These are specific to the NICCLI configuration utility
itself. E.g. convert all the output into JSON or increase the logger verbosity, and so forth.
Target Command
The target is nothing but the NICCLI configuration utility connected device. These targets
offer a specific set of commands depending on the connected interface/device. The
target-specific commands are executed upon acquiring the connection with the target.
All the commands that are provided are case-sensitive and operate with any of the
interface modes. The following rules are for the newly defined NICCLI configuration
utility syntax. The commands use a specific syntax as follows:
6
Broadcom NetXtreme - NICCLI Readme
To access the NICCLI configuration utility help, use the following command:
./niccli [--help | -h]
Example:
./niccli -h
To list the available targets for Oneline mode use the following command:
niccli --list
Use the following command to display the list of available commands for Oneline Mode:
niccli [-i <index of the target> | -pci <NIC pci address>] help
Use the following command to display the help for a specific command:
niccli [-i [<index of the target> | <mac addr> | <NIC pci address>]] help <command>
Example:
niccli -i 1 help nvm
1) The NICCLI configuration utility provides a help command to list all the
available or supported commands.
2) The NICCLI configuration utility supports help [command] to display detailed
help for the specific command. Upon execution of the given user command, the prompt
is shown again for the next command.
NOTE:
7
Broadcom NetXtreme - NICCLI Readme
This mode is best suited for connecting to the target and executing multiple
operations/commands without having to disconnect from the target. This improves
performance and time in establishing a connection with the target each time while
executing a command. This is only for interactive usage and is not designed or meant for
the scripting.
Use the following command to display the list of available commands for Interactive
Mode:
'help'
NOTE:
Batch mode requires a flat text file with utility-supported commands. Supported
commands can be listed using OneLine mode or Interactive mode. Upon failure of any
commands, the utility exits without continuing with other commands.
5. NICCLI Logging
1) 'scrutiny.ini' file captures the logs for the scrutiny library and to capture
the logs for the CLI layer alone, user has to specify any of the following
options in the cli command,
8
Broadcom NetXtreme - NICCLI Readme
2) Running any niccli command with 'scrutiny.ini' file being present in the
same directory as niccli executable, will affect the overall completion time
for the command. This is because debug logging will get enabled when
'scrutiny.ini' file is present. It is recommended to use only for debugging purposes.
2) White space characters other than plain space like tab etc. are not supported as
argument separators in the interactive mode.
4) DCB commands i.e. pfc, apptlv, up2tc, getqos, ets, listmap, dscp2prio and tcrlmt to
work, user has disable the following nvm options "lldp_nearest_bridge",
"lldp_nearest_non_tpmr_bridge" and "dcbx_mode".
5) The error codes will be supported only for the online mode, the interactive mode
and the batch mode will not have error codes displayed.
6) If User encounters below error while running the niccli executable on Linux
Systems, Please follow the below steps to avoid the below error:
9
Broadcom NetXtreme - NICCLI Readme
- https://www.infradead.org/~tgr/libnl/files/
- https://snapshot.debian.org/package/libnl3/3.2.21-1/
- https://snapshot.debian.org/package/libnl3/
- https://www.linuxfromscratch.org/blfs/view/7.10/basicnet/libnl.html
b. Untar the source code and run the below commands
- ./configure --prefix=/usr --sysconfdir=/etc --disable-static
- make
- make install.
c. Run export LD_LIBRARY_PATH=<installed library path>
- Check the make install logs for the location where the library is installed.
d. Then run the niccli
C). If the user is fine with ignoring the “no version information available”, then they
can skip #B.
7) Unless -all option is explicitly specified, resmgmt command works based on its
default mode (for a selected single PF or for all PFs/entire NIC device) which is printed
when it's executed or its help is displayed. -all option performs the given
command/operation for all the PFs of the given NIC device.
8) NICCLI / NICCLI in the Linux secure boot environment displays the "Firmware
Reset Counter" and "Error Recovery Counter" fields in the show command always as
zero as the mmap fails due to security considerations.
1) In interactive mode, editing the command by moving the cursor using the left/right
arrow will not work. The user has to re-issue the command.
Since it supports Storage, switch, expanders, NIC products through different ways of
communication interfaces, we cannot change the existing logging mechanism
design/functionality alone for NIC.
5) User has to provide an option "-s" (silent mode) for the command named
"restorefactorydefaults" which requires user confirmation 'Yes/No'.
10
Broadcom NetXtreme - NICCLI Readme
1) In Linux OS, When the secure boot is enabled the adapter configuration/query
commands using niccli will not work as the mapping to the PCI BAR is not allowed by the
OS.
2) Running multiple instances of niccli at the same time can result in the unexpected
outputs and command timeouts.
3) In multihost environment, Race conditions can occur if more than one host attempts
to utilize the USHI channel at the same time and this can result in the corruption of the
control and data registers, timeouts, etc.
To get a current list of supported commands and the usage syntax supported by the
niccli utility, use the niccli help option.
niccli help
Command Description
list Lists all the compatible devices
listdev Lists all the compatible devices (NIC legacy syntax)
Broadcom Proprietary and Confidential. © 2024 Broadcom. All rights reserved.
11
Broadcom NetXtreme - NICCLI Readme
Command Description
show Shows NIC specific device information
txfir Network Interface Card Transmission Finite Impulse Response
pcie Show/Execute pcie operation
nvm NVRAM Option Management
backuppowercfg Backup Power Configuration
rfd Restores NVM configuration to factory defaults
tsio TSIO function capability on the pin
ingressqos Query and configure the ingressqos parameters
egressqos Query and configure the egressqos parameters
reset Reset the device
fw_sync Synchronize primary & secondary FW images
livepatch Query, Activate and Deactivate the patch in live
install Install/Update FW
coredump Retrieves coredump data from device.
snapdump Retrieves snapdump data from device.
version Display the current version of the application
vf Configure and Query for a trusted VF
prbs_test Run PRBS loopback test
12
Broadcom NetXtreme - NICCLI Readme
Plots the serdes pci and ethernet eye and prints the horizontal and
serdes vertical margin values.
loopback Query/perform loopback config.
add_ntuple_filter Add ntuple flow filter.
free_ntuple_filter Free ntuple flow filter.
cfgtunnel query/config custom tunnel port/rss.
write Create or overwrite NVM data item with a file.
portstate Query or configure the port state
clearcounters Clear the port counters
pfc Configure the priority for a given priority.
apptlv Configure the priority for the AppTLV
tcrlmt Configure the rate limit for each traffic class
Configure the enhanced transmission selection, priority to traffic class
ets and bandwidths.
up2tc Configure the user priorities to traffic classes
Query the configured enhanced transmission selection, priority to
getqos traffic class and bandwidths.
listmap List the priority to traffic class and queueid mapping
dscp2prio Query the dscp to priority mapping
This command is used to configure the GPU host and guest physical
peermemmap address mapping.
rxportrlmt Configure the receive side port rate limit
rxrlmt Query the configured receive side rate control parameters.
rxeprlmt Configure the receive side rate control parameters for a given endpoint.
Query and Configure the transmit side partition rate limit applies to
txpartitionrlmt traffic sent from a partition, which is one PF and all of its child VFs.
txportrlmt Query and Configure the transmit side of port rate limit.
txeprlmt Query and Configure the PCIe endpoint
dutycycle Set duty cycle on TSIO outgoing signal
dllsource Set the DLL source for PHC
ptp PTP extended parameters operation
13
Broadcom NetXtreme - NICCLI Readme
Display and configure the number of MSIX max vectors values for VF's
msixmv per each PF
synce Configure the synchronous ethernet profile
pfalloc Configure and Query for the number of PFs per PCIe endpoint
read Read the NVM item data and write its contents to a file.
dscdump Retrieves dscdump for device
Command Description
show Shows NIC specific device information
txfir Network Interface Card Transmission Finite Impulse Response
pcie Show/Execute pcie operation
nvm NVRAM Option Management
backuppowercfg Backup Power Configuration
reset Reset the device
tunnelcfg Query and configure the custom tunnel configuration.
livepatch Query, Activate and Deactivate the patch in live
install Install/Update FW
coredump Retrieves coredump data from device.
snapdump Retrieves snapdump data from device.
version Display the current version of the application
vf Configure and Query for a trusted VF
prbs_test Run PRBS loopback test
moduleinfo Query the PHY module information.
loopback Query/perform loopback config.
add_ntuple_filter Add ntuple flow filter.
free_ntuple_filter Free ntuple flow filter.
cfgtunnel query/config custom tunnel port/rss.
14
Broadcom NetXtreme - NICCLI Readme
Install commands
==============
The most common use of the niccli utility is the installation of a Broadcom-supplied NVM
package (a file usually ending in a '.pkg' extension or suffix).
Syntax:
niccli -i < target index> install [-force] [[-online] [-recovery/-rescue]] [.pkg_files]
niccli -i < target index> install [-force] | [-force][-online] | [-force][-recovery/-rescue]
[package_files]
niccli -i < target index> install [-options] [package_files] [-options]
[-options] = [-force] | [-force][-online] | [-force][-recovery/-rescue]
-online : Fetch FW image online from Broadcom server & perform update.
-options should not appear among/in the middle of the file list.
15
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 3 install BCM957414A4141DDLP.pkg
niccli -i 3 install BCM957414A4141DDLP.pkg -online
niccli -i 3 install BCM957414A4141DDLP.pkg -force -recovery
list command
============
Lists all the supported device information and can choose the target to connect with.
Syntax :
niccli [-i <target index>] list
Example:
niccli list
listdev command
============
Lists all the supported device information..
Syntax :
niccli [-i <target index>] listdev
Example:
niccli listdev
devid command
============
Display Broadcom device id information.
Syntax :
niccli [-i <target index>] devid [-f <firmware package file(s)>]
Example:
niccli -i 3 devid -f BCM957608-P2200GQF00.pkg
pkgver command
============
Display firmware package version installed on the device.
Syntax :
niccli [-i <target index>] pkgver [-f <firmware package file(s)>]
16
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 3 pkgver -f BCM957608-P2200GQF00.pkg
Syntax:
niccli [-i <target index>] nvm-list [-v | -vv | -vvv ]>] [-f <firmware package file(s)>]
[-v]/[-vv]/[-vvv]: Verbosity level depends on the number of v's.
Example:
niccli nvm-list -v
nvmview command
===============
To View the NVM item data.This command is not supported on UEFI platform.
Syntax:
niccli [-i <target index>] nvmview [-type <NVM_directory_name [-v | -vv | -vvv ]>] [-f <package
file>]
-type : Input NVM directory name string.
-f : Input Firmware package file
Example:
niccli nvmview -f BCM957608-P2200GQF00.pkg
verify command
==============
To inspect or verify the contents of a package file, you can use verify command
with one or more package filename arguments:
Syntax:
niccli [-i <target index>] verify [-v | -vv | -vvv ]>] [-f <firmware package file(s)>]
[-v]/[-vv]/[-vvv]: Verbosity level depends on the number of v's.
Example:
niccli verify -vv -f BCM957608-P2200GQF00.pkg
list-eth command
==============
Lists all the supported device information with ethernet interface name.This command is not
supported on UEFI platform.
17
Broadcom NetXtreme - NICCLI Readme
Syntax:
niccli [-i <target index>] list-eth
Example:
niccli -i 3 list-eth
quit command
============
Quits the application.
Syntax:
niccli [-i <target index>] quit
Example:
niccli -i 3 quit
version command
===============
Display the current version of the application.
Syntax:
niccli -i <target index> version
Example:
niccli -i 4 version
Show command
=============
This command will display all the basic details of the device.
Syntax:
show -all
-all : Display all the details of the device.
show -livepatch
-livepatch : Display the livepatch supported target firmware versions
of the device.
18
Broadcom NetXtreme - NICCLI Readme
show -nvmmeasurement
-nvmmeasurement : Display whether the NVM configuration is active in the system or not.
To facilitate this, a hash is generated based on nvm configuration.
The hash represents the measurement of the configuration.
This command is supported only on BCM9575xxx devices.
show -ptpextended
-ptpextended : Display PTP extended parameters.
This command is supported only on BCM9575xxx devices.
show -health
-health : Display the device health.
Example :
./niccli -i 1 show
./niccli -i 1 show -all
./niccli -i 1 show -health
./niccli -i 1 show -certificate -slot 0
./niccli -i 1 show -fwpackage -f BCM957508-N2100G.pkg
./niccli -i 1 show -fwpackage -pkg BCM957508-N2100G.pkg
./niccli -i 1 show -status -pid 4
./niccli -i 1 show -summary -pid 4
./niccli -i 1 show -all -pid 4
NVM Commands
==============
niccli allows users to configure individual options in NVM and read option
information from the NVM.
19
Broadcom NetXtreme - NICCLI Readme
1) NVM -getoption
Syntax:
niccli -i <target index> nvm -getoption [<option name> | <option name> -h] |
[-scope <scope index>]
Note: In the case of multiple PF's, be the name of any of the PF interface names.
This, however, does not remove the requirement for specifying the 'port index'
parameter when retrieving a specific interface value, i.e. PF1's value, in the
case of multiple interfaces.
Example:
niccli -i 1 nvm -getoption
niccli -i 5 nvm -getoption an_protocol -h
niccli -i 5 nvm -getoption an_protocol -scope 0
2) NVM -setoption
Syntax:
niccli -i <target index> nvm -setoption <optionname>
-value <value> [-scope <scope index>]
20
Broadcom NetXtreme - NICCLI Readme
This, however, does not remove the requirement for specifying the 'port index'
parameter when retrieving a specific interface value, i.e. PF1's value, in the
case of multiple interfaces.
Example:
niccli -i 5 nvm -setoption an_protocol -scope 0 -value 1
3) NVM -saveoptions
Syntax:
niccli -i <target index> -saveoptions -file <filename>
Example:
niccli -i 5 nvm -saveoptions -file output.txt
4) NVM -listoptions
Syntax:
niccli -i <target index> -listoptions [-diff]
Example:
niccli -i 5 nvm -listoptions
Note:
======
1) If any NVM option is not supported on specific platform, user will see the failure messages
21
Broadcom NetXtreme - NICCLI Readme
in the system log. Simultaneous NVM writes are not supported from niccli. If user still
tries to perform simultaneous NVM writes and it may result in timeout errors.
3) -saveoptions will save only the end user access NVM configuration options.
cfgtunnel commands
==================
niccli allows users to query/configure custom tunnel destination port and RSS(receive side
scaling) information.This command is supported only on linux OS.
Syntax:
Query port:
niccli -i <target index> cfgtunnel vxlan_ipv4|vxlan_ipv6
Free port:
niccli -i <target index> cfgtunnel vxlan_ipv4|vxlan_ipv6 dst_port
Set port:
niccli -i <target index> cfgtunnel vxlan_ipv4|vxlan_ipv6 dst_port <port num>
Query RSS mode:
niccli -i <target index> cfgtunnel rss_mode
Configure RSS mode:
niccli -i <target index> cfgtunnel rss_mode <inner/outer>
Example:
niccli -i 5 cfgtunnel vxlan_ipv4
niccli -i 5 cfgtunnel rss_mode inner
niccli -i 5 cfgtunnel vxlan_ipv4 dst_port 0
PCIe command
============
Allow users to fetch the PCIe statistics or counters.This command is not supported on UEFI
platform.
Syntax:
niccli -i <target index> pcie -counters.
-counters : pcie counters
22
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 5 pcie -counters
Syntax:
niccli -i <target index> reset
Reset the device.
Example:
niccli -i 5 reset
niccli -i 5 reset -ap
Syntax:
niccli -i <target index> coredump [-ddr]
Note: It is strongly recommended not to use the "ethtool -W" command when using niccli
"device_info" command to query the crashdump availability and "coredump" commands.
User has to set the "ethtool -W" flag to the previous state, if the user still wants to go-ahead and
use the "ethtool -W" command.
Example:
niccli -i 3 coredump
23
Broadcom NetXtreme - NICCLI Readme
driver logs and cli logs. A *.core file will be generated from where the niccli utility
is executed. This command is not supported on the UEFI platform.
Syntax:
niccli -i <target index> snapdump
Example:
niccli -i 3 snapdump
Trusted VF command
==================
Allow users to configure VF as a trusted entity and queries trusted VF configuration.
This command is only supported on Linux.
Syntax:
niccli -i <target index> vf -id <vf index> trust <enable/disable>
Syntax:
niccli -i <target index> vf -id <vf index> trust
Note: If kernel supports the trusted VF configuration in "ip link" command, it's strongly
recommended for the user to configure it using "ip link" command. Otherwise inconsistent
behavior may be seen in the trusted VF configuration with kernel.
Example :
niccli -i 1 vf -id 1 -trust enable
niccli -i 1 vf -id 1 -trust
PRBS Test
=========
This command is used to configure and run PRBS test on a given port. The test can be run on a
port or per lane with a specific polynomial. This command will be used in port interface debug to
analyze the quality of the link. This command is supported on Linux OS and UEFI platform.
24
Broadcom NetXtreme - NICCLI Readme
Note:
1) The interface(s) should be fully initialized prior to the testing.
2) During the testing, there should not be any queries or configs sent to the card.
"ifdown" the interface(s) is recommended.
Syntax:
niccli -i <target index> prbs_test <enable/disable>
Above command will enable/disable PRBS test with default parameters i.e. prbs mode is
PRBS31
for all the RX/TX lanes.
niccli -i <target index> prbs_test < -enable > [-mode <mode value> -rxlanemask <value>
-txlanemask <value> [-duration <value in seconds>] [-tcode]]
Above command will enable PRBS test with user specified prbs mode, RX/TX lanes and
duration in seconds.
PRBS31/PRBS7/PRBS9/PRBS11/PRBS15/PRBS23/PRBS58/PRBS49/PRBS10/PRBS20/PRB
S13 (Default PRBS31).
-rxlanemask : Receiver lane mask value.
-txlanemask : Transmitter lane mask value.
-duration : Duration to run the prbs test. Default time is 10 seconds
-tcode : If this option was provided. The prbs test will run on t-code project as well.
Example:
niccli -i 4 prbs_test -enable
niccli -i 4 prbs_test -disable
Please use appropriate board specific parameters. Eg. For Thor2 board:
prbs_test -enable -mode PRBS31 -rxlanemask 255 -txlanemask 255 -duration 10
Syntax:
niccli -i <target index> rfd
25
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 3 rfd
Loopback command
=================
Allow users to configure different loopback modes i.e. phy loopback, mac loopback and external
loopback. This command is supported only on Linux OS.
Syntax:
1) niccli -i <target index> loopback phy_remote
Above command enables loopback of local PHY RX to peer PHY TX. The packets transmitted
by the peer are looped back to the peer at the PHY.No packets will reach the host. Host will see
a link down.
Above command enables a loopback of local TX to local RX at the PHY. Any packets
transmitted from the host are looped back to the host. No packets will be transmitted on the line.
If any peer is connected, the peer should ignore the link status from the host.
Above command enables a loopback of local TX to local RX at the MAC. Any packets
transmitted from the host are looped back to the host.No packets will be transmitted on the line.
If any peer is connected, the peer should ignore the link status from the host.
Above command prepares the PHY from external loopback and suppresses NONCE
generation for auto negotiation to work with an external loopback. This option should only be
used if the same port external loopback dongle or equivalent is used. Without this option and
AN enabled, the host may not see a link up.
loopback disable
Above command disables any loopback setting.
26
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 4 loopback mac_local
niccli -i 4 loopback disable
Syntax:
To get the ingress qos parameters
niccli -i <target index> ingressqos -cosq -set -state <value> [-mode <value>] [-persistent]
-cosq : This option is used to set the cosq parameter i.e. cosq state and the mode.
-state : This is an optional parameter, and this field is a bitmask indicating which
traffic classes are enabled or disabled. Each bit represents a specific traffic class, where bit 0
represents traffic class 0 and bit 7 represents traffic class 7. A value of 0 indicates that the traffic
class is not enabled. A value of 1 indicates that the traffic class is enabled.
-mode : This is an optional parameter, and this field is a bitmask indicating which
traffic class are lossy or lossless. Each bit represents a specific traffic class where bit 0
represents traffic class 0 and bit 7 represents traffic class 7. A value of 0 indicates that the
traffic class is lossy. A value of 1 indicates that the traffic class is lossless.
Example:
27
Broadcom NetXtreme - NICCLI Readme
Syntax:
To get the egress qos parameters
niccli -i <target index> egressqos -cosq -get [-persistent]
-cosq : This option is used to query the cosq parameter i.e. cosq state and the
mode.
-persistent : This option is used to query the cosq configuration from the NVRAM.
-state : This field is a bitmask indicating which traffic classes are enabled or disabled.
Each bit represents a specific traffic class where bit 0 represents traffic class 0 and bit 7
represents traffic class 7. A value of 0 indicates that the traffic class is not enabled. A value of 1
indicates that the traffic class is enabled.
-persistent : If the persistent option is given the configuration is written to NVRAM to save
the configuration across the reboots.
Example:
niccli -i 6 egressqos -cosq -get
niccli -i 6 egressqos -cosq -set -state 255
In the above example, all the 8 queues are enabled.
Serdes command
==============
This command is used to plot the serdes ethernet eye, PCI eye scope and margin values of the
eye. This command is supported only on Linux OS.
28
Broadcom NetXtreme - NICCLI Readme
Syntax:
To plot the serdes ethernet eye and the test results.
niccli -i <target index> serdes -ethernet [-plot]
-ethernet : This option is used to plot the serdes ethernet eye.
By default this options displays only horizontal and
vertical margin values, including the test result.
-plot : This is an optional parameter. When the user specifies this option, it will
plot the eye and display the horizontal and vertical margin values, including the test result.
Note:
1. While plotting the serdes ethernet eye the link toggling is expected.
2. Serdes ethernet and pci eye shares the resources of the NIC. Therefore, these commands
cannot be run concurrently. If pci eye is running and you attempt to run ethernet eye
tool will return failure.
Ntuple commands
29
Broadcom NetXtreme - NICCLI Readme
===============
Syntax:
niccli -i <target index> add_ntuple_filter <MAC> <dest_port> <dst_port_mask> <VF_id>
<ip_type>
Example:
niccli -i 4 add_ntuple_filter 00:01:02:03:04:a3 1023 0xFFFF 0 1
2) free_ntuple_filter
Below command is used to free ntuple flow filter for the specified filter id
Syntax:
niccli -i <target index> free_ntuple_filter <filter_id in hex>
Example:
niccli -i 4 free_ntuple_filter 0xAFFF
Syntax:
niccli -i <target index> backuppowercfg
Example:
niccli -i 4 backuppowercfg
PFC command
30
Broadcom NetXtreme - NICCLI Readme
============
This command is used to enable priority-based flow control on a given priority.
This command is supported only on linux OS.
Syntax:
niccli -i <target index> pfc -enable <pfc list>
The valid range is from 0 to 7. Where list is a comma-separated value for each pfc.
To disable the pfc, the user needs to provide a value of 0xFF.
Example:
niccli -i 5 pfc -enable 5,6
niccli -i 5 pfc -enable 0xFF
Where example #1 will enable the pfc on priority 5 and 6.
AppTLV command
==============
This command is used to configure the priority of the AppTLV.
This command is supported only on linux OS.
Syntax:
niccli -i <target index> apptlv -add -app <priority,selector,protocol>
niccli -i <target index> apptlv -del -app <priority,selector,protocol>
Example:
niccli -i 4 apptlv -add -app 5,1,35093
niccli -i 4 apptlv -del -app 5,1,35093
Ratelimit command
=================
1) tcrlmt command
Below command is used to set the rate limit for each traffic class in units of percentage (%).
This command is supported only on linux OS.
Syntax:
niccli -i <target index> tcrlmt -set -r <list of rate limit>
Where list is a comma-seperated percentage limit for each TC.
Example:
niccli -i 1 tcrlmt -set -r 10,20,30
niccli -i 1 tcrlmt -set -r 10
Where example #1 will limit TC0 to 10%, and TC1,TC2 to 20% and 30% each.
31
Broadcom NetXtreme - NICCLI Readme
2) rxrlmt command
Below command is used for users to query the receive side rate limits.
This command is supported only on linux OS and FreeBSD OS.
Syntax:
niccli -i <target index> rxrlmt -get [-persistent]
-persistent : To read the configuration from the NVRAM.
Example:
niccli -i 1 rxrlmt -get
Syntax:
niccli -i <target index> ets -tsa <tc[0-7]:[ets|strict], ...> -up2tc <priority[0-7]:tc>, ...> -tcbw
<list>
-tsa : Transmission selection algorithm, sets a comma separated list of traffic classes to
the corresponding selection algorithm. Valid algorithms include "ets" and "strict".
-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.
Example :
niccli -i 1 ets -tsa 0:ets,1:ets,2:strict,3:strict,4:strict,5:strict,6:strict,7:strict
-up2tc 0:0,1:0,2:0,3:0,4:0,5:1,6:0,7:0 -tcbw 70,30
Up2tc command
=============
This command is used to set the user priorities to traffic classes.
This command is supported only on linux OS.
Syntax:
niccli -i <target index> up2tc -p <priority[0-7]:tc>, ...>
-p : Comma separated list mapping user priorities to traffic classes.
Example:
32
Broadcom NetXtreme - NICCLI Readme
Syntax:
niccli -i <target index> getqos
Example:
niccli -i 4 getqos
Listmap command
===============
This command is used to list the priority to traffic class mapping and related queue id for a given
physical function. This command is supported only on linux OS.
Syntax:
niccli -i <target index> listmap -pri2cos
Example:
niccli -i 4 listmap -pri2cos
Dscp2prio command
=================
This command is used to query the dscp to priority mapping. This command is supported only
on linux OS.
Syntax:
niccli -i <target index> dscp2prio
Example:
niccli -i 4 dscp2prio
Syntax:
niccli -i <target index> peermemmap -hpa <list of values> -gpa <list of values> -size <list of
33
Broadcom NetXtreme - NICCLI Readme
values>
-hpa : This option is used to specify the list of host physical addresses.
Max 8 entries are supported. User has to provide the list with a
comma seperated for each host physical address. The value should be
in the hex-decimal.
-GPA : This option is used to specify the list of guest physical addresses.
Max 8 entries are supported. User has to provide the list with a
comma seperated for each guest physical address. The value should be
in the hex-decimal.
-size : This option is a comma separated list in kilobytes for each mapping.
Max 8 entries are supported. The value should be in the hex-decimal.
Example:
niccli -i 3 peermemmap -hpa 0x1FFFFFFF,0x2FFFFFFF,0x3FFFFFFF,0x4FFFFFFF
-gpa 0x9FFFFFFF,0xAFFFFFFF,0xBFFFFFFF,0xCFFFFFFF,0xDFFFFFFF
-size 0x10000,0x10000,0x8000,0x8000
Syntax:
niccli -i <target index> rxportrlmt -set -max <value> [-persistent]
-max : The max option specifies an 8-bit rate limit as a percentage of total link
bandwidth, with a range of 0 to 100 percent. A value of 0 indicates no rate
limit, and deletes a previously configured rate limit.
-persistent : If the persistent option is given the configuration is written to NVRAM, but
it does not take effect immediately.
Example:
niccli -i 4 rxportrlmt -set -max 5
34
Broadcom NetXtreme - NICCLI Readme
packets according to the packet’s destination, there is a queue group per PCIe endpoint and this
rate limit shapes traffic to the endpoint. When the NIC queue receives packets according to the
receive panel port, there is a queue group per port, and this rate limit shapes all traffic received
on one port. Only a maximum rate may be configured; configuration of a minimum guaranteed
rate is not supported.
For multi-host or multi-root, the syntax is as follows. The command specifies the endpoint index
explicitly, so that a user can specify the endpoint rate limit for all endpoints from one host.
On 4-endpoint systems, ep is 0 to 3. On 2-endpoint systems, ep is 0 or 2
The max option specifies an 8-bit rate limit as a percentage of total link bandwidth, with a range
of 0 to 100 percent. A value of 0 indicates no rate limit, and deletes a previously configured rate
limit.
When the NIC queues packets according to a packet’s destination (as it does for multi-host or
multi-root), the firmware automatically computes an endpoint rate limit as a percentage of the
endpoint’s PCIe bandwidth. The configured rate limit takes effect if it is less than the automatic
rate limit.
The configuration takes effect immediately. The change is not stored in NVRAM. However, if the
persistent option is given, the configuration is written to NVRAM, but it does not take effect.
Syntax:
niccli -i <target index> rxeprlmt -set -ep0_max <value> [-ep1_max <value>] [-ep2_max
<value>] [-ep3_max <value>] [-persistent]
-ep0_max : Endpoint 0 max rate limit
-ep1_max : Endpoint 1 max rate limit
-ep2_max : Endpoint 2 max rate limit
-ep3_max : Endpoint 3 max rate limit
-persistent : If the persistent option is given the configuration is written to NVRAM, but
it does not take effect immediately.
Example:
niccli -i 4 rxeprlmt -set -ep0_max 0
35
Broadcom NetXtreme - NICCLI Readme
Each rate limit is specified as a percentage of link bandwidth. The firmware automatically
adjusts the rate limits when link speed changes. Only a maximum rate can be configured.
Configuration of a minimum guaranteed rate is not supported.
By default, the command updates the running configuration. The change is not stored in
NVRAM. The persistent option indicates that the configuration is written to NVRAM, but it does
not take effect immediately. The change may be activated by resetting the firmware or rebooting
the host or power cycling the system.
The valid range for max rate is an integer, from 0 to 100. A value of 0 signifies
no rate limit, in which case the firmware deletes any previous rate limit.
By default, the firmware does not enforce a maximum rate.
This command may be configured for a PF regardless of the number of PFs associated with
a port, even if there is only one partition. This feature assumes the number of partitions
is established when firmware initializes and cannot be changed without restarting the firmware.
Syntax:
To set the tx partition rate limit
niccli -i <target index> txpartitionrlmt -set -max <value> [ -persistent ].
-max : The max option specifies the maximum aggregate rate at which the PF
and its child VFs can transmit. The sum of the max rate limits for all
partitions on a port may exceed the link bandwidth.
-persistent : This option is used to save the partition rate limit configuration across
reboots.
Syntax:
36
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 6 txportrlmt -get
Syntax:
To set the tx PCIe EndPoint rate limit
niccli -i <target index> txeprlmt -set -p <port number> -ep0_max <value> [-ep1_max
<value>] [-ep2_max <value> [-ep3_max <value>] [-persistent]
-p : Specifies the index of external port of the device
-ep0_max : Endpoint 0 max rate limit
-ep1_max : Endpoint 1 max rate limit
-ep2_max : Endpoint 2 max rate limit
-ep3_max : Endpoint 3 max rate limit
-persistent : If the persistent option is given the configuration is written to NVRAM, but
it does not take effect immediately.
Example:
1) On a 1-port NIC (port number of 0 is implied) with two endpoints, allow each endpoint to
use
up to 50% of the transmit bandwidth.
2) On a 2-port NIC with two endpoints, allow the CPU attached to EP 0 to use up to 60% of
each link,
and allow the CPU attached to EP 2 to use up to 40% of each link.
37
Broadcom NetXtreme - NICCLI Readme
An endpoint rate limit only has an effect when set below the endpoint’s effective PCIe
bandwidth.
The -p option specifies the index of an external port. The range is 0 to one less than the
number of external ports on the NIC.
The user may specify rate limits for one or more endpoints on the port. Of course, rate limits
can only be specified for endpoints that exist on the system. Only a maximum rate can be
configured. Configuration of a minimum guaranteed rate is not supported.
The max option specifies the maximum aggregate transmit rate of traffic from all functions on
the endpoint. It is specified as a percentage of the bandwidth of the specified port. The
command accepts integer values from 0 to 100. A value of 0 indicates no maximum rate limit.
By default, this command updates the running configuration. The change is not stored in
NVRAM. The persistent option indicates that the configuration is written to NVRAM, but it does
not take effect immediately. The change may be activated by resetting the firmware or rebooting
the host or power cycling the system.
Note: While the dscdump operation is running, FW does not service other
commands that operate on the PHY. System logs may indicate command timeouts
while the dscdump operation is in progress.
Syntax:
niccli -i <target index> dscdump <lane_number> [<diag_level>]
lane_number : MRS lane number. To collect the dsc dump on all the supported lanes, please
provide a value of 65535.
DSC dump on all lanes is supported only on BCM9576xx devices.
diag_level : This is an optional parameter. If the user does not specify this parameter
38
Broadcom NetXtreme - NICCLI Readme
by default DSC dump will be collected on all the supported diag levels.
Supported diag levels are as follows
0 = diag lane
1 = diag core
2 = diag event
3 = diag eye
4 = diag reg core
5 = diag reg lane
6 = diag uc core
7 = diag uc lane
8 = diag lane debug
9 = diag ber vert
10 = diag ber horz
11 = diag event safe
12 = diag timestamp
Example:
niccli -i 4 dscdump -lane 65535 -diaglevel 2
Syntax:
niccli -i <target index> fw_sync
Example:
niccli -i 3 fw_sync
TX FIR Settings
=============
This command is not supported on the UEFI platform.
niccli -i <target index> -get -modtype <mod type> -lane <lane number>
39
Broadcom NetXtreme - NICCLI Readme
niccli -i <target index> txfir -set -modtype <mod type> -lane <lane mask> -pre1 <value> -pre2
<value> [-pre3 <value>] -main <value> -post1 <value> -post2 <value> [-post3 <value> -amp
<value> -nlcl <value> -nlcu <value>]
-lane : MRS lane number for the query command and lane mask for the configure
command.
params : The following params '-pre1', '-pre2', '-main', '-post1', '-post2' are the mandatory
parameters for all the modulation types. Whereas '-pre3', '-post3', '-amp', '-nlcl' and '-nlcu' are
the optional parameters, which are required only for particular modulation types. The valid range
for parameter '-nlcu' is from -100 to 100. The valid value for parameter '-nlcl' is -1 and the valid
range for other parameters is from -32768 to 32767. Below is the list of supported parameters
for each modulation type:
1) LPOPAM4-112G : '-pre1', '-pre2', '-pre3', '-post1', '-post2', '-main', '-nlcl' and '-nlcu'
2) NRZ, PAM4 and C2MNRZ : '-pre1', '-pre2', '-post1', '-post2', '-post3', '-main' and '-amp'
3) PAM4-112, C2MPAM4 and C2MPAM4-112G : '-pre1', '-pre2', '-pre3', '-post1', '-post2',
'-main' and '-amp'
Example :
niccli -i 5 txfir -set -modtype LPOPAM4-112G -lane 1 -pre1 1 -pre2 -2 -pre3 10 -main 12
-post1 -10 -post2 15 -nlcl -1 -nlcu 1
niccli -i 5 txfir -get -modtype LPOPAM4-112G -lane 0
niccli -i 3 txfir -set -modtype PAM4 -lane 1 -pre1 1 -pre2 -2 -main 12 -amp 10 -post1 -10
-post2 15 -post3 10
niccli -i 3 txfir -get -modtype PAM4 -lane 0
niccli -i 2 txfir -set -modtype NRZ -lane 1 -pre1 1 -pre2 -2 -main 12 -amp 10 -post1 -10 -post2
15 -post3 10
niccli -i 2 txfir -get -modtype NRZ -lane 0
40
Broadcom NetXtreme - NICCLI Readme
niccli -i 1 txfir -set -modtype PAM4-112 -lane 1 -pre1 1 -pre2 -2 -pre3 5 -main 12 -amp 10
-post1 -10 -post2 15
niccli -i 1 txfir -get -modtype PAM4-112 -lane 0
PF Alloc command
================
Syntax:
Below command is used to query the number of PF's for all the endpoints.
niccli -i <target index> pfalloc -get
Below command is used to configure the number of PF's for each endpoint.
niccli -i <target index> pfalloc -set <ep0_pf_cnt> <ep1_pf_cnt> <ep2_pf_cnt>
<ep3_pf_cnt>
<ep0_pf_cnt>: number of PF to be written on EP0
<ep1_pf_cnt>: number of PF to be written on EP1
<ep2_pf_cnt>: number of PF to be written on EP2
<ep3_pf_cnt>: number of PF to be written on EP3
Example :
niccli -i 5 pfalloc -get
niccli -i 5 pfalloc -set 0 0 0 0
To query and configure the number of msix max vectors values for VF's per each PF.
This command is supported only on BCM9575xxx and BCM9576xxx devices.
This command is supported only on Linux OS and Windows OS.
Syntax:
Below command is used to query the msix max vector table.
niccli -i <target index> msixmv -get [-all | -pf <pf_number>]
41
Broadcom NetXtreme - NICCLI Readme
-pf : PF Number to query the table of 8 rows for msix max vectors.
-get : Get the msix max vectors for PF.
-all : Displays msix max vectors for all the PF's.
-pf : PF Number to query the table of 8 rows for msix max vectors.
-set : Confiure the msix max vectors for PF.
Example :
niccli -i 3 msixmv -get -pf 0
niccli -i 3 msixmv -get -all
niccli -i 3 msixmv -set -pf 0
LivePatch command
=================
Syntax:
Below commands are used to activate or deactivate the live patch from NVM.
niccli -i <target index> livepatch activate [target_fw]
niccli -i <target index> livepatch deactivate [target_fw]
target_fw=common_fw/secure_fw
Below command is used to query the livepatch supported target firmware versions.
niccli -i <target index> livepatch
Below command is used to update the patch file directly to the device i.e. without installing it
on NVM.
niccli -i <target index> livepatch update [target_fw] <patch_file>
Example:
niccli -i 3 livepatch activate
42
Broadcom NetXtreme - NICCLI Readme
Syntax:
niccli -i <target index> tsio -pin <pin_index> -pu <pin usage string> [enable/disable]
-pin : Pin Index.
Valid Index : 0 to 3
-pu : Pin usage string.
Supported strings : none | pps_in | pps_out | sync_in | sync_out |
synce_primary_clock_out | synce_secondary_clock_out
-enable : Enable function capability on the pin.
-disable : Disable function capability on the pin.
Example :
niccli -i 5 tsio
niccli -i 5 tsio -pin 0 -pu none -enable
niccli -i 5 tsio -pin 1 -pu pps_in -disable
Syntax:
niccli -i <target index> dutycycle -period <value> -up <value>
value : Given value will be treated as in nanoseconds.
And the period value should be larger than "up" value.
Example:
dutycycle -period 1 -up 0
DLL Source
==========
This command is used to set the DLL source for PHC. This command is supported only on
Linux OS and VMWare OS.
Syntax:
niccli -i <target index> dllsource -source <value> -frequency <value>
-source : The valid values range is 0 to 4. .
-frequency : The valid values range is 0 to 3
43
Broadcom NetXtreme - NICCLI Readme
Example :
niccli -i 3 dllsource -source 1 -frequency 1
Syntax:
niccli -i <target index> read -type <NVM_directory_name> -f <filename>
-type: Input NVM directory name string
-f: Input file name
Example:
niccli -i 3 read -type vpd -f output.txt
Below command creates or overwrites NVM data item with a file. This command is
supported only on Linux OS.
Syntax :
niccli -i <target index> write -f <filename> -type <NVM_directory_name>
-type: Input NVM directory name string
-f: Input file name
Example:
niccli -i 3 write -type vpd -f output.txt
Syntax:
Below command is used to get the PTP extended parameters.
Below command is used to set the primary/secondary function as well as set the failover
parameters. All the parameters are optional.
niccli -i <target index> -set [-ppf <pri pfid>] [-pvf <pri vfid>] [-spf <sec pfid>] [-svf <sec vfid>]
[-m <phc mode>] [-t <timer value>]
44
Broadcom NetXtreme - NICCLI Readme
Example:
niccli -i 3 ptp -get
niccli -i 3 ptp -set -ppf 2
Syntax:
Below command is used to set the SyncE frequency profile, primary and secondary clock
state.
niccli -i <target index> synce -set -freq <value> [-pclk <value>] [-sclk <value>]
45
Broadcom NetXtreme - NICCLI Readme
Example :
niccli -i 2 synce -get
niccli -i 2 synce -set -freq 25MHz
tunnelcfg command
=====================
This command is used to query and configure the custom GRE tunnel offload.
Syntax:
To get the state of GRE tunnel offload.
niccli -i <target index> tunnelcfg -get
Example:
niccli -i 5 tunnelcfg -get
niccli -i 5 tunnelcfg -set -state 0
Portstate command
==================
This command is used to query or configure the port state.This command is supported only on
Linux OS.
Syntax:
To get the port state.
niccli -i <target index> portstate -get
Example:
46
Broadcom NetXtreme - NICCLI Readme
Clearcounters command
=====================
This command is used to clear the port counters.This command is supported only on Linux OS.
Syntax:
niccli -i <target index> clearcounters
Example:
niccli -i 1 clearcounters
backup command
===============
Syntax:
niccli -i <target index> backup [cfg]
cfg: Optional Parameter to backup NVM configuration.
/* End of file */
47