Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.9.0.2
openapi_dot1as.h
Go to the documentation of this file.
1 
9 /**********************************************************************
10 *
11 * Copyright 2020 Broadcom.
12 *
13 * Licensed under the Apache License, Version 2.0 (the "License");
14 * you may not use this file except in compliance with the License.
15 * You may obtain a copy of the License at
16 *
17 * http://www.apache.org/licenses/LICENSE-2.0
18 *
19 * Unless required by applicable law or agreed to in writing, software
20 * distributed under the License is distributed on an "AS IS" BASIS,
21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 * See the License for the specific language governing permissions and
23 * limitations under the License.
24 *
25 ***********************************************************************
26 *
27 * @filename openapi_dot1as.h
28 *
29 * @purpose This code implements the OpEN 801AS (dot1as) API(s)
30 *
31 * @component OPEN
32 *
33 * @create 04/08/2020
34 *
35 * @end
36 *
37 *********************************************************************/
38 #ifndef OPENAPI_DOT1AS_H_INCLUDED
39 #define OPENAPI_DOT1AS_H_INCLUDED
40 
41 #include "openapi_common.h"
42 
44 #define OPEN_DOT1AS_MIN_PRIORITY_VALUE 0
45 #define OPEN_DOT1AS_MAX_PRIORITY_VALUE 255
46 
48 #define OPEN_DOT1AS_MIN_PDELAY_THRESHOLD 0
49 #define OPEN_DOT1AS_MAX_PDELAY_THRESHOLD 1000000000
52 #define OPEN_DOT1AS_MIN_ALLOWED_RESP_LOST 0
53 #define OPEN_DOT1AS_MAX_ALLOWED_RESP_LOST 65535
54 
60 #define OPEN_DOT1AS_PDU_TX_INTL_LOG2_MAX 5
61 #define OPEN_DOT1AS_PDU_TX_INTL_LOG2_MIN -5
64 #define OPEN_DOT1AS_MIN_PDU_RX_TIMEOUT 2
65 #define OPEN_DOT1AS_MAX_PDU_RX_TIMEOUT 255
66 
68 #define OPEN_DOT1AS_CLOCK_ID_LEN 8
69 typedef struct
70 {
71  uint8_t id[OPEN_DOT1AS_CLOCK_ID_LEN];
73 
75 typedef enum
76 {
80 
82 typedef enum
83 {
89 
91 typedef enum
92 {
93  OPEN_DOT1AS_INITIAL_SYNC_TX_INTERVAL = 0,
94  OPEN_DOT1AS_CURRENT_SYNC_TX_INTERVAL,
95  OPEN_DOT1AS_INITIAL_ANNOUNCE_TX_INTERVAL,
96  OPEN_DOT1AS_CURRENT_ANNOUNCE_TX_INTERVAL,
97  OPEN_DOT1AS_INITIAL_PDELAY_TX_INTERVAL,
98  OPEN_DOT1AS_CURRENT_PDELAY_TX_INTERVAL,
99  OPEN_DOT1AS_SYNC_RX_TIMEOUT,
100  OPEN_DOT1AS_ANNOUNCE_RX_TIMEOUT,
101  OPEN_DOT1AS_PDELAY_RX_TIMEOUT,
102  OPEN_DOT1AS_SYNC_RX_TIMEOUT_INTERVAL,
103 } OPEN_DOT1AS_INTF_INTERVAL_t;
104 
106 typedef enum
107 {
108  OPEN_DOT1AS_SYNC_TX_COUNT = 1,
109  OPEN_DOT1AS_SYNC_RX_COUNT,
110  OPEN_DOT1AS_FOLLOWUP_TX_COUNT,
111  OPEN_DOT1AS_FOLLOWUP_RX_COUNT,
112  OPEN_DOT1AS_ANNOUNCE_TX_COUNT,
113  OPEN_DOT1AS_ANNOUNCE_RX_COUNT,
114  OPEN_DOT1AS_PDELAY_REQ_TX_COUNT,
115  OPEN_DOT1AS_PDELAY_REQ_RX_COUNT,
116  OPEN_DOT1AS_PDELAY_RESP_TX_COUNT,
117  OPEN_DOT1AS_PDELAY_RESP_RX_COUNT,
118  OPEN_DOT1AS_PDELAY_RESP_FOLLOWUP_TX_COUNT,
119  OPEN_DOT1AS_PDELAY_RESP_FOLLOWUP_RX_COUNT,
120  OPEN_DOT1AS_SIGNALING_TX_COUNT,
121  OPEN_DOT1AS_SIGNALING_RX_COUNT,
122  OPEN_DOT1AS_SYNC_RX_TIMEOUTS,
123  OPEN_DOT1AS_SYNC_RX_DISCARDS,
124  OPEN_DOT1AS_ANNOUNCE_RX_TIMEOUTS,
125  OPEN_DOT1AS_ANNOUNCE_RX_DISCARDS,
126  OPEN_DOT1AS_PDELAY_RX_TIMEOUTS,
127  OPEN_DOT1AS_PDELAY_RX_DISCARDS,
128  OPEN_DOT1AS_BAD_HEADER_COUNT,
129  OPEN_DOT1AS_PTP_DISCARD_COUNT,
130  OPEN_DOT1AS_PDELAY_LOST_RESP_EXCEEDED,
131  OPEN_DOT1AS_COUNTER_LAST
132 
133 } OPEN_DOT1AS_COUNTER_TYPE_t;
134 
136 typedef enum
137 {
138  OPEN_DOT1AS_GM_CHANGE_EVENT,
139  OPEN_DOT1AS_GM_PHASE_CHANGE_EVENT,
140  OPEN_DOT1AS_GM_FREQ_CHANGE_EVENT,
141 } OPEN_DOT1AS_GM_EVENT_TYPE_t;
142 
143 /*************************************************************************/
161  OPEN_CONTROL_t *adminMode);
162 
163 /*************************************************************************/
181  OPEN_CONTROL_t adminMode);
182 
183 /*************************************************************************/
199 
200 /*************************************************************************/
216 
217 /*************************************************************************/
233  OPEN_DOT1AS_CLOCK_IDENTITY_t *bestClockId);
234 
235 /*************************************************************************/
252  OPEN_DOT1AS_CLOCK_PRIORITY_t clockPriorityType,
253  uint8_t *clockPriority);
254 
255 /*************************************************************************/
271  uint16_t *bestClkSteps);
272 
273 /*************************************************************************/
289  OPEN_DOT1AS_CLOCK_IDENTITY_t *bridgeClkId);
290 
291 /*************************************************************************/
309  OPEN_DOT1AS_CLOCK_PRIORITY_t clockPriorityType,
310  uint32_t *clockPriority);
311 
312 /*************************************************************************/
330  OPEN_DOT1AS_CLOCK_PRIORITY_t clockPriorityType,
331  uint32_t clockPriority);
332 
333 /*************************************************************************/
349 open_error_t openapiDot1asGrandmasterChangeCountGet(openapiClientHandle_t *client_handle, uint32_t *gmChangeCount);
350 
351 /*************************************************************************/
371  OPEN_DOT1AS_GM_EVENT_TYPE_t gmEventType,
372  uint32_t *timeStamp);
373 
374 /*************************************************************************/
393  uint32_t intfNum,
394  OPEN_CONTROL_t *adminMode);
395 
396 /*************************************************************************/
415  uint32_t intfNum,
416  OPEN_CONTROL_t adminMode);
417 
418 /*************************************************************************/
436  uint32_t intfNum,
437  OPEN_BOOL_t *isCapable);
438 
439 /*************************************************************************/
458  uint32_t intfNum,
459  OPEN_BOOL_t *isMeasuringPdelay);
460 
461 /*************************************************************************/
478  uint32_t intfNum, uint32_t *pDelay);
479 
480 /*************************************************************************/
497  uint32_t intfNum,
498  OPEN_DOT1AS_PORT_ROLE_t *intfRole);
499 
500 /*************************************************************************/
516 open_error_t openapiDot1asIntfPdelayThresholdGet(openapiClientHandle_t *client_handle, uint32_t intfNum, uint32_t *threshold);
517 
518 /*************************************************************************/
534 open_error_t openapiDot1asIntfPdelayThresholdSet(openapiClientHandle_t *client_handle, uint32_t intfNum, uint32_t threshold);
535 
536 /*************************************************************************/
554 open_error_t openapiDot1asIntfAllowedLostRespGet(openapiClientHandle_t *client_handle, uint32_t intfNum, uint32_t *numAllowedLostResp);
555 
556 /*************************************************************************/
574 open_error_t openapiDot1asIntfAllowedLostRespSet(openapiClientHandle_t *client_handle, uint32_t intfNum, uint32_t numAllowedLostResp);
575 
576 /*************************************************************************/
594  uint32_t intfNum,
595  uint32_t *rateRatio);
596 
597 /*************************************************************************/
616 open_error_t openapiDot1asIntfIntervalGet(openapiClientHandle_t *client_handle, uint32_t intfNum, OPEN_DOT1AS_INTF_INTERVAL_t intervalType, int32_t *interval);
617 
618 /*************************************************************************/
634 open_error_t openapiDot1asIntfIntervalSet(openapiClientHandle_t *client_handle, uint32_t intfNum, OPEN_DOT1AS_INTF_INTERVAL_t intervalType, int32_t interval);
635 
636 /*************************************************************************/
657  uint32_t intfNum,
658  OPEN_DOT1AS_COUNTER_TYPE_t CounterType,
659  uint32_t *counterValue);
660 
661 /*************************************************************************/
677  uint32_t intfNum);
678 
679 
680 #endif /* OPENAPI_DOT1AS_H_INCLUDED */
681