Discussion:
[Linuxptp-devel] Compiling core kernel
Drasko DRASKOVIC
2013-05-14 08:32:59 UTC
Permalink
Hi all,
I have a custom kernel for Pandaboard (ARM architecture) based on
Ubuntu Precise, and I would like to cross-compile linux-ptp. I want to
use only SW timestamping, as I do not have any HW that can do
timestamp on PHY layer.

Additionally, I'd like to use WiFi as the mean of communication and do
preliminary tests in this configuration.

I can see (http://linuxptp.sourceforge.net/, section Linux Kernel)
that several kernel configuration options have to be enabled :

CONFIG_PPS Required
CONFIG_NETWORK_PHY_TIMESTAMPING Timestamping in PHY devices
PTP_1588_CLOCK PTP clock support

Are these mandatory only for HW timestamping, or do I have to enable
them when I want SW timestamping only ?

For example, Linux documentation on CONFIG_PPS says :
PPS (Pulse Per Second) is a special pulse provided by some GPS antennae.
Userland can use it to get a high-precision time reference.

I do not think that I need this, as I do not have GPS clock (although
it is marked as "Required").

Does something special has to be included in the kernel for SW timestamping ?

BR,
Drasko
Jiri Benc
2013-05-14 09:12:37 UTC
Permalink
Post by Drasko DRASKOVIC
Additionally, I'd like to use WiFi as the mean of communication and do
preliminary tests in this configuration.
[...]
Does something special has to be included in the kernel for SW timestamping ?
Note that even for the software time stamping, there has to be driver
support, as the transmitted packets have to be time stamped as late as
possible, i.e. just before they are handed off to hardware. Only the
driver can do that.

A quick grep through the kernel source for skb_tx_timestamp doesn't
indicate any of the wireless drivers support software time stamping.
Given the specifics of 802.11 MAC, there may even be a support in
mac80211 needed.

I wouldn't expect much from wifi anyway, the jitter added by the MAC
and AP would be horrible even when you take care of the buffer bloat
which is still prevalent in the wifi world. Consider that, among other
things, 802.11 does frame retransmission at the MAC layer, and (except
corner cases like TDLS) all frames are retransmitted by the AP.

This is a general problem unrelated to linuxptp, so I doubt choosing
another PTP solution would help you.

Jiri
--
Jiri Benc
Drasko DRASKOVIC
2013-05-14 09:39:46 UTC
Permalink
Hi Jiri,
Post by Jiri Benc
Post by Drasko DRASKOVIC
Additionally, I'd like to use WiFi as the mean of communication and do
preliminary tests in this configuration.
[...]
Does something special has to be included in the kernel for SW timestamping ?
Note that even for the software time stamping, there has to be driver
support, as the transmitted packets have to be time stamped as late as
possible, i.e. just before they are handed off to hardware. Only the
driver can do that.
A quick grep through the kernel source for skb_tx_timestamp doesn't
indicate any of the wireless drivers support software time stamping.
Given the specifics of 802.11 MAC, there may even be a support in
mac80211 needed.
So, basically, skb_tx_timestamp has to be added in the driver, if it
does not exist *and obviausly it does not), and ptp4l can not be used
as is, without additional driver modifications ?
Post by Jiri Benc
I wouldn't expect much from wifi anyway, the jitter added by the MAC
and AP would be horrible
I do not understand yet all the science behind this clock servo PI
controller, but would that mean that having too much jitter would
completely prevent this technique of synchronization, so that it can
be completely unusable or even unadvised in favor of some other
techniques, like NTP which have less precision in the case of ETH PHY
timestamping but in this case of higher jitter has better algorithms
and/or can perform better than ptp?
Post by Jiri Benc
even when you take care of the buffer bloat
which is still prevalent in the wifi world.
I am not sure what you meant by this, as I do not know 802.11 internals...
Post by Jiri Benc
Consider that, among other
things, 802.11 does frame retransmission at the MAC layer, and (except
corner cases like TDLS) all frames are retransmitted by the AP.
Yes, and would that mean that ptp4l would be confused as it will get
two packets (original and re-transimtted) with the same timestamp?
Post by Jiri Benc
This is a general problem unrelated to linuxptp, so I doubt choosing
another PTP solution would help you.
If I understand well, it is possible that NTP would perform better
than PTP in these conditions?

