public String getDeviceString() { LLDPOrganizationalTLV tlv = getDeviceTLV(); if (tlv != null) { return new String(tlv.getInfoString(), StandardCharsets.UTF_8); } return null; }
@Override public LLDPTLV deserialize(final ByteBuffer bb) throws DeserializationException { super.deserialize(bb); if (this.getType() != LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { return this; } if (this.getLength() <= OUI_LENGTH + SUBTYPE_LENGTH) { throw new DeserializationException( "TLV length is less than required for organizational TLV"); } final ByteBuffer optionalField = ByteBuffer.wrap(this.value); final byte[] oui = new byte[LLDPOrganizationalTLV.OUI_LENGTH]; optionalField.get(oui); this.setOUI(oui); this.setSubType(optionalField.get()); final byte[] infoString = new byte[this.getLength() - LLDPOrganizationalTLV.OUI_LENGTH - LLDPOrganizationalTLV.SUBTYPE_LENGTH]; optionalField.get(infoString); this.setInfoString(infoString); return this; }
public void setName(String name) { LLDPOrganizationalTLV nametlv = opttlvs.get(NAME_SUBTYPE); nametlv.setLength((short) (name.length() + NAME_LENGTH)); nametlv.setInfoString(name); nametlv.setSubType(NAME_SUBTYPE); nametlv.setOUI(MacAddress.ONOS.oui()); }
public LLDPOrganizationalTLV getDeviceTLV() { for (LLDPTLV tlv : this.getOptionalTLVList()) { if (tlv.getType() == LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { LLDPOrganizationalTLV orgTLV = (LLDPOrganizationalTLV) tlv; if (orgTLV.getSubType() == DEVICE_SUBTYPE) { return orgTLV; } } } return null; }
checkHeaderLength(length, currentIndex); tlv = new LLDPOrganizationalTLV().deserialize(bb);
/** * Set the value of information string. The String value is automatically * converted into byte array with UTF-8 encoding. * * @param infoString * the String value of information string. * @return This LLDP Organizationally Specific TLV. */ public LLDPOrganizationalTLV setInfoString(final String infoString) { final byte[] infoStringBytes = infoString.getBytes(StandardCharsets.UTF_8); return this.setInfoString(infoStringBytes); }
public ONOSLLDP(byte... subtype) { super(); for (byte st : subtype) { opttlvs.put(st, new LLDPOrganizationalTLV()); } // guarantee the following (name and device) TLVs exist opttlvs.putIfAbsent(NAME_SUBTYPE, new LLDPOrganizationalTLV()); opttlvs.putIfAbsent(DEVICE_SUBTYPE, new LLDPOrganizationalTLV()); setName(DEFAULT_NAME); setDevice(DEFAULT_DEVICE); setOptionalTLVList(Lists.newArrayList(opttlvs.values())); setTtl(new LLDPTLV().setType(TTL_TLV_TYPE) .setLength((short) ttlValue.length) .setValue(ttlValue)); }
public LLDPOrganizationalTLV getTimestampTLV() { for (LLDPTLV tlv : this.getOptionalTLVList()) { if (tlv.getType() == LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { LLDPOrganizationalTLV orgTLV = (LLDPOrganizationalTLV) tlv; if (orgTLV.getSubType() == TIMESTAMP_SUBTYPE) { return orgTLV; } } } return null; }
public void setSig(byte[] sig) { LLDPOrganizationalTLV sigtlv = opttlvs.get(SIG_SUBTYPE); if (sigtlv == null) { return; } sigtlv.setInfoString(sig); sigtlv.setLength((short) (sig.length + SIG_LENGTH)); sigtlv.setSubType(SIG_SUBTYPE); sigtlv.setOUI(MacAddress.ONOS.oui()); }
public String getNameString() { LLDPOrganizationalTLV tlv = getNameTLV(); if (tlv != null) { return new String(tlv.getInfoString(), StandardCharsets.UTF_8); } return null; }
public LLDPOrganizationalTLV getSigTLV() { for (LLDPTLV tlv : this.getOptionalTLVList()) { if (tlv.getType() == LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { LLDPOrganizationalTLV orgTLV = (LLDPOrganizationalTLV) tlv; if (orgTLV.getSubType() == SIG_SUBTYPE) { return orgTLV; } } } return null; }
public void setDevice(String device) { LLDPOrganizationalTLV devicetlv = opttlvs.get(DEVICE_SUBTYPE); devicetlv.setInfoString(device); devicetlv.setLength((short) (device.length() + DEVICE_LENGTH)); devicetlv.setSubType(DEVICE_SUBTYPE); devicetlv.setOUI(MacAddress.ONOS.oui()); }
public String getDomainString() { LLDPOrganizationalTLV tlv = getDomainTLV(); if (tlv != null) { return new String(tlv.getInfoString(), StandardCharsets.UTF_8); } return null; }
public LLDPOrganizationalTLV getNameTLV() { for (LLDPTLV tlv : this.getOptionalTLVList()) { if (tlv.getType() == LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { LLDPOrganizationalTLV orgTLV = (LLDPOrganizationalTLV) tlv; if (orgTLV.getSubType() == NAME_SUBTYPE) { return orgTLV; } } } return null; }
public void setDomainInfo(String domainId) { LLDPOrganizationalTLV domaintlv = opttlvs.get(DOMAIN_SUBTYPE); if (domaintlv == null) { // maybe warn people not to set this if remote probes aren't. return; } domaintlv.setInfoString(domainId); domaintlv.setLength((short) (domainId.length() + DOMAIN_LENGTH)); domaintlv.setSubType(DOMAIN_SUBTYPE); domaintlv.setOUI(MacAddress.ONOS.oui()); }
public long getTimestamp() { LLDPOrganizationalTLV tlv = getTimestampTLV(); if (tlv != null) { ByteBuffer b = ByteBuffer.allocate(8).put(tlv.getInfoString()); b.flip(); return b.getLong(); } return 0; }
/** * Gets the TLV associated with remote probing. This TLV will be null if * remote probing is disabled. * * @return A TLV containing domain ID, or null. */ public LLDPOrganizationalTLV getDomainTLV() { for (LLDPTLV tlv : this.getOptionalTLVList()) { if (tlv.getType() == LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { LLDPOrganizationalTLV orgTLV = (LLDPOrganizationalTLV) tlv; if (orgTLV.getSubType() == DOMAIN_SUBTYPE) { return orgTLV; } } } return null; }
public void setTimestamp(long timestamp) { LLDPOrganizationalTLV tmtlv = opttlvs.get(TIMESTAMP_SUBTYPE); if (tmtlv == null) { return; } tmtlv.setInfoString(ByteBuffer.allocate(8).putLong(timestamp).array()); tmtlv.setLength((short) (8 + TIMESTAMP_LENGTH)); tmtlv.setSubType(TIMESTAMP_SUBTYPE); tmtlv.setOUI(MacAddress.ONOS.oui()); }
public byte[] getSig() { LLDPOrganizationalTLV tlv = getSigTLV(); if (tlv != null) { return tlv.getInfoString(); } return null; }