diff --git a/clock.c b/clock.c index 14ea25e..3f0cf69 100644 --- a/clock.c +++ b/clock.c @@ -211,6 +211,17 @@ out: return respond ? 1 : 0; } +static int clock_management_set(struct clock *c, struct port *p, + int id, struct ptp_message *req) +{ + int respond = 0; + switch (id) { + } + if (respond && !clock_management_get_response(c, p, id, req)) + pr_err("failed to send management set response"); + return respond ? 1 : 0; +} + static int clock_master_lost(struct clock *c) { int i; @@ -640,6 +651,9 @@ void clock_manage(struct clock *c, struct port *p, struct ptp_message *msg) return; break; case SET: + if (clock_management_set(c, p, mgt->id, msg)) + return; + break; case COMMAND: break; case RESPONSE: diff --git a/port.c b/port.c index 79651af..0403366 100644 --- a/port.c +++ b/port.c @@ -501,6 +501,18 @@ out: return respond ? 1 : 0; } +static int port_management_set(struct port *target, + struct port *ingress, int id, + struct ptp_message *req) +{ + int respond = 0; + switch (id) { + } + if (respond && !port_management_get_response(target, ingress, id, req)) + pr_err("port %hu: failed to send management set response", portnum(target)); + return respond ? 1 : 0; +} + static void port_nrate_calculate(struct port *p, tmv_t t3, tmv_t t4, tmv_t c) { tmv_t origin2; @@ -1698,7 +1710,8 @@ int port_manage(struct port *p, struct port *ingress, struct ptp_message *msg) return 0; break; case SET: - port_management_send_error(p, ingress, msg, NOT_SUPPORTED); + if (port_management_set(p, ingress, mgt->id, msg)) + return 0; break; case COMMAND: case RESPONSE: