【已评审】光模块脏污检测redfish接口变更

背景

光模块脏污方案变动,因此redfish接口需要做相应调整

关联ISSUE

适应LPO光模块脏污检测方案变更

整体方案

1、调整已有脏污检测北向接口。
脏污检测配置接口增加配置项参数Operation,用来支持各检测阶段的配置。取值包括InitiationPhase1、DetectionPhase1 、InitiationPhase2、 DetectionPhase2。其中InitiationPhase1初始化阶段一,DetectionPhase1启动阶段一检测,InitiationPhase2初始化阶段二,DetectionPhase2启动阶段二检测,阶段二检测完成后可获取检测结果。

脏污检测查询接口增加返回内容DetectionPhase、LocalContaminationDetected、RemoteContaminationDetected、FirstContaminationDistance、SecondContaminationDistance,用来支持脏污检测精细化结果展示。其中DetectionPhase表示检测所处阶段、LocalContaminationDetected表示本端Rx光口脏污检测结果、RemoteContaminationDetected表示对端Tx光口脏污检测结果、FirstContaminationDistance表示各通道最大脏污点与本端光模块之间的距离、SecondContaminationDistance表示各通道第二大脏污点与本端光模块之间的距离

评审点

脏污检测北向接口变更

详细描述

评审点1 /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.Start 请求体变更

  • 操作权限:DiagnoseMgmt
  • 请求类型:POST
  • 请求URL: /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.Start(变更)
  • 请求头:无
  • 请求体:
变更类型 属性名称 属性类型 说明 接口约束
新增 Operation string(enum) 要启动的检测操作(必选参数) 取值 InitiationPhase1,DetectionPhase1, InitiationPhase2, DetectionPhase2
请求体举例
{
   "Detectors": [
       "300001","300002"
    ],
    "Operation": "InitiationPhase1"
}

评审点2 /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.GetResult 响应体变更

  • 操作权限:DiagnoseMgmt
  • 请求类型:POST
  • 请求URL: /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.GetResult(变更)
  • 请求头:无
  • 响应体:
变更类型 属性名称 属性类型 说明 接口约束
新增 DetectionPhase string(enum) 脏污检测所处阶段 取值 None, Phase1, Phase2
删除 ContaminationDistance number 脏污位置点与检测对象之间的距离
新增 LocalContaminationDetected string(enum) 本端Rx光口脏污检测结果 “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定
新增 RemoteContaminationDetected string(enum) 对端Tx光口脏污检测结果 “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定
新增 FirstContaminationDistance array,数组元素类型为number 各通道最大脏污点与本端光模块之间的距离 数字类型数组,单位米,负值表示该通道未检测到脏污
新增 SecondContaminationDistance array,数组元素类型为number 各通道第二大脏污点与本端光模块之间的距离 数字类型数组,单位米,负值表示该通道未检测到脏污
响应体举例
{
    "error": {
        "code": "Base.1.0.GeneralError",
        "message": "A general error has occurred. See ExtendedInfo for more information.",
        "@Message.ExtendedInfo": [
            {
                "@odata.type": "#Message.v1_0_0.Message",
                "MessageId": "Base.1.0.Success",
                "RelatedProperties": [],
                "Message": "Successfully Completed Request",
                "MessageArgs": [],
                "Severity": "OK",
                "Resolution": "None",
                "Oem": {
                    "{OemIdentifier}": {
                        "Detections": [
                            {
                                "DetectorId": "300001",
                                "DetectionPhase": "Phase2",        # 检测阶段,取值 None, Phase1, Phase2
                                "DetectionStatus": "Pending",       # 特定DetectionPhase的检测状态,取值 "Pending" - 未启动, "Running" - 正在进行, "Completed" - 完成,"Unknown" - 状态未知(执行异常)
                                "Result": {     
                                       "ContaminationDetected": "Detected",     # 综合检测结论,"Detected", "NotDetected", "Unknown" ;"Unknown"表示检测结论未确定
                                       "LocalContaminationDetected": "Detected",
                                       "RemoteContaminationDetected": "Detected",
                                       "FirstContaminationDistance":  [10.0, -1, …],   # 各通道最大脏污点与本端光模块之间的距离。浮点类型数组,单位米,负值表示该通道未检测到脏污
	                                   "SecondContaminationDistance":  [-1, -1, …]    # 各通道第二大脏污点与本端光模块之间的距离。浮点类型数组,单位米,负值表示该通道未检测到脏污
                                }
                            }
                        ]
                    }
                }
            }
        ]
    }
}

评审结论

同意 /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.Start 请求体变更

变更类型 属性名称 属性类型 说明 接口约束
新增 Operation string(enum) 要启动的检测操作 取值 InitiationPhase1,DetectionPhase1, InitiationPhase2, DetectionPhase2

同意/redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.GetResult 响应体变更

变更类型 属性名称 属性类型 说明 接口约束
新增 DetectionPhase string(enum) 脏污检测所处阶段 取值 None, Phase1, Phase2
删除 ContaminationDistance number 脏污位置点与检测对象之间的距离
新增 LocalContaminationDetected string(enum) 本端Rx光口脏污检测结果 “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定
新增 RemoteContaminationDetected string(enum) 对端Tx光口脏污检测结果 “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定
新增 FirstContaminationDistance array,数组元素类型为number 各通道最大脏污点与本端光模块之间的距离 数字类型数组,单位米,负值表示该通道未检测到脏污
新增 SecondContaminationDistance array,数组元素类型为number 各通道第二大脏污点与本端光模块之间的距离 数字类型数组,单位米,负值表示该通道未检测到脏污

遗留问题

1、修改之后是否存在兼容性问题
闭环:周边配套组件尚未完成开发,该功能还未在产品正式商用,不存在兼容性问题
2、社区需要发布接口变更通知
闭环:社区变更通知已发:光模块脏污检测Redfish接口变更通知