Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 30 additions & 30 deletions docs/nic-conf-operator/configuration-details.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,49 +24,49 @@ Configuration Details
Configuration details
^^^^^^^^^^^^^^^^^^^^^

- ``numVFs``: if provided, configure SR-IOV VFs via nvconfig.
- ``numVFs``: if provided, configure SR-IOV VFs via nvconfig.

- This is a mandatory parameter.
- E.g: if ``numVFs=2`` then ``SRIOV_EN=1`` and ``SRIOV_NUM_OF_VFS=2``.
- If ``numVFs=0`` then ``SRIOV_EN=0`` and ``SRIOV_NUM_OF_VFS=0``.
- This is a mandatory parameter.
- E.g: if ``numVFs=2`` then ``SRIOV_EN=1`` and ``SRIOV_NUM_OF_VFS=2``.
- If ``numVFs=0`` then ``SRIOV_EN=0`` and ``SRIOV_NUM_OF_VFS=0``.

- ``linkType``: if provided configure ``linkType`` for the NIC for all NIC ports.
- ``linkType``: if provided configure ``linkType`` for the NIC for all NIC ports.

- This is a mandatory parameter.
- E.g ``linkType = Infiniband`` then set ``LINK_TYPE_P1=IB`` and ``LINK_TYPE_P2=IB`` if second PCI function is present
- This is a mandatory parameter.
- E.g ``linkType = Infiniband`` then set ``LINK_TYPE_P1=IB`` and ``LINK_TYPE_P2=IB`` if second PCI function is present

- ``pciPerformanceOptimized``: performs PCI performance optimizations. If enabled then by default the following will happen:
- ``pciPerformanceOptimized``: performs PCI performance optimizations. If enabled then by default the following will happen:

- Set nvconfig ``MAX_ACC_OUT_READ`` nvconfig parameter to ``0`` (use device defaults)
- Set PCI max read request size for each PF to ``4096`` (note: this is a runtime config and is not persistent)
- Users can override values via ``maxAccOutRead`` and ``maxReadRequest``
- **IMPORTANT** :
- Set nvconfig ``MAX_ACC_OUT_READ`` nvconfig parameter to ``0`` (use device defaults)
- Set PCI max read request size for each PF to ``4096`` (note: this is a runtime config and is not persistent)
- Users can override values via ``maxAccOutRead`` and ``maxReadRequest``
- **IMPORTANT** :

- According to the PRM, setting ``MAX_ACC_OUT_READ`` to zero enables the auto mode, which applies the best suitable optimizations. However, there is a bug in certain FW versions, where the zero value is not available.
- In this case, until the fix is available, ``MAX_ACC_OUT_READ`` will not be set and a warning event will be emitted for this device’s CR.
- According to the PRM, setting ``MAX_ACC_OUT_READ`` to zero enables the auto mode, which applies the best suitable optimizations. However, there is a bug in certain FW versions, where the zero value is not available.
- In this case, until the fix is available, ``MAX_ACC_OUT_READ`` will not be set and a warning event will be emitted for this device’s CR.

- ``roceOptimized``: performs RoCE related optimizations. If enabled performs the following by default:
- ``roceOptimized``: performs RoCE related optimizations. If enabled performs the following by default:

- Nvconfig set for both ports (can be applied from PF0)
- Nvconfig set for both ports (can be applied from PF0)

- Conditionally applied for second port if present
- Conditionally applied for second port if present

- ``ROCE_CC_PRIO_MASK_P1=255``, ``ROCE_CC_PRIO_MASK_P2=255``
- ``CNP_DSCP_P1=4``, ``CNP_DSCP_P2=4``
- ``CNP_802P_PRIO_P1=6``, ``CNP_802P_PRIO_P2=6``
- ``ROCE_CC_PRIO_MASK_P1=255``, ``ROCE_CC_PRIO_MASK_P2=255``
- ``CNP_DSCP_P1=4``, ``CNP_DSCP_P2=4``
- ``CNP_802P_PRIO_P1=6``, ``CNP_802P_PRIO_P2=6``

- Configure pfc (Priority Flow Control) for priority 3 and set trust to dscp on each PF
- Configure pfc (Priority Flow Control) for priority 3 and set trust to dscp on each PF