Best regards,
Drasko
Jiri Benc
2013-05-14 09:56:10 UTC
Permalink
Post by Drasko DRASKOVIC
So, basically, skb_tx_timestamp has to be added in the driver, if it
does not exist *and obviausly it does not), and ptp4l can not be used
as is, without additional driver modifications ?
Yes. I'm not sure whether it's the driver or mac80211, would require
some thinking, as wifi is a bit specific in that it implements part of
the MAC layer in the kernel (contrary to ethernet where the MAC layer
is completely implemented by hardware).
Post by Drasko DRASKOVIC
I do not understand yet all the science behind this clock servo PI
controller, but would that mean that having too much jitter would
completely prevent this technique of synchronization, so that it can
be completely unusable or even unadvised in favor of some other
techniques, like NTP which have less precision in the case of ETH PHY
timestamping but in this case of higher jitter has better algorithms
and/or can perform better than ptp?
It should synchronize but the precision is likely to be low. No
numbers, sorry, I haven't measured that.
Post by Drasko DRASKOVIC
Post by Jiri Benc
even when you take care of the buffer bloat
which is still prevalent in the wifi world.
I am not sure what you meant by this, as I do not know 802.11 internals...
http://lwn.net/Articles/458625/
Post by Drasko DRASKOVIC
Yes, and would that mean that ptp4l would be confused as it will get
two packets (original and re-transimtted) with the same timestamp?
It won't get two packets, that's not the problem. The problem is the
message delivery delay will vary a lot between packets, creating
asymmetric communication path with varied asymmetry. The PTP protocol
is not designed to operate under such conditions.
Post by Drasko DRASKOVIC
If I understand well, it is possible that NTP would perform better
than PTP in these conditions?
Maybe, no idea, I'm no expert on NTP.

Jiri
--
Jiri Benc
Drasko DRASKOVIC
2013-05-14 10:01:31 UTC
Permalink
Hi Jiri,
Post by Jiri Benc
Post by Drasko DRASKOVIC
So, basically, skb_tx_timestamp has to be added in the driver, if it
does not exist *and obviausly it does not), and ptp4l can not be used
as is, without additional driver modifications ?
Yes. I'm not sure whether it's the driver or mac80211, would require
some thinking, as wifi is a bit specific in that it implements part of
the MAC layer in the kernel (contrary to ethernet where the MAC layer
is completely implemented by hardware).
For the first tries of and measurements, would it be possible to
instruct ptp4l to do the timestamping on the application layer? I know
that it will add additional jitter, but I need just a testing example.

Also, can it work without TX timestamping in kernel, because I think
that kernel already has some kind of mechanism of RX timestamping
independent of driver used...

BR,
Drasko
Keller, Jacob E
2013-05-14 20:48:31 UTC
Permalink
Hi,
-----Original Message-----
Sent: Tuesday, May 14, 2013 3:02 AM
To: Jiri Benc
Subject: Re: [Linuxptp-devel] Compiling core kernel
Hi Jiri,
Post by Jiri Benc
Post by Drasko DRASKOVIC
So, basically, skb_tx_timestamp has to be added in the driver, if it
does not exist *and obviausly it does not), and ptp4l can not be used
as is, without additional driver modifications ?
Yes. I'm not sure whether it's the driver or mac80211, would require
some thinking, as wifi is a bit specific in that it implements part of
the MAC layer in the kernel (contrary to ethernet where the MAC layer
is completely implemented by hardware).
For the first tries of and measurements, would it be possible to
instruct ptp4l to do the timestamping on the application layer? I know
that it will add additional jitter, but I need just a testing example.
Not without modifying ptp4l, and this would be even worse. You could add skb_tx_timestamp function call into the wireless driver for your wireless chipset, and all you need to do is figure out where the last point that you have an skb inside the driver is. This would require modifying the wireless driver (probably per chipset you want to use, though it may be possible to do this inside the mac80211 portion)
Also, can it work without TX timestamping in kernel, because I think
that kernel already has some kind of mechanism of RX timestamping
independent of driver used...
No. You need some form of TX timestamping. The RX timestamping for software is simpler and works regardless of the driver/connection type used. But there were design issues implementing TX timestamping the same way, as there is too much non-constant delay before the driver hands the packet to the hardware. PTP is not designed to work in an environment where delay has high jitter (as in each packet has a large variance in delay from point to point.)

