-----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

Reply via email to