- Non-persistent (need to be applied after each boot)
- Users can override values via ``trust`` and ``pfc`` parameters
- Non-persistent (need to be applied after each boot)
- Users can override values via ``trust`` and ``pfc`` parameters

- Can only be enabled with ``linkType=Ethernet``
- Can only be enabled with ``linkType=Ethernet``

- ``gpuDirectOptimized``: performs gpu direct optimizations. ATM only optimizations for Baremetal environment are supported. If enabled perform the following:
- ``gpuDirectOptimized``: performs gpu direct optimizations. ATM only optimizations for Baremetal environment are supported. If enabled perform the following:

- Set nvconfig ``ATS_ENABLED=0``
- Can only be enabled when ``pciPerformanceOptimized`` is enabled
- Both the numeric values and their string aliases, supported by NVConfig, are allowed (e.g. ``REAL_TIME_CLOCK_ENABLE=False``, ``REAL_TIME_CLOCK_ENABLE=0``).
- For per port parameters (suffix ``_P1``, ``_P2``) parameters with ``_P2`` suffix are ignored if the device is single port.
- Set nvconfig ``ATS_ENABLED=0``
- Can only be enabled when ``pciPerformanceOptimized`` is enabled
- Both the numeric values and their string aliases, supported by NVConfig, are allowed (e.g. ``REAL_TIME_CLOCK_ENABLE=False``, ``REAL_TIME_CLOCK_ENABLE=0``).
- For per port parameters (suffix ``_P1``, ``_P2``) parameters with ``_P2`` suffix are ignored if the device is single port.

- If a configuration is not set in spec, its non-volatile configuration parameters (if any) should be set to device default.
- If a configuration is not set in spec, its non-volatile configuration parameters (if any) should be set to device default.
19 changes: 11 additions & 8 deletions hack/fetch-config-docs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ echo "Fetching configuration documentation from ${REPO}/${BRANCH}/${FILE_PATH}"
mkdir -p "$(dirname "$OUTPUT_PATH")"

# Fetch the content from GitHub
curl -s "https://raw.githubusercontent.com/${REPO}/${BRANCH}/${FILE_PATH}" > /tmp/config_docs.md
curl -s "https://raw.githubusercontent.com/${REPO}/${BRANCH}/${FILE_PATH}" > ./tmp_config_docs.md

# Convert markdown to reStructuredText and extract configuration details section
cat > "$OUTPUT_PATH" << 'EOF'
Expand Down Expand Up @@ -45,17 +45,20 @@ Configuration Details
EOF

# Extract the configuration details section from the markdown
awk '/#### Configuration details/,/### NicFirmwareSource/' /tmp/config_docs.md | head -n -1 > /tmp/config_section.md
awk '/#### Configuration details/,/### NicFirmwareSource/' ./tmp_config_docs.md | head -n -1 > ./tmp_config_section.md

# Convert to reStructuredText format
pandoc /tmp/config_section.md -f markdown -t rst --wrap=none > /tmp/config_section.rst
# Convert to reStructuredText format using Docker (same as other parts of the workflow)
docker run --rm --volume "`pwd`:/data:Z" pandoc/minimal -f markdown -t rst --wrap=none /data/tmp_config_section.md -o /data/tmp_config_section.rst

# Create the final output
cat "$OUTPUT_PATH" > /tmp/final_output.rst
echo "" >> /tmp/final_output.rst
cat /tmp/config_section.rst >> /tmp/final_output.rst
cat "$OUTPUT_PATH" > ./tmp_final_output.rst
echo "" >> ./tmp_final_output.rst
cat ./tmp_config_section.rst >> ./tmp_final_output.rst

mv /tmp/final_output.rst "$OUTPUT_PATH"
mv ./tmp_final_output.rst "$OUTPUT_PATH"

# Clean up temporary files
rm -f ./tmp_config_docs.md ./tmp_config_section.md ./tmp_config_section.rst

echo "Configuration documentation saved to ${OUTPUT_PATH}"
echo "Source: https://github.com/${REPO}/blob/${BRANCH}/${FILE_PATH}#configuration-details"