1. DAO Card Manager
DAO Card Manager is a user-space application designed to manage DAO cards and provide a comprehensive interface for configuring and monitoring DAO-supported offload cards. It delivers management services, allowing users to configure card settings, monitor operational status, and efficiently manage card resources. This facilitates streamlined deployment, maintenance, and optimization of DAO cards in supported environments.
1.1. Supported Platforms
DAO Card Manager is supported on the following platforms:
LiquidCrypto (LC)
1.2. Architecture
DAO Card Services are implemented on top of gRPC protocol. DAO Card Library offers a set of APIs that allows users to interact with DAO cards. DAO Card Manager offers a user-friendly interface for management operations in DAO Card Library.
1.3. Using DAO Card Manager
1.3.1. Build
DAO Card Manager will get built as part of the DAO build process. DAO Card Manager gets built only if DAO is built for host environment and all the dependencies are met.
$ meson setup build
$ ninja -C build
$ ls build/app/dao-card-mgr
1.3.2. Launching Card Manager
DAO Card Manager follows a client-server architecture. The same application ‘dao_card_mgr’ can be run as a server or as a client. The server establishes gRPC connection with the card and listens for incoming requests from card manager clients.
To launch DAO Card Manager as a server, use the following command:
$ ./build/app/dao-card-mgr -s
$ [lcore -1] DAO_INFO: Starting as server
To launch DAO Card Manager as a client, use the following command:
$ ./build/app/dao-card-mgr -c
$ [lcore -1] DAO_INFO: Starting as client
$ ?
Once the client is launched, various commands can be executed to manage DAO cards.
1.4. Management Services
1.4.1. Configuration
DAO Card Manager provides a set of commands to manage DAO cards. The following commands are available:
card_init
This command initializes the DAO card and prepares it for operation. It sets up the card’s initial state and ensures it is ready to handle requests. Note that this command must be executed before any other commands can be run on the card.
card_info
This command retrieves information about the DAO card, including its capabilities, status, and configuration. It provides essential details that help users understand the current state of the card.
card_boot_source <main|failsafe> <path-to-mrvl-oct-boot>
This command configures the DAO card to boot from either the ‘main’ or ‘failsafe’ image on the next reboot. The first argument selects the boot mode:
main
for the standard image,failsafe
for the recovery image. The second argument specifies the full path to binarymrvl-oct-boot
which configures the DAO card.card_fini
This command finalizes the DAO card, cleaning up resources and preparing it for shutdown. It is important to run this command before stopping the card manager to ensure that all resources are properly released. No commands can be run on the card after this command is executed. Card reboot is required to reinitialize the card.
1.4.2. Diagnostics
DAO Card Manager provides diagnostic commands to help users monitor and troubleshoot DAO cards. The following commands are available for diagnostics:
card_stats
This command retrieves statistics from the DAO card, including per LC-core packet counts and other operational metrics. It helps users monitor the card’s performance and diagnose issues such as packet drops or uneven load distribution.
1.4.3. Firmware Management
DAO Card Manager also supports firmware management for DAO cards. The following commands are available for managing firmware:
card_app_update <filename>
This command updates only the application partition of the DAO card firmware. The
<filename>
argument specifies the full path to the file to upload. Use this command to update DAO applications in the firmware without updating the complete firmware. The card must be restarted after the update to apply the changes.Note that this command is only supported when the card is booted with ‘main’ image and is initialized with
card_init
command. If the card is booted with ‘failsafe’ image, this command will not work and will return an error.This command is supported on LiquidCrypto (LC) cards.
card_app_fallback
This command switches the application images used by the ‘main’ image on LiquidCrypto card. This command is useful for recovery scenarios when an application image updated using
card-app_update
fails to start. The command is only supported when the card is booted from the ‘failsafe’ image.If the card is not in SPI boot mode, the command will return an error.
card_fw_update <filename>
This command updates the complete DAO card firmware. The
<filename>
argument specifies the full path to the firmware file to upload. Use this command to update all firmware partitions, including the application and system partitions (i.e: kernel and root filesystem).Note that this command is only supported when the card is booted with ‘failsafe’ image and is initialized with
card_init
command. The card must be restarted with ‘main’ image to apply the changes. If the card is booted with ‘main’ image, this command will not work and will return an error.This command is supported on LiquidCrypto (LC) cards.
card_failsafe_update <filename>
This command updates the failsafe image on the DAO card. The
<filename>
argument specifies the full path to the failsafe image file to upload.Note that this command is only supported when the card is booted with ‘main’ image and is initialized with
card_init
command. If the card is booted with ‘failsafe’ image, this command will not work and will return an error.The command verifies the integrity of the uploaded image using a checksum before flashing.
This command is supported on LiquidCrypto (LC) cards.
Above options are supported on all DAO cards.
For more details on partition layout of LiquidCrypto (LC) cards, see LiquidCrypto Partitioning.