From 9a28716532ae37701df10ed76e3fa66485bdd4cd Mon Sep 17 00:00:00 2001 From: Fred Rolland Date: Wed, 23 Jul 2025 13:59:35 +0300 Subject: [PATCH] fix: run pandoc in container Signed-off-by: Fred Rolland --- .../configuration-details.rst | 60 +++++++++---------- hack/fetch-config-docs.sh | 19 +++--- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/docs/nic-conf-operator/configuration-details.rst b/docs/nic-conf-operator/configuration-details.rst index f99fdc1c..7e2c9623 100644 --- a/docs/nic-conf-operator/configuration-details.rst +++ b/docs/nic-conf-operator/configuration-details.rst @@ -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. diff --git a/hack/fetch-config-docs.sh b/hack/fetch-config-docs.sh index b295cb45..abf3c27c 100755 --- a/hack/fetch-config-docs.sh +++ b/hack/fetch-config-docs.sh @@ -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' @@ -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" \ No newline at end of file