• No results found

Ansvarsfordeling og styring av barnehagesektoren

2. Komiteens merknader

2.2 Sikre likeverdig og høy kvalitet i alle barnehager

2.2.4 Ansvarsfordeling og styring av barnehagesektoren

Os! últimos! testes! da! solução! final! plasmada! no! protótipo! desenvolvido! consideraram!a!reprodução!sincronizada!dum!ficheiro!áudio!em!duas!placas,!sendo! que! estas! estavam! ligadas! a! um! simples! amplificador! e! conectadas! a! colunas! de! áudio.!O!teste!foi!efectuado!com!um!beta4tester,!que!de!forma!subjetiva,!ao!longo! das!várias!reproduções,!tentava!perceber!se!havia!algum!atraso!entre!colunas.!Em! nenhuma! das! reproduções! foi! perceptível! qualquer! atraso,! incluindo! quaisquer! desvios!do!local!da!fonte!sonora!(áudio!sempre!recebido!do!centro).!Apesar!deste!

teste! demonstrar! um! sistema! sem! atrasos,! ainda! assim! não! era! conclusivo,! considerando!que!apenas!uma!pessoa!foi!sujeita!ao!mesmo,!e!nem!todas!as!pessoas! têm! o! mesmo! sentido! auditivo.! DecidiuIse! então! fazer! um! teste! com! osciloscópio,! que!poderia!confirmar!ou!mesmo!reprovar!os!resultados!obtidos!com!a!audição!do!

beta4tester.!O!teste!comprovou!que!apesar!dos!atrasos!não!serem!perceptíveis,!eles!

de! facto! existiam! e! para! referências! acima! dos! 3ms.! É! relevante! considerar! que,! mesmo!com!estes!valores!e!de!acordo!com!o!Hass4effect,!não!se!notaria!atraso!entre! colunas! mas! sim! uma! noção! espacial.! Ainda! assim! estava! acima! do! limite! especificado! nos! requisitos! definidos! para! o! projeto,! pelo! que! os! resultados! não! eram!encorajadores.!Após!algumas!mudanças!no!programa,!que!tratava!do!tempo! de!espera!para!a!reprodução!do!áudio,!foram!efectuados!novos!testes.!Um!nível!de! dessincronização! máximo! ótimo,! abaixo! do! valor! teórico! de! 1! ms,! real! e! medido! à! saída! dos! amplificadores,! foi! conseguido! em! mais! de! 95%! dos! testes,! podendo! a! solução!encontrada!ser!considerada!muito!satisfatória.!!

Em!suma,!foi!demonstrado!que!com!placas!de!baixo!custo!com!sistemas!Linux! simples! em! redes! WiIFi! comuns! e! utilizando! protocolos! abertos! e! gratuitos,! é! possível! implementar! em! software! algoritmos! e! mecanismos! que! permitem! obter! resultados!excelentes!para!sistemas!dedicados!à!distribuição!áudio!de!altaIfidelidade! sem! recurso! a! cablagem! externa.! Assim,! esperaIse! que! a! “democratização”! desta! tecnologia!a!torne!facilmente!acessível,!sem!necessidade!de!recurso!a!protocolos!ou! mecanismos!proprietários!ou!pagos.!

4.2 Trabalhos'Futuros'

No!presente!trabalho!foi!provado!que!é!possível!ter!uma!qualidade!de!áudio!de! alta!fidelidade!num!sistema!sem!fios!usando!apenas!protocolos!de!código!aberto!e! um!SO!Linux.!No!entanto!e!para!que!se!possa!chegar!a!um!sistema!ótimo,!há!ainda! que!considerar!demais!desenvolvimentos!e!testes.! Desde!logo,!admiteIse!seria!preciso!um!teste!intensivo!(fazendo!uso!de!mais!do! que!2!colunas),!para!averiguar!a!capacidade!da!rede!sujeita!a!um!tráfego!de!dados!

elevado.!De!facto,!se!se!estiver!a!falar!de!um!sistema!de!alta!fidelidade!num!“home4

cinema”,!por!exemplo,!a!quantidade!de!dados!transferida!pela!rede!seria!bastante!