PTP is designed for Ethernet like networks where delay exists but is relatively stable. That doesn't mean you can't use PTP, but it may not be optimal. You might try looking at the 802.1AS standard which includes gPTP which is similar (and there is some support in ptp4l for this standard) But the IEEE standard document describes some of the issues for wireless transmission, and may have more information to help you here.
BR,
Drasko
Drasko DRASKOVIC
2013-05-16 10:12:03 UTC
Permalink
Hello Jacob,

On Tue, May 14, 2013 at 10:48 PM, Keller, Jacob E
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
For the first tries of and measurements, would it be possible to
instruct ptp4l to do the timestamping on the application layer? I know
that it will add additional jitter, but I need just a testing example.
Not without modifying ptp4l, and this would be even worse. You could add skb_tx_timestamp function call into the wireless driver for your wireless chipset, and all you need to do is figure out where the last point that you have an skb inside the driver is. This would require modifying the wireless driver (probably per chipset you want to use, though it may be possible to do this inside the mac80211 portion)
Thank you very much for this informative and detailed answer.

I am aware now that TX timestamp is necessary, however, I was thinking
inserting it on the Application layer, just in order to get my
testbench ready and check if everything is connected before starting
to change the kernel.
Keller, Jacob E
2013-05-16 18:15:30 UTC
Permalink
Hello,
-----Original Message-----
Sent: Thursday, May 16, 2013 3:12 AM
To: Keller, Jacob E
Subject: Re: [Linuxptp-devel] Compiling core kernel
Hello Jacob,
On Tue, May 14, 2013 at 10:48 PM, Keller, Jacob E
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
For the first tries of and measurements, would it be possible to
instruct ptp4l to do the timestamping on the application layer? I
know
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
that it will add additional jitter, but I need just a testing example.
Not without modifying ptp4l, and this would be even worse. You could
add skb_tx_timestamp function call into the wireless driver for your
wireless chipset, and all you need to do is figure out where the last
point that you have an skb inside the driver is. This would require
modifying the wireless driver (probably per chipset you want to use,
though it may be possible to do this inside the mac80211 portion)
Thank you very much for this informative and detailed answer.
I am aware now that TX timestamp is necessary, however, I was thinking
inserting it on the Application layer, just in order to get my
testbench ready and check if everything is connected before starting
to change the kernel.
Drasko DRASKOVIC
2013-05-17 13:51:53 UTC
Permalink
Hi Jacob,
First thanks again for these fantastic explanations. This subject seem
to be quite tricky and your comments really helping a lot.


On Thu, May 16, 2013 at 8:15 PM, Keller, Jacob E
Post by Keller, Jacob E
Hello,
You could probably modify ptp4l to enable some form of transmit software timestamping. It would be very high jitter, and I'm not 100% sure where to put it in this application layer. It definitely wouldn't bare much on results with a real solution. We don't have the ability to do application layer because most of the ptp4l development is focused on Ethernet networking, which should have the SW timestamping enabled (as it is a 1 line, low impact patch) but due to the way the Tx path works, it requires modification of the driver, and not all driver owners have done so. This is due to attempts at trying to perform Tx timestamps outside the driver layer not being accurate enough, or causing other issues due to the methods used. The mailing list discussion over this was so long ago I don't have links to the reasons for this anymore. You might be able to find it by searching netdev archives.
OK, I guess I will use ptpd for the first measurements, just to set-up
my testbench (find correct GPIOs, connect oscilloscopes, find testing
strategies), to try with and without synchronization.

Then I will start going into the kernel with ptp4l.
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
Also, can it work without TX timestamping in kernel, because I think
that kernel already has some kind of mechanism of RX timestamping
independent of driver used...
No. You need some form of TX timestamping. The RX timestamping for
software is simpler and works regardless of the driver/connection type
used. But there were design issues implementing TX timestamping the
same way, as there is too much non-constant delay before the driver
hands the packet to the hardware. PTP is not designed to work in an
environment where delay has high jitter (as in each packet has a large
variance in delay from point to point.)
OK, so from what I understand here, both TX and RX timestamping are
needed, and ptp4l does not provide the mechanism that this can be
done
on the application layer, but it must be done in the kernel.
Also, I understood that RX mechanism already exists in the kernel - no
changes needed.
Rx already works, for any driver, as far as I know.
Post by Keller, Jacob E
TX timestamping however do not exist in the kernel and must be done
on
per-driver basis, and I absolutely have to dig in the driver code to
enable my test set-up (which I absolutely try to avoid, just in order
to have first test set-up very quickly).
You could conceivably add Tx timestmaping to the ptp4l application layer but I don't know the details of this, and it wouldn't be likely accepted upstream into the application.
I do not expect this, there must be a good reasons why it was thrown
out in the first place. I was just wondering what is the amount of
work for this to be done.
Post by Keller, Jacob E
I assume the best place to do this would be the sk.c layer in the transmit section. But again this wouldn't bare any resemblance to real performance.
I guess first idea is to move it there.

