AM263Px MCU+ SDK: icss_timeSyncApi.h Source File

| AM263Px MCU+ SDK 26.00.00 |

icss_timeSyncApi.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2024 Texas Instruments Incorporated
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 #ifndef ICSS_TIMESYNC_API_H_
34 #define ICSS_TIMESYNC_API_H_
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40
41 /* ========================================================================== */
42 /* Include Files */
43 /* ========================================================================== */
44
45 #include <networking/icss_emac/icss_emac.h>
46 #include <kernel/dpl/HwiP.h>
47 #include <kernel/dpl/TimerP.h>
48 #include <kernel/dpl/TaskP.h>
49 #include <kernel/dpl/EventP.h>
50
51 #define lswap(x) ((((x) & 0xff000000) >> 24) | \
52 (((x) & 0x00ff0000) >> 8) | \
53 (((x) & 0x0000ff00) << 8) | \
54 (((x) & 0x000000ff) << 24))
55
56 #define htonl_ts(l) (lswap(l))
57 #define ntohl_ts(l) (lswap(l))
58
59 #define htons_ts(s) ((u_short)((u_short)(s) >> 8) | (u_short)((u_short)(s) << 8))
60 #define ntohs_ts(s) htons_ts(s)
61 /* ========================================================================== */
62 /* Macros & Typedefs */
63 /* ========================================================================== */
64
65 /*TODO: Review this*/
66 #define TASK_STACK_SIZE (2048)
67
68 #define ICSS_TIMESYNC_EVENT_BIT0 (0x000001)
69 #define ICSS_TIMESYNC_EVENT_BIT1 (0x000002)
70 #define ICSS_TIMESYNC_EVENT_BIT2 (0x000004)
71 #define ICSS_TIMESYNC_EVENT_BIT3 (0x000008)
72 #define ICSS_TIMESYNC_EVENT_BIT4 (0x000010)
73 #define ICSS_TIMESYNC_EVENT_BIT5 (0x000020)
74 #define ICSS_TIMESYNC_EVENT_BIT6 (0x000040)
75 #define ICSS_TIMESYNC_EVENT_BIT7 (0x000080)
76
77 /* Data types */
78 /* Primitive data types */
79
85 #define SYNT_DEPTH 3
86
90 #define TS_NUM_DOMAINS 1
91
92 /*Below are the masks used for PTP state machine*/
93
98 #define TS_STATE_MACHINE_FIRST_ADJUSTMENT_DONE 1
99
104 #define TS_STATE_MACHINE_LINE_DELAY_COMPUTED 2
105
109 #define TS_STATE_MACHINE_SYNC_INTERVAL_COMPUTED 4
110
115 #define TS_STATE_MACHINE_READY_FOR_SYNC 7
116
122 #define TS_STATE_MACHINE_DEVICE_IN_SYNC 8
123
129 #define OFFSET_ALGO_BIN_SIZE 5
130
136 #define OFFSET_ALGO_CLUSTER_SIZE 3
137
141 typedef enum
142 {
143 INITIALIZING = 1,
144 FAULTY = 2,
145 DISABLED = 3,
146 LISTENING = 4,
147 PRE_MASTER = 5,
148 MASTER = 6,
149 PASSIVE = 7,
150 UNCALIBRATED = 8,
151 SLAVE = 9
152
153 } port_State;
154
158 typedef enum
159 {
160
162 UDP_IPV4 = 1,
164 UDP_IPV6 = 2,
166 IEEE_802_3 = 3,
167 DEVICE_NET = 4,
168 CONTROL_NET = 5,
169 PROFINET = 6,
170 UNKNOWN = 0xFFFE
171
172 } netWorkProtType;
173
177 typedef enum
178 {
179
181 TC = 1,
183 OC = 2,
185 BOTH = 3
186 } deviceConfig;
187
191 typedef enum
192 {
194 E2E = 1,
196 P2P = 2
197 } delayType;
198
202 typedef enum
203 {
205 NON_SYNC_DELAY_FRAME = 0,
207 SYNC_FRAME = 1,
209 DELAY_REQ_FRAME = 2,
211 DELAY_RESP_FRAME = 3
212
213 } ptpFrameTypes_t;
214
218 typedef enum
219 {
220 ATOMIC_CLOCK = 0x10,
221 GPS = 0x20,
222 TERRESTRIAL_RADIO = 0x30,
223 PTP = 0x40,
224 NTP = 0x50,
225 HAND_SET = 0x60,
226 OTHER = 0x90,
227 INTERNAL_OSCILLATOR = 0xA0,
228 } timeSource;
229
233 typedef enum
234 {
235 ICSS_IEP_CLK_FREQ_200MHZ = 200000000,
236 ICSS_IEP_CLK_FREQ_250MHZ = 250000000,
237 ICSS_IEP_CLK_FREQ_333MHZ = 333333333,
238 } icssIepClkFreq;
239
243 typedef enum
244 {
245 PTP_NO_COMPENSATION_REQUIRED = 0,
246 PTP_TIME_RECEIVER_FASTER,
247 PTP_TIME_TRANSMITTER_FASTER,
248 } compensationType;
249
253 typedef struct
254 {
255 uint64_t seconds;
256 uint32_t nanoseconds;
257 } timeStamp;
258
259
263 typedef struct
264 {
265 uint64_t seconds;
266 uint64_t fractionalNanoseconds;
267 } ExtendedTimestamp;
268
273 typedef void (*TimeSync_SyncLossCallBack_t)(void);
274
279 typedef void (*TimeSync_stackResetCallback_t)(void *arg);
280
284 typedef struct
285 {
287 uint8_t clockIdentity[8];
289 uint16_t ptpPortNumber;
293 uint16_t observedOffsetScaledLogVariance;
295 int32_t observedClockPhaseChangeRate;
296 } TimeSync_parent_params_t;
297
301 typedef struct
302 {
304 uint8_t priority1;
306 uint8_t priority2;
308 uint8_t clockClass;
310 uint8_t clockAccuracy;
312 uint8_t timeSource;
314 uint16_t stepRemoved;
316 uint16_t clockVariance;
317 /*Current UTC offset*/
318 uint16_t UTCOffset;
320 uint8_t gmIdentity[8];
321
322 /*PTP Flag params. See standard
323 * index 0 - PTP Leap second 61
324 * index 1 - PTP Leap second 59
325 * ....
326 * ....
327 * index 11 - PTP Security*/
328
329 uint8_t ptp_flags[12];
330
331 } TimeSync_master_params_t;
332
336 typedef struct
337 {
338 /*Rx buffers*/
339 uint8_t *pdelayReq_RxBuf[2];
340 uint8_t *pdelayRes_RxBuf[2];
341 uint8_t *pdelayResFlwUp_RxBuf[2];
342 /*For E2E master. Not supported right now*/
343 uint8_t *delayReq_RxBuf[2];
344
345 /*Tx buffers*/
346 uint8_t *pdelayReq_TxBuf[2];
347 uint8_t *pdelayRes_TxBuf[2];
348 uint8_t *pdelayResFlwUp_TxBuf[2];
349 uint8_t *sync_TxBuf;
350 uint8_t *announce_TxBuf;
351 uint8_t *followUp_TxBuf[2];
352 uint8_t *delayReq_TxBuf;
353
354 /*Buffer sizes. These change based on whether
355 * it's Annex E or Annex F. Pdelay buffer size and
356 * delay request (E2E) buffer sizes are fixed
357 * because we only support fixed modes*/
358 uint8_t syncBuf_size;
359 uint8_t flwUpBuf_size;
360 uint8_t announceBuf_size;
361
362 } TimeSync_frame_buffers_t;
363
367 typedef struct
368 {
370 uint8_t domainNumber[TS_NUM_DOMAINS];
372 uint32_t syncOut_sync0Start;
374 uint32_t syncOut_sync0PWidth;
375 /*Synchronization loss callback function*/
376 TimeSync_SyncLossCallBack_t timeSyncSyncLossCallBackfn;
377 /*PTP stack reset callback function*/
378 TimeSync_stackResetCallback_t ptpDrvStackReset;
380 int8_t logPDelReqPktInterval;
381
383 int8_t logSyncInterval;
384
386 int8_t logAnnounceSendInterval;
387
389 int8_t logAnnounceRcptTimeoutInterval;
390
393 uint32_t pDelReqPktInterval;
394
397 uint32_t syncSendInterval;
398
401 uint32_t announceSendInterval;
402
405 uint32_t announceRcptTimeoutInterval;
406
408 deviceConfig config;
409
411 netWorkProtType protocol;
412
414 delayType type;
415
417 uint32_t txIntNum;
418
420 uint16_t asymmetryCorrection[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
421
424 uint32_t pdelayBurstInterval;
425
427 uint8_t pdelayBurstNumPkts;
428
430 uint8_t clockIdentity[8];
431
435 uint32_t sync0_interval;
436
438 uint8_t hsrEnabled;
439
447 uint8_t ll_has_hsrTag;
448
451 uint8_t custom_tx_api;
452
457 uint8_t timestamp_from_shared_ram;
458
462 uint8_t emac_mode;
463
468 uint8_t frame_offset;
469
470 /*OS tick period (in microseconds). Normalized value is 1000 means factor of 1, 500 means
471 * OS counts twice as fast so divide time period by 2*/
472 uint32_t tickPeriod;
473
474 /* Rx PHY Latency in nano seconds */
475 uint32_t rxPhyLatency;
476
477 /* Tx PHY Latency in nano seconds */
478 uint32_t txPhyLatency;
479
480 /* Priority of task which sends Pdelay request frames */
481 uint8_t delayReqSendTaskPriority;
482
483 /* Priority of task which takes time stamp and processes them */
484 uint8_t txTsTaskPriority;
485
486 /* Priority of task which processes Peer delay frames in the background and calculate peer delay. NRT stands for non real time.*/
487 uint8_t nrtTaskPriority;
488
489 /* Priority of task which Checks for Sync timeout and performs offset stabilization */
490 uint8_t backgroundTaskPriority;
491
493 TimeSync_master_params_t masterParams;
494
496 uint32_t icssIepClkFreq;
497
498 } TimeSync_Config_t;
499
503 typedef struct
504 {
506 uint8_t enabled;
507
518 uint8_t stateMachine;
519
521 uint16_t pDelReqSequenceID[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
522
524 uint16_t delReqSequenceID;
525
527 uint16_t syncSequenceID;
528
530 uint16_t announceSequenceID;
531
533 uint16_t curSyncSeqId[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
534
536 uint32_t currSyncInterval;
538 uint32_t ltaSyncInterval;
540 uint32_t firstSyncInterval;
541
543 int32_t currOffset;
548 int32_t prevOffset[2];
549
550 /*Flags to determine if values in prevOffset[] are valid*/
551 int32_t prevOffsetValid[2];
552
554 int32_t initialOffset;
555
556 /*Once drift stabilizes, this is set to 1*/
557 uint8_t driftStable;
558
559 /*Once offset becomes zero, this is set to 1*/
560 uint8_t offsetStable;
561
563 uint8_t syncPortNum;
564
566 uint32_t pathDelay[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
567
568 /*Place holder to calculate line delay.
569 * Since line delay can sometimes be negative, we need a persistent variable*/
570 int64_t meanPathDelay;
571
573 uint32_t clockDrift;
574
575 /*long term average of offset. Compare with initial offset to find drift*/
576 int32_t ltaOffset;
577
578 /*Flags to determine if ltaOffset value is valid*/
579 int32_t ltaOffsetValid;
580
582 uint32_t avgCorrectionField;
583
586 uint64_t tickCounter;
587
589 uint32_t syncLastSeenCounter;
590
593 uint32_t syncTimeoutInterval;
594
596 uint8_t forced2step[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
597
598 /*debug*/
599 uint8_t bmcaDone;
600
602 TimeSync_master_params_t masterParams;
603
605 TimeSync_parent_params_t parentParams;
606
607 } timeSync_RuntimeVar_t;
608
613 typedef struct
614 {
620 uint8_t lastSeen_good_drift_index;
621
625 uint8_t driftThreshold;
626
628 uint8_t num_entries_index;
629
633 uint8_t binFull;
634
638 int32_t correction[OFFSET_ALGO_BIN_SIZE];
639
640 } timeSync_Offset_Stable_Algo_t;
641
645 typedef struct
646 {
648 uint8_t ifTwoStep;
649
652 uint64_t correctionField;
653
655 uint64_t originTsSec;
657 uint32_t originTsNs;
658
660 uint32_t rxTs;
661
663 uint64_t rxTsSec;
664
666 uint32_t txTs;
667
669 uint64_t txTsSec;
670
671 } syncParam_t;
672
676 typedef struct
677 {
679 uint64_t syncIngressTs[SYNT_DEPTH];
680
682 uint64_t correctedMasterTs[SYNT_DEPTH];
683
685 double rcf;
686
688 uint8_t index;
689
691 uint8_t syntEnable;
692
694 uint32_t syntIndex;
695
696 } timeSync_SyntInfo_t;
697
701 typedef struct
702 {
704 uint64_t deviceRxTS[SYNT_DEPTH];
705
707 uint64_t correctedPeerTS[SYNT_DEPTH];
708
710 double nrr;
711
713 uint8_t curIndex;
714
716 uint8_t nrrEnable;
717
719 uint32_t nrrIndex;
720
721 } timeSync_NrrInfo_t;
722
723
727 typedef struct
728 {
730 uint64_t correctionField;
731
733 uint64_t timeStampSec;
735 uint32_t timeStampNS;
736
738 uint32_t delReqTxTsSec;
740 uint32_t delReqTxTsNS;
741
742 } delayReqRespParams_t;
743
747 typedef struct
748 {
750 uint8_t ifTwoStep;
751
753 uint32_t T1Sec;
754
756 uint32_t T1Nsec;
757
759 uint64_t T2Sec;
760
762 uint32_t T2Nsec;
763
765 uint64_t T3Sec;
766
768 uint32_t T3Nsec;
769
771 uint64_t T4Sec;
772
774 uint32_t T4Nsec;
775
778 uint64_t pDelayReqRcvdTSSec;
779
782 uint32_t pDelayReqRcvdTSNsec;
783
785 uint64_t delayResCorrField;
786
788 uint64_t delayResFwUpCorrField;
789
790 } peerDelayParams_t;
791
795 typedef struct
796 {
797
799 uint32_t srcIP;
800
802 uint32_t dstIP;
803
805 uint8_t dscp;
806
808 uint8_t ttlVal;
809
810 } ipParams_t;
811
815 typedef struct
816 {
818 uint8_t generalFrameFlag;
820 uint8_t ptpGeneralFrame[ICSS_EMAC_MAXMTU];
822 uint16_t ptpGeneralSize;
826 uint8_t ptpSrcMacID[6];
827
828 } ptpDparams_t;
829
833 typedef struct TimeSync_ParamsHandle_s
834 {
836 ICSS_EMAC_Handle emacHandle;
837
838 uint8_t macId[6];
839 /* MAC ID passed to ICSS-EMAC during ICSS-EMAC initialization*/
840
842 PRUICSS_Handle pruicssHandle;
843
845 uint8_t enabled;
846
847 /*Get TX timestamp*/
848 ptpFrameTypes_t
849 txFrameType;
850 uint8_t txPort;
851 uint8_t txprotocol;
852 uint8_t sequenceIdOut_txTS;
854 /*Get RX timestamp*/
855 ptpFrameTypes_t
856 rxFrameType;
857 uint8_t rxPort;
858 uint8_t rxprotocol;
859 timeStamp *rxTimestamp_gPTP;
860 uint8_t sequenceIdOut_rxTS;
862 /*Set clock*/
863 timeStamp clockTime;
864 uint8_t sequenceIdIn;
866 /*Adjust clock*/
867 int32_t drift;
868 uint32_t syncInterval;
871 ptpDparams_t stackParams;
872
874 uint32_t pathDelay[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
875
876 uint8_t syntIndexMap[3];
877 uint8_t prevIndexMap[3];
878
879
881 TaskP_Object timeSync_pDelayReqSendTask;
882
884 TaskP_Object timeSync_delayReqSendTask;
885
886 /*-----------------Slave tasks, semaphores and events----------------*/
887
889 TaskP_Object timeSync_TxTSTaskP1;
891 TaskP_Object timeSync_TxTSTaskP2;
892
898 TaskP_Object timeSync_NRT_Task;
899
904 TaskP_Object timeSync_backgroundTask;
905
910 EventP_Object txTSAvailableEvtObject[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
911
916 EventP_Object ptpPdelayResEvtObject[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
920 EventP_Object ptpPdelayReqEvtObject[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
924 EventP_Object ptpSendFollowUpEvtObject[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
925
927 uint32_t eventIdSync;
929 uint32_t eventIdPdelayReq;
931 uint32_t eventIdPdelayResp;
933 uint32_t eventIdPdelayRespFlwUp;
935 uint32_t eventIdDelayReq;
937 uint32_t eventIdFlwUpGenerated;
938
939 /*Semaphore for sending Delay Request frames*/
940 SemaphoreP_Object delayReqTxSemObject;
941
942 HwiP_Object timeSync_txTSIsrObject;
943
944 /*Number of sync frames missed*/
945 uint32_t numSyncMissed;
946
947 timeSync_Offset_Stable_Algo_t *offsetAlgo;
948
950 ipParams_t udpParams;
951
953 peerDelayParams_t pDelayParams[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
954
956 delayReqRespParams_t *delayParams;
957
958 /*Time sync configuration handle*/
959 TimeSync_Config_t timeSyncConfig;
960
961 /*Rx and Tx frame buffers*/
962 TimeSync_frame_buffers_t timeSyncBuff;
963
965 timeSync_SyntInfo_t *tsSyntInfo;
966
968 timeSync_NrrInfo_t *tsNrrInfo[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
969
971 syncParam_t *syncParam[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
972
974 timeSync_RuntimeVar_t *tsRunTimeVar;
975
976 uint32_t pDelayReqSendTaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
977 uint32_t delayReqSendTaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
978 uint32_t txTSTaskP1Stack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
979 uint32_t txTSTaskP2Stack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
980 uint32_t NRT_TaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
981 uint32_t backgroundTaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)));
982
983 } TimeSync_ParamsHandle;
984
985 typedef struct TimeSync_ParamsHandle_s *TimeSync_ParamsHandle_t;
986
987 /* ========================================================================== */
988 /* Error Codes */
989 /* ========================================================================== */
990 #define TIMESYNC_OK (0)
991 #define ERROR_TX_FRAMETYPE_NOTVALID (-1)
992 #define ERROR_TX_PORTNUMBER_NOTVALID (-2)
993 #define ERROR_HANDLE_INVALID (-3)
994 #define ERROR_RX_FRAMETYPE_NOTVALID (-4)
995 #define ERROR_RX_PORTNUMBER_NOTVALID (-5)
996
997 /* ========================================================================== */
998 /* Function Declarations */
999 /* ========================================================================== */
1000
1019 int32_t TimeSync_getRxTimestamp(TimeSync_ParamsHandle_t timeSyncParamsHandle,
1020 ptpFrameTypes_t rxFrameType, uint8_t rxPort, \
1021 uint32_t *nanoseconds, uint64_t *seconds);
1022
1035 int32_t TimeSync_getRxTimestampFromFrame(TimeSync_ParamsHandle_t timeSyncParamsHandle,
1036 uint8_t rxPort, \
1037 uint32_t *nanoseconds, uint64_t *seconds, uint8_t* TimeStampFromFrame);
1038 /* API */
1039
1056 int32_t TimeSync_config(TimeSync_ParamsHandle_t timeSyncHandle);
1057
1071 int32_t TimeSync_getTxTimestamp(TimeSync_ParamsHandle_t timeSyncParamsHandle, \
1072 ptpFrameTypes_t txFrameType, uint8_t txPort, \
1073 uint32_t *nanoseconds, uint64_t *seconds);
1074
1075
1092 int8_t TimeSync_adjTimeSlowComp(TimeSync_ParamsHandle_t timeSyncParamsHandle,
1093 int32_t adjOffset);
1094
1095
1106 int32_t TimeSync_setClockTime(TimeSync_ParamsHandle_t timeSyncParamsHandle);
1107
1123 void TimeSync_getCurrentTime(TimeSync_ParamsHandle_t timeSyncParamsHandle,
1124 uint32_t *nanoseconds, uint64_t *seconds);
1125
1130 void TimeSync_updateDomainNumberInPTPFrames(TimeSync_ParamsHandle_t timeSyncHandle);
1131
1136 void TimeSync_updateLogMessageIntervalInPTPFrames(TimeSync_ParamsHandle_t timeSyncHandle);
1137
1143 void TimeSync_updateDscpValueInDelayRequestFrame(TimeSync_ParamsHandle_t timeSyncHandle,
1144 uint8_t dscpValue);
1145
1148 #ifdef __cplusplus
1149 }
1150 #endif
1151
1152 #endif /* ICSS_TIMESYNC_API_H_ */
timeSync_RuntimeVar_t::currOffset
int32_t currOffset
Definition: icss_timeSyncApi.h:543
TimeSync_ParamsHandle::tsSyntInfo
timeSync_SyntInfo_t * tsSyntInfo
Definition: icss_timeSyncApi.h:965
TimeSync_ParamsHandle::txFrameType
ptpFrameTypes_t txFrameType
Definition: icss_timeSyncApi.h:849
E2E
@ E2E
Definition: icss_timeSyncApi.h:194
TC
@ TC
Definition: icss_timeSyncApi.h:181
TimeSync_ParamsHandle::eventIdPdelayReq
uint32_t eventIdPdelayReq
Definition: icss_timeSyncApi.h:929
compensationType
compensationType
Compensation Type Required - depending on PTP timeTransmitter or timeReceiver.
Definition: icss_timeSyncApi.h:244
DISABLED
@ DISABLED
Definition: icss_timeSyncApi.h:145
TimeSync_ParamsHandle::__attribute__
uint32_t backgroundTaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)))
TimeSync_frame_buffers_t
Time synchronization configuration structure.
Definition: icss_timeSyncApi.h:337
TimeSync_Config_t::txPhyLatency
uint32_t txPhyLatency
Definition: icss_timeSyncApi.h:478
TimeSync_updateLogMessageIntervalInPTPFrames
void TimeSync_updateLogMessageIntervalInPTPFrames(TimeSync_ParamsHandle_t timeSyncHandle)
Update log message interval in PTP TX buffers.
TimeSync_config
int32_t TimeSync_config(TimeSync_ParamsHandle_t timeSyncHandle)
Function to configure domain number and/or log message intervals and/or sync0 signal start time,...
ptpDparams_t
PTPd stack parameters.
Definition: icss_timeSyncApi.h:816
TimeSync_Config_t::tickPeriod
uint32_t tickPeriod
Definition: icss_timeSyncApi.h:472
TimeSync_ParamsHandle::timeSync_pDelayReqSendTask
TaskP_Object timeSync_pDelayReqSendTask
Definition: icss_timeSyncApi.h:881
INTERNAL_OSCILLATOR
@ INTERNAL_OSCILLATOR
Definition: icss_timeSyncApi.h:227
ICSS_EMAC_Handle
struct ICSS_EMAC_Config_s * ICSS_EMAC_Handle
Alias for ICSS EMAC Handle containing base addresses and modules.
Definition: icss_emac.h:514
timeSync_SyntInfo_t::rcf
double rcf
Definition: icss_timeSyncApi.h:685
timeSync_SyntInfo_t
Parameters required for clock syntonization.
Definition: icss_timeSyncApi.h:677
TimeSync_ParamsHandle::eventIdPdelayResp
uint32_t eventIdPdelayResp
Definition: icss_timeSyncApi.h:931
TimeSync_Config_t::nrtTaskPriority
uint8_t nrtTaskPriority
Definition: icss_timeSyncApi.h:487
ExtendedTimestamp
802.1AS-rev ExtendedTimestamp
Definition: icss_timeSyncApi.h:264
TimeSync_ParamsHandle::sequenceIdIn
uint8_t sequenceIdIn
Definition: icss_timeSyncApi.h:864
timeStamp
802.1AS-rev Timestamp structure
Definition: icss_timeSyncApi.h:254
netWorkProtType
netWorkProtType
Network Protocol Type.
Definition: icss_timeSyncApi.h:159
TimeSync_Config_t::config
deviceConfig config
Definition: icss_timeSyncApi.h:408
TimeSync_getCurrentTime
void TimeSync_getCurrentTime(TimeSync_ParamsHandle_t timeSyncParamsHandle, uint32_t *nanoseconds, uint64_t *seconds)
Returns the current time on device.
TimeSync_ParamsHandle::sequenceIdOut_txTS
uint8_t sequenceIdOut_txTS
Definition: icss_timeSyncApi.h:852
timeSync_RuntimeVar_t::initialOffset
int32_t initialOffset
Definition: icss_timeSyncApi.h:554
PASSIVE
@ PASSIVE
Definition: icss_timeSyncApi.h:149
timeSync_RuntimeVar_t::delReqSequenceID
uint16_t delReqSequenceID
Definition: icss_timeSyncApi.h:524
PTP_TIME_RECEIVER_FASTER
@ PTP_TIME_RECEIVER_FASTER
Definition: icss_timeSyncApi.h:246
TimeSync_Config_t::type
delayType type
Definition: icss_timeSyncApi.h:414
OTHER
@ OTHER
Definition: icss_timeSyncApi.h:226
timeSync_NrrInfo_t::nrr
double nrr
Definition: icss_timeSyncApi.h:710
timeSource
timeSource
802.1AS-rev Enumeration8
Definition: icss_timeSyncApi.h:219
port_State
port_State
Port States, from IEEE 1588v2.
Definition: icss_timeSyncApi.h:142
syncParam_t::originTsSec
uint64_t originTsSec
Definition: icss_timeSyncApi.h:655
TimeSync_ParamsHandle::__attribute__
uint32_t pDelayReqSendTaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)))
TimeSync_parent_params_t
Parent clock params.
Definition: icss_timeSyncApi.h:285
TimeSync_ParamsHandle::numSyncMissed
uint32_t numSyncMissed
Definition: icss_timeSyncApi.h:945
TimeSync_Config_t::hsrEnabled
uint8_t hsrEnabled
Definition: icss_timeSyncApi.h:438
TimeSync_frame_buffers_t::delayReq_TxBuf
uint8_t * delayReq_TxBuf
Definition: icss_timeSyncApi.h:352
TimeSync_ParamsHandle::eventIdDelayReq
uint32_t eventIdDelayReq
Definition: icss_timeSyncApi.h:935
peerDelayParams_t::T3Sec
uint64_t T3Sec
Definition: icss_timeSyncApi.h:765
TimeSync_ParamsHandle::eventIdFlwUpGenerated
uint32_t eventIdFlwUpGenerated
Definition: icss_timeSyncApi.h:937
NTP
@ NTP
Definition: icss_timeSyncApi.h:224
delayReqRespParams_t::delReqTxTsNS
uint32_t delReqTxTsNS
Definition: icss_timeSyncApi.h:740
timeSync_RuntimeVar_t::announceSequenceID
uint16_t announceSequenceID
Definition: icss_timeSyncApi.h:530
TimeSync_ParamsHandle::timeSyncConfig
TimeSync_Config_t timeSyncConfig
Definition: icss_timeSyncApi.h:959
TimeSync_master_params_t::stepRemoved
uint16_t stepRemoved
Definition: icss_timeSyncApi.h:314
TimeSync_ParamsHandle::txPort
uint8_t txPort
Definition: icss_timeSyncApi.h:850
delayReqRespParams_t
Parameters required for calculating Cable Delay.
Definition: icss_timeSyncApi.h:728
PRE_MASTER
@ PRE_MASTER
Definition: icss_timeSyncApi.h:147
UDP_IPV4
@ UDP_IPV4
Definition: icss_timeSyncApi.h:162
TimeSync_Config_t::logSyncInterval
int8_t logSyncInterval
Definition: icss_timeSyncApi.h:383
timeSync_RuntimeVar_t::currSyncInterval
uint32_t currSyncInterval
Definition: icss_timeSyncApi.h:536
ExtendedTimestamp::fractionalNanoseconds
uint64_t fractionalNanoseconds
Definition: icss_timeSyncApi.h:266
peerDelayParams_t::delayResFwUpCorrField
uint64_t delayResFwUpCorrField
Definition: icss_timeSyncApi.h:788
TimeSync_ParamsHandle::__attribute__
uint32_t delayReqSendTaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)))
timeSync_RuntimeVar_t::firstSyncInterval
uint32_t firstSyncInterval
Definition: icss_timeSyncApi.h:540
TimeSync_ParamsHandle::udpParams
ipParams_t udpParams
Definition: icss_timeSyncApi.h:950
ICSS_IEP_CLK_FREQ_250MHZ
@ ICSS_IEP_CLK_FREQ_250MHZ
Definition: icss_timeSyncApi.h:236
TimeSync_ParamsHandle::emacHandle
ICSS_EMAC_Handle emacHandle
Definition: icss_timeSyncApi.h:836
TimeSync_Config_t::syncSendInterval
uint32_t syncSendInterval
Definition: icss_timeSyncApi.h:397
peerDelayParams_t::T1Sec
uint32_t T1Sec
Definition: icss_timeSyncApi.h:753
SYNT_DEPTH
#define SYNT_DEPTH
Definition: icss_timeSyncApi.h:85
MASTER
@ MASTER
Definition: icss_timeSyncApi.h:148
timeSync_SyntInfo_t::syntEnable
uint8_t syntEnable
Definition: icss_timeSyncApi.h:691
INITIALIZING
@ INITIALIZING
Definition: icss_timeSyncApi.h:143
TimeSync_getTxTimestamp
int32_t TimeSync_getTxTimestamp(TimeSync_ParamsHandle_t timeSyncParamsHandle, ptpFrameTypes_t txFrameType, uint8_t txPort, uint32_t *nanoseconds, uint64_t *seconds)
Reads and provides timestamp of a transmitted event message.
timeSync_RuntimeVar_t::ltaSyncInterval
uint32_t ltaSyncInterval
Definition: icss_timeSyncApi.h:538
TimeSync_ParamsHandle::eventIdSync
uint32_t eventIdSync
Definition: icss_timeSyncApi.h:927
TimeSync_master_params_t::clockVariance
uint16_t clockVariance
Definition: icss_timeSyncApi.h:316
icss_emac.h
syncParam_t::ifTwoStep
uint8_t ifTwoStep
Definition: icss_timeSyncApi.h:648
DEVICE_NET
@ DEVICE_NET
Definition: icss_timeSyncApi.h:167
timeSync_RuntimeVar_t::offsetStable
uint8_t offsetStable
Definition: icss_timeSyncApi.h:560
delayReqRespParams_t::timeStampSec
uint64_t timeStampSec
Definition: icss_timeSyncApi.h:733
TimeSync_Config_t::delayReqSendTaskPriority
uint8_t delayReqSendTaskPriority
Definition: icss_timeSyncApi.h:481
TimeSync_getRxTimestamp
int32_t TimeSync_getRxTimestamp(TimeSync_ParamsHandle_t timeSyncParamsHandle, ptpFrameTypes_t rxFrameType, uint8_t rxPort, uint32_t *nanoseconds, uint64_t *seconds)
Reads and provides timestamp of a received event message.
TimeSync_ParamsHandle::enabled
uint8_t enabled
Definition: icss_timeSyncApi.h:845
TimeSync_Config_t::pdelayBurstInterval
uint32_t pdelayBurstInterval
Definition: icss_timeSyncApi.h:424
TimeSync_Config_t::rxPhyLatency
uint32_t rxPhyLatency
Definition: icss_timeSyncApi.h:475
TimeSync_frame_buffers_t::announceBuf_size
uint8_t announceBuf_size
Definition: icss_timeSyncApi.h:360
TimeSync_ParamsHandle::rxFrameType
ptpFrameTypes_t rxFrameType
Definition: icss_timeSyncApi.h:856
peerDelayParams_t
Parameters required for calculating Cable Delay.
Definition: icss_timeSyncApi.h:748
HAND_SET
@ HAND_SET
Definition: icss_timeSyncApi.h:225
TimeSync_ParamsHandle::offsetAlgo
timeSync_Offset_Stable_Algo_t * offsetAlgo
Definition: icss_timeSyncApi.h:947
NON_SYNC_DELAY_FRAME
@ NON_SYNC_DELAY_FRAME
Definition: icss_timeSyncApi.h:205
timeSync_RuntimeVar_t::clockDrift
uint32_t clockDrift
Definition: icss_timeSyncApi.h:573
PTP_TIME_TRANSMITTER_FASTER
@ PTP_TIME_TRANSMITTER_FASTER
Definition: icss_timeSyncApi.h:247
peerDelayParams_t::ifTwoStep
uint8_t ifTwoStep
Definition: icss_timeSyncApi.h:750
SLAVE
@ SLAVE
Definition: icss_timeSyncApi.h:151
TimeSync_ParamsHandle::timeSync_NRT_Task
TaskP_Object timeSync_NRT_Task
Definition: icss_timeSyncApi.h:898
ptpDparams_t::generalFrameFlag
uint8_t generalFrameFlag
Definition: icss_timeSyncApi.h:818
timeSync_RuntimeVar_t::tickCounter
uint64_t tickCounter
Definition: icss_timeSyncApi.h:586
UDP_IPV6
@ UDP_IPV6
Definition: icss_timeSyncApi.h:164
TimeSync_Config_t::logAnnounceSendInterval
int8_t logAnnounceSendInterval
Definition: icss_timeSyncApi.h:386
OC
@ OC
Definition: icss_timeSyncApi.h:183
TimeSync_master_params_t::timeSource
uint8_t timeSource
Definition: icss_timeSyncApi.h:312
peerDelayParams_t::T4Nsec
uint32_t T4Nsec
Definition: icss_timeSyncApi.h:774
timeSync_RuntimeVar_t::meanPathDelay
int64_t meanPathDelay
Definition: icss_timeSyncApi.h:570
TASK_STACK_SIZE
#define TASK_STACK_SIZE
Definition: icss_timeSyncApi.h:66
ipParams_t::ttlVal
uint8_t ttlVal
Definition: icss_timeSyncApi.h:808
TimeSync_Config_t::masterParams
TimeSync_master_params_t masterParams
Definition: icss_timeSyncApi.h:493
TimeSync_parent_params_t::observedClockPhaseChangeRate
int32_t observedClockPhaseChangeRate
Definition: icss_timeSyncApi.h:295
PTP_NO_COMPENSATION_REQUIRED
@ PTP_NO_COMPENSATION_REQUIRED
Definition: icss_timeSyncApi.h:245
timeSync_RuntimeVar_t::syncLastSeenCounter
uint32_t syncLastSeenCounter
Definition: icss_timeSyncApi.h:589
timeSync_RuntimeVar_t::driftStable
uint8_t driftStable
Definition: icss_timeSyncApi.h:557
TimeSync_ParamsHandle::rxTimestamp_gPTP
timeStamp * rxTimestamp_gPTP
Definition: icss_timeSyncApi.h:859
delayReqRespParams_t::correctionField
uint64_t correctionField
Definition: icss_timeSyncApi.h:730
TimeSync_ParamsHandle::timeSync_TxTSTaskP2
TaskP_Object timeSync_TxTSTaskP2
Definition: icss_timeSyncApi.h:891
peerDelayParams_t::T4Sec
uint64_t T4Sec
Definition: icss_timeSyncApi.h:771
TimeSync_ParamsHandle::__attribute__
uint32_t NRT_TaskStack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)))
ICSS_EMAC_MAXMTU
#define ICSS_EMAC_MAXMTU
Maximum Valid size (incl header + VLAN TAG..., no CRC)
Definition: icss_emac.h:279
timeSync_NrrInfo_t::nrrIndex
uint32_t nrrIndex
Definition: icss_timeSyncApi.h:719
TimeSync_adjTimeSlowComp
int8_t TimeSync_adjTimeSlowComp(TimeSync_ParamsHandle_t timeSyncParamsHandle, int32_t adjOffset)
Adjusts the IEP clock by the drift value over one Sync interval.
peerDelayParams_t::pDelayReqRcvdTSNsec
uint32_t pDelayReqRcvdTSNsec
Definition: icss_timeSyncApi.h:782
TimeSync_Config_t::pDelReqPktInterval
uint32_t pDelReqPktInterval
Definition: icss_timeSyncApi.h:393
TS_NUM_DOMAINS
#define TS_NUM_DOMAINS
Definition: icss_timeSyncApi.h:90
ICSS_IEP_CLK_FREQ_200MHZ
@ ICSS_IEP_CLK_FREQ_200MHZ
Definition: icss_timeSyncApi.h:235
TimeSync_Config_t::sync0_interval
uint32_t sync0_interval
Definition: icss_timeSyncApi.h:435
syncParam_t::originTsNs
uint32_t originTsNs
Definition: icss_timeSyncApi.h:657
TimeSync_updateDomainNumberInPTPFrames
void TimeSync_updateDomainNumberInPTPFrames(TimeSync_ParamsHandle_t timeSyncHandle)
Update PTP domain number in TX Buffers.
TimeSync_Config_t::emac_mode
uint8_t emac_mode
Definition: icss_timeSyncApi.h:462
TimerP.h
GPS
@ GPS
Definition: icss_timeSyncApi.h:221
ipParams_t
Used to populate IP/UDP Parameters. These must be populated from Switch params.
Definition: icss_timeSyncApi.h:796
TimeSync_ParamsHandle::timeSyncBuff
TimeSync_frame_buffers_t timeSyncBuff
Definition: icss_timeSyncApi.h:962
ipParams_t::dscp
uint8_t dscp
Definition: icss_timeSyncApi.h:805
timeSync_RuntimeVar_t::stateMachine
uint8_t stateMachine
PTP State machine used internally by driver This is a bitmap Bit 0 : Set 1 if First adjustment done B...
Definition: icss_timeSyncApi.h:518
UNCALIBRATED
@ UNCALIBRATED
Definition: icss_timeSyncApi.h:150
deviceConfig
deviceConfig
Current Device configuration.
Definition: icss_timeSyncApi.h:178
TimeSync_master_params_t::UTCOffset
uint16_t UTCOffset
Definition: icss_timeSyncApi.h:318
HwiP.h
timeSync_RuntimeVar_t::enabled
uint8_t enabled
Definition: icss_timeSyncApi.h:506
syncParam_t::correctionField
uint64_t correctionField
Definition: icss_timeSyncApi.h:652
TimeSync_Config_t::logPDelReqPktInterval
int8_t logPDelReqPktInterval
Definition: icss_timeSyncApi.h:380
peerDelayParams_t::T2Sec
uint64_t T2Sec
Definition: icss_timeSyncApi.h:759
TimeSync_ParamsHandle::drift
int32_t drift
Definition: icss_timeSyncApi.h:867
delayType
delayType
PTP Delay Mechanism Type. From Table 9 of Standard.
Definition: icss_timeSyncApi.h:192
TimeSync_master_params_t
Master and grand master clock params.
Definition: icss_timeSyncApi.h:302
TimeSync_ParamsHandle::delayReqTxSemObject
SemaphoreP_Object delayReqTxSemObject
Definition: icss_timeSyncApi.h:940
ExtendedTimestamp::seconds
uint64_t seconds
Definition: icss_timeSyncApi.h:265
timeSync_SyntInfo_t::index
uint8_t index
Definition: icss_timeSyncApi.h:688
PTP
@ PTP
Definition: icss_timeSyncApi.h:223
TimeSync_master_params_t::priority2
uint8_t priority2
Definition: icss_timeSyncApi.h:306
ipParams_t::srcIP
uint32_t srcIP
Definition: icss_timeSyncApi.h:799
OFFSET_ALGO_BIN_SIZE
#define OFFSET_ALGO_BIN_SIZE
Definition: icss_timeSyncApi.h:129
peerDelayParams_t::T3Nsec
uint32_t T3Nsec
Definition: icss_timeSyncApi.h:768
TimeSync_ParamsHandle::rxprotocol
uint8_t rxprotocol
Definition: icss_timeSyncApi.h:858
TimeSync_stackResetCallback_t
void(* TimeSync_stackResetCallback_t)(void *arg)
PTP Stack Reset callback function. Timesync handle (of type TimeSync_ParamsHandle_t) will be passed a...
Definition: icss_timeSyncApi.h:279
TimeSync_master_params_t::priority1
uint8_t priority1
Definition: icss_timeSyncApi.h:304
TimeSync_frame_buffers_t::flwUpBuf_size
uint8_t flwUpBuf_size
Definition: icss_timeSyncApi.h:359
TimeSync_Config_t::ptpDrvStackReset
TimeSync_stackResetCallback_t ptpDrvStackReset
Definition: icss_timeSyncApi.h:378
peerDelayParams_t::T1Nsec
uint32_t T1Nsec
Definition: icss_timeSyncApi.h:756
timeStamp::seconds
uint64_t seconds
Definition: icss_timeSyncApi.h:255
TimeSync_ParamsHandle::eventIdPdelayRespFlwUp
uint32_t eventIdPdelayRespFlwUp
Definition: icss_timeSyncApi.h:933
TimeSync_ParamsHandle::tsRunTimeVar
timeSync_RuntimeVar_t * tsRunTimeVar
Definition: icss_timeSyncApi.h:974
FAULTY
@ FAULTY
Definition: icss_timeSyncApi.h:144
BOTH
@ BOTH
Definition: icss_timeSyncApi.h:185
timeSync_RuntimeVar_t::syncPortNum
uint8_t syncPortNum
Definition: icss_timeSyncApi.h:563
TimeSync_frame_buffers_t::syncBuf_size
uint8_t syncBuf_size
Definition: icss_timeSyncApi.h:358
TaskP.h
TimeSync_ParamsHandle::timeSync_backgroundTask
TaskP_Object timeSync_backgroundTask
Definition: icss_timeSyncApi.h:904
peerDelayParams_t::pDelayReqRcvdTSSec
uint64_t pDelayReqRcvdTSSec
Definition: icss_timeSyncApi.h:778
UNKNOWN
@ UNKNOWN
Definition: icss_timeSyncApi.h:170
TimeSync_Config_t::frame_offset
uint8_t frame_offset
Definition: icss_timeSyncApi.h:468
delayReqRespParams_t::delReqTxTsSec
uint32_t delReqTxTsSec
Definition: icss_timeSyncApi.h:738
TimeSync_ParamsHandle::timeSync_delayReqSendTask
TaskP_Object timeSync_delayReqSendTask
Definition: icss_timeSyncApi.h:884
TimeSync_frame_buffers_t::sync_TxBuf
uint8_t * sync_TxBuf
Definition: icss_timeSyncApi.h:349
timeSync_Offset_Stable_Algo_t::binFull
uint8_t binFull
Definition: icss_timeSyncApi.h:633
timeSync_RuntimeVar_t::syncTimeoutInterval
uint32_t syncTimeoutInterval
Definition: icss_timeSyncApi.h:593
TimeSync_ParamsHandle::sequenceIdOut_rxTS
uint8_t sequenceIdOut_rxTS
Definition: icss_timeSyncApi.h:860
timeSync_RuntimeVar_t::masterParams
TimeSync_master_params_t masterParams
Definition: icss_timeSyncApi.h:602
timeSync_Offset_Stable_Algo_t
Variables used for offset stabilization algorithm.
Definition: icss_timeSyncApi.h:614
ICSS_IEP_CLK_FREQ_333MHZ
@ ICSS_IEP_CLK_FREQ_333MHZ
Definition: icss_timeSyncApi.h:237
timeSync_RuntimeVar_t
Runtime variables for Time Sync implementation.
Definition: icss_timeSyncApi.h:504
syncParam_t::rxTs
uint32_t rxTs
Definition: icss_timeSyncApi.h:660
HwiP_Object
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:142
IEEE_802_3
@ IEEE_802_3
Definition: icss_timeSyncApi.h:166
TimeSync_Config_t::announceRcptTimeoutInterval
uint32_t announceRcptTimeoutInterval
Definition: icss_timeSyncApi.h:405
P2P
@ P2P
Definition: icss_timeSyncApi.h:196
ptpDparams_t::ptpGeneralSize
uint16_t ptpGeneralSize
Definition: icss_timeSyncApi.h:822
timeSync_NrrInfo_t
Parameters required for calculating Nighbor Rate Ratio.
Definition: icss_timeSyncApi.h:702
delayReqRespParams_t::timeStampNS
uint32_t timeStampNS
Definition: icss_timeSyncApi.h:735
DELAY_RESP_FRAME
@ DELAY_RESP_FRAME
Definition: icss_timeSyncApi.h:211
TimeSync_Config_t::pdelayBurstNumPkts
uint8_t pdelayBurstNumPkts
Definition: icss_timeSyncApi.h:427
TimeSync_Config_t::txTsTaskPriority
uint8_t txTsTaskPriority
Definition: icss_timeSyncApi.h:484
timeSync_SyntInfo_t::syntIndex
uint32_t syntIndex
Definition: icss_timeSyncApi.h:694
syncParam_t::txTs
uint32_t txTs
Definition: icss_timeSyncApi.h:666
TimeSync_ParamsHandle::__attribute__
uint32_t txTSTaskP1Stack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)))
peerDelayParams_t::T2Nsec
uint32_t T2Nsec
Definition: icss_timeSyncApi.h:762
CONTROL_NET
@ CONTROL_NET
Definition: icss_timeSyncApi.h:168
TimeSync_ParamsHandle::syncInterval
uint32_t syncInterval
Definition: icss_timeSyncApi.h:868
TimeSync_Config_t::ll_has_hsrTag
uint8_t ll_has_hsrTag
Definition: icss_timeSyncApi.h:447
timeSync_RuntimeVar_t::ltaOffset
int32_t ltaOffset
Definition: icss_timeSyncApi.h:576
TimeSync_Config_t::syncOut_sync0Start
uint32_t syncOut_sync0Start
Definition: icss_timeSyncApi.h:372
timeSync_NrrInfo_t::curIndex
uint8_t curIndex
Definition: icss_timeSyncApi.h:713
TimeSync_master_params_t::clockAccuracy
uint8_t clockAccuracy
Definition: icss_timeSyncApi.h:310
TimeSync_Config_t
Time synchronization configuration structure.
Definition: icss_timeSyncApi.h:368
TimeSync_ParamsHandle::txprotocol
uint8_t txprotocol
Definition: icss_timeSyncApi.h:851
TimeSync_ParamsHandle::pruicssHandle
PRUICSS_Handle pruicssHandle
Definition: icss_timeSyncApi.h:842
TimeSync_ParamsHandle
Time synchronization parameter handle structure.
Definition: icss_timeSyncApi.h:834
TimeSync_ParamsHandle::clockTime
timeStamp clockTime
Definition: icss_timeSyncApi.h:863
TimeSync_ParamsHandle::__attribute__
uint32_t txTSTaskP2Stack[TASK_STACK_SIZE/sizeof(uint32_t)] __attribute__((aligned(32)))
TimeSync_Config_t::icssIepClkFreq
uint32_t icssIepClkFreq
Definition: icss_timeSyncApi.h:496
syncParam_t::txTsSec
uint64_t txTsSec
Definition: icss_timeSyncApi.h:669
TimeSync_Config_t::txIntNum
uint32_t txIntNum
Definition: icss_timeSyncApi.h:417
TimeSync_Config_t::syncOut_sync0PWidth
uint32_t syncOut_sync0PWidth
Definition: icss_timeSyncApi.h:374
TimeSync_ParamsHandle::stackParams
ptpDparams_t stackParams
Definition: icss_timeSyncApi.h:871
TimeSync_Config_t::backgroundTaskPriority
uint8_t backgroundTaskPriority
Definition: icss_timeSyncApi.h:490
PROFINET
@ PROFINET
Definition: icss_timeSyncApi.h:169
TimeSync_getRxTimestampFromFrame
int32_t TimeSync_getRxTimestampFromFrame(TimeSync_ParamsHandle_t timeSyncParamsHandle, uint8_t rxPort, uint32_t *nanoseconds, uint64_t *seconds, uint8_t *TimeStampFromFrame)
Reads and provides timestamp of a received event message.
syncParam_t
Parameters required for calculating Cable Delay.
Definition: icss_timeSyncApi.h:646
TimeSync_ParamsHandle::delayParams
delayReqRespParams_t * delayParams
Definition: icss_timeSyncApi.h:956
TimeSync_parent_params_t::ptpPortNumber
uint16_t ptpPortNumber
Definition: icss_timeSyncApi.h:289
TimeSync_Config_t::timeSyncSyncLossCallBackfn
TimeSync_SyncLossCallBack_t timeSyncSyncLossCallBackfn
Definition: icss_timeSyncApi.h:376
TimeSync_Config_t::logAnnounceRcptTimeoutInterval
int8_t logAnnounceRcptTimeoutInterval
Definition: icss_timeSyncApi.h:389
timeSync_RuntimeVar_t::avgCorrectionField
uint32_t avgCorrectionField
Definition: icss_timeSyncApi.h:582
TimeSync_Config_t::custom_tx_api
uint8_t custom_tx_api
Definition: icss_timeSyncApi.h:451
TimeSync_SyncLossCallBack_t
void(* TimeSync_SyncLossCallBack_t)(void)
Sync loss callback function. Call cross module functions in case of loss of synchronization.
Definition: icss_timeSyncApi.h:273
TimeSync_setClockTime
int32_t TimeSync_setClockTime(TimeSync_ParamsHandle_t timeSyncParamsHandle)
Configures the driver memory.
ATOMIC_CLOCK
@ ATOMIC_CLOCK
Definition: icss_timeSyncApi.h:220
syncParam_t::rxTsSec
uint64_t rxTsSec
Definition: icss_timeSyncApi.h:663
TimeSync_ParamsHandle::timeSync_TxTSTaskP1
TaskP_Object timeSync_TxTSTaskP1
Definition: icss_timeSyncApi.h:889
SYNC_FRAME
@ SYNC_FRAME
Definition: icss_timeSyncApi.h:207
TimeSync_parent_params_t::observedOffsetScaledLogVariance
uint16_t observedOffsetScaledLogVariance
Definition: icss_timeSyncApi.h:293
icssIepClkFreq
icssIepClkFreq
ICSS IEP Clock Frequencies.
Definition: icss_timeSyncApi.h:234
TimeSync_ParamsHandle_t
struct TimeSync_ParamsHandle_s * TimeSync_ParamsHandle_t
Definition: icss_timeSyncApi.h:985
LISTENING
@ LISTENING
Definition: icss_timeSyncApi.h:146
timeSync_RuntimeVar_t::parentParams
TimeSync_parent_params_t parentParams
Definition: icss_timeSyncApi.h:605
TimeSync_Config_t::announceSendInterval
uint32_t announceSendInterval
Definition: icss_timeSyncApi.h:401
timeSync_Offset_Stable_Algo_t::driftThreshold
uint8_t driftThreshold
Definition: icss_timeSyncApi.h:625
timeSync_RuntimeVar_t::syncSequenceID
uint16_t syncSequenceID
Definition: icss_timeSyncApi.h:527
timeStamp::nanoseconds
uint32_t nanoseconds
Definition: icss_timeSyncApi.h:256
DELAY_REQ_FRAME
@ DELAY_REQ_FRAME
Definition: icss_timeSyncApi.h:209
TimeSync_frame_buffers_t::announce_TxBuf
uint8_t * announce_TxBuf
Definition: icss_timeSyncApi.h:350
timeSync_RuntimeVar_t::bmcaDone
uint8_t bmcaDone
Definition: icss_timeSyncApi.h:599
peerDelayParams_t::delayResCorrField
uint64_t delayResCorrField
Definition: icss_timeSyncApi.h:785
ipParams_t::dstIP
uint32_t dstIP
Definition: icss_timeSyncApi.h:802
PRUICSS_Handle
struct PRUICSS_Config_s * PRUICSS_Handle
A handle that is returned from a PRUICSS_open() call. This handle is required for calling other APIs.
Definition: pruicss/m_v0/pruicss.h:226
TimeSync_ParamsHandle::timeSync_txTSIsrObject
HwiP_Object timeSync_txTSIsrObject
Definition: icss_timeSyncApi.h:942
TimeSync_ParamsHandle::rxPort
uint8_t rxPort
Definition: icss_timeSyncApi.h:857
timeSync_NrrInfo_t::nrrEnable
uint8_t nrrEnable
Definition: icss_timeSyncApi.h:716
TimeSync_Config_t::protocol
netWorkProtType protocol
Definition: icss_timeSyncApi.h:411
TimeSync_updateDscpValueInDelayRequestFrame
void TimeSync_updateDscpValueInDelayRequestFrame(TimeSync_ParamsHandle_t timeSyncHandle, uint8_t dscpValue)
Update DSCP value in IP header in PTP Delay Request buffer.
timeSync_Offset_Stable_Algo_t::num_entries_index
uint8_t num_entries_index
Definition: icss_timeSyncApi.h:628
TimeSync_Config_t::timestamp_from_shared_ram
uint8_t timestamp_from_shared_ram
Definition: icss_timeSyncApi.h:457
TimeSync_master_params_t::clockClass
uint8_t clockClass
Definition: icss_timeSyncApi.h:308
ICSS_EMAC_MAX_PORTS_PER_INSTANCE
#define ICSS_EMAC_MAX_PORTS_PER_INSTANCE
Maximum number of Ports in a single ICSS
Definition: icss_emac.h:66
timeSync_RuntimeVar_t::ltaOffsetValid
int32_t ltaOffsetValid
Definition: icss_timeSyncApi.h:579
timeSync_Offset_Stable_Algo_t::lastSeen_good_drift_index
uint8_t lastSeen_good_drift_index
Definition: icss_timeSyncApi.h:620
TERRESTRIAL_RADIO
@ TERRESTRIAL_RADIO
Definition: icss_timeSyncApi.h:222
EventP.h
ptpFrameTypes_t
ptpFrameTypes_t
PTP Delay Mechanism Type. From Table 9 of Standard.
Definition: icss_timeSyncApi.h:203