-----Original Message----- From: Miroslav Lichvar <mlich...@redhat.com> Sent: Wednesday, June 1, 2022 11:55 AM > On Mon, May 30, 2022 at 09:34:17PM +0200, Arkadiusz Kubalewski wrote: > > Interface used for: > > - creation, building and storing new SyncE PDU's for later transmission > > - obtain Quality Level TLV and Extended Quality Level TLV from existing > > SyncE PDU's > > > > synce_msg_private.h has constants and structs as defined by Synchronous > > Ethernet standard - Recommendation ITU-T G.8264//Y.1364. > > > +int synce_msg_attach_extended_ql_tlv(struct synce_pdu *pdu, > > + struct synce_msg_ext_ql *ext_ql) > > +{ > > + struct esmc_tlv *tlv; > > + > > + if (!pdu || !ext_ql) { > > + pr_err("either pdu or ext_ql not provided"); > > + return -ENXIO; > > + } > > + > > + tlv = malloc(sizeof(struct esmc_tlv)); > > + if (!tlv) { > > + pr_err("malloc failed for TLV: %m"); > > + return -ENOMEM; > > + } > > + > > + tlv->extended_ql_tlv.type = EXT_QL_TLV_TYPE; > > + tlv->extended_ql_tlv.length = htons(EXT_QL_TLV_LEN); > > + tlv->extended_ql_tlv.enhancedSsmCode = ext_ql->enhancedSsmCode; > > + memcpy(&tlv->extended_ql_tlv.clockIdentity, &ext_ql->clockIdentity, > > + sizeof(tlv->extended_ql_tlv.clockIdentity)); > > + tlv->extended_ql_tlv.flag = ext_ql->flag; > > + tlv->extended_ql_tlv.cascaded_eEEcs = ext_ql->cascaded_eEEcs; > > + tlv->extended_ql_tlv.cascaded_EEcs = ext_ql->cascaded_EEcs; > > + > > + attach_esmc_tlv(pdu, tlv); > > The reserved field of the TLV is left uninitialized here and send to > the network later.
Great catch, will fix that. Thank you, Arkadiusz > > > + > > + generate_tlvs(pdu); > > + > > + return 0; > > +} > > -- > Miroslav Lichvar _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel