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.

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