{
    "name"  : "是否端口存在CRC错包",
    "precondition" : ["name"],
    "problems" : {
        "crc_Fiber" : {
            "desc"      : "【问题】端口${0}存在大量错包导致端口丢包，该问题会严重影响上网质量。若丢包为历史遗留，可在特权模式下执行clear counter清除错包记录。",
            "advice"    : "【建议】建议检查光纤线是否有污染、损坏，尝试更换正常使用光纤线及光模块看业务是否恢复。"
        },
        "crc_Copper" : {
            "desc"      : "【问题】端口${0}存在大量错包导致端口丢包，该问题会严重影响上网质量。若丢包为历史遗留，可在特权模式下执行clear counter清除错包记录。",
            "advice"    : "【建议】建议更好其它正常使用的网线，查看是否业务恢复。"
        }
    }
}

---------------------------code-------------------------------
intf = precondition('name')
intf_cmd = format('show interface %s counters errors',intf)
intf_err = cli(intf_cmd)
intf_errList = intf_err.split("\r\n")
reg = /(\w+[^ ]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/
reg_type = /[^ ]+Ethernet\s+[^ ]+\s+\w+\s+[^ ]+\s+[^ ]+\s+\d+M\s+(\w+)/
isBegin = 'false'
reg_regbin = /Interface\s+Jabbers\s+CRC-Align-Err\s+Align-Err\s+FCS-Err/
foreach data in intf_errList:
    r = data.match(reg_regbin)
    if r != null:
        isBegin = 'true'
    end
    if isBegin == 'true':
        r_crc = data.match(reg)
        if r_crc != null:
			print(data)
            crc1 = r_crc[2]
            crc2 = r_crc[3]
            crc3 = r_crc[4]
            crc4 = r_crc[5]
            if crc1>100 || crc2>100 || crc3>100 || crc4>100:
                inft_cmd = format('show interface %s status',intf)
                type_log = cli(inft_cmd)
                r_type = type_log.match(reg_type)
                if r_type != null:
                    type = r_type[1]
                    if type == "fiber":
                        change_title('检测出该端口存在大量错包')
                        add_problem('crc_Fiber',[intf])
                        return 'warn'
                    end
                    if type == "copper":
                        change_title('检测出该端口存在大量错包')
                        add_problem('crc_Copper',[intf])
                        return 'warn'
                    end
                end
                break
            end
        end
    end
end

change_title('检查该端口无异常')
return 'success'

