Lines Matching refs:buf
684 sff_parse_compliance(const uint8_t *buf, nvlist_t *nvl)
689 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_10GE] &
694 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_IB] &
699 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_ESCON] &
704 v = buf[SFF_8472_COMPLIANCE_SONET_LOW] |
705 (buf[SFF_8472_COMPLIANCE_SONET_HIGH] << 8);
710 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_ETHERNET] &
715 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_FCLEN] &
720 v = buf[SFF_8472_COMPLIANCE_FC_LOW] |
721 (buf[SFF_8472_COMPLIANCE_FC_HIGH] << 8);
726 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_SFP] &
731 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_FC_MEDIA] &
736 if ((ret = sff_gather_bitfield(buf[SFF_8472_COMPLIANCE_FC_SPEED] &
760 sff_parse_br(const uint8_t *buf, nvlist_t *nvl)
762 if (buf[SFF_8472_BR_NOMINAL] == 0xff) {
764 if ((ret = sff_add_unit_string(buf[SFF_8472_BR_MAX],
768 return (sff_add_unit_string(buf[SFF_8472_BR_MIN],
771 return (sff_add_unit_string(buf[SFF_8472_BR_NOMINAL],
778 sff_parse_lengths(const uint8_t *buf, nvlist_t *nvl)
782 if (buf[SFF_8472_LENGTH_SMF_KM] != 0) {
783 if ((ret = sff_add_unit_string(buf[SFF_8472_LENGTH_SMF_KM],
789 if (buf[SFF_8472_LENGTH_SMF] != 0) {
790 if ((ret = sff_add_unit_string(buf[SFF_8472_LENGTH_SMF],
796 if (buf[SFF_8472_LENGTH_50UM] != 0) {
797 if ((ret = sff_add_unit_string(buf[SFF_8472_LENGTH_50UM],
803 if (buf[SFF_8472_LENGTH_62UM] != 0) {
804 if ((ret = sff_add_unit_string(buf[SFF_8472_LENGTH_62UM],
810 if (buf[SFF_8472_LENGTH_COPPER] != 0) {
811 if ((ret = sff_add_unit_string(buf[SFF_8472_LENGTH_COPPER],
817 if (buf[SFF_8472_LENGTH_OM3] != 0) {
818 if ((ret = sff_add_unit_string(buf[SFF_8472_LENGTH_OM3],
835 sff_parse_string(const uint8_t *buf, uint_t start, uint_t len,
844 if (buf[start + len - 1] != ' ')
856 if (isascii(buf[start + i]) == 0 ||
857 isprint(buf[start + i]) == 0) {
861 bcopy(&buf[start], strbuf, len);
868 sff_parse_optical(const uint8_t *buf, nvlist_t *nvl)
875 if (buf[SFF_8472_COMPLIANCE_SFP] & SFF_8472_COMP_CABLE_PASSIVE) {
876 return (sff_gather_bitfield(buf[SFF_8472_PASSIVE_SPEC] &
879 } else if (buf[SFF_8472_COMPLIANCE_SFP] & SFF_8472_COMP_CABLE_ACTIVE) {
880 return (sff_gather_bitfield(buf[SFF_8472_ACTIVE_SPEC] &
885 uint16_t val = (buf[SFF_8472_WAVELENGTH_HI] << 8) |
886 buf[SFF_8472_WAVELENGTH_LOW];
894 sff_parse_options(const uint8_t *buf, nvlist_t *nvl)
898 val = (buf[SFF_8472_OPTIONS_HI] << 8) | buf[SFF_8472_OPTIONS_LOW];
928 sff_parse_sfp(const uint8_t *buf, nvlist_t *nvl)
932 if ((ret = sff_parse_id(buf[SFF_8472_IDENTIFIER], nvl)) != 0)
940 buf[SFF_8472_EXT_IDENTIFER])) != 0)
943 if ((ret = sff_parse_connector(buf[SFF_8472_CONNECTOR], nvl)) != 0)
946 if ((ret = sff_parse_compliance(buf, nvl)) != 0)
949 if ((ret = sff_parse_encoding(buf[SFF_8472_ENCODING], nvl,
953 if ((ret = sff_parse_br(buf, nvl)) != 0)
956 if ((ret = sff_parse_lengths(buf, nvl)) != 0)
959 if ((ret = sff_parse_string(buf, SFF_8472_VENDOR, SFF_8472_VENDOR_LEN,
964 (uchar_t *)&buf[SFF_8472_OUI], SFF_8472_OUI_LEN)) != 0)
967 if ((ret = sff_parse_string(buf, SFF_8472_VENDOR_PN,
971 if ((ret = sff_parse_string(buf, SFF_8472_VENDOR_REV,
975 if ((ret = sff_parse_optical(buf, nvl)) != 0)
978 if ((ret = sff_parse_options(buf, nvl)) != 0)
981 if ((ret = sff_parse_string(buf, SFF_8472_VENDOR_SN,
985 if ((ret = sff_parse_string(buf, SFF_8472_DATE_CODE,
989 if ((ret = sff_gather_bitfield(buf[SFF_8472_ENHANCED_OPTIONS] &
994 if ((ret = sff_parse_8472_comp(buf[SFF_8472_SFF_8472_COMPLIANCE],
1002 sff_qsfp_parse_compliance(const uint8_t *buf, nvlist_t *nvl)
1007 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_10GBEP] &
1012 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_SONET] &
1017 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_SAS] &
1022 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_ETHERNET] &
1027 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_FCLEN] &
1032 fc_val = buf[SFF_8636_COMPLIANCE_FC_LOW] |
1033 (buf[SFF_8636_COMPLIANCE_FC_HIGH] << 8);
1038 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_FC_MEDIA] &
1043 if ((ret = sff_gather_bitfield(buf[SFF_8636_COMPLIANCE_FC_SPEED] &
1052 sff_qsfp_parse_br(const uint8_t *buf, nvlist_t *nvl)
1054 if (buf[SFF_8636_BR_NOMINAL] == 0xff) {
1055 return (sff_add_unit_string(buf[SFF_8636_BR_NOMINAL_EXT],
1059 return (sff_add_unit_string(buf[SFF_8636_BR_NOMINAL],
1066 sff_qsfp_parse_lengths(const uint8_t *buf, nvlist_t *nvl)
1070 if (buf[SFF_8636_LENGTH_SMF] != 0) {
1071 if ((ret = sff_add_unit_string(buf[SFF_8636_LENGTH_SMF],
1077 if (buf[SFF_8636_LENGTH_OM3] != 0) {
1078 if ((ret = sff_add_unit_string(buf[SFF_8636_LENGTH_OM3],
1084 if (buf[SFF_8636_LENGTH_OM2] != 0) {
1085 if ((ret = sff_add_unit_string(buf[SFF_8636_LENGTH_OM2],
1091 if (buf[SFF_8636_LENGTH_OM1] != 0) {
1092 if ((ret = sff_add_unit_string(buf[SFF_8636_LENGTH_OM1],
1098 if (buf[SFF_8636_LENGTH_COPPER] != 0) {
1099 if ((ret = sff_add_unit_string(buf[SFF_8636_LENGTH_COPPER],
1148 sff_qsfp_parse_copperwave(const uint8_t *buf, nvlist_t *nvl)
1157 if ((buf[SFF_8636_DEVICE_TECH] & 0xf0) >= 0xa0) {
1158 if ((ret = sff_add_unit_string(buf[SFF_8636_ATTENUATE_2G], 1,
1161 if ((ret = sff_add_unit_string(buf[SFF_8636_ATTENUATE_5G], 1,
1164 if ((ret = sff_add_unit_string(buf[SFF_8636_ATTENUATE_7G], 1,
1167 if ((ret = sff_add_unit_string(buf[SFF_8636_ATTENUATE_12G], 1,
1179 val = (buf[SFF_8636_WAVELENGTH_NOMINAL_HI] << 8) |
1180 buf[SFF_8636_WAVELENGTH_NOMINAL_LOW];
1189 val = (buf[SFF_8636_WAVELENGTH_TOLERANCE_HI] << 8) |
1190 buf[SFF_8636_WAVELENGTH_TOLERANCE_LOW];
1233 sff_qsfp_parse_options(const uint8_t *buf, nvlist_t *nvl)
1237 val = (buf[SFF_8636_OPTIONS_HI] << 16) |
1238 (buf[SFF_8636_OPTIONS_MID] << 8) | buf[SFF_8636_OPTIONS_LOW];
1247 const char *buf[2];
1251 buf[0] = "Received power measurements: Average Power";
1253 buf[0] = "Received power measurements: OMA";
1258 buf[1] = "Transmitter power measurement";
1267 (char **)buf, count));
1281 sff_parse_qsfp(const uint8_t *buf, nvlist_t *nvl)
1285 if ((ret = sff_parse_id(buf[SFF_8636_IDENTIFIER], nvl)) != 0)
1288 if ((ret = sff_parse_connector(buf[SFF_8636_CONNECTOR], nvl)) != 0)
1291 if ((ret = sff_qsfp_parse_compliance(buf, nvl)) != 0)
1294 if ((ret = sff_parse_encoding(buf[SFF_8636_ENCODING], nvl,
1298 if ((ret = sff_qsfp_parse_br(buf, nvl)) != 0)
1301 if ((ret = sff_qsfp_parse_lengths(buf, nvl)) != 0)
1304 if ((ret = sff_qsfp_parse_tech(buf[SFF_8636_DEVICE_TECH], nvl)) != 0)
1307 if ((ret = sff_parse_string(buf, SFF_8636_VENDOR, SFF_8636_VENDOR_LEN,
1311 if ((ret = sff_gather_bitfield(buf[SFF_8636_EXTENDED_MODULE] &
1317 (uchar_t *)&buf[SFF_8636_OUI], SFF_8636_OUI_LEN)) != 0)
1320 if ((ret = sff_parse_string(buf, SFF_8636_VENDOR_PN,
1324 if ((ret = sff_parse_string(buf, SFF_8636_VENDOR_REV,
1328 if ((ret = sff_qsfp_parse_copperwave(buf, nvl)) != 0)
1331 if ((ret = sff_qsfp_parse_casetemp(buf[SFF_8636_MAX_CASE_TEMP],
1335 if ((ret = sff_qsfp_parse_extcomp(buf[SFF_8636_LINK_CODES], nvl)) != 0)
1338 if ((ret = sff_qsfp_parse_options(buf, nvl)) != 0)
1341 if ((ret = sff_parse_string(buf, SFF_8636_VENDOR_SN,
1345 if ((ret = sff_parse_string(buf, SFF_8636_DATE_CODE,
1349 if ((ret = sff_qsfp_parse_diag(buf[SFF_8636_DIAG_MONITORING],
1353 if ((ret = sff_gather_bitfield(buf[SFF_8636_ENHANCED_OPTIONS] &
1362 libsff_parse(const uint8_t *buf, size_t len, uint_t page, nvlist_t **nvpp)
1371 if (page != 0xa0 || buf == NULL || len == 0 || nvpp == NULL)
1379 if (uucopy(buf, ubuf, MIN(sizeof (ubuf), len)) != 0)
1385 switch (buf[0]) {