【求助】通过redfish修改mellanox CX6-DX网卡的lldp使能状态失败

// 此模板仅供参考,如果不适用可以修改

问题描述

通过redfish修改mellanox CX6-DX网卡的lldp使能状态失败

环境信息

  • 软件版本:OpenUBMC2603

  • 硬件配置:950+ocp(MCX623436AN-CDAB)

重现步骤

1、通过postman执行patch操作修改网口lldp使能状态,URL:https://ip//redfish/v1/Chassis/1/NetworkAdapters/EXUOCPCard5(MCX623436AN-CDAB)/NetworkPorts/1

   Body内容:
{
	"Oem":
	{
        "Public":
        {
            "LldpService": 
            {
                "LldpEnabled": true
            }
	    }
	}
}

2、查看redfish响应信息,返回码为400,message:failed to configure LLDP for the port。

3、查看日志文件app.log,有如下打印:

2026-06-04 10:49:51.892536 network_adapter NOTICE: network_port.lua(664): set LLDP capability for port EXUOCPCard5(MCX623436AN-CDAB)1, enable: true
2026-06-04 10:49:51.893316 network_adapter ERROR: network_port.lua(621): set LLDP capability failed for port EXUOCPCard5(MCX623436AN-CDAB)1
2026-06-04 10:49:51.893791 network_adapter ERROR: network_port.lua(684): set LLDP capability failed for port EXUOCPCard5(MCX623436AN-CDAB)1
2026-06-04 10:49:51.895927 network_adapter WARNING: init.lua(97): nil:-1 > network_port.lua:911 > network_port.lua:686: Failed to configure LLDP for the port.

期望结果

执行成功

实际结果

执行失败,设置lldp状态失败

尝试过的解决方案

带内检查该迈络思firmwarw是否开放了LLDP选项,通过mlxconfig、flint查看

LLDP_NB_xxx

mctp_ini.xxx

分析结论

函数调用流程redfish_set_lldp_capability→set_LLDP_capability_by_ncsi→set_lldp_for_cx4→SetOnLLDPCapability,如何可以进一步分析是哪里出了问题?

诉求

如何可以进一步分析是哪里出了问题,亦或是卡本身是否支持?

答案内容由AI生成,仅供参考:
总结:出现 Failed to configure LLDP for the port 错误,最大可能性是网卡不支持通过 Redfish 管理 LLDPLLDPSupported 可能为 false),或是固件/驱动兼容性问题。请优先查询 LLDPSupported 属性进行确认。

点击此处查看详细分析解答

好的,我们来分析您遇到的问题。根据您提供的背景知识和日志信息,我将为您梳理一个结构化的排查思路。

问题核心分析

您的目标是使用 Redfish PATCH 方法修改网口的 LLDP 使能状态,但系统返回了 400 Bad Request 错误,具体消息为 “Failed to configure LLDP for the port.”。这通常意味着网卡或系统层面不支持此操作,或通信链路存在问题。

根据上下文提供的信息,您可以通过以下几个步骤进行深入排查:

第一步:确认网卡是否支持 LLDP

这是最关键的一步。知识库中明确指出,LLDPSupported 是一个只读属性,用于指示网卡是否支持 LLDP(链接层发现协议)。

  • 如何操作:通过 Redfish 的 GET 请求访问网卡资源。根据您的路径结构,可以尝试查询:
    GET https://[BMC_IP]/redfish/v1/Chassis/1/NetworkAdapters/EXUOCPCard5(MCX623436AN-CDAB)

  • 需要查看:在返回的 JSON 数据中,查找一个名为 LLDPSupported 的布尔字段。

  • 判断依据

    • 如果 LLDPSupportedfalse,则说明该 Mellanox CX6-DX 网卡的固件或当前配置不支持通过 Redfish 管理 LLDP,这直接解释了修改失败的原因。
    • 如果 LLDPSupportedtrue,则问题可能出在其它环节。

第二步:检查底层通信链路

