OpenFlow Data Plane Abstraction (OF-DPA) API Guide and Reference Manual
ofdpa_api.h
Go to the documentation of this file.
1 
8 /*********************************************************************
9 *
10 * (C) Copyright Broadcom Corporation 2003-2015
11 *
12 * Licensed under the Apache License, Version 2.0 (the "License");
13 * you may not use this file except in compliance with the License.
14 * You may obtain a copy of the License at
15 *
16 * http://www.apache.org/licenses/LICENSE-2.0
17 *
18 * Unless required by applicable law or agreed to in writing, software
19 * distributed under the License is distributed on an "AS IS" BASIS,
20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 * See the License for the specific language governing permissions and
22 * limitations under the License.
23 *
24 **********************************************************************
25 *
26 * @filename ofdpa_api.h
27 *
28 * @purpose OF-DPA API header
29 *
30 * @component OF-DPA
31 *
32 * @note none
33 *
34 * @create 03/22/2013
35 *
36 * @end
37 *
38 **********************************************************************/
39 #ifndef INCLUDE_OFDPA_API_H
40 #define INCLUDE_OFDPA_API_H
41 
42 #include <stdint.h>
43 #include <sys/time.h>
44 #include <netinet/in.h>
45 #include "ofdpa_datatypes.h"
46 
47 /*
48  * All clients must register first.
49  */
50 /*****************************************************************/
63 OFDPA_ERROR_t ofdpaClientInitialize(char *clientName);
64 
65 /*****************************************************************/
75 OFDPA_ERROR_t ofdpaFeatureSupported(OFDPA_FEATURE_t feature);
76 
77 /*
78  * Debugging and Logging definitions
79  */
80 
81 /*****************************************************************/
92 int ofdpaCltLogPrintf(int priority, char *fmt, ...);
93 
94 /*****************************************************************/
104 int ofdpaCltLogBuf(int priority, ofdpa_buffdesc message);
105 
106 /*****************************************************************/
119 int ofdpaCltDebugPrintf(const char *functionName, ofdpaComponentIds_t component, ofdpaDebugLevels_t verbosity, const char *format, ...);
120 
121 /*****************************************************************/
133 int ofdpaCltDebugBuf(ofdpa_buffdesc functionName, ofdpaComponentIds_t component, ofdpaDebugLevels_t verbosity, ofdpa_buffdesc message);
134 
135 /* Flow Tables.
136 */
137 
138 /*****************************************************************/
152 
153 /*****************************************************************/
164 
165 /*****************************************************************/
180 
181 /*****************************************************************/
193 
194 /*****************************************************************/
207 
208 /*****************************************************************/
228 
229 /*****************************************************************/
241 
242 /*****************************************************************/
256 
257 /*****************************************************************/
267 OFDPA_ERROR_t ofdpaFlowByCookieDelete(uint64_t cookie);
268 
269 /*------------------------------------------------------------------------------------*/
270 /* group table APIs */
271 
272 /*
273  The Group Table contains one entry for each Group. The table is indexed
274  by the groupId which identifies the group entry. Data is encoded into the groupId to specify the OF-DPA
275  group entry type and information required by OF-DPA to configure the datapath.
276 
277  The groupId encoding method is:
278 
279  L2 Interface, L2 Rewrite types:
280  (MSB to LSB) 4 bits encode the Group Table Entry type |12 bits of VLAN ID | 16 bits of port identifier
281 
282  L2 Multicast, L2 Flood, L3 Multicast, and L3 Interface types:
283  (MSB to LSB) 4 bits encode the Group Table Entry type |12 bits of VLAN ID | 16 bits of index
284 
285  L3 Unicast and L3 ECMP types:
286  (MSB to LSB) 4 bits encode the Group Table Entry type | 28 bits of index
287 
288 */
289 
290 /* APIs for getting/setting group IDs -- set APIs must set the type first. */
291 
292 /*****************************************************************/
303 OFDPA_ERROR_t ofdpaGroupTypeGet(uint32_t groupId, uint32_t *type);
304 
305 /*****************************************************************/
318 OFDPA_ERROR_t ofdpaGroupVlanGet(uint32_t groupId, uint32_t *vlanId);
319 
320 /*****************************************************************/
332 OFDPA_ERROR_t ofdpaGroupPortIdGet(uint32_t groupId, uint32_t *portId);
333 
334 /*****************************************************************/
346 OFDPA_ERROR_t ofdpaGroupIndexGet(uint32_t groupId, uint32_t *index);
347 
348 /*****************************************************************/
359 OFDPA_ERROR_t ofdpaGroupTypeSet(uint32_t *groupId, uint32_t type);
360 
361 /*****************************************************************/
374 OFDPA_ERROR_t ofdpaGroupVlanSet(uint32_t *groupId, uint32_t vlanId);
375 
376 /*****************************************************************/
388 OFDPA_ERROR_t ofdpaGroupOverlayTunnelIdGet(uint32_t groupId, uint32_t *tunnelId);
389 
390 /*****************************************************************/
402 OFDPA_ERROR_t ofdpaGroupOverlayTunnelIdSet(uint32_t *groupId, uint32_t tunnelId);
403 
404 /*****************************************************************/
417 
418 /*****************************************************************/
431 
432 /*****************************************************************/
444 OFDPA_ERROR_t ofdpaGroupOverlayIndexGet(uint32_t groupId, uint32_t *index);
445 
446 /*****************************************************************/
458 OFDPA_ERROR_t ofdpaGroupOverlayIndexSet(uint32_t *groupId, uint32_t index);
459 
460 /*****************************************************************/
472 OFDPA_ERROR_t ofdpaGroupMplsL2TunnelIdGet(uint32_t groupId, uint32_t *tunnelId);
473 
474 /*****************************************************************/
486 OFDPA_ERROR_t ofdpaGroupMplsL2TunnelIdSet(uint32_t *groupId, uint32_t tunnelId);
487 
488 /*****************************************************************/
501 OFDPA_ERROR_t ofdpaGroupMplsSubTypeGet(uint32_t groupId, uint32_t *subType);
502 
503 /*****************************************************************/
516 OFDPA_ERROR_t ofdpaGroupMplsSubTypeSet(uint32_t *groupId, uint32_t subType);
517 
518 /*****************************************************************/
530 OFDPA_ERROR_t ofdpaGroupPortIdSet(uint32_t *groupId, uint32_t portId);
531 
532 /*****************************************************************/
544 OFDPA_ERROR_t ofdpaGroupIndexSet(uint32_t *groupId, uint32_t index);
545 
546 /*****************************************************************/
559 OFDPA_ERROR_t ofdpaGroupDecode(uint32_t groupId, char *outBuf, int bufSize);
560 
561 /*****************************************************************/
575 OFDPA_ERROR_t ofdpaGroupBucketEntryDecode(ofdpaGroupBucketEntry_t *bucketEntry, char *outBuf, int bufSize);
576 
577 /*****************************************************************/
589 const char *ofdpaQosColorDecode(OFDPA_QOS_COLORS_t color);
590 
591 /*****************************************************************/
603 const char *ofdpaFlowTableNameGet(OFDPA_FLOW_TABLE_ID_t tableId);
604 
605 /*****************************************************************/
618 OFDPA_ERROR_t ofdpaFlowEntryDecode(ofdpaFlowEntry_t *flow, char *outBuf, int bufSize);
619 
620 /*****************************************************************/
635 
636 /*****************************************************************/
647 OFDPA_ERROR_t ofdpaGroupDelete(uint32_t groupId);
648 
649 /*****************************************************************/
660 OFDPA_ERROR_t ofdpaGroupNextGet(uint32_t groupId, ofdpaGroupEntry_t *nextGroup);
661 
662 /*****************************************************************/
674 OFDPA_ERROR_t ofdpaGroupTypeNextGet(uint32_t groupId,
675  OFDPA_GROUP_ENTRY_TYPE_t groupType,
676  ofdpaGroupEntry_t *nextGroup);
677 
678 /*****************************************************************/
689 OFDPA_ERROR_t ofdpaGroupStatsGet(uint32_t groupId, ofdpaGroupEntryStats_t *groupStats);
690 
691 /*
692  Group Table entries contain one or more Action Buckets depending on their type.
693  The Group Bucket Table stores these references. It is indexed by groupId and referenceGroupId. The presence
694  of an entry in this table creates a referral by the Group Table entry specified in groupId to the Group Table
695  entry specified in referenceGroupId. Restrictions on the number of references and the allowable type of the
696  referenced Group Table entries varies by entry type.
697 */
698 
699 /*****************************************************************/
717 
718 /*****************************************************************/
732 OFDPA_ERROR_t ofdpaGroupBucketEntryDelete(uint32_t groupId, uint32_t bucketIndex);
733 
734 /*****************************************************************/
746 OFDPA_ERROR_t ofdpaGroupBucketsDeleteAll(uint32_t groupId);
747 
748 /*****************************************************************/
760 OFDPA_ERROR_t ofdpaGroupBucketEntryGet(uint32_t groupId, uint32_t bucketIndex,
761  ofdpaGroupBucketEntry_t *groupBucket);
762 
763 /*****************************************************************/
775  ofdpaGroupBucketEntry_t *firstGroupBucket);
776 
777 /*****************************************************************/
789 OFDPA_ERROR_t ofdpaGroupBucketEntryNextGet(uint32_t groupId, uint32_t bucketIndex,
790  ofdpaGroupBucketEntry_t *nextBucketEntry);
791 
792 /*****************************************************************/
805 
806 /*****************************************************************/
816 
817 /*****************************************************************/
829 
830 /*****************************************************************/
839 void ofdpaPortTypeGet(uint32_t portNum, uint32_t *type);
840 
841 /*****************************************************************/
850 void ofdpaPortTypeSet(uint32_t *portNum, uint32_t type);
851 
852 /*****************************************************************/
861 void ofdpaPortIndexGet(uint32_t portNum, uint32_t *index);
862 
863 /*****************************************************************/
872 void ofdpaPortIndexSet(uint32_t *portNum, uint32_t index);
873 
874 /*****************************************************************/
885 OFDPA_ERROR_t ofdpaPortNextGet(uint32_t portNum, uint32_t *nextPortNum);
886 
887 /*****************************************************************/
898 OFDPA_ERROR_t ofdpaPortMacGet(uint32_t portNum, ofdpaMacAddr_t *mac);
899 
900 /*****************************************************************/
915 OFDPA_ERROR_t ofdpaPortNameGet(uint32_t portNum, ofdpa_buffdesc *name);
916 
917 /*****************************************************************/
928 OFDPA_ERROR_t ofdpaPortStateGet(uint32_t portNum, uint32_t *state);
929 
930 /*****************************************************************/
941 OFDPA_ERROR_t ofdpaPortConfigSet(uint32_t portNum, OFDPA_PORT_CONFIG_t config);
942 
943 /*****************************************************************/
954 OFDPA_ERROR_t ofdpaPortConfigGet(uint32_t portNum, uint32_t *config);
955 
956 /*****************************************************************/
967 OFDPA_ERROR_t ofdpaPortMaxSpeedGet(uint32_t portNum, uint32_t *maxSpeed);
968 
969 /*****************************************************************/
980 OFDPA_ERROR_t ofdpaPortCurrSpeedGet(uint32_t portNum, uint32_t *currSpeed);
981 
982 /*****************************************************************/
993 OFDPA_ERROR_t ofdpaPortFeatureGet(uint32_t portNum, ofdpaPortFeature_t *feature);
994 
995 /*****************************************************************/
1006 OFDPA_ERROR_t ofdpaPortAdvertiseFeatureSet(uint32_t portNum, uint32_t advertise);
1007 
1008 /*****************************************************************/
1019 OFDPA_ERROR_t ofdpaPortStatsClear(uint32_t portNum);
1020 
1021 /*****************************************************************/
1040 OFDPA_ERROR_t ofdpaPortStatsGet(uint32_t portNum, ofdpaPortStats_t *stats);
1041 
1042 /*****************************************************************/
1051 void ofdpaMplsL2PortTypeGet(uint32_t portNum, uint32_t *type);
1052 
1053 /*****************************************************************/
1062 void ofdpaMplsL2PortTypeSet(uint32_t *portNum, uint32_t type);
1063 
1064 /*****************************************************************/
1073 void ofdpaMplsL2PortIndexGet(uint32_t portNum, uint32_t *index);
1074 
1075 /*****************************************************************/
1084 void ofdpaMplsL2PortIndexSet(uint32_t *portNum, uint32_t index);
1085 
1086 /*****************************************************************/
1095 void ofdpaTunnelIdTypeGet(uint32_t tunnelId, uint32_t *type);
1096 
1097 /*****************************************************************/
1106 void ofdpaTunnelIdIndexGet(uint32_t tunnelId, uint32_t *index);
1107 
1108 /*****************************************************************/
1117 void ofdpaTunnelIdTypeSet(uint32_t *tunnelId, uint32_t type);
1118 
1119 /*****************************************************************/
1128 void ofdpaTunnelIdIndexSet(uint32_t *tunnelId, uint32_t index);
1129 
1130 /*****************************************************************/
1146 
1147 /*****************************************************************/
1158 OFDPA_ERROR_t ofdpaTunnelPortDelete(uint32_t portNum);
1159 
1160 /*****************************************************************/
1178 OFDPA_ERROR_t ofdpaTunnelPortGet(uint32_t portNum,
1179  ofdpaTunnelPortConfig_t *config,
1180  ofdpaTunnelPortStatus_t *status);
1181 
1182 /*****************************************************************/
1193 OFDPA_ERROR_t ofdpaTunnelPortNextGet(uint32_t portNum, uint32_t *nextPortNum);
1194 
1195 /*****************************************************************/
1212 OFDPA_ERROR_t ofdpaTunnelPortTenantAdd(uint32_t portNum, uint32_t tunnelId);
1213 
1214 /*****************************************************************/
1225 OFDPA_ERROR_t ofdpaTunnelPortTenantDelete(uint32_t portNum, uint32_t tunnelId);
1226 
1227 /*****************************************************************/
1245 OFDPA_ERROR_t ofdpaTunnelPortTenantGet(uint32_t portNum, uint32_t tunnelId, ofdpaTunnelPortTenantStatus_t *status);
1246 
1247 /*****************************************************************/
1261 OFDPA_ERROR_t ofdpaTunnelPortTenantNextGet(uint32_t portNum, uint32_t tunnelId, uint32_t *nextTunnelId);
1262 
1263 /*****************************************************************/
1279 
1280 /*****************************************************************/
1293 OFDPA_ERROR_t ofdpaTunnelTenantDelete(uint32_t tunnelId);
1294 
1295 /*****************************************************************/
1313 OFDPA_ERROR_t ofdpaTunnelTenantGet(uint32_t tunnelId,
1314  ofdpaTunnelTenantConfig_t *config,
1315  ofdpaTunnelTenantStatus_t *status);
1316 
1317 /*****************************************************************/
1328 OFDPA_ERROR_t ofdpaTunnelTenantNextGet(uint32_t tunnelId, uint32_t *nextTunnelId);
1329 
1330 /*****************************************************************/
1345 
1346 /*****************************************************************/
1359 OFDPA_ERROR_t ofdpaTunnelNextHopDelete(uint32_t nextHopId);
1360 
1361 /*****************************************************************/
1381 
1382 /*****************************************************************/
1400 OFDPA_ERROR_t ofdpaTunnelNextHopGet(uint32_t nextHopId,
1402  ofdpaTunnelNextHopStatus_t *status);
1403 
1404 /*****************************************************************/
1415 OFDPA_ERROR_t ofdpaTunnelNextHopNextGet(uint32_t nextHopId, uint32_t *nextNextHopId);
1416 
1417 /*****************************************************************/
1432 
1433 /*****************************************************************/
1446 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupDelete(uint32_t ecmpNextHopGroupId);
1447 
1448 /*****************************************************************/
1466 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupGet(uint32_t ecmpNextHopGroupId,
1469 
1470 /*****************************************************************/
1481 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupNextGet(uint32_t ecmpNextHopGroupId, uint32_t *nextEcmpNextHopGroupId);
1482 
1483 /*****************************************************************/
1494 
1495 /*****************************************************************/
1512 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupMemberAdd(uint32_t ecmpNextHopGroupId, uint32_t nextHopId);
1513 
1514 /*****************************************************************/
1526 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupMemberDelete(uint32_t ecmpNextHopGroupId, uint32_t nextHopId);
1527 
1528 /*****************************************************************/
1538 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupMemberGet(uint32_t ecmpNextHopListGroupId, uint32_t nextHopId);
1539 
1540 /*****************************************************************/
1552 OFDPA_ERROR_t ofdpaTunnelEcmpNextHopGroupMemberNextGet(uint32_t ecmpNextHopListGroupId, uint32_t nextHopId, uint32_t *nextNextHopId);
1553 
1554 /*****************************************************************/
1580 OFDPA_ERROR_t ofdpaPktSend(ofdpa_buffdesc *pkt, uint32_t flags, uint32_t outPortNum, uint32_t inPortNum);
1581 
1582 /*****************************************************************/
1592 OFDPA_ERROR_t ofdpaMaxPktSizeGet(uint32_t *pktSize);
1593 
1594 /*------------------------------------------------------------------------------------*/
1595 /* Event APIs */
1596 
1597 /*
1598  Asynchronous events: Have classified them into two broad category:
1599  Packet In : Packet received from the hardware to be sent to the controller
1600  Control messages: Events like Port creation, deletion, link state, Flow age and Error
1601 
1602  The packet In events can have a high frequency, so we want to ensure that there is
1603  separate control for polling of these two event types to give flexibility to the agent
1604 */
1605 
1606 /*****************************************************************/
1621 
1622 /*****************************************************************/
1629 int ofdpaClientEventSockFdGet(void);
1630 
1631 /*****************************************************************/
1646 
1647 /*****************************************************************/
1654 int ofdpaClientPktSockFdGet(void);
1655 
1656 /*****************************************************************/
1688 OFDPA_ERROR_t ofdpaPktReceive(struct timeval *timeout, ofdpaPacket_t *pkt);
1689 
1690 
1691 /*****************************************************************/
1702 OFDPA_ERROR_t ofdpaEventReceive(struct timeval *timeout);
1703 
1704 /*****************************************************************/
1718 
1719 /*****************************************************************/
1732 
1733 /*****************************************************************/
1747 
1748 /*****************************************************************/
1759 
1760 /*------------------------------------------------------------------------------------*/
1761 /* Table APIs */
1762 
1763 /* Get information for a given table Id */
1764 
1765 /*****************************************************************/
1777 
1778 /*------------------------------------------------------------------------------------*/
1779 /* Queue APIs */
1780 
1781 /*****************************************************************/
1794 OFDPA_ERROR_t ofdpaNumQueuesGet(uint32_t portNum, uint32_t *numQueues);
1795 
1796 /*****************************************************************/
1810 OFDPA_ERROR_t ofdpaQueueStatsGet(uint32_t portNum, uint32_t queueId, ofdpaPortQueueStats_t *stats);
1811 
1812 /*****************************************************************/
1825 OFDPA_ERROR_t ofdpaQueueStatsClear(uint32_t portNum, uint32_t queueId);
1826 
1827 /*****************************************************************/
1843 OFDPA_ERROR_t ofdpaQueueRateSet(uint32_t portNum, uint32_t queueId, uint32_t minRate, uint32_t maxRate);
1844 
1845 /*****************************************************************/
1861 OFDPA_ERROR_t ofdpaQueueRateGet(uint32_t portNum, uint32_t queueId, uint32_t *minRate, uint32_t *maxRate);
1862 
1863 /*------------------------------------------------------------------------------------*/
1864 /* Vendor Extension APIs */
1865 
1866 /*****************************************************************/
1884 
1885 /*****************************************************************/
1900 
1901 /*****************************************************************/
1912 
1913 /*****************************************************************/
1924 
1925 /*****************************************************************/
1938 OFDPA_ERROR_t ofdpaMeterAdd(uint32_t meterId, ofdpaMeterEntry_t *meter);
1939 
1940 /*****************************************************************/
1951 OFDPA_ERROR_t ofdpaMeterDelete(uint32_t meterId);
1952 
1953 /*****************************************************************/
1964 OFDPA_ERROR_t ofdpaMeterGet(uint32_t meterId, ofdpaMeterEntry_t *meter);
1965 
1966 /*****************************************************************/
1977 OFDPA_ERROR_t ofdpaMeterNextGet(uint32_t meterId, uint32_t *nextMeterId);
1978 
1979 /*****************************************************************/
1990 OFDPA_ERROR_t ofdpaMeterStatsGet(uint32_t meterId, ofdpaMeterEntryStats_t *meterStats);
1991 
1992 /*****************************************************************/
2001 
2002 /*****************************************************************/
2016 OFDPA_ERROR_t ofdpaOamMegCreate(uint32_t megIndex, ofdpaOamMegConfig_t *config);
2017 
2018 /*****************************************************************/
2029 OFDPA_ERROR_t ofdpaOamMegDelete(uint32_t megIndex);
2030 
2031 /*****************************************************************/
2049 OFDPA_ERROR_t ofdpaOamMegGet(uint32_t megIndex,
2050  ofdpaOamMegConfig_t *config,
2051  ofdpaOamMegStatus_t *status);
2052 
2053 /*****************************************************************/
2065 OFDPA_ERROR_t ofdpaOamMegNextGet(uint32_t megIndex, uint32_t *nextMegIndex);
2066 
2067 /*****************************************************************/
2081 OFDPA_ERROR_t ofdpaOamMepCreate(uint32_t lmepId, ofdpaOamMepConfig_t *config);
2082 
2083 /*****************************************************************/
2094 OFDPA_ERROR_t ofdpaOamMepDelete(uint32_t lmepId);
2095 
2096 /*****************************************************************/
2114 OFDPA_ERROR_t ofdpaOamMepGet(uint32_t lmepId,
2115  ofdpaOamMepConfig_t *config,
2116  ofdpaOamMepStatus_t *status);
2117 
2118 /*****************************************************************/
2130 OFDPA_ERROR_t ofdpaOamMepNextGet(uint32_t lmepId, uint32_t *nextLmepId);
2131 
2132 /*****************************************************************/
2146 OFDPA_ERROR_t ofdpaOamMipCreate(uint32_t localMpId, ofdpaOamMipConfig_t *config);
2147 
2148 /*****************************************************************/
2159 OFDPA_ERROR_t ofdpaOamMipDelete(uint32_t localMpId);
2160 
2161 /*****************************************************************/
2179 OFDPA_ERROR_t ofdpaOamMipGet(uint32_t localMpId,
2180  ofdpaOamMipConfig_t *config,
2181  ofdpaOamMipStatus_t *status);
2182 
2183 /*****************************************************************/
2194 OFDPA_ERROR_t ofdpaOamMipNextGet(uint32_t localMpId, uint32_t *nextLocalMpId);
2195 
2196 /*****************************************************************/
2210 OFDPA_ERROR_t ofdpaOamRemoteMpCreate(uint32_t remoteMpId, ofdpaOamRemoteMpConfig_t *config);
2211 
2212 /*****************************************************************/
2223 OFDPA_ERROR_t ofdpaOamRemoteMpDelete(uint32_t remoteMpId);
2224 
2225 /*****************************************************************/
2236 OFDPA_ERROR_t ofdpaOamRemoteMpGet(uint32_t remoteMpId,
2237  ofdpaOamRemoteMpConfig_t *config);
2238 
2239 /*****************************************************************/
2250 OFDPA_ERROR_t ofdpaOamRemoteMpNextGet(uint32_t remoteMpId,
2251  uint32_t *nextRemoteMpId);
2252 
2253 /*****************************************************************/
2272  uint32_t remoteMepId,
2273  ofdpaOamCcmDatabaseEntry_t *dbEntry);
2274 
2275 /*****************************************************************/
2288  uint32_t remoteMepId,
2289  uint32_t *nextRemoteMepId);
2290 
2291 /*****************************************************************/
2308 OFDPA_ERROR_t ofdpaOamMepLtrEntryGet(uint32_t lmepId,
2309  uint32_t index,
2310  ofdpaOamLtrEntry_t *ltrEntry);
2311 
2312 /*****************************************************************/
2325  uint32_t index,
2326  uint32_t *nextIndex);
2327 
2328 /*****************************************************************/
2338 OFDPA_ERROR_t ofdpaOamOnDemandLmStart(uint32_t lmepId,
2339  ofdpaOamOdLmConfig_t *config);
2340 
2341 /*****************************************************************/
2351 OFDPA_ERROR_t ofdpaOamOnDemandDmStart(uint32_t lmepId,
2352  ofdpaOamOdDmConfig_t *config);
2353 
2354 /*****************************************************************/
2366 
2367 /*****************************************************************/
2377 OFDPA_ERROR_t ofdpaOamMLPGroupDelete(uint32_t index);
2378 
2379 /*****************************************************************/
2397 OFDPA_ERROR_t ofdpaOamMLPGroupGet(uint32_t index,
2398  ofdpaOamMLPGroupConfig_t *config,
2399  ofdpaOamMLPGroupStatus_t *status);
2400 
2401 /*****************************************************************/
2413 OFDPA_ERROR_t ofdpaOamMLPGroupNextGet(uint32_t index, uint32_t *nextIndex);
2414 
2415 /*****************************************************************/
2426 OFDPA_ERROR_t ofdpaOamMLPGroupRequest(uint32_t index, OFDPA_PROTECTION_SWITCH_REQUEST_TYPE_t request);
2427 
2428 /*****************************************************************/
2442 OFDPA_ERROR_t ofdpaOamMepProtectionAdd(uint32_t mlpGroupIndex, uint32_t lmepId);
2443 
2444 /*****************************************************************/
2455 OFDPA_ERROR_t ofdpaOamMepProtectionRemove(uint32_t mlpGroupIndex, uint32_t lmepId);
2456 
2457 /*****************************************************************/
2467 OFDPA_ERROR_t ofdpaOamMepProtectionGet(uint32_t mlpGroupIndex, uint32_t lmepId);
2468 
2469 /*****************************************************************/
2482 OFDPA_ERROR_t ofdpaOamMepProtectionNextGet(uint32_t mlpGroupIndex, uint32_t lmepId, uint32_t *nextLmepId);
2483 
2484 /*****************************************************************/
2497 
2498 /*****************************************************************/
2510 
2511 /*****************************************************************/
2523 OFDPA_ERROR_t ofdpaMplsQosActionEntryGet(uint8_t qosIndex, uint8_t mpls_tc, ofdpaMplsQosEntry_t *mplsQosEntry);
2524 
2525 /*****************************************************************/
2544 
2545 /*****************************************************************/
2554 
2555 /*****************************************************************/
2568 
2569 /*****************************************************************/
2580 OFDPA_ERROR_t ofdpaDropStatusDelete(uint32_t lmepId);
2581 
2582 /*****************************************************************/
2593 OFDPA_ERROR_t ofdpaDropStatusGet(uint32_t lmepId, ofdpaDropStatusEntry_t *dropEntry);
2594 
2595 /*****************************************************************/
2606 OFDPA_ERROR_t ofdpaDropStatusNextGet(uint32_t lmepId, ofdpaDropStatusEntry_t *nextDropEntry);
2607 
2608 /*****************************************************************/
2619 OFDPA_ERROR_t ofdpaDropStatusActionGet(uint32_t lmepId, uint8_t *dropAction);
2620 
2621 /*****************************************************************/
2630 
2631 /*****************************************************************/
2644 OFDPA_ERROR_t ofdpaOamDataCounterAdd(uint32_t lmepId, uint8_t trafficClass);
2645 
2646 /*****************************************************************/
2658 OFDPA_ERROR_t ofdpaOamDataCounterDelete(uint32_t lmepId, uint8_t trafficClass);
2659 
2660 /*****************************************************************/
2672 OFDPA_ERROR_t ofdpaOamDataCounterStatusGet(uint32_t lmepId, uint8_t trafficClass, ofdpaOamDataCounterStatus_t *status);
2673 
2674 /*****************************************************************/
2686 /*****************************************************************/
2699  ofdpaOamDataCounterStatus_t *status);
2700 
2701 /*****************************************************************/
2712 OFDPA_ERROR_t ofdpaOamDataCountersLMGet(ofdpaOamDataCounterIndex_t index, uint32_t *TxFCl, uint32_t *RxFCl);
2713 
2714 /*****************************************************************/
2724 
2725 /*****************************************************************/
2738 
2739 /*****************************************************************/
2751 
2752 /*****************************************************************/
2763 
2764 /*****************************************************************/
2783 
2784 /* Development utility APIs */
2785 /*****************************************************************/
2793 int ofdpaDebugLvl(int lvl);
2794 
2795 /*****************************************************************/
2802 int ofdpaDebugLvlGet(void);
2803 
2804 /*****************************************************************/
2814 OFDPA_ERROR_t ofdpaComponentNameGet(int component, ofdpa_buffdesc *name);
2815 
2816 /*****************************************************************/
2826 int ofdpaDebugComponentSet(int component, int enable);
2827 
2828 /*****************************************************************/
2836 int ofdpaDebugComponentGet(int component);
2837 
2838 /*****************************************************************/
2847 int ofdpaBcmCommand(ofdpa_buffdesc buffer);
2848 
2849 OFDPA_ERROR_t ofdpaDevshellCommand(ofdpa_buffdesc buffer);
2850 
2851 /*****************************************************************/
2865 OFDPA_ERROR_t ofdpaOamLbCreate(uint32_t lmepId, ofdpaOamLbConfig_t *config);
2866 
2867 /*****************************************************************/
2877 OFDPA_ERROR_t ofdpaOamLbStart(uint32_t lmepId);
2878 
2879 /*****************************************************************/
2889 OFDPA_ERROR_t ofdpaOamLbStop(uint32_t lmepId);
2890 
2891 /*****************************************************************/
2903 OFDPA_ERROR_t ofdpaOamLbGet(uint32_t lmepId, ofdpaOamLbConfig_t *config, ofdpaOamLbStatus_t *status);
2904 
2905 /*****************************************************************/
2920 OFDPA_ERROR_t ofdpaOamProLmCreate(uint32_t lmepId, ofdpaOamProLmConfig_t *config);
2921 
2922 /*****************************************************************/
2934 OFDPA_ERROR_t ofdpaOamProLmDelete(uint32_t lmepId);
2935 
2936 /*****************************************************************/
2955 OFDPA_ERROR_t ofdpaOamProLmGet(uint32_t lmepId, ofdpaOamProLmConfig_t *config,
2956  ofdpaOamProLmStatus_t *status);
2957 
2958 /*****************************************************************/
2970 
2971 /*****************************************************************/
2986 OFDPA_ERROR_t ofdpaOamProDmCreate(uint32_t lmepId, ofdpaOamProDmConfig_t *config);
2987 
2988 /*****************************************************************/
3000 OFDPA_ERROR_t ofdpaOamProDmDelete(uint32_t lmepId);
3001 
3002 /*****************************************************************/
3021 OFDPA_ERROR_t ofdpaOamProDmGet(uint32_t lmepId, ofdpaOamProDmConfig_t *config,
3022  ofdpaOamProDmStatus_t *status);
3023 
3024 /*****************************************************************/
3036 
3037 /*****************************************************************/
3052 OFDPA_ERROR_t ofdpaOamOdLmCreate(uint32_t lmepId, ofdpaOamOdLmConfig_t *config);
3053 
3054 /*****************************************************************/
3066 OFDPA_ERROR_t ofdpaOamOdLmDelete(uint32_t lmepId);
3067 
3068 /*****************************************************************/
3087 OFDPA_ERROR_t ofdpaOamOdLmGet(uint32_t lmepId, ofdpaOamOdLmConfig_t *config,
3088  ofdpaOamOdLmStatus_t *status);
3089 
3090 /*****************************************************************/
3102 
3103 /*****************************************************************/
3118 OFDPA_ERROR_t ofdpaOamOdDmCreate(uint32_t lmepId, ofdpaOamOdDmConfig_t *config);
3119 
3120 /*****************************************************************/
3132 OFDPA_ERROR_t ofdpaOamOdDmDelete(uint32_t lmepId);
3133 
3134 /*****************************************************************/
3152 OFDPA_ERROR_t ofdpaOamOdDmGet(uint32_t lmepId, ofdpaOamOdDmConfig_t *config,
3153  ofdpaOamOdDmStatus_t *status);
3154 
3155 /*****************************************************************/
3167 
3168 /*****************************************************************/
3179 OFDPA_ERROR_t ofdpaOamOdLmStart(uint32_t lmepId);
3180 
3181 /*****************************************************************/
3192 OFDPA_ERROR_t ofdpaOamOdLmStop(uint32_t lmepId);
3193 
3194 /*****************************************************************/
3205 OFDPA_ERROR_t ofdpaOamOdDmStart(uint32_t lmepId);
3206 
3207 /*****************************************************************/
3218 OFDPA_ERROR_t ofdpaOamOdDmStop(uint32_t lmepId);
3219 
3220 /*****************************************************************/
3231 OFDPA_ERROR_t ofdpaOamProDmStart(uint32_t lmepId);
3232 
3233 /*****************************************************************/
3244 OFDPA_ERROR_t ofdpaOamProDmStop(uint32_t lmepId);
3245 
3246 /*****************************************************************/
3257 OFDPA_ERROR_t ofdpaOamProLmEnable(uint32_t lmepId);
3258 
3259 /*****************************************************************/
3270 OFDPA_ERROR_t ofdpaOamProLmDisable(uint32_t lmepId);
3271 
3272 /*****************************************************************/
3286 OFDPA_ERROR_t ofdpaOamLtStart(uint32_t lmepId, ofdpaOamLtConfig_t *config);
3287 
3288 /*****************************************************************/
3305 OFDPA_ERROR_t ofdpaOamLtGet(uint32_t lmepId, ofdpaOamLtConfig_t *config, ofdpaOamLtStatus_t *status);
3306 
3307 /*****************************************************************/
3321 OFDPA_ERROR_t ofdpaOamLtResultNextGet(uint32_t lmepId, uint32_t sequenceNum, uint32_t receiveOrder, ofdpaOamLtrEntry_t *ltResult);
3322 
3323 /*****************************************************************/
3335 OFDPA_ERROR_t ofdpaOamCsfEnable(uint32_t lmepId, ofdpaOamCsfConfig_t *config);
3336 
3337 /*****************************************************************/
3348 OFDPA_ERROR_t ofdpaOamCsfDisable(uint32_t lmepId);
3349 
3350 /*****************************************************************/
3362 OFDPA_ERROR_t ofdpaOamAisEnable(uint32_t lmepId, ofdpaOamAisConfig_t *config);
3363 
3364 /*****************************************************************/
3375 OFDPA_ERROR_t ofdpaOamAisDisable(uint32_t lmepId);
3376 
3377 /*****************************************************************/
3389 OFDPA_ERROR_t ofdpaOamAisConfigGet(uint32_t lmepId, ofdpaOamAisConfig_t *config);
3390 
3391 /*****************************************************************/
3403 OFDPA_ERROR_t ofdpaOamLckEnable(uint32_t lmepId, ofdpaOamLckConfig_t *config);
3404 
3405 /*****************************************************************/
3417 OFDPA_ERROR_t ofdpaOamLckDisable(uint32_t lmepId);
3418 
3419 /*****************************************************************/
3431 OFDPA_ERROR_t ofdpaOamLckConfigGet(uint32_t lmepId, ofdpaOamLckConfig_t *config);
3432 
3433 #endif /* INCLUDE_OFDPA_API_H */
3434