elevada!(áudio!para!5!colunas!no!mínimo).!Deste!modo,!e!recuperando!o!que!foi!dito! anteriormente,!poderia!ser!preciso!usar!um!método!de!compressão!do!áudio!para! diminuir! o! tráfego! na! rede.! Consequentemente! também! seria! preciso! testar! a! capacidade! de! placas! (RPi! e! WD)! no! que! diz! respeito! ao! tempo! usado! para! essa! compressão/descompressão,!uma!vez!que!iria!afectar!a!latência!total.!! Seria!igualmente!preciso!um!teste!de!latência!fimIaIfim.!No!presente!trabalho!foi! apenas!testado!o!atraso!máximo!entre!colunas,!mas!se!se!pensar!numa!configuração! em!que!se!tem!uma!televisão!a!enviar!o!áudio!para!as!colunas,!a!latência!terá!um! factor!importante!no!limiar!do!lip4synchronization.!Tal!como!foi!falado!na!secção!2.1,! uma!latência!superior!a!80ms!será!perceptível!pelo!ouvido!humano!e!efetivamente! incomodativa.!

!Apesar! do! uso! de! um! kernel! RT,! não! foi! tirado! partido! a! 100%! do! mesmo.! A! possibilidade! de! priorizar! threads! num! kernel! RT! seria! um! factor! que! diminuiria! o! tempo! máximo! que! uma! função! demora! a! ser! executada,! e! por! conseguinte,! a! latência!final.!!

Foi! apenas! testado! o! formato! standard! de! um! cd! de! áudio,! ou! seja,! 44100Hz! 16bits! estéreo.! De! futuro! poderá! fazer! sentido! a! implementação! de! suporte! para! vários!formatos!de!áudio.!

O! Linux,! por! defeito,! trás! muitos! módulos! que! podem! ser! desativados! para! a! solução!proposta,!como!por!exemplo,!tudo!o!que!permite!o!acesso!à!internet!(dado! só!ser!preciso!ter!acesso!à!rede!local).!Poderiam!também!ser!desativados!todos!os!

drivers!de!dispositivos!não!utilizados.!Do!mesmo!modo,!poderia!ser!criado!um!driver!

específico! para! o! tratamento! das! interrupções! do! áudio.! Poderia! ser! também! aprofundado!o!conhecimento!da!API!ALSA!para!tirar!melhor!partido!da!mesma.!

No!final!é!feita!uma!abordagem!em!que!o!PTP!está!apenas!a!monitorizar!e!não!a! corrigir! o! relógio.! Com! esta! abordagem! o! PTP! faz! imensos! cálculos! desnecessários! para!a!solução!final.!Poderia!ser!implementado!um!protocolo!simples!em!que!a!única!

função! do! master! seria! enviar! o! seu! relógio! local! numa! trama! UDP! com! uma! periodicidade!baixa!(cerca!de!100ms).!Do!lado!do!cliente!apenas!se!faz!a!média!dos! offsets.! Como! se! estão! a! considerar! redes! sem! fios,! os! resultados! têm! muitas! anomalias.!Consequentemente,!poderia!ser!implementado!um!filtro!para!amortizar! tais!anomalias,!como!por!exemplo!um!Kalman!filter.!

!

Referências'

[1] G. Blakowski and R. Steinmetz, “A media synchronization survey: Reference model, specification, and case studies,” IEEE Journal on Selected Areas in

Communications, vol. 14, no. 1. pp. 5–35, 1996.

[2] M. B. Gardner, “Historical Background of the Haas and/or Precedence Effect,”

The Journal of the Acoustical Society of America, vol. 43, no. 6, p. 513, 1968.

[3] R. Francis, Spatial Audio. Amsterdam: Focal Press, 2005, p. 256.

[4] M. Z. Julius Panero, Dimensionamento humano para espaços interiores. Editorial Gustavo Gili, 2005, p. 320.

[5] “A2DP.” [Online]. Available:

https://developer.bluetooth.org/TechnologyOverview/Pages/ImplementingAdv ancedAudioDistributionProfile.aspx.

[6] “Wisa.” [Online]. Available: http://www.wisaassociation.org. [7] “Sonos.” [Online]. Available: http://www.sonos.com/en-eu.

[8] “Denon - Heos.” [Online]. Available: http://heosbydenon.denon.com/za. [9] “B&O.” [Online]. Available: http://www.bang-olufsen.com/en.

[10] E. Ferro and F. Potorti, “Bluetooth and Wi-Fi wireless protocols: A survey and a comparison,” Wireless Communications, IEEE, no. February, pp. 12–26, 2005.

