Skip to content

gPTP: ClockServos, BMCA and HotStandby #1032

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 169 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
b1f8afb
Add neighbor rate ratio calculation
danyuan-de Apr 1, 2024
7d68d01
Edit .gitignore
danyuan-de Apr 1, 2024
3a79af0
added function calculate NRR and propagation delay
CharlesGuo16 Apr 12, 2024
83c6b56
Merge branch 'inet-framework:master' into develop_gptp
haug-den-lucas Apr 12, 2024
d50b2da
updated pdelayReqEventIngressTimestamp
CharlesGuo16 Apr 15, 2024
e1a495c
Merge remote-tracking branch 'origin/develop_gptp' into develop_gptp
CharlesGuo16 Apr 15, 2024
0653572
calculate correction field
CharlesGuo16 Apr 15, 2024
ae3eb6b
calculate timeOffset
CharlesGuo16 Apr 15, 2024
a0e916a
correction field update
CharlesGuo16 Apr 16, 2024
ab6f437
Cleanup and tidy and stuff
haug-den-lucas Apr 16, 2024
139aa45
Changed formatting to match configuration of existing code more closely
haug-den-lucas Apr 16, 2024
85458df
Changed formatting to match configuration of existing code more closely
haug-den-lucas Apr 16, 2024
52b8942
Adjusted logs
haug-den-lucas Apr 17, 2024
057c1ad
Reformatting
haug-den-lucas Apr 17, 2024
f6f6ff0
Merge branch 'inet-framework:master' into develop_gptp
haug-den-lucas Apr 17, 2024
de61db1
Fix rate ratios (not working)
haug-den-lucas Apr 17, 2024
0faa28b
Adjust timestamp, newTime calculation is correct now.
haug-den-lucas Apr 17, 2024
fa0534f
NRR is weird
haug-den-lucas Apr 17, 2024
d3aa5d6
try to solve why nrr is always 1
CharlesGuo16 Apr 18, 2024
763a251
Added logs
haug-den-lucas Apr 23, 2024
8ddd2a3
Added signals
haug-den-lucas Apr 23, 2024
088553e
Changed behavior
haug-den-lucas Apr 23, 2024
9a08889
.gitignore
danyuan-de Apr 23, 2024
422cc30
Merge branch 'develop_gptp' of https://github.com/haug-den-lucas/inet…
danyuan-de Apr 23, 2024
977ee99
Added logs
haug-den-lucas Apr 23, 2024
e96af21
Revise the NRR's calculation
danyuan-de Apr 23, 2024
e4668aa
Merge added logs and revise NRR's calculation
danyuan-de Apr 23, 2024
69ff192
First working version, need to check with old implemention for accuracy
haug-den-lucas Apr 24, 2024
4fdb160
pi control clock
CharlesGuo16 Apr 30, 2024
f3352dd
pi control clock
CharlesGuo16 Apr 30, 2024
9d5a383
pi control clock
CharlesGuo16 May 2, 2024
efe71f5
oscillator compensation calculation
CharlesGuo16 May 3, 2024
8f7c480
Use PI Clock
haug-den-lucas May 3, 2024
481c7e4
oscillator compensation calculation
CharlesGuo16 May 8, 2024
3b63afd
kp ki range limitation clamp
CharlesGuo16 May 8, 2024
e5db9f5
kp ki control
CharlesGuo16 May 14, 2024
a87d765
PID controller
danyuan-de May 14, 2024
c4258c1
Initialization phase
haug-den-lucas May 14, 2024
18d3fd9
Added statistics
haug-den-lucas May 14, 2024
158f973
Parameter studies, some paramteres seem to be broken
haug-den-lucas May 15, 2024
1b71168
Fixed parameter studies, first good parameters
haug-den-lucas May 16, 2024
fd7fce2
change kp ki parameter range
CharlesGuo16 May 21, 2024
520cdd6
Added Stepping Clock Scenario
haug-den-lucas May 21, 2024
28be456
Bug with kp=7.0 at 1.7s
CharlesGuo16 May 21, 2024
08c8952
Fixed bug when no refefrence clock is set
haug-den-lucas May 21, 2024
41fc12c
residence time bug?
CharlesGuo16 May 21, 2024
18c7b81
minor modify with ki to reveal the bug
CharlesGuo16 May 21, 2024
3d4ec2f
Residencetime statistic
haug-den-lucas May 21, 2024
9b29ae1
Merge remote-tracking branch 'origin/bug' into bug
haug-den-lucas May 21, 2024
f2554f5
transmissionStartedSignal
haug-den-lucas May 21, 2024
2c1e94f
Use EthernetStreamingPhyLayer for time sync
haug-den-lucas May 22, 2024
caa5e66
transmissionId
haug-den-lucas May 28, 2024
311e729
use reception start signal instead of reception end signal
CharlesGuo16 May 28, 2024
1316565
Merge branch 'refs/heads/bug' into develop_gptp
haug-den-lucas May 28, 2024
b162798
Merge branch 'refs/heads/master' into develop_gptp
haug-den-lucas May 28, 2024
3f3e325
Multiple TSN Devices scenario
danyuan-de Jun 4, 2024
924d819
Revise multiple switches scenario
danyuan-de Jun 4, 2024
e27a632
Merge remote-tracking branch 'origin/develop_gptp' into develop_gptp
CharlesGuo16 Jun 4, 2024
670d2f5
added iSettableClock.h
CharlesGuo16 Jun 9, 2024
0fa6e1c
Create a parent class
danyuan-de Jun 9, 2024
2b092f9
Merge branch 'develop_gptp' of https://github.com/haug-den-lucas/inet…
danyuan-de Jun 9, 2024
3e4218c
Merge conflicts
danyuan-de Jun 9, 2024
d40f8f6
added iSettableClock.h and *.cc file
CharlesGuo16 Jun 9, 2024
ab7d934
Update ISettableClock
danyuan-de Jun 9, 2024
7485531
Merge conflicts
danyuan-de Jun 9, 2024
cae5e71
Update ISettableClock and other related files
danyuan-de Jun 9, 2024
4192593
Update ISettableClock and other related files with Define_Module bug
danyuan-de Jun 9, 2024
5d504a7
polished iSettableClock.h and *.cc file
CharlesGuo16 Jun 9, 2024
4d0af55
Update interface
CharlesGuo16 Jun 11, 2024
6fbbd1f
ini file example
danyuan-de Jun 11, 2024
2fb8bae
Merge branch 'develop_gptp' of https://github.com/haug-den-lucas/inet…
danyuan-de Jun 11, 2024
07b53c1
Refactor setClockTime to adjustClockTime and update related functiona…
danyuan-de Jun 18, 2024
42256eb
refactor SettableClock and PiClock with ServoClockBase
CharlesGuo16 Jun 18, 2024
e9d2488
refactor SettableClock and PiClock with ServoClockBase
CharlesGuo16 Jun 18, 2024
114c386
Merge remote-tracking branch 'origin/develop_gptp' into develop_gptp
CharlesGuo16 Jun 18, 2024
e347b41
make functions public and non-const
CharlesGuo16 Jun 18, 2024
7c5a7e6
Merge branch 'refs/heads/master' into develop_gptp
haug-den-lucas Jun 18, 2024
af403b7
Fix and Cleanup
haug-den-lucas Jun 18, 2024
df55cde
Fix and Cleanup
haug-den-lucas Jun 18, 2024
604040d
Added timeJumpSignal to listen to outside time jumps.
haug-den-lucas Jun 21, 2024
86af171
Cleanup
haug-den-lucas Jun 22, 2024
f0aec78
Multihop Setup
haug-den-lucas Jun 22, 2024
6af9695
added drift estimation in InstantServoClock and processCommand in Ser…
CharlesGuo16 Jun 24, 2024
38d39ee
Resolve Clockbase related bugs
danyuan-de Jun 24, 2024
b510b42
InstantServoClock.cc updated
CharlesGuo16 Jun 25, 2024
0fad238
Merge remote-tracking branch 'origin/develop_gptp' into develop_gptp
CharlesGuo16 Jun 25, 2024
c2ab5ea
InstantServoClock.cc updated
CharlesGuo16 Jun 25, 2024
7b6bb7b
Time Difference to Reference Signal and showcase
haug-den-lucas Jun 25, 2024
615fe65
Small refactoring
haug-den-lucas Jun 25, 2024
cfa08c0
Small refactoring
haug-den-lucas Jun 25, 2024
c112c65
Simplify InstantClockServo
haug-den-lucas Jun 25, 2024
7473dab
Finished InstantServoClock and refactored to have an own directory fo…
haug-den-lucas Jun 25, 2024
3e3055d
Merge branch 'master' into develop_gptp
haug-den-lucas Sep 5, 2024
75e71e2
Small fix for InstantServoClock
haug-den-lucas Sep 25, 2024
2c9fee9
Some Refactoring
haug-den-lucas Oct 2, 2024
13fbaa5
Gptp fix, SYNC in the middle of gPTPDelayReq and Resp
haug-den-lucas Oct 9, 2024
32382bc
enable PrimaryAndHotStandbyMasterClocks
CharlesGuo16 Nov 12, 2024
32f054d
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas Nov 19, 2024
39115e9
Fix after merge
haug-den-lucas Nov 19, 2024
aafbda4
Update gptp sync signal
danyuan-de Nov 28, 2024
7e3de01
add module HotStandby
CharlesGuo16 Nov 28, 2024
9e9ca0e
Fix signal name
danyuan-de Nov 28, 2024
d28e52d
BMCA init
haug-den-lucas Nov 29, 2024
4badab8
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas Nov 29, 2024
2fd48c8
HotStandby first impl.
haug-den-lucas Nov 29, 2024
4a5d9f3
Merge branch 'refs/heads/develop_gptp' into bmca
haug-den-lucas Dec 17, 2024
32f58d0
More BMCA implementation
haug-den-lucas Dec 17, 2024
3a4f3c4
Basic BMCA impl. should work now
haug-den-lucas Dec 17, 2024
9d9a145
Update HotStandby, not finished yet
danyuan-de Dec 18, 2024
8ea7f3e
More BMCA
haug-den-lucas Dec 18, 2024
41c2ae8
BMCA should be finished
haug-den-lucas Dec 19, 2024
49ceae3
Merge branch 'bmca' into develop_gptp
haug-den-lucas Dec 19, 2024
6be8cd4
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas Dec 19, 2024
9d4d682
BMCA result update
haug-den-lucas Dec 19, 2024
f8f9b46
Fixed ToDos
haug-den-lucas Dec 19, 2024
67be183
Finished BMCA implementation
haug-den-lucas Jan 10, 2025
10fc470
Refactor
haug-den-lucas Jan 10, 2025
fc73d86
Refactor
haug-den-lucas Jan 10, 2025
8e0e822
Refactoring
haug-den-lucas Jan 14, 2025
8bc1b45
Refactoring
haug-den-lucas Jan 15, 2025
6120672
Added OffsetLimitedRandomDriftOscillator
haug-den-lucas Jan 15, 2025
c2fdac5
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas Jan 15, 2025
21e9433
Small refactoring
haug-den-lucas Jan 16, 2025
c8ffffe
Small refactoring
haug-den-lucas Jan 17, 2025
fd21cb8
Added new classifier for gPTP domains
haug-den-lucas Jan 18, 2025
1a89c0f
Small Bugfixes
haug-den-lucas Jan 18, 2025
730fdb0
Added resetClockState
haug-den-lucas Jan 21, 2025
92b52d1
Added differenceToReference signal for MultiClock
haug-den-lucas Jan 22, 2025
6990abb
Revise Hotstandby and ch-clock.rst docs
danyuan-de Feb 3, 2025
ac62ec4
More eval
haug-den-lucas Feb 6, 2025
75ca5d2
Fixed some small bugs with BTCA
haug-den-lucas Feb 7, 2025
c811e4f
Create hotstasndby document for user-guide
danyuan-de Feb 10, 2025
a2abcc8
polish the doc
CharlesGuo16 Feb 14, 2025
5e82192
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas Feb 16, 2025
d61ae5c
Merge remote-tracking branch 'origin/bmca_doc' into develop_gptp
haug-den-lucas Feb 16, 2025
a0e0358
Merge remote-tracking branch 'refs/remotes/origin/hotstandby_doc' int…
haug-den-lucas Feb 16, 2025
0414bab
Added doc to index.rst
haug-den-lucas Feb 16, 2025
cffcc8e
Modify figure's path
danyuan-de Feb 18, 2025
d100d28
Update tsn doc in user-guide
danyuan-de Feb 18, 2025
5c82305
update the doc
CharlesGuo16 Feb 18, 2025
c13478f
update the doc
CharlesGuo16 Feb 18, 2025
7088b73
update the doc
CharlesGuo16 Feb 18, 2025
12742c7
Combined content of ch-hotstandby.rst into gptp_hotstandby's index.rst
danyuan-de Feb 18, 2025
2a6cf9f
Slightly change in hotstandby doc
danyuan-de Feb 19, 2025
9996491
Update figures path and revise gptp documentation
danyuan-de Feb 25, 2025
5e86e31
Update BMCA documentation, and remove unused figure from gPTP hotstan…
CharlesGuo16 Mar 5, 2025
bedbcd0
Revise gptp_bmca doc (not finished yet) and remove some comments
danyuan-de Mar 11, 2025
8a0452d
Complete BMCA showcase documentation for all network topologies
danyuan-de Mar 14, 2025
9682aa9
Added more signals
haug-den-lucas Mar 19, 2025
2e00d41
Merge branch 'timesync_paper' into develop_gptp
haug-den-lucas Mar 19, 2025
557f21c
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas Mar 19, 2025
c60cea4
Merge remote-tracking branch 'inet/master' into timesync_paper
haug-den-lucas Apr 1, 2025
143757f
Merge branch 'timesync_paper' into develop_gptp
haug-den-lucas Apr 1, 2025
36fa9a8
Cleanup 1
haug-den-lucas Apr 1, 2025
2ba70b2
Fixed ClockDrift showcase.
haug-den-lucas Apr 1, 2025
600527d
Updated gPTP showcase.
haug-den-lucas Apr 1, 2025
9e073ba
Updated Hot Standby Showcase
haug-den-lucas Apr 1, 2025
9f2a4c5
Added missing parameters for BTCA
haug-den-lucas Apr 1, 2025
5a8bf76
Update documentation
haug-den-lucas Apr 1, 2025
76ce5a7
Update documentation of gPTP
haug-den-lucas Apr 2, 2025
504b00a
Update gPTP showcase
haug-den-lucas Apr 2, 2025
8934d90
Update gPTP showcase:
haug-den-lucas Apr 2, 2025
bdf2109
Update gPTP showcase:
haug-den-lucas Apr 2, 2025
b6763d4
Finished MultiDomain and HotStandby showcase
haug-den-lucas Apr 2, 2025
2acc6f7
Replaced occurences of SettableClock and check correctness of gptpand…
haug-den-lucas Apr 2, 2025
08ef6e6
Cleanup
haug-den-lucas Apr 2, 2025
85d6dbc
Merge remote-tracking branch 'inet/master' into develop_gptp
haug-den-lucas May 26, 2025
ab360b8
Fixed problems after merge
haug-den-lucas May 26, 2025
389db4a
Added video to showcase
haug-den-lucas May 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 25 additions & 15 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
BasedOnStyle: None
BasedOnStyle: InheritParentConfig

SortIncludes: CaseSensitive
IncludeBlocks: Regroup
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterFunction: true
BeforeElse: true
AfterControlStatement: MultiLine
TabWidth: 4
IndentWidth: 4
ColumnLimit: 120

SortIncludes: true
IncludeBlocks: Regroup

IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeIsMainSourceRegex: ''

IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 2
SortPriority: 0
- Regex: '^<.*\.h>'
Priority: 1
SortPriority: 0
- Regex: '^<.*'
Priority: 2
SortPriority: 0
- Regex: '.*'
Priority: 3
SortPriority: 0
- Regex: '^<ext/.*\.h>'
Priority: 2
SortPriority: 0
- Regex: '^<.*\.h>'
Priority: 1
SortPriority: 0
- Regex: '^<.*'
Priority: 2
SortPriority: 0
- Regex: '.*'
Priority: 3
SortPriority: 0
48 changes: 24 additions & 24 deletions .cproject
Original file line number Diff line number Diff line change
Expand Up @@ -55,24 +55,24 @@
</tool>
</toolChain>
</folderInfo>
<folderInfo id="org.omnetpp.cdt.gnu.config.debug.229043752.190405672" name="/" resourcePath="src">
<toolChain id="org.omnetpp.cdt.gnu.toolchain.debug.1503084477" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.debug" unusedChildren="">
<tool id="cdt.managedbuild.tool.gnu.archiver.base.174182489" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1843986175"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1356567919" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base.1544720771">
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1922783326" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
<folderInfo id="org.omnetpp.cdt.gnu.config.debug.229043752.1221505929" name="/" resourcePath="src">
<toolChain id="org.omnetpp.cdt.gnu.toolchain.debug.431488266" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.debug" unusedChildren="">
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1905186376" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1843986175"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1642657122" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base.1544720771">
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1244357031" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1512537327" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.892294620">
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1007328871" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.341513652" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.892294620">
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.583104932" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.828983458" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base.1169210834"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.468489866" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base.1065738287"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.base.877948907" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base.420284418">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1558259164" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.671556501" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base.1169210834"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.310227149" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base.1065738287"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.base.882472359" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base.420284418">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.174444381" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="inet/visualizer/osg|inet/applications/voipstream|inet/transportlayer/tcp_nsc|inet/transportlayer/tcp_lwip|inet/emulation|inet/clock/oscillator|inet/clock/model|inet/clock/common|inet/clock/base|inet/linklayer/ext|inet/routing/extras|transport/tcp_nsc|transport/tcp_lwip" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
<entry excluding="inet/visualizer/osg|inet/emulation" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
Expand Down Expand Up @@ -128,24 +128,24 @@
</tool>
</toolChain>
</folderInfo>
<folderInfo id="org.omnetpp.cdt.gnu.config.release.1746235823.726435980" name="/" resourcePath="src">
<toolChain id="org.omnetpp.cdt.gnu.toolchain.release.1436426478" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.release" unusedChildren="">
<tool id="cdt.managedbuild.tool.gnu.archiver.base.2096808187" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1643927787"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1962906663" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base.1039888888">
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.999109181" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
<folderInfo id="org.omnetpp.cdt.gnu.config.release.1746235823.1025069471" name="/" resourcePath="src">
<toolChain id="org.omnetpp.cdt.gnu.toolchain.release.1869309723" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.release" unusedChildren="">
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1037588028" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1643927787"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.713957125" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base.1039888888">
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.354311558" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1379457008" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.419916163">
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.745063749" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.2143832934" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.419916163">
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1746095656" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1989126152" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base.1190158571"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1253563592" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base.893445214"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.base.485445059" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base.960891752">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.463994980" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.20821548" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base.1190158571"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1142525406" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base.893445214"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.base.424443820" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base.960891752">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.438339827" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="inet/visualizer/osg|inet/applications/voipstream|inet/transportlayer/tcp_nsc|inet/transportlayer/tcp_lwip|inet/emulation|inet/clock/oscillator|inet/clock/model|inet/clock/common|inet/clock/base|inet/linklayer/ext|inet/routing/extras|transport/tcp_nsc|transport/tcp_lwip" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
<entry excluding="inet/visualizer/osg|inet/emulation" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,4 @@ xxx
/tmp/
/.computed/
*.DS_Store
.idea/
2 changes: 1 addition & 1 deletion .oppbuildspec
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<buildspec version="4.0">
<dir path="." type="custom"/>
<dir makemake-options="--make-so --deep -o INET -O out -pINET --meta:export-include-path --meta:export-library --meta:use-exported-libs --meta:feature-cflags --meta:feature-ldflags" path="src" type="makemake"/>
<dir path="." type="custom"/>
</buildspec>
6 changes: 6 additions & 0 deletions .project
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.omnetpp.cdt.MakefileBuilder</name>
<arguments>
Expand Down Expand Up @@ -93,5 +98,6 @@
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.omnetpp.main.omnetppnature</nature>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
48 changes: 42 additions & 6 deletions doc/src/nedtags.xml
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,18 @@
<name>inet.linklayer.bmac.BMacInterface</name>
<filename>inet.linklayer.bmac.BMacInterface.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp_bmca.BmcaShowcaseDiamond</name>
<filename>inet.showcases.tsn.timesynchronization.gptp_bmca.BmcaShowcaseDiamond.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp_bmca.BmcaShowcaseDiamondAsymmetric</name>
<filename>inet.showcases.tsn.timesynchronization.gptp_bmca.BmcaShowcaseDiamondAsymmetric.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp_bmca.BmcaShowcaseSimple</name>
<filename>inet.showcases.tsn.timesynchronization.gptp_bmca.BmcaShowcaseSimple.html</filename>
</compound>
<compound kind="class">
<name>inet.mobility.single.BonnMotionMobility</name>
<filename>inet.mobility.single.BonnMotionMobility.html</filename>
Expand Down Expand Up @@ -1868,6 +1880,10 @@
<name>inet.linklayer.ieee8021as.GptpBridge</name>
<filename>inet.linklayer.ieee8021as.GptpBridge.html</filename>
</compound>
<compound kind="class">
<name>inet.linklayer.ieee8021as.GptpDomainClassifier</name>
<filename>inet.linklayer.ieee8021as.GptpDomainClassifier.html</filename>
</compound>
<compound kind="class">
<name>inet.linklayer.ieee8021as.GptpEndstation</name>
<filename>inet.linklayer.ieee8021as.GptpEndstation.html</filename>
Expand Down Expand Up @@ -1956,6 +1972,10 @@
<name>inet.tests.ethernet.HostsWithSwitch</name>
<filename>inet.tests.ethernet.HostsWithSwitch.html</filename>
</compound>
<compound kind="class">
<name>inet.linklayer.ieee8021as.HotStandby</name>
<filename>inet.linklayer.ieee8021as.HotStandby.html</filename>
</compound>
<compound kind="class">
<name>inet.examples.ethernet.lans.HubLAN</name>
<filename>inet.examples.ethernet.lans.HubLAN.html</filename>
Expand Down Expand Up @@ -2932,6 +2952,10 @@
<name>inet.queueing.server.InstantServer</name>
<filename>inet.queueing.server.InstantServer.html</filename>
</compound>
<compound kind="class">
<name>inet.clock.servo.InstantServoClock</name>
<filename>inet.clock.servo.InstantServoClock.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.visualizer.canvas.instrumentfigures.InstrumentShowcase</name>
<filename>inet.showcases.visualizer.canvas.instrumentfigures.InstrumentShowcase.html</filename>
Expand Down Expand Up @@ -3508,6 +3532,10 @@
<name>inet.showcases.measurement.jitter.JitterMeasurementShowcase</name>
<filename>inet.showcases.measurement.jitter.JitterMeasurementShowcase.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp.JumpingClockGptpShowcase</name>
<filename>inet.showcases.tsn.timesynchronization.gptp.JumpingClockGptpShowcase.html</filename>
</compound>
<compound kind="class">
<name>inet.examples.inet.kidsnw1.KIDSNw1</name>
<filename>inet.examples.inet.kidsnw1.KIDSNw1.html</filename>
Expand Down Expand Up @@ -3948,6 +3976,10 @@
<name>inet.examples.sctp.cmttest.multihomed</name>
<filename>inet.examples.sctp.cmttest.multihomed.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp.MultiHopGptpShowcase</name>
<filename>inet.showcases.tsn.timesynchronization.gptp.MultiHopGptpShowcase.html</filename>
</compound>
<compound kind="class">
<name>inet.protocolelement.measurement.MultiMeasurementLayer</name>
<filename>inet.protocolelement.measurement.MultiMeasurementLayer.html</filename>
Expand Down Expand Up @@ -4980,6 +5012,10 @@
<name>inet.applications.pingapp.PingApp</name>
<filename>inet.applications.pingapp.PingApp.html</filename>
</compound>
<compound kind="class">
<name>inet.clock.servo.PiServoClock</name>
<filename>inet.clock.servo.PiServoClock.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.wireless.power.PowerConsumptionShowcase</name>
<filename>inet.showcases.wireless.power.PowerConsumptionShowcase.html</filename>
Expand Down Expand Up @@ -5717,8 +5753,8 @@
<filename>inet.tutorials.queueing.ServerTutorialStep.html</filename>
</compound>
<compound kind="class">
<name>inet.clock.model.SettableClock</name>
<filename>inet.clock.model.SettableClock.html</filename>
<name>inet.clock.servo.ServoClockBase</name>
<filename>inet.clock.servo.ServoClockBase.html</filename>
</compound>
<compound kind="class">
<name>inet.linklayer.shortcut.ShortcutInterface</name>
Expand Down Expand Up @@ -6509,12 +6545,12 @@
<filename>inet.tests.ethernet.TwoHosts.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp.TwoMasterClocksRingGptpShowcase</name>
<filename>inet.showcases.tsn.timesynchronization.gptp.TwoMasterClocksRingGptpShowcase.html</filename>
<name>inet.showcases.tsn.timesynchronization.gptp_hotstandby.TwoMasterClocksRingGptpShowcase</name>
<filename>inet.showcases.tsn.timesynchronization.gptp_hotstandby.TwoMasterClocksRingGptpShowcase.html</filename>
</compound>
<compound kind="class">
<name>inet.showcases.tsn.timesynchronization.gptp.TwoMasterClocksTreeGptpShowcase</name>
<filename>inet.showcases.tsn.timesynchronization.gptp.TwoMasterClocksTreeGptpShowcase.html</filename>
<name>inet.showcases.tsn.timesynchronization.gptp_hotstandby.TwoMasterClocksTreeGptpShowcase</name>
<filename>inet.showcases.tsn.timesynchronization.gptp_hotstandby.TwoMasterClocksTreeGptpShowcase.html</filename>
</compound>
<compound kind="class">
<name>inet.examples.ospfv2.areas.TwoNetsArea</name>
Expand Down
19 changes: 16 additions & 3 deletions doc/src/users-guide/ch-clock.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,25 @@ return values. The interface contains functions such as :fun:`getClockTime()`,
:fun:`cancelClockEvent()`.