如果第一步确认网卡支持 LLDP,但修改依然失败,那么问题可能出在 BMC 与网卡之间的通信链路上。错误日志 “Failed to configure LLDP for the port” 与知识库中提到的 mctpdNCSI 通信问题有关。

  • 检查 MCTP 状态:LLDP 配置通常需要通过 NCSI over MCTP 协议进行。请检查 MCTP 是否处于正常工作状态。
  • 查看详细日志:您的日志显示 set LLDP capability failed。知识库中提到了类似错误:
    Error: failed to send NCSI get LLDP status command
    这表明 BMC 无法成功向网卡发送 NCSI 命令。您需要进一步查看日志中是否有此类关于 failed to sendrequest timeout 的详细错误信息,这能帮助定位是 BMC 服务问题还是网卡响应超时。

第三步:确认网卡固件版本与功能支持

并非所有版本的网卡固件都开放了 LLDP 配置功能。您已经提到了通过 mlxconfigflint 进行带内检查,这是正确的方向。

  • 确认 LLDP 相关选项:请确认 Mellanox 网卡固件中是否有名为 LLDP_NB_xxx 或类似的选项,并且这些选项处于“开启”或“启用”状态。如果固件层面屏蔽了此功能,Redfish 将无法成功调用。

建议的排查路径总结

为了解决您的问题,建议按以下顺序进行排查:

  1. 查询 LLDPSupported 属性

    • 执行 GET 请求,检查目标 NetworkAdapter 的 LLDPSupported 属性是否为 true
    • 如果为 false,则问题根源在于硬件/固件不支持,您需要联系 Mellanox/供应商获取支持。
  2. 检查 MCTP 链路日志

    • app.log 中的 ERROR 日志是关键。查找 network_adaptermctpd 组件关于 failed to sendtimeout 的记录,以确定通信是否存在问题。
  3. 核对网卡固件配置

    • 通过 mlxconfig 等工具,带内检查网卡固件是否配置了 LLDP 相关功能。
  4. 确认适配器驱动支持

    • 请注意,您的网卡是 Mellanox CX6-DX。一些上下文提到特定驱动适配(如“网迅网卡”或“Hi182x”)。您需要确认您项目中 component_drivers 组件的代码是否已经正确适配并支持 Mellanox CX6-DX 网卡通过 Redfish 配置 LLDP。

总结:出现 Failed to configure LLDP for the port 错误,最大可能性是网卡不支持通过 Redfish 管理 LLDPLLDPSupported 可能为 false),或是固件/驱动兼容性问题。请优先查询 LLDPSupported 属性进行确认。

没有LLDPSupported相关属性字段

@ubmc_assistant

目前bmc未支持设置CX6-DX网卡LLDP使能

感谢回复,请继续了解下是卡的原因还是bmc方面没有做?我看到代码里有ncsi_mellanox相关的命令SetOnLLDPCapability

有一张MCX631102AN-ADAT卡(标卡)配置成功了,当前失败的是一张EXUOCPCard5(MCX623436AN-CDAB) OCP卡

MCX631102AN-ADAT这个卡您确定设置成功了吗?能否发一份这个卡设置成功时的一键日志收集

网卡lldp.zip (236.9 KB)

R220KV2-BD41_2102315KRX10S5100003_20260702-1726.tar.gz (1.4 MB)

一键日志+操作记录见附件

我重新梳理了一下当前设置LLDP使能的功能
1.MCX631102AN-ADAT标卡目前走2.0南向驱动(具体代码在component_drivers组件)加载,走该组件加载的网卡在设置LLDP使能时会调用SetLLDPTxEnable方法执行设置功能,咨询内部同事得知走南向加载的这个CX6-lx网卡已支持设置LLDP使能功能,因此MCX631102AN-ADAT标卡其能够正常设置成功。
2.MCX623436AN-CDAB这张OCP卡目前走的是1.0加载方式(具体代码在network_adapter组件),对于走1.0加载的CX6-dx的网卡,当前bmc并未支持设置LLDP使能(已支持的带外能力可以参考network_adapter/src/lualib/hardware_config/CX6-DX.lua中定义的能力)。因此造成了您提到的这个问题。目前这个问题我们已经标记并在内部进行跟踪,后续会以需求形式对走1.0加载的CX6-DX网卡适配设置LLDP使能的功能。

1 个赞

感谢回复,预计啥时候可以安排上呢

该需求会排在Q3版本内,具体计划时间出来后我会通知您。

感谢