Signed-off-by: Richard Cochran <[email protected]>
---
port_private.h | 1 +
port_signaling.c | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/port_private.h b/port_private.h
index 6e66791..464699b 100644
--- a/port_private.h
+++ b/port_private.h
@@ -172,6 +172,7 @@ void process_follow_up(struct port *p, struct ptp_message
*m);
int process_pdelay_req(struct port *p, struct ptp_message *m);
int process_pdelay_resp(struct port *p, struct ptp_message *m);
void process_pdelay_resp_fup(struct port *p, struct ptp_message *m);
+int process_signaling(struct port *p, struct ptp_message *m);
void process_sync(struct port *p, struct ptp_message *m);
int pid_eq(struct PortIdentity *a, struct PortIdentity *b);
int source_pid_eq(struct ptp_message *m1, struct ptp_message *m2);
diff --git a/port_signaling.c b/port_signaling.c
index c8b46e9..c26e062 100644
--- a/port_signaling.c
+++ b/port_signaling.c
@@ -18,6 +18,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA.
*/
#include "port_private.h"
+#include "unicast_client.h"
struct ptp_message *port_signaling_construct(struct port *p,
struct address *address,
@@ -44,3 +45,40 @@ struct ptp_message *port_signaling_construct(struct port *p,
return msg;
}
+
+int process_signaling(struct port *p, struct ptp_message *m)
+{
+ struct tlv_extra *extra;
+ int err = 0;
+
+ switch (p->state) {
+ case PS_INITIALIZING:
+ case PS_FAULTY:
+ case PS_DISABLED:
+ return 0;
+ case PS_LISTENING:
+ case PS_PRE_MASTER:
+ case PS_MASTER:
+ case PS_GRAND_MASTER:
+ case PS_PASSIVE:
+ case PS_UNCALIBRATED:
+ case PS_SLAVE:
+ break;
+ }
+
+ TAILQ_FOREACH(extra, &m->tlv_list, list) {
+ switch (extra->tlv->type) {
+ case TLV_REQUEST_UNICAST_TRANSMISSION:
+ break;
+ case TLV_GRANT_UNICAST_TRANSMISSION:
+ unicast_client_grant(p, m, extra);
+ break;
+ case TLV_CANCEL_UNICAST_TRANSMISSION:
+ err = unicast_client_cancel(p, m, extra);
+ break;
+ case TLV_ACKNOWLEDGE_CANCEL_UNICAST_TRANSMISSION:
+ break;
+ }
+ }
+ return err;
+}
--
2.11.0
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel