Respond to the port data set management query.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
master
Richard Cochran 2012-12-02 21:06:37 +01:00
parent 970bc7f95c
commit 0e244e7f36
1 changed files with 20 additions and 1 deletions

21
port.c
View File

@ -398,6 +398,7 @@ static int port_management_response(struct port *target, struct port *ingress,
int datalen = 0, err, pdulen, respond = 0; int datalen = 0, err, pdulen, respond = 0;
struct management_tlv *tlv; struct management_tlv *tlv;
struct ptp_message *rsp; struct ptp_message *rsp;
struct portDS *pds;
struct PortIdentity pid = port_identity(target); struct PortIdentity pid = port_identity(target);
rsp = port_management_reply(pid, ingress, req); rsp = port_management_reply(pid, ingress, req);
@ -413,6 +414,25 @@ static int port_management_response(struct port *target, struct port *ingress,
datalen = 0; datalen = 0;
respond = 1; respond = 1;
break; break;
case PORT_DATA_SET:
pds = (struct portDS *) tlv->data;
pds->portIdentity = target->portIdentity;
pds->portState = target->state;
pds->logMinDelayReqInterval = target->logMinDelayReqInterval;
pds->peerMeanPathDelay = target->peerMeanPathDelay;
pds->logAnnounceInterval = target->logAnnounceInterval;
pds->announceReceiptTimeout = target->announceReceiptTimeout;
pds->logSyncInterval = target->logSyncInterval;
if (target->delayMechanism) {
pds->delayMechanism = target->delayMechanism;
} else {
pds->delayMechanism = DM_E2E;
}
pds->logMinPdelayReqInterval = target->logMinPdelayReqInterval;
pds->versionNumber = target->versionNumber;
datalen = sizeof(*pds);
respond = 1;
break;
} }
if (respond) { if (respond) {
tlv->length = sizeof(tlv->id) + datalen; tlv->length = sizeof(tlv->id) + datalen;
@ -1598,7 +1618,6 @@ int port_manage(struct port *p, struct port *ingress, struct ptp_message *msg)
} }
switch (mgt->id) { switch (mgt->id) {
case CLOCK_DESCRIPTION: case CLOCK_DESCRIPTION:
case PORT_DATA_SET:
case LOG_ANNOUNCE_INTERVAL: case LOG_ANNOUNCE_INTERVAL:
case ANNOUNCE_RECEIPT_TIMEOUT: case ANNOUNCE_RECEIPT_TIMEOUT:
case LOG_SYNC_INTERVAL: case LOG_SYNC_INTERVAL: