---
 pmc_common.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/pmc_common.c b/pmc_common.c
index c5cd992..c7d8bed 100644
--- a/pmc_common.c
+++ b/pmc_common.c
@@ -57,6 +57,7 @@
 
 static void do_get_action(struct pmc *pmc, int action, int index, char *str);
 static void do_set_action(struct pmc *pmc, int action, int index, char *str);
+static void do_cmd_action(struct pmc *pmc, int action, int index, char *str);
 static void not_supported(struct pmc *pmc, int action, int index, char *str);
 static void null_management(struct pmc *pmc, int action, int index, char *str);
 
@@ -280,6 +281,31 @@ static void do_set_action(struct pmc *pmc, int action, int 
index, char *str)
        }
 }
 
+static void do_cmd_action(struct pmc *pmc, int action, int index, char *str)
+{
+       int code = idtab[index].code;
+
+       switch (action) {
+       case COMMAND:
+               break;
+       case GET:
+       case SET:
+       case RESPONSE:
+       case ACKNOWLEDGE:
+       default:
+               fprintf(stderr, "%s only allows COMMAND\n",
+                       idtab[index].name);
+               return;
+       }
+/*
+       switch (code) {
+       case TLV_XXXX:
+               pmc_send_cmd_action(pmc, code);
+               break;
+       }
+*/
+}
+
 static void not_supported(struct pmc *pmc, int action, int index, char *str)
 {
        fprintf(stdout, "sorry, %s not supported yet\n", idtab[index].name);
@@ -622,6 +648,31 @@ int pmc_send_set_action(struct pmc *pmc, int id, void 
*data, int datasize)
        return 0;
 }
 
+int pmc_send_cmd_action(struct pmc *pmc, int id)
+{
+       struct management_tlv *mgt;
+       struct ptp_message *msg;
+       struct tlv_extra *extra;
+
+       msg = pmc_message(pmc, COMMAND);
+       if (!msg) {
+               return -1;
+       }
+       extra = msg_tlv_append(msg, sizeof(*mgt));
+       if (!extra) {
+               msg_put(msg);
+               return -ENOMEM;
+       }
+       mgt = (struct management_tlv *) extra->tlv;
+       mgt->type = TLV_MANAGEMENT;
+       mgt->length = 2;
+       mgt->id = id;
+       pmc_send(pmc, msg);
+       msg_put(msg);
+
+       return 0;
+}
+
 struct ptp_message *pmc_recv(struct pmc *pmc)
 {
        struct ptp_message *msg;
-- 
2.31.1



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to