Open Ethernet Networking (OpEN) API Guide and Reference Manual  3.13.1.2
openapi_ip6map.h
Go to the documentation of this file.
1 
9 /**********************************************************************
10 *
11 * Copyright 2023 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_ip6map.h
28 *
29 * @purpose This code implements the OpEN IP6MAP API
30 *
31 * @component OPEN
32 *
33 * @create 01/10/2023
34 *
35 * @end
36 *
37 *********************************************************************/
38 #ifndef OPENAPI_IP6MAP_H_INCLUDED
39 #define OPENAPI_IP6MAP_H_INCLUDED
40 
41 #include "openapi_common.h"
42 #include "openapi_routing.h"
43 #include "openapi_mpls.h"
44 #include "openapi_routing_config.h"
45 
46 #define OPEN_RTR6_MAX_INTF_ADDRS 4
47 #define OPEN_IP6_ND_DAD_ATTEMPTS_MAX 600
48 #define OPEN_IP6_NDNS_INTERVAL_MIN 1000
49 #define OPEN_IP6_NDNS_INTERVAL_MAX 4294967295U
50 #define OPEN_IP6_ND_REACHABLE_MAX 3600000UL
51 
53 typedef struct
54 {
55  uint64_t ipv6IfIcmpInMsgs;
56  uint64_t ipv6IfIcmpInErrors;
57  uint64_t ipv6IfIcmpInDestUnreachs;
58  uint64_t ipv6IfIcmpInAdminProhibs;
59  uint64_t ipv6IfIcmpInTimeExcds;
60  uint64_t ipv6IfIcmpInParmProblems;
61  uint64_t ipv6IfIcmpInPktTooBigs;
62  uint64_t ipv6IfIcmpInEchos;
63  uint64_t ipv6IfIcmpInEchoReplies;
64  uint64_t ipv6IfIcmpInRouterSolicits;
65  uint64_t ipv6IfIcmpInRouterAdvertisements;
66  uint64_t ipv6IfIcmpInNeighborSolicits;
67  uint64_t ipv6IfIcmpInNeighborAdvertisements;
68  uint64_t ipv6IfIcmpInRedirects;
69  uint64_t ipv6IfIcmpInGroupMembQueries;
70  uint64_t ipv6IfIcmpInGroupMembResponses;
71  uint64_t ipv6IfIcmpInGroupMembReductions;
72 
73  uint64_t ipv6IfIcmpOutMsgs;
74  uint64_t ipv6IfIcmpOutErrors;
75  uint64_t ipv6IfIcmpOutDestUnreachs;
76  uint64_t ipv6IfIcmpOutAdminProhibs;
77  uint64_t ipv6IfIcmpOutTimeExcds;
78  uint64_t ipv6IfIcmpOutParmProblems;
79  uint64_t ipv6IfIcmpOutPktTooBigs;
80  uint64_t ipv6IfIcmpOutEchos;
81  uint64_t ipv6IfIcmpOutEchoReplies;
82  uint64_t ipv6IfIcmpOutRouterSolicits;
83  uint64_t ipv6IfIcmpOutRouterAdvertisements;
84  uint64_t ipv6IfIcmpOutNeighborSolicits;
85  uint64_t ipv6IfIcmpOutNeighborAdvertisements;
86  uint64_t ipv6IfIcmpOutRedirects;
87  uint64_t ipv6IfIcmpOutGroupMembQueries;
88  uint64_t ipv6IfIcmpOutGroupMembResponses;
89  uint64_t ipv6IfIcmpOutGroupMembReductions;
90 
91  uint64_t ipv6IfIcmpDupAddrDetects;
92 
93  uint64_t ipv6IfIcmpInCsumErrors;
94  uint64_t ipv6IfIcmpInMLDv2Reports;
95  uint64_t ipv6IfIcmpOutMLDv2Reports;
96  uint64_t ipv6IfIcmpInType134;
97  uint64_t ipv6IfIcmpInType135;
98  uint64_t ipv6IfIcmpInType136;
99  uint64_t ipv6IfIcmpOutType1;
100  uint64_t ipv6IfIcmpOutType133;
101  uint64_t ipv6IfIcmpOutType135;
102  uint64_t ipv6IfIcmpOutType136;
103  uint64_t ipv6IfIcmpOutType143;
104 
106 
108 typedef struct
109 {
110  uint64_t ipv6IfStatsInReceives;
111  uint64_t ipv6IfStatsInMcastPkts;
112  uint64_t ipv6IfStatsInDelivers;
113  uint64_t ipv6IfStatsInUnknownProtos;
114  uint64_t ipv6IfStatsInAddrErrors;
115  uint64_t ipv6IfStatsInHdrErrors;
116  uint64_t ipv6IfStatsInNoRoutes;
117  uint64_t ipv6IfStatsInTooBigErrors;
118  uint64_t ipv6IfStatsInTruncatedPkts;
119  uint64_t ipv6IfStatsReasmReqds;
120  uint64_t ipv6IfStatsReasmOKs;
121  uint64_t ipv6IfStatsReasmFails;
122  uint64_t ipv6IfStatsInDiscards;
123 
124  uint64_t ipv6IfStatsOutRequests;
125  uint64_t ipv6IfStatsOutMcastPkts;
126  uint64_t ipv6IfStatsOutForwDatagrams;
127  uint64_t ipv6IfStatsOutFragCreates;
128  uint64_t ipv6IfStatsOutFragOKs;
129  uint64_t ipv6IfStatsOutFragFails;
130  uint64_t ipv6IfStatsOutDiscards;
131 
132  uint64_t ipv6IfStatsOutNoRoutes;
133  uint64_t ipv6IfStatsReasmTimeout;
134  uint64_t ipv6IfStatsInOctets;
135  uint64_t ipv6IfStatsOutOctets;
136  uint64_t ipv6IfStatsInMcastOctets;
137  uint64_t ipv6IfStatsOutMcastOctets;
138  uint64_t ipv6IfStatsInBcastOctets;
139  uint64_t ipv6IfStatsOutBcastOctets;
140  uint64_t ipv6IfStatsInNoECTPkts;
141  uint64_t ipv6IfStatsInECT1Pkts;
142  uint64_t ipv6IfStatsInECT0Pkts;
143  uint64_t ipv6IfStatsInCEPkts;
145 
146 
148 typedef struct openapiEqualCostPath6_s
149 {
151  uint32_t intIfNum;
152  uint32_t flags;
154  uint32_t updateTime;
156 
157 typedef struct openapiECMPRoute6_s
158 {
159  openapiEqualCostPath6_t equalCostPath[OPENR_PLAT_MAX_ECMP_NEXTHOPS];
160  uint32_t numOfRoutes;
162 
164 typedef struct openapiRoute6Entry_s
165 {
167  int32_t ip6PrefixLen;
168  uint32_t vrfId;
169  uint32_t protocol;
170  uint32_t metric;
172  uint32_t flags;
173  uint8_t pref;
174  uint32_t updateTime;
175  uint32_t tableId;
177  uint32_t seqNum;
180 
183 {
184  open_in6_addr_t ipAddrList[OPEN_RTR6_MAX_INTF_ADDRS];
185  uint32_t pLen[OPEN_RTR6_MAX_INTF_ADDRS];
186  uint32_t pEuiFlag[OPEN_RTR6_MAX_INTF_ADDRS];
188 
190 #define OPEN_RTR6_ADDR_LINK_LOCAL_ENA 0x01
191 #define OPEN_RTR6_ADDR_EUI64 0x02
192 #define OPEN_RTR6_ADDR_AUTOCONFIG_ENA 0x08
193 #define OPEN_RTR6_ADDR_DHCP_ENA 0x10
196 typedef enum openIp6IntfAddrStates {
203 
206 {
207  uint32_t ipv6IfIndex;
209  uint32_t ipv6AddrPfxLength;
210  uint32_t ipv6AddrType;
212  uint32_t ipv6AddrEui64Flag;
215 
218 {
219  uint32_t ipv6IfIndex;
228 
230 typedef struct open_ipv6IntfAddr_s
231 {
232  open_in6_addr_t ipv6Addr;
233  uint32_t ipv6PrefixLen;
234  OPEN_IPV6_INTFADDR_STATES ipv6AddrState;
236 
239 {
240  open_ipv6IntfAddr_t ipv6AddrList[OPEN_RTR6_MAX_INTF_ADDRS + 1];
242 
244 typedef struct openNullOid_s
245 {
246  uint32_t len;
247  unsigned char oid[2];
248 } openNullOid_t;
249 
251 typedef struct openIpv6RouteEntry_s
252 {
253  open_in6_addr_t ipv6RouteDest;
254  uint32_t ipv6RoutePfxLength;
255  uint32_t ipv6RouteIndex;
256  uint32_t ipv6RouteIfIndex;
257  open_in6_addr_t ipv6RouteNextHop;
258  uint32_t ipv6RouteType;
259  uint32_t ipv6RouteProtocol;
260  uint32_t ipv6RoutePolicy;
261  uint32_t ipv6RouteAge;
262  uint32_t ipv6RouteNextHopRDI;
263  uint32_t ipv6Metric;
264  uint32_t ipv6RouteWeight;
265  openNullOid_t ipv6RouteInfo;
266  uint32_t ipv6RouteValid;
267  uint32_t ipv6RouteProtocolType;
269 
270 
272 typedef enum
273 {
283 
285 typedef enum
286 {
292 
293 /*************************************************************************/
311 
312 /*************************************************************************/
329 
330 /*************************************************************************/
347 
348 /*************************************************************************/
365 
366 /*************************************************************************/
383 
384 /*************************************************************************/
401 
402 /*************************************************************************/
419 
420 /*************************************************************************/
437 
438 /*************************************************************************/
455 
456 /*************************************************************************/
473 
474 /*************************************************************************/
490 
491 /*************************************************************************/
507 
508 /*************************************************************************/
525 open_error_t openapiIp6VrRtrDefaultTTLGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *val);
526 
527 /*************************************************************************/
544 open_error_t openapiIp6VrRtrDefaultTTLSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t val);
545 
546 /*************************************************************************/
562 open_error_t openapiIp6RtrIntfModeGet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t *mode);
563 
564 /*************************************************************************/
581 
582 /*************************************************************************/
598 open_error_t openapiIp6RtrIntfModeSet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t mode);
599 
600 /*************************************************************************/
617 
618 /*************************************************************************/
635 
636 /*************************************************************************/
650 OPEN_BOOL_t openapiIp6IntfExists(openapiClientHandle_t *client_handle, uint32_t ifNum);
651 
652 /*************************************************************************/
666 OPEN_BOOL_t openapiIp6MapIntfIsValid(openapiClientHandle_t *client_handle, uint32_t ifNum);
667 
668 /*************************************************************************/
682 OPEN_BOOL_t openapiIp6MapNbrIntfIsValid(openapiClientHandle_t *client_handle, uint32_t ifNum);
683 
684 /*************************************************************************/
700 open_error_t openapiIp6RtrIntfIpv6MtuGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val);
701 
702 /*************************************************************************/
719 open_error_t openapiIp6RtrIntfIpv6EffectiveMtuGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val);
720 
721 /*************************************************************************/
741 open_error_t openapiIp6RtrIntfMaxIpv6MtuGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val);
742 
743 /*************************************************************************/
759 open_error_t openapiIp6RtrIntfIpv6MtuSet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t val);
760 
761 /*************************************************************************/
777 open_error_t openapiIp6RtrIntfBandwidthGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val);
778 
779 /*************************************************************************/
794 open_error_t openapiIp6MapIntfValidFirstGet(openapiClientHandle_t *client_handle, uint32_t *ifNum);
795 
796 /*************************************************************************/
812 open_error_t openapiIp6MapIntfValidNextGet(openapiClientHandle_t *client_handle, uint32_t prevIfNum, uint32_t *ifNum);
813 
814 /*************************************************************************/
830  uint32_t intIfNum,
831  openapiIpv6IfStats_t *ipv6IfStats);
832 
833 /*************************************************************************/
849  uint32_t intIfNum,
850  openapiIpstkIpv6IfIcmpStats_t *ipv6IfIcmpStats);
851 
852 /*************************************************************************/
867  uint32_t intIfNum);
868 
869 /*************************************************************************/
885  openapiIpv6IfStats_t *ipv6IfStats,
886  openapiIpstkIpv6IfIcmpStats_t *ipv6IfIcmpStats);
887 
888 /*************************************************************************/
902 
903 /*************************************************************************/
923  open_buffdesc *vrfName,
924  openapiRoute6Entry_t *ipv6Route,
925  OPEN_BOOL_t bestRouteOnly);
926 
927 /*************************************************************************/
945  open_buffdesc *vrfName,
946  uint32_t *count,
947  OPEN_BOOL_t bestRouteOnly);
948 
949 /*************************************************************************/
971  uint32_t intIfNum,
972  uint32_t *numAddr,
973  openapi_ip6_cfg_addr_list_t *ipv6AddrList,
974  OPEN_CONTROL_t *ipv6Mode,
975  OPEN_CONTROL_t *autoConfigMode,
976  OPEN_CONTROL_t *dhcpMode);
977 
978 /*************************************************************************/
996  uint32_t intIfNum, uint32_t *val);
997 
998 /*************************************************************************/
1016  uint32_t intIfNum, uint32_t val);
1017 
1018 /*************************************************************************/
1037  uint32_t intIfNum, uint32_t *val);
1038 
1039 /*************************************************************************/
1058  uint32_t intIfNum, uint32_t val);
1059 
1060 /*************************************************************************/
1076  uint32_t intIfNum, uint32_t *val);
1077 
1078 /*************************************************************************/
1094  uint32_t intIfNum, uint32_t val);
1095 
1096 /*************************************************************************/
1113  uint32_t intIfNum, OPEN_CONTROL_t *mode);
1114 
1115 /*************************************************************************/
1131  uint32_t intIfNum, OPEN_CONTROL_t mode);
1132 
1133 /*************************************************************************/
1149  uint32_t matchType,
1150  openapiIpv6AddrEntry_t *ipv6AddrEntry);
1151 
1152 /*************************************************************************/
1168  uint32_t matchType,
1169  openapiIpv6AddrEntry_t *ipv6AddrEntry);
1170 
1171 /*************************************************************************/
1187  uint32_t matchType,
1188  openapiIpv6AddrPrefixEntry_t *ipv6AddrPrefixEntry);
1189 
1190 /*************************************************************************/
1207  uint32_t intIfNum,
1208  uint32_t *numAddr,
1209  openIpv6IntfAddrList_t *ipv6AddrList);
1210 
1211 /*************************************************************************/
1227  uint32_t intIfNum,
1228  open_inet_addr_t *inetAddr);
1229 
1230 /*************************************************************************/
1256  open_buffdesc *vrfName,
1257  open_inet_addr_t *ipv6Addr,
1258  open_buffdesc *macAddr,
1259  uint32_t *intIfNum,
1260  OPEN_IP6_NBR_TYPE_t *ipv6Type,
1261  OPEN_IP6_NBR_STATE_t *nbrState,
1262  uint32_t *lastUpdate,
1263  OPEN_BOOL_t *isRouter,
1264  uint32_t *ipv6ScopeId);
1265 
1266 /*************************************************************************/
1287  open_buffdesc *vrfName,
1288  uint32_t intIfNum,
1289  open_inet_addr_t *ipv6Addr);
1290 
1291 /*************************************************************************/
1306  openIpv6RouteEntry_t *routeEntry);
1307 
1308 
1309 #endif /* OPENAPI_IP6MAP_H_INCLUDED */
1310 
uint32_t ipv6RouteIfIndex
Internal interface number.
uint32_t ipv6AddrPrefixAutonomousFlag
prefix autonomous flag
open_error_t openapiIp6VrNudMaxMcastSolicitsSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t val)
Set the maximum multicast neighbor solicitations sent during NUD for a given VRF. ...
uint32_t ipv6AddrPrefixLength
prefix length
uint8_t pref
Route preference (also called administrative distance).
open_error_t openapiIp6VrNudMaxMcastSolicitsGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *val)
Get the maximum multicast neighbor solicitations sent during NUD for a given VRF. ...
open_error_t openapiIpv6AddrEntryGet(openapiClientHandle_t *client_handle, uint32_t matchType, openapiIpv6AddrEntry_t *ipv6AddrEntry)
Get the IPv6 address details.
open_error_t openapiIp6RtrIntfMaxIpv6MtuGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val)
Get the maximum IPv6 MTU that may be set on an interface.
OPEN_IPV6_INTFADDR_STATES ipv6AddrStatus
address status
open_error_t openapiIp6RtrDadTransmitsSet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t val)
Set the number of neighbor solicits to be sent for duplicate address detection (DAD) on an interface...
open_error_t openapiIp6MapIntfValidFirstGet(openapiClientHandle_t *client_handle, uint32_t *ifNum)
Get the first valid interface for participation in IPv6 component.
OPEN_BOOL_t openapiIp6MapIntfIsValid(openapiClientHandle_t *client_handle, uint32_t ifNum)
Determine if the interface is valid for participation in the IPv6 component.
open_error_t openapiIp6VrNudBackoffMultipleGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *val)
Get the NUD backoff-multiple value set for calculation of timeouts for NS transmissions during NUD fo...
uint32_t tableId
Table ID for the VRF, valid if vrfId != 0.
uint32_t ipv6AddrAnycastFlag
anycast flag
openapiECMPRoute6_t ecmpRoutes
ECMP paths.
uint32_t updateTime
Specifies the last time the route was updated (in hours:minutes:seconds)
open_error_t openapiIpv6NbrTblEntryGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, open_inet_addr_t *ipv6Addr, open_buffdesc *macAddr, uint32_t *intIfNum, OPEN_IP6_NBR_TYPE_t *ipv6Type, OPEN_IP6_NBR_STATE_t *nbrState, uint32_t *lastUpdate, OPEN_BOOL_t *isRouter, uint32_t *ipv6ScopeId)
Get the IPv6 neighbor entries.
OPEN_BOOL_t hwFailure
Hardware failure status.
open_error_t openapiIpv6RouteEntryGetNext(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, openapiRoute6Entry_t *ipv6Route, OPEN_BOOL_t bestRouteOnly)
Get the next route entry for the specified route destination.
open_error_t openapiIp6VrRtrDefaultTTLSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t val)
Set the default IPv6 router TTL value for a given VRF.
uint32_t ipv6AddrPrefixOnLinkFlag
prefix on link flag
open_in6_addr_t ipv6Address
ipv6 address
open_error_t openapiIp6VrNudMaxUnicastSolicitsGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *val)
Get the maximum unicast neighbor solicitations sent during NUD for a given VRF.
open_error_t
OPEN uses these enumerators to indicate the error codes.
open_error_t openapiIp6VrNbrsDynRenewSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, OPEN_CONTROL_t mode)
Set the dynamic renewal mode of IPv6 neighbors in a given VRF.
uint32_t flags
Route entry flags.
open_error_t openapiIpv6TotalStatsClear(openapiClientHandle_t *client_handle)
Clear IPv6 statistics on all interfaces.
uint32_t metric
cost associated with this route
open_error_t openapiIpv6IfStatsClear(openapiClientHandle_t *client_handle, uint32_t intIfNum)
Clear IPv6 statistics for the given interface.
OPEN_BOOL_t openapiIp6MapNbrIntfIsValid(openapiClientHandle_t *client_handle, uint32_t ifNum)
Determine if the interface is valid to be configured with an IPv6 neighbor.
uint32_t intIfNum
Next hop interface.
open_error_t openapiIp6RtrCfgIntfAddressesGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t *numAddr, openapi_ip6_cfg_addr_list_t *ipv6AddrList, OPEN_CONTROL_t *ipv6Mode, OPEN_CONTROL_t *autoConfigMode, OPEN_CONTROL_t *dhcpMode)
Get the configured IPv6 addresses and modes on the interface.
open_error_t openapiIp6RtrIntfICMPUnreachablesModeSet(openapiClientHandle_t *client_handle, uint32_t intIfNum, OPEN_CONTROL_t mode)
Set the configured mode for ICMPv6 unreachable messages.
uint32_t updateTime
Last update timestamp for the specified ECMP route.
open_error_t openapiIp6RtrNdReachableTimeSet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t val)
Set the amount of time that a remote IPv6 node is reachable.
struct openapiIpv6AddrPrefixEntry_s openapiIpv6AddrPrefixEntry_t
Structure for IPv6 interface address, along with its state.
open_error_t openapiIp6RtrIntfAddressesGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t *numAddr, openIpv6IntfAddrList_t *ipv6AddrList)
Get the IPv6 addresses of the interface.
open_error_t openapiIp6MapIntfValidNextGet(openapiClientHandle_t *client_handle, uint32_t prevIfNum, uint32_t *ifNum)
Get the next valid interface for participation in IPv6 component.
open_error_t openapiIpv6IfStatsGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, openapiIpv6IfStats_t *ipv6IfStats)
Get IPv6 statistics for the given interface.
uint32_t flags
Route entry flags.
open_error_t openapiIp6RtrDadTransmitsGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t *val)
Get the number of neighbor solicits configured to be sent for duplicate address detection (DAD) on an...
open_error_t openapiIpv6RouteCountGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *count, OPEN_BOOL_t bestRouteOnly)
Get the number of routes in the routing table.
uint32_t ipv6AddrPrefixAdvValidLifetime
valid life time
struct openIpv6IntfAddrList_s openIpv6IntfAddrList_t
Structure for NULL OID.
open_error_t openapiIp6RtrIntfModeSet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t mode)
Set the administrative state of a given interface.
open_error_t openapiSnmpIpv6StaticRouteGetNext(openapiClientHandle_t *client_handle, openIpv6RouteEntry_t *routeEntry)
Get the next static IPv6 route from the routing table.
MPLS label stack.
enum openIp6IntfAddrStates OPEN_IPV6_INTFADDR_STATES
Structure of IPv6 address enty.
open_error_t openapiIp6VrRtrDefaultTTLGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *val)
Get the default IPv6 router TTL value for a given VRF.
int32_t ip6PrefixLen
Route prefix lenght.
uint32_t ipv6AddrType
type of the address
struct open_ipv6IntfAddr_s open_ipv6IntfAddr_t
Structure for max list of IPv6 interface address structure.
open_error_t openapiIp6RtrIntfAutoStateModeSet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t mode)
Set the IPv6 AutoState mode of a given interface.
struct openapiECMPRoute6_s openapiECMPRoute6_t
IPv6 Route entry.
open_error_t openapiIpv6AddrEntryGetNext(openapiClientHandle_t *client_handle, uint32_t matchType, openapiIpv6AddrEntry_t *ipv6AddrEntry)
Get the IPv6 address details of the next entry.
struct openapi_ip6_cfg_addr_list_s openapi_ip6_cfg_addr_list_t
Address mode flags.
struct openIpv6RouteEntry_s openIpv6RouteEntry_t
Neighbor state definitions as per RFC 2465.
open_error_t openapiIp6VrNbrsDynRenewGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, OPEN_CONTROL_t *mode)
Get the dynamic renewal mode of IPv6 neighbors in a given VRF.
open_error_t openapiIp6RtrIntfModeGet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t *mode)
Get the administrative state of a given interface.
OPEN_CONTROL_t
OPEN uses these enumerators to indicate enable or disable for a given config or status parameter...
open_error_t openapiIp6UnresolvedRateLimitSet(openapiClientHandle_t *client_handle, uint32_t val)
Set the rate limit value for the unresolved IPv6 data packets coming to CPU.
struct openapiIpv6AddrEntry_s openapiIpv6AddrEntry_t
Structure for IPv6 prefix enty.
open_error_t openapiIpv6IfIcmpStatsGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, openapiIpstkIpv6IfIcmpStats_t *ipv6IfIcmpStats)
Get IPv6 ICMP statistics for the given interface.
uint32_t ipv6AddrEui64Flag
eui64 flag
OPEN_BOOL_t
OPEN uses these enumerators to indicate true or false for a given config or status parameter...
open_error_t openapiIpv6TotalStatsGet(openapiClientHandle_t *client_handle, openapiIpv6IfStats_t *ipv6IfStats, openapiIpstkIpv6IfIcmpStats_t *ipv6IfIcmpStats)
Get total of each IPv6 statistic on all interfaces.
uint32_t ipv6AddrPrefixAdvPreferredLifetime
preferred life time
struct openNullOid_s openNullOid_t
Structure for IPv6 Route entry.
struct openapiRoute6Entry_s openapiRoute6Entry_t
Structure for list of IPv6 addresses configured on interface.
open_error_t openapiIp6RtrIntfAutoStateModeGet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t *mode)
Get the IPv6 AutoState mode of a given interface.
open_error_t openapiIpv6NdpFlush(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t intIfNum, open_inet_addr_t *ipv6Addr)
Flush the IPv6 neighbor entries.
open_error_t openapiIp6RtrIntfICMPUnreachablesModeGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, OPEN_CONTROL_t *mode)
Get the configured mode for ICMPv6 unreachable messages.
open_error_t openapiIp6VrRtrAdminModeSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, OPEN_CONTROL_t mode)
Set the IPv6 administrative mode of the router for given VRF.
open_error_t openapiIp6RtrIntfIpv6MtuGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val)
Get the IPv6 MTU of a given interface.
open_error_t openapiIp6RtrIntfAddressGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, open_inet_addr_t *inetAddr)
Get the IPv6 address of the interface.
openapiEqualCostPath6_t equalCostPath[OPENR_PLAT_MAX_ECMP_NEXTHOPS]
equalCostPath array
open_error_t openapiIp6RtrIntfIpv6MtuSet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t val)
Set the IPv6 MTU of a given interface.
open_error_t openapiIp6RtrIntfOperModeGet(openapiClientHandle_t *client_handle, uint32_t ifNum, OPEN_CONTROL_t *mode)
Get the operational state of a given interface.
OPEN_BOOL_t ip_anycast
Is route IP Anycast.
uint32_t seqNum
Sequence number for successive route addition.
open_error_t openapiIp6VrNudBackoffMultipleSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t val)
Set the NUD backoff-multiple value for calculation of timeouts for NS transmissions during NUD for a ...
OPEN_MPLS_LABELS_t mplsLabelStack
The MPLS Label stack for this route.
open_error_t openapiIp6RtrIntfIpv6EffectiveMtuGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val)
Get the IPv6 effective MTU of a given interface.
open_error_t openapiIp6VrRtrAdminModeGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, OPEN_CONTROL_t *mode)
Get the IPv6 administrative mode of the router for given VRF.
OPEN_BOOL_t openapiIp6IntfExists(openapiClientHandle_t *client_handle, uint32_t ifNum)
Determine if IPv6 interface exists.
uint32_t ipv6AddrPfxLength
prefix length of the address
open_error_t openapiIp6VrNudMaxUnicastSolicitsSet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t val)
Set the maximum unicast neighbor solicitations sent during NUD for a given VRF.
open_in6_addr_t ipv6AddrPrefix
ipv6 address prefix
open_error_t openapiIp6RtrIntfBandwidthGet(openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t *val)
Get the interface bandwidth of a given interface.
uint32_t numOfRoutes
number of routes in the equalCostPath array
open_error_t openapiIp6RtrNdNsIntervalGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t *val)
Get the interval between IPv6 neighbor solicitation retransmissions on an interface.
uint32_t ipv6IfIndex
Internal interface number.
open_error_t openapiIp6UnresolvedRateLimitGet(openapiClientHandle_t *client_handle, uint32_t *val)
Get the rate limit value set for the unresolved IPv6 data packets coming to CPU.
open_in6_addr_t ip6Addr
Route prefix address.
uint32_t vrfId
VRF identifier.
uint32_t protocol
Protocol via which the route(s) are learned.
open_error_t openapiIp6RtrNdReachableTimeGet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t *val)
Get the amount of time that a remote IPv6 node is reachable.
open_error_t openapiIpv6AddrPrefixEntryGet(openapiClientHandle_t *client_handle, uint32_t matchType, openapiIpv6AddrPrefixEntry_t *ipv6AddrPrefixEntry)
Get the IPv6 address prefix details.
Hash Mode names.
open_error_t openapiIp6RtrNdNsIntervalSet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t val)
Set the interval between IPv6 neighbor solicitation retransmissions on an interface.
OPEN_IP6_NBR_TYPE_t
uint32_t ipv6IfIndex
Internal interface number.
open_in6_addr_t ip6Addr
Next hop address.
OPEN_IP6_NBR_STATE_t