[11] “Wireless Standards.” [Online]. Available: http://www.arrownac.com/events- training/training/pdfs/wireless.pdf.

[12] D. Mills, J. Martin, J. Burbank, and W. Kasch, “RFC 5905 - Network Time Protocol,” Internet Engineering Task Force (IETF), pp. 1–111, 2010. [13] M. Maróti, B. Kusy, G. Simon, and Á. Lédeczi, “The flooding time

synchronization protocol,” in SenSys ’04 Proceedings of the 2nd international

[14] “IEEE 1588 Precise Time Protocol: The New Standard in Time Synchronization,” Time. Symmetricom, Inc., pp. 1–5, 2005.

[15] M. Rautiainen, H. Aska, and T. Ojala, “Swarm synchronization for multi- recipient multimedia streaming,” Proc. - 2009 IEEE Int. Conf. Multimed. Expo,

ICME, pp. 786–789, 2009.

[16] C. Young and B. Chang, “The implementation of a wired/wireless multimedia playback system,” in Second International Conference on Innovative

Computing, Information and Control, ICICIC, 2007, pp. 3–6.

[17] T. F. Pedersen, T. M. Sondrup, and J. Fiil, Thomas Jensen, Søren H. Østergaard, “Feasibily study of mesh technologies for audio streaming,” Aalborg Universitet, 2012.

[18] M. Brorsen, S. Pedersen, M. Volf, S. Vutborg, J. Larsen, and K. Pedersen, “Precise time synchronisation on a wireless network using PTPd,” Aalborg University, 2010.

[19] “PTPd.” [Online]. Available: http://ptpd.sourceforge.net.

[20] “Audio Linux.” [Online]. Available: http://tuxradar.com/content/how-it-works- linux-audio-explained.

[21] K. Koolwal, “Myths and realities of real-time linux software systems,” VersaLogic Corporation, 2009.

[22] “RT Kernel.” [Online]. Available:

https://rt.wiki.kernel.org/index.php/Main_Page.

[23] T. Neagoe, V. Cristea, and L. Banica, “NTP versus PTP in computer networks clock synchronization,” in IEEE International Symposium on Industrial

Electronics, vol. 1, 2006, pp. 317–322.

[24] B. J. Matson, “Choosing the correct Time Synchronization Protocol and incorporating the 1756-TIME module into your Application,” Rockwell Software, 2008.

Apêndice)A'

Sessão! de! terminal! para! instalação! e! configuração! do! PTPd,! assim! como! a! remoção!do!deamon!NTP.'

pi@raspberrypi ~ $ tar -xzf ptpd-2.3.0.tar.gz pi@raspberrypi ~ $ ls

9_abr Desktop ocr_pi.png ptpd-2.3.0 ptpd-2.3.0.tar.gz python_games pi@raspberrypi ~ $ rm ptpd-2.3.0.tar.gz

pi@raspberrypi ~ $ cd ptpd-2.3.0/ pi@raspberrypi ~/ptpd-2.3.0 $ ls

ChangeLog doc Makefile.am README test

configure.ac INSTALL Makefile.old README.repocheckout tools COPYRIGHT m4 packagebuild src

pi@raspberrypi ~/ptpd-2.3.0 $ cat README.repocheckout If you are getting this code from a tarball distribution, this file does not apply to you.

If you are getting this code from a repo checkout, you will need to have autoconf, automake, and libtool installed.

Run:

% autoreconf -vi

to generate the build environment. On some older systems you may get libtool errors (./libtool: line nnnn: X[command]: command not found) - in that case use:

% libtoolize --force --copy; aclocal; autoconf; automake pi@raspberrypi ~/ptpd-2.3.0 $ sudo apt-get install autoconf ...

pi@raspberrypi ~/ptpd-2.3.0 $ sudo apt-get install automake ...

pi@raspberrypi ~/ptpd-2.3.0 $ sudo apt-get install libtool ...

pi@raspberrypi ~/ptpd-2.3.0 $ cat README.repocheckout pi@raspberrypi ~/ptpd-2.3.0 $ autoreconf -vi

autoreconf: Entering directory `.'

autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal -I m4

autoreconf: configure.ac: tracing

autoreconf: configure.ac: creating directory build-aux autoreconf: running: libtoolize --copy

libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'. libtoolize: copying file `build-aux/ltmain.sh'

libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4'

libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' autoreconf: running: /usr/bin/autoconf autoreconf: running: /usr/bin/autoheader

autoreconf: running: automake --add-missing --copy --no-force configure.ac:28: installing `build-aux/config.guess'

configure.ac:28: installing `build-aux/config.sub' configure.ac:18: installing `build-aux/install-sh' configure.ac:18: installing `build-aux/missing' src/Makefile.am: installing `build-aux/depcomp' autoreconf: Leaving directory `.'

pi@raspberrypi ~/ptpd-2.3.0 $ ./configure

checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no

...

checking for dlfcn.h... yes checking for objdir... .libs

checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes

checking if gcc supports -c -o file.o... (cached) yes

checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no

checking dynamic linker characteristics... GNU/Linux ld.so

checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes

checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for net-snmp-config... no

checking if we want to try building SNMP support... no checking linux/net_tstamp.h usability... yes

checking linux/net_tstamp.h presence... yes checking for linux/net_tstamp.h... yes

checking for pow in -lm... yes

checking for clock_gettime in -lrt... yes checking for pcap_inject in -lpcap... no

configure: error: Cannot find libpcap - required for pcap / BPF timestamping! pi@raspberrypi ~/ptpd-2.3.0 $ sudo apt-get install libpcap-dev

...

pi@raspberrypi ~/ptpd-2.3.0 $ ./configure

checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no

checking for mawk... mawk

checking whether make sets $(MAKE)... yes checking for gawk... (cached) mawk

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out checking for suffix of executables...

checking whether we are cross compiling... no checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed ...

checking for struct timex.tick... yes

checking whether gcc needs -traditional... no checking for stdlib.h... (cached) yes

checking for GNU libc compatible malloc... yes checking for working memcmp... yes

checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes

checking for sys/socket.h... (cached) yes

checking types of arguments for select... int,fd_set *,struct timeval * checking return type of signal handlers... void

checking for strftime... yes checking for vprintf... yes checking for _doprnt... no

checking for clock_gettime... yes checking for dup2... yes

checking for ftruncate... yes checking for gettimeofday... yes checking for inet_ntoa... yes checking for memset... yes checking for pow... yes checking for select... yes checking for socket... yes checking for strchr... yes checking for strdup... yes

checking for strerror... yes checking for strtol... yes checking for glob... yes checking for pututline... yes checking for utmpxname... yes checking for updwtmpx... yes

checking whether MSG_ERRQUEUE is declared... yes checking for RUNTIME_DEBUG... no

checking for (old-style) debug message level... no checking for daemon mode... yes

checking for experimental options... no checking for realtime statistics support... no checking ntpd control / failover support... no checking for SIGUSR2 support... no

configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/ptpd2.8 config.status: creating src/ptpd2.conf.5 config.status: creating config.h

config.status: executing depfiles commands config.status: executing libtool commands pi@raspberrypi ~/ptpd-2.3.0 $ make make all-recursive

make[1]: Entering directory `/home/pi/ptpd-2.3.0' Making all in src

make[2]: Entering directory `/home/pi/ptpd-2.3.0/src'

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT arith.o -MD -MP - MF .deps/arith.Tpo -c -o arith.o arith.c

mv -f .deps/arith.Tpo .deps/arith.Po

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT bmc.o -MD -MP - MF .deps/bmc.Tpo -c -o bmc.o bmc.c

mv -f .deps/bmc.Tpo .deps/bmc.Po

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT ipv4_acl.o -MD -MP - MF .deps/ipv4_acl.Tpo -c -o ipv4_acl.o `test -f 'dep/ipv4_acl.c' || echo

'./'`dep/ipv4_acl.c ...

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT display.o -MD -MP - MF .deps/display.Tpo -c -o display.o display.c

display.c: In function ‘netPath_display’:

display.c:118:17: warning: variable ‘addr’ set but not used [-Wunused-but-set- variable]

mv -f .deps/display.Tpo .deps/display.Po

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT management.o -MD -MP -MF .deps/management.Tpo -c -o management.o management.c

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT protocol.o -MD -MP - MF .deps/protocol.Tpo -c -o protocol.o protocol.c

protocol.c: In function ‘processMessage’:

protocol.c:1044:18: warning: variable ‘in’ set but not used [-Wunused-but-set- variable]

mv -f .deps/protocol.Tpo .deps/protocol.Po

