> -----Original Message-----
> From: vincent.cheng...@renesas.com <vincent.cheng...@renesas.com>
> Sent: Sunday, March 13, 2022 10:01 PM
> To: linuxptp-devel@lists.sourceforge.net
> Subject: [Linuxptp-devel] [PATCH v2 2/4] unicast: Add support to send
> CANCEL_UNICAST_TRANSMISSION TLVs.
>
> From: Vincent Cheng <vincent.cheng...@renesas.com>
>
> Signed-off-by: Vincent Cheng <vincent.cheng...@renesas.com>
> ---
This one looks good to me.
Reviewed-by: Jacob Keller <jacob.e.kel...@intel.com>
> unicast_client.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++
> unicast_client.h | 8 ++++++++
> 2 files changed, 58 insertions(+)
>
> diff --git a/unicast_client.c b/unicast_client.c
> index 4d6386e..7688814 100644
> --- a/unicast_client.c
> +++ b/unicast_client.c
> @@ -64,6 +64,23 @@ static int attach_request(struct ptp_message *msg, int
> log_period,
> return 0;
> }
>
> +static int attach_cancel(struct ptp_message *msg, uint8_t message_type)
> +{
> + struct cancel_unicast_xmit_tlv *req;
> + struct tlv_extra *extra;
> +
> + extra = msg_tlv_append(msg, sizeof(*req));
> + if (!extra) {
> + return -1;
> + }
> + req = (struct cancel_unicast_xmit_tlv *) extra->tlv;
> + req->type = TLV_CANCEL_UNICAST_TRANSMISSION;
> + req->length = sizeof(*req) - sizeof(req->type) - sizeof(req->length);
> + req->message_type_flags = message_type << 4;
> +
> + return 0;
> +}
> +
> static int unicast_client_announce(struct port *p,
> struct unicast_master_address *dst)
> {
> @@ -563,3 +580,36 @@ int unicast_client_unicast_master_table_received(struct
> port *p, struct ptp_mess
> return ucma ? 1 : 0;
> }
>
> +int unicast_client_tx_cancel(struct port *p,
> + struct unicast_master_address *dst)
> +{
> + struct ptp_message *msg;
> + int err;
> +
> + msg = port_signaling_uc_construct(p, &dst->address, &dst-
> >portIdentity);
> + if (!msg) {
> + return -1;
> + }
> + err = attach_cancel(msg, ANNOUNCE);
> + if (err) {
> + goto out;
> + }
> + err = attach_cancel(msg, SYNC);
> + if (err) {
> + goto out;
> + }
> + if (p->delayMechanism != DM_P2P) {
> + err = attach_cancel(msg, DELAY_RESP);
> + if (err) {
> + goto out;
> + }
> + }
> +
> + err = port_prepare_and_send(p, msg, TRANS_GENERAL);
> + if (err) {
> + pr_err("%s: signaling message failed", p->log_name);
> + }
> +out:
> + msg_put(msg);
> + return err;
> +}
> diff --git a/unicast_client.h b/unicast_client.h
> index b24c4eb..bb0f80a 100644
> --- a/unicast_client.h
> +++ b/unicast_client.h
> @@ -93,4 +93,12 @@ int unicast_client_timer(struct port *p);
> int unicast_client_unicast_master_table_received(struct port *p,
> struct ptp_message *m);
>
> +/**
> + * Transmit CANCEL_UNICAST_TRANSMISSION TLV to destination address.
> + * @param p The port in question.
> + * @param dst The destination address.
> + * @return Zero on success, non-zero otherwise.
> + */
> +int unicast_client_tx_cancel(struct port *p,
> + struct unicast_master_address *dst);
> #endif
> --
> 2.34.1
>
>
>
> _______________________________________________
> Linuxptp-devel mailing list
> Linuxptp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel