pt1588-SH7216 1
IEEE1588v2 Implementation for Renesas SH7216 Demo
|
00001 /* 00002 Copyright (c) 2010-2011 The Regents of the University of California. All rights 00003 reserved. 00004 00005 Permission is hereby granted, without written agreement and without license or 00006 royalty fees, to use, copy, modify, and distribute this software and its 00007 documentation for any purpose, provided that the above copyright notice and the 00008 following two paragraphs appear in all copies of this software. 00009 00010 IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR 00011 DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF 00012 THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF 00013 CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00014 00015 THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 00016 BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00017 A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, 00018 AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, 00019 SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 00020 */ 00021 00031 #define VERSIONPTP 2 00034 #define UNICASTFLAG FALSE 00037 #define ALTERNATEMASTERFLAG FALSE 00040 // Length of messages. 00041 #define MESSAGELENGTH_ANNOUNCE 64 00044 #define MESSAGELENGTH_SYNC 44 00047 #define MESSAGELENGTH_FOLLOW_UP 44 00050 #define MESSAGELENGTH_DELAY_REQ 44 00053 #define MESSAGELENGTH_DELAY_RESP 54 00056 #define MESSAGELENGTH_MANAGEMENT 54 00060 #define FOREIGN_MASTER_TIME_WINDOW 4 00063 #define FOREIGN_MASTER_THRESHOLD 2 00069 enum { 00070 INITIALIZING=1, 00071 FAULTY, 00072 DISABLED, 00073 LISTENING, 00074 PRE_MASTER, 00075 MASTER, 00076 PASSIVE, 00077 UNCALIBRATED, 00078 SLAVE 00079 }; 00080 00084 enum { 00085 E2E=1, 00086 P2P=2, 00087 DELAY_DISABLED=0xFE 00088 }; 00089 00091 enum { 00092 SYNC=0x0, 00093 DELAY_REQ, 00094 PDELAY_REQ, 00095 PDELAY_RESP, 00096 FOLLOW_UP=0x8, 00097 DELAY_RESP, 00098 PDELAY_RESP_FOLLOW_UP, 00099 ANNOUNCE, 00100 SIGNALING, 00101 MANAGEMENT 00102 }; 00103 00105 enum { 00106 CONTROLFIELD_SYNC=0x0, 00107 CONTROLFIELD_DELAY_REQ, 00108 CONTROLFIELD_FOLLOW_UP, 00109 CONTROLFIELD_DELAY_RESP, 00110 CONTROLFIELD_MANAGEMENT, 00111 CONTROLFIELD_ALL_OTHERS 00112 }; 00113 00115 enum { 00116 EVENT_MSG_IN, 00117 EVENT_POWERUP, 00118 EVENT_INITIALIZE, 00119 EVENT_DESIGNATED_ENABLED, 00120 EVENT_DESIGNATED_DISABLED, 00121 EVENT_FAULT_CLEARED, 00122 EVENT_FAULT_DETECTED, 00123 EVENT_STATE_DECISION_EVENT, 00124 EVENT_QUALIFICATION_TIMEOUT_EXPIRES, 00125 EVENT_ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES, 00126 EVENT_SYNCHRONIZATION_FAULT, 00127 EVENT_MASTER_CLOCK_SELECTED, 00128 EVENT_PERIODIC_ANNOUNCE, 00129 EVENT_PERIODIC_SYNC, 00130 EVENT_DELAY_REQ, 00131 EVENT_FOLLOW_UP, 00132 }; 00133 00137 enum { 00138 BMC_MASTER, 00139 BMC_SLAVE, 00140 BMC_PASSIVE 00141 }; 00142 00146 enum { 00147 DATA_SET_A, 00148 DATA_SET_B, 00149 DATA_SET_A_T, 00150 DATA_SET_B_T, 00151 DATA_SET_ERROR_1, 00152 DATA_SET_ERROR_2 00153 }; 00154 00156 enum { 00157 STATE_DECISION_CODE_M1, 00158 STATE_DECISION_CODE_M2, 00159 STATE_DECISION_CODE_M3, 00160 STATE_DECISION_CODE_S1, 00161 STATE_DECISION_CODE_P1, 00162 STATE_DECISION_CODE_P2 00163 }; 00164 00166 enum { 00167 STEP, 00168 STEP_2, 00169 RATE 00170 };