Add port logic for the 'capable' flag from 802.1AS.
This commit only provides helper functions that will implement the effect of a port being not capable. We let the port be always 'capable' for now, until we actually have added the details of that flag. Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
90f791d881
commit
ad8a197a0b
21
port.c
21
port.c
|
@ -312,6 +312,12 @@ static void free_foreign_masters(struct port *p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int incapable_ignore(struct port *p, struct ptp_message *m)
|
||||||
|
{
|
||||||
|
/* For now, we are always capable. */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int path_trace_append(struct port *p, struct ptp_message *m,
|
static int path_trace_append(struct port *p, struct ptp_message *m,
|
||||||
struct parent_ds *dad)
|
struct parent_ds *dad)
|
||||||
{
|
{
|
||||||
|
@ -358,6 +364,12 @@ static int path_trace_ignore(struct port *p, struct ptp_message *m)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int port_capable(struct port *p)
|
||||||
|
{
|
||||||
|
/* For now, we are always capable. */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int port_clr_tmo(int fd)
|
static int port_clr_tmo(int fd)
|
||||||
{
|
{
|
||||||
struct itimerspec tmo = {
|
struct itimerspec tmo = {
|
||||||
|
@ -370,6 +382,9 @@ static int port_ignore(struct port *p, struct ptp_message *m)
|
||||||
{
|
{
|
||||||
struct ClockIdentity c1, c2;
|
struct ClockIdentity c1, c2;
|
||||||
|
|
||||||
|
if (incapable_ignore(p, m)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
if (path_trace_ignore(p, m)) {
|
if (path_trace_ignore(p, m)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -678,6 +693,9 @@ static int port_tx_announce(struct port *p)
|
||||||
struct ptp_message *msg;
|
struct ptp_message *msg;
|
||||||
int cnt, err = 0, pdulen;
|
int cnt, err = 0, pdulen;
|
||||||
|
|
||||||
|
if (!port_capable(p)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
msg = msg_allocate();
|
msg = msg_allocate();
|
||||||
if (!msg)
|
if (!msg)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -727,6 +745,9 @@ static int port_tx_sync(struct port *p)
|
||||||
int cnt, err = 0, pdulen;
|
int cnt, err = 0, pdulen;
|
||||||
int event = p->timestamping == TS_ONESTEP ? TRANS_ONESTEP : TRANS_EVENT;
|
int event = p->timestamping == TS_ONESTEP ? TRANS_ONESTEP : TRANS_EVENT;
|
||||||
|
|
||||||
|
if (!port_capable(p)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
msg = msg_allocate();
|
msg = msg_allocate();
|
||||||
if (!msg)
|
if (!msg)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Reference in New Issue