CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2019/08/27 19:47:20
Modified files: sbin/ifconfig : sff.c Log message: try to factor media information out and use it for qsfp as well as sfp. qsfp and xfp have remarkably similar layouts, so we can use the same code to print media for both. sfp and xfp/qsfp generally have the same fields, just in different register locations and with some different scales/factors for some values. this change provides a map of these differences as structs for the sfp and qsfp/xfp layouts. the big difference between sfp, xfp, and qsfp that still remains is how they interpret the wavelength field. qsfp stores either optic wavelength in units of 0.05nm, or a couple of copper cable attenuation values in dB at different frequencies. sfp stores wavelength in nm units, but has magic values to blacklist copper cables with. xfp stores wavelength in 0.05 nm units, so more like like qsfp. right now the code uses the sfp behaviour, which means qsfp will show a weird wavelength for copper cables when it shouldnt. i'm still trying to figure out the least worst way to handle that, but at least it looks right for optics now.