Later, to go further via HW, ideas like this have been employed :
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CEcQFjAB&url=http%3A%2F%2Fwww.iiss.oeaw.ac.at%2Ffiles%2Fpub%2FMahmood2010.pdf&ei=VTCWUe21H4y4hAe3zYDwAg&usg=AFQjCNEmP2nw2jxDPaKP4UsJpu_OP-gepQ&sig2=i_jB2XO1IYXZ_zk7FSAFfQ&bvm=bv.46751780,bs.1,d.Yms

Here ath5k (madwifi) driver has a part of MAC firmware that moved from
chipset to kernel driver. This way an interrupt can be provoked each
time a packet has been sent out. This way it is not affetced by
carrier sense multiple access/ collision avoidance (CSMA/CA) scheme
imptobabilities, which would introduce the jitter if packed was
timestamped before it was handed to PHY.

The paper reports that with this method the final clock offset
achieved has been 23m6 µS with a standard deviation of 6.1 µSl, which
seems impressive for me having in mind the WiFi connection drawbacks.
Post by Keller, Jacob E
Post by Keller, Jacob E
What is the essential difference between 802.1AS and PTP ? I am
looking at some presentations, but I still did not quite figured it
out.
I honestly don't know a whole lot. 802.1AS has a few requirements that PTP says are optional, and the specification goes into detail for different transmit/receive types and layers about how to handle them. 802.1AS is a mostly compatible but has a few differences to PTP. I don't know exactly all the details as it's been a while since I read both specification documents.
In the meantime, in "IEEE P802.1AS proposed clause 7" I found the
following which I paste here for further references :

7.5 Differences between gPTP and 1588 PTP
1. gPTP assumes all communication between time-aware systems is done
only using 802 MAC PDUs
and addressing, while 1588 supports various layer 2 and layer 3-4
communication methods.
2. gPTP specifies a media-independent sublayer that simplifies the
integration within a single timing
domain of multiple different networking technologies with radically
different media access protocols.
The information exchanged between time-aware systems has been
generalized to support different
packet formats and management schemes appropriate to the particular
networking technology. 1588,
on the other hand, is fully specified only for Ethernet-type LANs and
similar technology.
3. In gPTP there are only two types of time-aware systems: end-points
and bridges, while 1588 has ordinary
clocks, boundary clocks, end-to-end transparent bridges and
peer-to-peer transparent bridges.
A time-aware endpoint corresponds to a 1588 ordinary clock, and a
time-aware bridge is a type of
1588 boundary clock where its operation is very tightly defined … so
much so that a time-aware
bridge with Ethernet ports can be shown to be mathematically
equivalent to a peer-to-peer transparent
bridge, as shown in clause 11.1.3.
4. Time-aware systems only communicate gPTP information directly with
other time-aware systems. I.e,
a gPTP domain consists ONLY of time-aware systems. Non-time-aware
bridges cannot be used to
relay gPTP information. In 1588 it is possible to use non-1588-aware
bridges in a 1588 domain, although
this will slow timing convergence and introduce extra jitter that must
be filtered by any 1588
clock.
5. For Ethernet full-duplex links, gPTP requires the use of the peer
delay mechanism, while 1588 also
allows the use of end-to-end delay measurement.
6. For Ethernet full-duplex links, gPTP requires the use of two-step
processing (use of Follow_up and
Pdelay_resp_follow_up messages to communicate timestamps), while 1588
allows single step processing
(embedding timestamps in messages “on the fly” as they are being transmitted).
7. In steady state, there is only a single active grandmaster in a
time-aware network. I.e., there is only a
single gPTP domain, whereas 1588 allows multiple overlapping timing domains.
8. All time-aware systems in a gPTP domain are logically syntonized,
meaning that they all measure
time intervals using the same frequency. This is done by the process
described in x, and is mandatory.
Syntonization in 1588 is optional, and the method used is not as
direct and takes longer to converge.
9. The BMCA used in gPTP is the same as that used in 1588 with the
following exceptions: (i) Announce
messages received on a slave port that were not sent by the receiving
time-aware system are
used immediately, i.e., there is no foreign-master qualification, (ii)
a port that the BMCA determines
should be a master port enters the master state immediately, i.e.,
there is no pre-master state, (iii) the
uncalibrated state is not needed and, therefore, not used, and (iv)
all time-aware systems are required
to participate in best master selection (even if it is not grandmaster capable).
10. Finally, this standard includes a formal services definition for
the time-aware applications. (See clause
9.) 1588 does not define how an application provides or obtains time
information.)

