Lines Matching refs:tlv

43 lldp_firsttlv(uint8_t *pdu, int pdulen, lldp_tlv_t *tlv)
47 tlv->lt_value = NULL;
51 tlv->lt_type = LLDP_TLV_TYPE(pdu);
52 tlv->lt_len = LLDP_TLV_LEN(pdu);
53 if (pdu + 2 + tlv->lt_len > end)
55 tlv->lt_value = pdu + 2;
98 /* first set the org. specific tlv type */
218 lldp_tlv2chassisid(lldp_tlv_t *tlv, lldp_chassisid_t *cid)
222 if (tlv->lt_len < 2 || tlv->lt_len > 256)
225 cid->lc_subtype = *tlv->lt_value;
226 cid->lc_cidlen = tlv->lt_len - 1;
227 (void) memcpy(cid->lc_cid, tlv->lt_value + 1, cid->lc_cidlen);
355 lldp_tlv2portid(lldp_tlv_t *tlv, lldp_portid_t *pid)
359 if (tlv->lt_len < 2 || tlv->lt_len > 256)
362 pid->lp_subtype = *tlv->lt_value;
363 pid->lp_pidlen = tlv->lt_len - 1;
364 (void) memcpy(pid->lp_pid, tlv->lt_value + 1, pid->lp_pidlen);
408 lldp_tlv2ttl(lldp_tlv_t *tlv, uint16_t *ttl)
414 if (tlv->lt_len < 2)
417 (void) memcpy(ttl, tlv->lt_value, sizeof (uint16_t));
457 lldp_tlv2str(lldp_tlv_t *tlv, char *str)
459 (void) memcpy(str, tlv->lt_value, tlv->lt_len);
460 str[tlv->lt_len] = '\0';
466 if (strlen(str) != tlv->lt_len)
488 lldp_tlv2portdescr(lldp_tlv_t *tlv, char *pdescr)
490 if (tlv->lt_len > (LLDP_MAX_PORTDESCLEN - 1))
493 return (lldp_tlv2str(tlv, pdescr));
521 lldp_tlv2sysname(lldp_tlv_t *tlv, char *sysname)
523 if (tlv->lt_len > (LLDP_MAX_SYSNAMELEN - 1))
526 return (lldp_tlv2str(tlv, sysname));
553 lldp_tlv2sysdescr(lldp_tlv_t *tlv, char *sysdescr)
555 if (tlv->lt_len > (LLDP_MAX_SYSDESCLEN - 1))
558 return (lldp_tlv2str(tlv, sysdescr));
628 lldp_tlv2syscapab(lldp_tlv_t *tlv, lldp_syscapab_t *sc)
630 if (tlv->lt_len != 4)
633 (void) memcpy(sc, tlv->lt_value, sizeof (lldp_syscapab_t));
672 lldp_tlv2mgmtaddr(lldp_tlv_t *tlv, lldp_mgmtaddr_t *maddr)
674 uint8_t *value = tlv->lt_value;
676 if (tlv->lt_len < 9 || tlv->lt_len > 167)
752 lldp_get_ouistype(lldp_tlv_t *tlv, uint32_t *oui, uint32_t *subtype)
757 ouistype = ntohl(*(uint32_t *)(void *)tlv->lt_value);
787 lldp_tlv2aggr(lldp_tlv_t *tlv, lldp_aggr_t *ainfop)
789 uint8_t *value = tlv->lt_value;
794 if (tlv->lt_len != (LLDP_ORGSPECHDR_SZ + sizeof (uint8_t) +
853 lldp_tlv2maxfsz(lldp_tlv_t *tlv, uint16_t *fsz)
855 uint8_t *value = tlv->lt_value;
858 if (tlv->lt_len != (LLDP_ORGSPECHDR_SZ + sizeof (uint16_t)))
906 lldp_tlv2pvid(lldp_tlv_t *tlv, uint16_t *pvid)
908 uint8_t *value = tlv->lt_value;
911 if (tlv->lt_len != (LLDP_ORGSPECHDR_SZ + sizeof (uint16_t)))
990 lldp_tlv2vlan(lldp_tlv_t *tlv, lldp_vlan_info_t *lvip)
992 uint8_t *value = tlv->lt_value;
994 if (tlv->lt_len < 7 || tlv->lt_len > 39)
1007 if (tlv->lt_len != (LLDP_ORGSPECHDR_SZ + sizeof (lvip->lvi_vid) +
1099 lldp_tlv2vnic(lldp_tlv_t *tlv, lldp_vnic_info_t *lvip)
1102 uint8_t *value = tlv->lt_value;
1104 if (tlv->lt_len < LLDP_MIN_VNICTLV_LEN ||
1105 tlv->lt_len > LLDP_MAX_VNICTLV_LEN) {
1125 pidp->lp_pidlen = tlv->lt_len - 11;
1262 lldp_tlv2appln(lldp_tlv_t *tlv, lldp_appln_t **appln, uint_t *nappln)
1267 uint8_t *value = tlv->lt_value;
1270 if (tlv->lt_len < (LLDP_ORGSPECHDR_SZ + sizeof (uint8_t) + 3))
1280 if (((tlv->lt_len - (LLDP_ORGSPECHDR_SZ + 1)) % 3) != 0)
1283 cnt = (tlv->lt_len - (LLDP_ORGSPECHDR_SZ + 1)) / 3;
1374 lldp_tlv2pfc(lldp_tlv_t *tlv, lldp_pfc_t *pfc)
1377 uint8_t *value = tlv->lt_value;
1383 if (tlv->lt_len != (LLDP_ORGSPECHDR_SZ + sizeof (uint16_t)))
1553 lldp_tlv2ets(lldp_tlv_t *tlv, lldp_ets_t *ets, boolean_t config)
1556 uint8_t *value = tlv->lt_value;
1559 if (tlv->lt_len != LLDP_ETS_INFOSTR_LEN)
1642 lldp_tlv2evb(lldp_tlv_t *tlv, lldp_evb_t *evb)
1645 uint8_t *value = tlv->lt_value;
1647 if (tlv->lt_len != (LLDP_ORGSPECHDR_SZ + LLDP_EVB_TLVLEN))
1731 lldp_tlv2unknown(lldp_tlv_t *tlv, char *bstr, size_t blen)
1733 uint8_t *pdu = tlv->lt_value - 2; /* Print from the TLV start */
1734 int pdulen = tlv->lt_len + 2;
1739 if (blen < tlv->lt_len + 2)
1903 * specific tlv (i.e. tlv with a specific OUI and subtype. On the other hand
1904 * if `str' is NULL, it returns all the unrecognized org. specific tlv in a
1939 /* `arr' containes the entire 'org. specific tlv' */