gcc -DHAVE_CONFIG_H -I. -I.. -Wall -g -O2 -MT ptpd.o -MD -MP - MF .deps/ptpd.Tpo -c -o ptpd.o ptpd.c

mv -f .deps/ptpd.Tpo .deps/ptpd.Po

/bin/bash ../libtool --tag=CC --mode=link gcc -Wall -g -O2 -o ptpd2 arith.o bmc.o ipv4_acl.o msg.o net.o servo.o dictionary.o iniparser.o daemonconfig.o startup.o sys.o timer.o display.o management.o protocol.o ptpd.o -lpcap -lrt -lm

libtool: link: gcc -Wall -g -O2 -o ptpd2 arith.o bmc.o ipv4_acl.o msg.o net.o servo.o dictionary.o iniparser.o daemonconfig.o startup.o sys.o timer.o display.o management.o protocol.o ptpd.o -lpcap -lrt -lm

make[2]: Leaving directory `/home/pi/ptpd-2.3.0/src' make[2]: Entering directory `/home/pi/ptpd-2.3.0' make[2]: Leaving directory `/home/pi/ptpd-2.3.0' make[1]: Leaving directory `/home/pi/ptpd-2.3.0' pi@raspberrypi ~/ptpd-2.3.0 $ sudo make install make install-recursive

make[1]: Entering directory `/home/pi/ptpd-2.3.0' Making install in src

make[2]: Entering directory `/home/pi/ptpd-2.3.0/src' make[3]: Entering directory `/home/pi/ptpd-2.3.0/src' /bin/mkdir -p '/usr/local/sbin'

/bin/bash ../libtool --mode=install /usr/bin/install -c ptpd2 '/usr/local/sbin' libtool: install: /usr/bin/install -c ptpd2 /usr/local/sbin/ptpd2

/bin/mkdir -p '/usr/local/share/man/man5'

/usr/bin/install -c -m 644 ptpd2.conf.5 '/usr/local/share/man/man5' /bin/mkdir -p '/usr/local/share/man/man8'

/usr/bin/install -c -m 644 ptpd2.8 '/usr/local/share/man/man8' make[3]: Leaving directory `/home/pi/ptpd-2.3.0/src'

make[2]: Leaving directory `/home/pi/ptpd-2.3.0/src' make[2]: Entering directory `/home/pi/ptpd-2.3.0' make[3]: Entering directory `/home/pi/ptpd-2.3.0' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/home/pi/ptpd-2.3.0' make[2]: Leaving directory `/home/pi/ptpd-2.3.0' make[1]: Leaving directory `/home/pi/ptpd-2.3.0' pi@raspberrypi ~/ptpd-2.3.0 $ sudo service ntp stop [ ok ] Stopping NTP server: ntpd.

update-rc.d: using dependency based boot sequencing

insserv: warning: script 'mathkernel' missing LSB tags and overrides pi@raspberrypi ~/ptpd-2.3.0 $ pstree init─┬─console-kit-dae───64*[{console-kit-dae}] ├─cron ├─2*[dbus-daemon] ├─dbus-launch ├─dhclient ├─6*[getty] ├─gvfs-afc-volume───{gvfs-afc-volume} ├─gvfs-gdu-volume ├─gvfs-gphoto2-vo ├─gvfsd ├─gvfsd-metadata ├─gvfsd-trash ├─2*[ifplugd] ├─login───bash───startx───xinit─┬─Xorg │ └─ck-launch-sessi─┬─lxsession─┬─lxpanel │ │ ├─openbox │ │ ├─pcmanfm │ │ └─{lxsession} │ └─ssh-agent ├─lxpolkit───{lxpolkit} ├─lxterminal─┬─bash───script───script───bash───pstree │ ├─gnome-pty-helpe │ └─{lxterminal} ├─menu-cached ├─midori───5*[{midori}] ├─polkitd───{polkitd} ├─rsyslogd───3*[{rsyslogd}] ├─sshd ├─thd ├─udevd───2*[udevd] └─udisks-daemon─┬─udisks-daemon └─{udisks-daemon} pi@raspberrypi ~/ptpd-2.3.0 $ ls

aclocal.m4 build-aux config.h config.log configure COPYRIGHT INSTALL m4 Makefile.am Makefile.old README src test autom4te.cache ChangeLog config.h.in config.status configure.ac doc libtool Makefile Makefile.in packagebuild README.repocheckout stamp-h1 tools