Best regards,
Drasko
Keller, Jacob E
2013-05-17 18:54:36 UTC
Permalink
Drasko,

No problem. This is a very complex subject, with a lot of nuance, and quite a bit still left "up to implementation"
-----Original Message-----
Sent: Friday, May 17, 2013 6:52 AM
To: Keller, Jacob E
Subject: Re: [Linuxptp-devel] Compiling core kernel
Hi Jacob,
First thanks again for these fantastic explanations. This subject seem
to be quite tricky and your comments really helping a lot.
On Thu, May 16, 2013 at 8:15 PM, Keller, Jacob E
Post by Keller, Jacob E
Hello,
You could probably modify ptp4l to enable some form of transmit
software timestamping. It would be very high jitter, and I'm not 100%
sure where to put it in this application layer. It definitely wouldn't bare
much on results with a real solution. We don't have the ability to do
application layer because most of the ptp4l development is focused on
Ethernet networking, which should have the SW timestamping enabled
(as it is a 1 line, low impact patch) but due to the way the Tx path works,
it requires modification of the driver, and not all driver owners have
done so. This is due to attempts at trying to perform Tx timestamps
outside the driver layer not being accurate enough, or causing other
issues due to the methods used. The mailing list discussion over this
was so long ago I don't have links to the reasons for this anymore. You
might be able to find it by searching netdev archives.
OK, I guess I will use ptpd for the first measurements, just to set-up
my testbench (find correct GPIOs, connect oscilloscopes, find testing
strategies), to try with and without synchronization.
Then I will start going into the kernel with ptp4l.
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
Also, can it work without TX timestamping in kernel, because I
think
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
that kernel already has some kind of mechanism of RX
timestamping
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Keller, Jacob E
Post by Drasko DRASKOVIC
independent of driver used...
No. You need some form of TX timestamping. The RX timestamping
for
Post by Keller, Jacob E
Post by Keller, Jacob E
software is simpler and works regardless of the driver/connection
type
Post by Keller, Jacob E
Post by Keller, Jacob E
used. But there were design issues implementing TX timestamping
the
Post by Keller, Jacob E
Post by Keller, Jacob E
same way, as there is too much non-constant delay before the driver
hands the packet to the hardware. PTP is not designed to work in an
environment where delay has high jitter (as in each packet has a
large
Post by Keller, Jacob E
Post by Keller, Jacob E
variance in delay from point to point.)
OK, so from what I understand here, both TX and RX timestamping
are
Post by Keller, Jacob E
Post by Keller, Jacob E
needed, and ptp4l does not provide the mechanism that this can be
done
on the application layer, but it must be done in the kernel.
Also, I understood that RX mechanism already exists in the kernel -
no
Post by Keller, Jacob E
Post by Keller, Jacob E
changes needed.
Rx already works, for any driver, as far as I know.
Post by Keller, Jacob E
TX timestamping however do not exist in the kernel and must be
done
Post by Keller, Jacob E
Post by Keller, Jacob E
on
per-driver basis, and I absolutely have to dig in the driver code to
enable my test set-up (which I absolutely try to avoid, just in order
to have first test set-up very quickly).
You could conceivably add Tx timestmaping to the ptp4l application
layer but I don't know the details of this, and it wouldn't be likely
accepted upstream into the application.
I do not expect this, there must be a good reasons why it was thrown
out in the first place. I was just wondering what is the amount of
work for this to be done.
Post by Keller, Jacob E
I assume the best place to do this would be the sk.c layer in the
transmit section. But again this wouldn't bare any resemblance to real
performance.
I guess first idea is to move it there.
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2
&ved=0CEcQFjAB&url=http%3A%2F%2Fwww.iiss.oeaw.ac.at%2Ffiles%2
Fpub%2FMahmood2010.pdf&ei=VTCWUe21H4y4hAe3zYDwAg&usg=AFQ
jCNEmP2nw2jxDPaKP4UsJpu_OP-
gepQ&sig2=i_jB2XO1IYXZ_zk7FSAFfQ&bvm=bv.46751780,bs.1,d.Yms
Here ath5k (madwifi) driver has a part of MAC firmware that moved from
chipset to kernel driver. This way an interrupt can be provoked each
time a packet has been sent out. This way it is not affetced by
carrier sense multiple access/ collision avoidance (CSMA/CA) scheme
imptobabilities, which would introduce the jitter if packed was
timestamped before it was handed to PHY.
The paper reports that with this method the final clock offset
achieved has been 23m6 µS with a standard deviation of 6.1 µSl, which
seems impressive for me having in mind the WiFi connection
drawbacks.
Post by Keller, Jacob E
Post by Keller, Jacob E
What is the essential difference between 802.1AS and PTP ? I am
looking at some presentations, but I still did not quite figured it
out.
I honestly don't know a whole lot. 802.1AS has a few requirements
that PTP says are optional, and the specification goes into detail for
different transmit/receive types and layers about how to handle them.
802.1AS is a mostly compatible but has a few differences to PTP. I don't
know exactly all the details as it's been a while since I read both
specification documents.
In the meantime, in "IEEE P802.1AS proposed clause 7" I found the
7.5 Differences between gPTP and 1588 PTP
1. gPTP assumes all communication between time-aware systems is done
only using 802 MAC PDUs
and addressing, while 1588 supports various layer 2 and layer 3-4
communication methods.
2. gPTP specifies a media-independent sublayer that simplifies the
integration within a single timing
domain of multiple different networking technologies with radically
different media access protocols.
The information exchanged between time-aware systems has been
generalized to support different
packet formats and management schemes appropriate to the particular
networking technology. 1588,
on the other hand, is fully specified only for Ethernet-type LANs and
similar technology.
3. In gPTP there are only two types of time-aware systems: end-points
and bridges, while 1588 has ordinary
clocks, boundary clocks, end-to-end transparent bridges and
peer-to-peer transparent bridges.
A time-aware endpoint corresponds to a 1588 ordinary clock, and a
time-aware bridge is a type of
1588 boundary clock where its operation is very tightly defined . so
much so that a time-aware
bridge with Ethernet ports can be shown to be mathematically
equivalent to a peer-to-peer transparent
bridge, as shown in clause 11.1.3.
4. Time-aware systems only communicate gPTP information directly with
other time-aware systems. I.e,
a gPTP domain consists ONLY of time-aware systems. Non-time-aware
bridges cannot be used to
relay gPTP information. In 1588 it is possible to use non-1588-aware
bridges in a 1588 domain, although
this will slow timing convergence and introduce extra jitter that must
be filtered by any 1588
clock.
5. For Ethernet full-duplex links, gPTP requires the use of the peer
delay mechanism, while 1588 also
allows the use of end-to-end delay measurement.
6. For Ethernet full-duplex links, gPTP requires the use of two-step
processing (use of Follow_up and
Pdelay_resp_follow_up messages to communicate timestamps), while 1588
allows single step processing
(embedding timestamps in messages "on the fly" as they are being
transmitted).
7. In steady state, there is only a single active grandmaster in a
time-aware network. I.e., there is only a
single gPTP domain, whereas 1588 allows multiple overlapping timing domains.
8. All time-aware systems in a gPTP domain are logically syntonized,
meaning that they all measure
time intervals using the same frequency. This is done by the process
described in x, and is mandatory.
Syntonization in 1588 is optional, and the method used is not as
direct and takes longer to converge.
9. The BMCA used in gPTP is the same as that used in 1588 with the
following exceptions: (i) Announce
messages received on a slave port that were not sent by the receiving
time-aware system are
used immediately, i.e., there is no foreign-master qualification, (ii)
a port that the BMCA determines
should be a master port enters the master state immediately, i.e.,
there is no pre-master state, (iii) the
uncalibrated state is not needed and, therefore, not used, and (iv)
all time-aware systems are required
to participate in best master selection (even if it is not grandmaster capable).
10. Finally, this standard includes a formal services definition for
the time-aware applications. (See clause
9.) 1588 does not define how an application provides or obtains time
information.)
Best regards,
Drasko
This is the difference between the standards, but inside the 802.1AS gPTP document there are appendixes which describe methods for syncing across wireless devices. The IEEE 1588 standard doesn't include these, even though it would work with them because it was mainly focused on the Ethernet connections. I believe you can download the standard for free, and read this appendix to get some ideas about how to sync wireless.

The link you gave above seems to be a good result as well.

- Jake

Loading...