INET contains optional clock modules (not used by default) at the network node
and the network interface levels. The following clock models are available:
and the network interface levels. The following simple clock models are available:

- :ned:`IdealClock`: clock time is identical to the simulation time.
- :ned:`OscillatorBasedClock`: clock time is the number of oscillator ticks
multiplied by the nominal tick length.
- :ned:`SettableClock`: a clock that can be set to a different clock time.

Above clock models are not adjustable during runtime.
To this end, INET provides several clocks with an adjustable time and drift rate.
These clocks are based on the :ned:`ServoClockBase` extending the :ned:`OscillatorBasedClock`:

- :ned:`InstantServoClock`: A simple clock servo module supports jumping its clock to another time and optionally
adjusting the drift rate. This allows for a simple synchronization with another clock.
- :ned:`PiServoClock`: A PI-based servo clock using proportional (kp) and integral (ki) gains
to in sync with another time source source while smoothly adjusting the drift rate.


If multiple clocks are needed INET provides a :ned:`MultiClock`.
This clock manages holds multiple subclocks with a programmatically switchable active clock.
This is for example useful for multi-domain gPTP synchronization.

Clock Time
----------
Expand Down Expand Up @@ -134,7 +147,7 @@ provides clocks and oscillators that implement the interface required by the
oscillator states from the :ned:`ScenarioManager` XML script and also to mix
these operations with many other supported operations.

For example, the :ned:`SettableClock` model supports setting the clock time and
For example, the :ned:`InstantServoClock` model supports setting the clock time and
optionally resetting the oscillator at a specific moment of simulation time
as follows:

Expand Down
Loading
Loading