pi@raspberrypi ~/ptpd-2.3.0 $ cd ..

pi@raspberrypi ~ $ sudo mv client-e2e-pcap.conf /etc/ pi@raspberrypi ~ $ exit

Apêndice)B'

Estes!ficheiro!corresponde!ao!ficheiro!de!configuração!lido!pelo!protocolo!PTPd! no!momento!do!seu!arranque.'

; ========================================

; PTPDv2 version 2.3.0 PCAP + IPv4 client configuration

; ======================================== ; NOTE: the following settings are affected by ptpengine:preset selection:

; ptpengine:slave_only ; clock:no_adjust

; ptpengine:clock_class - allowed range and default value

; To see all preset settings, run ptpd2 -H (--long-help) ; Network interface to use (required)

ptpengine:interface = eth0 ; PTP engine preset:

; none = Defaults, no clock class restrictions

; slaveonly = Slave only (clock class 255 only)

; masteronly = Master, passive when not best master (clock

class 0..127)

; masterslave = Full IEEE 1588 implementation:

; Master, slave when not best master

; (clock class 128..254)

;

; Options: none slaveonly masteronly masterslave ptpengine:preset = slaveonly

; IP transmission mode (requires IP transport) - hybrid mode uses

; multicast for sync and announce, and unicast for delay

request / ; response

; Options: multicast unicast hybrid ptpengine:ip_mode = multicast

; Transport type for PTP packets

; Options: ipv4 ethernet ptpengine:transport = ipv4

; Use libpcap for sending and receiving traffic (automatically

enabled

; in Ethernet mode)

ptpengine:use_libpcap = Y

; Delay detection mode used - use DELAY_DISABLED for

; only (no synchronisation)

; Options: E2E P2P DELAY_DISABLED ptpengine:delay_mechanism = P2P ; PTP domain number

ptpengine:domain = 0

; Slave only mode (if set, overrides preset setting and sets

clock class to 255)

ptpengine:slave_only = Y

; Specify latency correction for incoming packets

ptpengine:inbound_latency = 0

; Specify latency correction for outgoing packets

ptpengine:outbound_latency = 0

; Compatibility option: In slave state, always respect UTC offset

; announced by best master, even if the the

; currrentUtcOffsetValid flag is announced FALSE ptpengine:always_respect_utc_offset = Y

; PTP announce message interval in master state (expressed as

log 2

; i.e. -1=0.5s, 0=1s, 1=2s etc.)

ptpengine:log_announce_interval = 1

; PTP announce receipt timeout announced in master state

ptpengine:announce_timeout = 6

; PTP announce receipt timeout grace period in slave state:

; when announce receipt timeout occurs, disqualify current best GM,

; then wait n times announce receipt timeout before resetting.

; Allows for a seamless GM failover when standby GMs are slow

to react.

; When set to 0, this option is not used.

ptpengine:announce_timeout_grace_period = 0

; PTP sync message interval in master state (expressed as log

2

; i.e. -1=0.5s, 0=1s, 1=2s etc.)

ptpengine:log_sync_interval = 0

; Initial delay request message interval for slave mode,

before first

; delay response is received (expressed as log 2 i.e. -1=0.5s,

0=1s,

; 1=2s etc.)

; Minimum delay request message interval in master state, in

slave

; mode overrides the master interval, required in hybrid mode

; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)

ptpengine:log_delayreq_interval = 0

; Minimum peer delay request message interval in master state.

; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)

ptpengine:log_peer_delayreq_interval = 1

; Maximum number of foreign masters (foreign master record size

; allocated at startup)

ptpengine:foreignrecord_capacity = 5

; Specify Allan variance announced in master state

ptpengine:ptp_allan_variance = 28768

; Clock accuracy range announced in master state

; Options: ACC_25NS ACC_100NS ACC_250NS ACC_1US ACC_2.5US

ACC_10US

; ACC_25US ACC_100US ACC_250US ACC_1MS ACC_2.5MS ACC_10MS

ACC_25MS

; ACC_100MS ACC_250MS ACC_1S ACC_10S ACC_10SPLUS ACC_UNKNOWN

ptpengine:ptp_clock_accuracy = ACC_UNKNOWN

; underlying time source UTC offset announced in master state

ptpengine:utc_offset = 0

; underlying time source UTC offset validity announced in