38 #ifndef OPENAPI_ROUTING_H_INCLUDED
39 #define OPENAPI_ROUTING_H_INCLUDED
49 #define OPEN_RPPI_CLIENT_NAME_MAX_LEN (32)
54 #define RPPI_BRC_ADDR "/tmp/rppi_brc.%04u"
56 #define ROUTER_EVENT_CLIENT_ADDR "/tmp/rppi_rec.%04u"
59 #define RPPI_POLICY_CLIENT_ADDR "/tmp/rppi_pc.%04u"
62 #define RPPI_MSG_SIZE_MAX 256
65 #define OPENR_BRC_NAME_LEN 16
68 #define OPENR_POLICY_CLIENT_NAME_LEN 16
70 #define OPENR_RTR_GBL_MSG_LEN (sizeof(openrRouterEventMsg_t) - sizeof(uint32_t))
71 #define OPENR_RTR_INTF_MSG_LEN (sizeof(openrRouterEventMsg_t))
74 #define OPENR_ROUTING_PROTOCOL_NAME_LEN 10
77 #define OPENR_NUM_BEST_ROUTES_PER_GET 50
83 #define OPENR_PLAT_MAX_ECMP_NEXTHOPS 48
86 #define OPEN_VRF_MAX_NAME_LEN 64
102 OPEN_DELETE_ROUTE = 1,
103 OPEN_CHANGE_ROUTE = 2
111 OPEN_POLICY_ROUTE_MAP = 1,
112 OPEN_POLICY_PREFIX_LIST = 2,
113 OPEN_POLICY_AS_PATH_LIST = 4,
114 OPEN_POLICY_ACL_ROUTE_FILTER = 8
131 OPENR_BEST_ROUTE_CHANGE = 10,
134 OPENR_RTR_ENABLE = 101,
135 OPENR_RTR_DISABLE = 102,
136 OPENR_RTR_STARTUP_DONE = 103,
137 OPENR_RTR_INTF_CREATE = 104,
138 OPENR_RTR_INTF_DELETE = 105,
139 OPENR_RTR_INTF_ENABLE = 106,
140 OPENR_RTR_INTF_ENABLE_PENDING = 107,
141 OPENR_RTR_INTF_DISABLE = 108,
142 OPENR_RTR_INTF_DISABLE_PENDING = 109,
143 OPENR_RTR_INTF_ADDR_CHANGE = 110,
144 OPENR_RTR_INTF_MTU = 111,
145 OPENR_RTR_INTF_BW_CHANGE = 112,
146 OPENR_RTR_INTF_HOST_MODE = 113,
147 OPENR_RTR_INTF_CFG_CHANGE = 114,
149 OPENR_RTR6_ENABLE = 201,
150 OPENR_RTR6_DISABLE = 202,
151 OPENR_RTR6_STARTUP_DONE = 203,
152 OPENR_RTR6_INTF_CREATE = 204,
153 OPENR_RTR6_INTF_DELETE = 205,
154 OPENR_RTR6_INTF_ENABLE = 206,
155 OPENR_RTR6_INTF_DISABLE = 207,
156 OPENR_RTR6_INTF_ADDR_CHANGE = 208,
157 OPENR_RTR6_INTF_MTU = 209,
158 OPENR_RTR6_INTF_BW_CHANGE = 210,
159 OPENR_RTR6_INTF_HOST_MODE = 211,
161 OPENR_POLICY_CHANGE = 300
170 OPEN_NSF_PROTOCOL_OSPF = 0x1,
171 OPEN_NSF_PROTOCOL_RIP = 0x2,
172 OPEN_NSF_PROTOCOL_BGP = 0x4,
173 OPEN_NSF_PROTOCOL_LAST = 0x8
174 } OPEN_NSF_PROTOCOL_t;
199 uint32_t eventSeqNumber;
243 uint32_t
label[OPEN_MAX_MPLS_IMPOSE_LABELS];
288 uint8_t rfc5549Route;
291 uint8_t unnumberedRoute;
353 OPEN_BFD_DISABLE = 0,
355 } OPEN_BFD_ADMIN_MODE_t;
373 uint32_t override_config;
376 uint32_t bfdMultiplier;
377 uint32_t bfdEchoMode;
378 uint32_t bfdSlowTimer;
383 #define OPEN_BFD_MAX_REG_PROT 2
386 #define OPEN_BFD_SESSION_ID_INVALID (~0)
391 OPEN_BFD_SESSION_STATE_ADMIN_DOWN = 0,
392 OPEN_BFD_SESSION_STATE_DOWN = 1,
393 OPEN_BFD_SESSION_STATE_INIT = 2,
394 OPEN_BFD_SESSION_STATE_UP = 3,
395 } OPEN_BFD_SESSION_STATE_t;
399 OPEN_BFD_DIAG_CODE_NONE,
400 OPEN_BFD_DIAG_CODE_CTRL_DETECT_TIME_EXPIRED,
401 OPEN_BFD_DIAG_CODE_ECHO_FAILED,
402 OPEN_BFD_DIAG_CODE_NEIGHBOR_SIGNALED_SESSION_DOWN,
403 OPEN_BFD_DIAG_CODE_FORWARDING_PLANE_RESET,
404 OPEN_BFD_DIAG_CODE_PATH_DOWN,
405 OPEN_BFD_DIAG_CODE_CONCATENATED_PATH_DOWN,
406 OPEN_BFD_DIAG_CODE_ADMIN_DOWN,
407 OPEN_BFD_DIAG_CODE_REVERSE_CONCATENATED_PATH_DOWN,
408 OPEN_BFD_DIAG_CODE_MIS_CONNECTIVITY_DEFECT
409 } OPEN_BFD_DIAG_CODE_t;
412 OPEN_BFD_TUNNEL_TYPE_RAW,
413 OPEN_BFD_TUNNEL_TYPE_UDP,
414 OPEN_BFD_TUNNEL_TYPE_COUNT
415 } openBfdTunnelType_t;
417 #define SYNCDB_OPENAPI_BFD "OpEN API BFD"
418 #define SYNCDB_OPENAPI_BFD_VERSION 1
453 uint32_t
id[OPEN_BFD_MAX_REG_PROT];
465 uint32_t echoOutPkts;
548 uint32_t *routeType);
571 uint32_t addressFamily,
594 uint32_t addressFamily,
683 uint32_t *protoNameLen);
703 uint32_t *routeTypeNameLen);
1045 uint32_t numChanges,
1069 uint32_t clientId, uint32_t intIfNum,
1070 uint32_t numChanges,
1092 uint32_t *maxNextHops);
1121 uint32_t *clientId);
1182 uint32_t *routingIntfMax);
1204 uint32_t *nextIntf);
1224 uint32_t *nextIntf);
1335 uint32_t *loopbackId);
1352 uint32_t loopbackId,
1371 uint32_t *ifNameSize);
1408 uint32_t ifIndex, uint32_t *intIfNum);
1676 uint32_t *bandwidth);
1731 uint32_t *burstSize,
1732 uint32_t *interval);
1805 uint32_t *complete);
1844 uint32_t *complete);
1930 uint32_t policyTypeMask,
1931 uint32_t *clientId);
2016 uint32_t *nextProtoId);
2093 uint32_t *clientId);
2328 uint32_t *rtoFreeRouteCount);
2456 uint32_t intIfNum, uint32_t peerIp,
OPEN_BOOL_t isAdd, uint32_t flag);
2505 int32_t stkIfIndex);
2545 uint32_t vrfId, uint32_t ipSlaId, uint32_t probeReturnCode,
2546 uint32_t lastProbeRTTvalue, uint32_t latestOperationStartUpTime);
open_inet_addr_t nextHopIpAddr
NextHop IPv4 or Ipv6 address for Destination.
open_error_t openapiRtrAdminModeGet(openapiClientHandle_t *client_handle, OPEN_AF_t af, OPEN_CONTROL_t *enable)
Get the current router admin mode given an address family.
open_error_t openapiExternalRoutesSaveRegister(openapiClientHandle_t *client_handle, OPEN_AF_t addressFamily, uint32_t vrfId, uint32_t protoId)
Register with RTO to save External routes to SyncDB.
open_error_t openapiIpMapNsfRouteSource(openapiClientHandle_t *client_handle, uint32_t vrfId, OPEN_NSF_PROTOCOL_t protocol)
Indicate that a protocol intends to add routes to RTO following a warm restart.
open_error_t openapiRouteDelVr(openapiClientHandle_t *client_handle, uint32_t vrfId, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Delete a route from the common routing table.
open_error_t openapiVrfNameNextGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, open_buffdesc *vrfNameNext)
Get the next VRF name.
uint32_t remoteDiscr
Remote discriminator.
uint32_t localDiscr
Local discriminator.
uint8_t discardRoute
if not 0, this is a discard route.
open_error_t openapiIpMapInitialRoutesDone(openapiClientHandle_t *client_handle, uint32_t vrfId, OPEN_NSF_PROTOCOL_t protocol)
A protocol that controls NSF routes calls this function to indicate it has updated RTO with all its i...
open_error_t openapiRtrIntfOperModeGet(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t intf, OPEN_CONTROL_t *ifState)
Get the up/down status of the router interface given the address family.
open_error_t openapiRouteTypeDeregister(openapiClientHandle_t *client_handle, uint32_t addressFamily, uint32_t routeType)
Deregister a route type.
OPEN_MPLS_LFDB_PROTOCOL_t protocol
Protocol by which the label is created.
open_error_t openapiBestRouteChangeNextGetMult(openapiClientHandle_t *client_handle, uint32_t clientId, uint32_t numChanges, open_buffdesc *routeListBuff)
Get the next best route change pending for a specific client.
struct openBfdSessionInfo_s openBfdSessionInfo_t
The BFD Session data.
open_error_t openapiRouteProtoNameLenMax(openapiClientHandle_t *client_handle, uint32_t *protoNameLen)
Get the maximum length of a protocol name.
open_error_t openapiRouterEventRegister(openapiClientHandle_t *client_handle, OPEN_AF_t family, uint32_t pid, uint32_t vrfId, open_buffdesc *clientName, uint32_t *clientId)
Register for routing events.
uint8_t rejectRoute
if not 0, this is a reject route.
OPEN_ROUTING_POLICY_CHANGE_t
Type of a policy change notification.
struct openrBestRouteChangeMsg_s openrBestRouteChangeMsg_t
Message structure for forwarding table change notifications.
open_error_t openapiBestRouteLookup(openapiClientHandle_t *client_handle, open_inet_addr_t destAddr, openRoute_t *route, open_buffdesc *nextHopListBuff)
Find the longest prefix match for a given destination IP address.
open_error_t openapiRtrIntfVlanIdGet(openapiClientHandle_t *client_handle, uint32_t intf, uint32_t *vlanId)
Get the vlan id on the configured router interface.
open_error_t openapiVrAgentProbeResultIpSlaNotify(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t ipSlaId, uint32_t probeReturnCode, uint32_t lastProbeRTTvalue, uint32_t latestOperationStartUpTime)
This routine is called by VRF Manager when a VR Probe Agent of VRF Instance needs to update the resul...
open_error_t openapiRtrICMPRatelimitGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *burstSize, uint32_t *interval)
Get the ICMP Ratelimit parameters.
open_error_t openapiRouterEventAcknowledge(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t clientId, uint32_t eventId)
Acknowledge a router event.
open_error_t openapiRtrICMPRedirectsModeGet(openapiClientHandle_t *client_handle, uint32_t intf, uint32_t *mode)
Get the ICMP Redirects mode of the interface.
open_error_t openapiRouteTypeRegister(openapiClientHandle_t *client_handle, OPEN_AF_t addressFamily, uint32_t protoId, open_buffdesc *routeTypeName, open_buffdesc *routeTypeCode, uint32_t *routeType)
Register a new route type.
open_error_t openapiRouteModVr(openapiClientHandle_t *client_handle, uint32_t vrfId, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Modify an existing route to the common routing table.
open_error_t openapiRtrIntfTypeGet(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_INTF_TYPE_t *intfType)
Get the type of the interface for the given router interface.
open_error_t openapiRtrLoopbackIntIfNumGet(openapiClientHandle_t *client_handle, uint32_t loopbackId, uint32_t *intf)
Get the internal interface number of the loopback interface.
open_error_t openapiRoutingStartupStatus(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t *complete)
Report whether IP routing has finished initialization for a given address family. ...
open_error_t
OPEN uses these enumerators to indicate the error codes.
open_error_t openapiRtrIntfNameGet(openapiClientHandle_t *client_handle, uint32_t intf, open_buffdesc *intfName)
Get the interface name of the configured router interface.
uint32_t actualTx
Negotiated tx value.
open_error_t openapiIntfBestRoutesNextGet(openapiClientHandle_t *client_handle, uint32_t clientId, uint32_t intIfNum, uint32_t numChanges, open_buffdesc *routeListBuff)
Get the next set of best-routes on an interface for a specific client.
open_error_t openapiRoutingProtocolDeregister(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t addressFamily, uint32_t protoId)
Deregister a routing protocol.
open_error_t openapiBfdSessionFind(openapiClientHandle_t *client_handle, open_inet_addr_t peer, uint32_t *id)
Get the BFD Session Identifier for a given peer by IP address.
open_error_t openapiIp6RouterPreferenceGet(openapiClientHandle_t *client_handle, OPEN_PREF_INDICES_t index, uint32_t *pref)
Get IPv6 router preference associated with the specified protocol.
uint8_t pref
Route preference (also called administrative distance).
open_error_t openapiKernelArpAdd(openapiClientHandle_t *client_handle, uint32_t vrfId, open_inet_addr_t *dest_addr, open_buffdesc *mac, int32_t stkIfIndex, uint16_t state)
Add the ARP entry.
open_error_t openapiPrefixFindVr(openapiClientHandle_t *client_handle, uint32_t vrfId, open_inet_addr_t destPrefix, uint32_t pfxLen, openRoute_t *route, open_buffdesc *nextHopListBuff)
Find the best route with a specific prefix.
Policy has been added or modified.
open_error_t openapiIpRouterPreferenceGet(openapiClientHandle_t *client_handle, OPEN_PREF_INDICES_t index, uint32_t *pref)
Get router preference associated with the specified protocol.
open_error_t openapiKernelRouteAddVr(openapiClientHandle_t *client_handle, uint32_t vrfId, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Add a kernel route to the common routing table.
open_error_t openapiMaxRoutingInterfacesGet(openapiClientHandle_t *client_handle, uint32_t *routingIntfMax)
Get the maximum number of OPEN routing interfaces.
uint32_t metric
Route metric.
open_error_t openapiRtoFreeRouteCountGet(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t *rtoFreeRouteCount)
Get the number of available routes in RTO for this VRF Id.
int openapiPrefixListApply(openapiClientHandle_t *client_handle, open_buffdesc *pfxListName, open_inet_addr_t prefix, uint32_t pfxLen)
Apply a prefix list with a given name to a given prefix.
open_error_t openapiPlatRtrRouteMaxEntriesGet(openapiClientHandle_t *client_handle, uint32_t *pval)
Get the number of IPv4 routes for this platform.
open_error_t openapiRouteNextGet(openapiClientHandle_t *client_handle, OPEN_AF_t family, openRoute_t *route, open_buffdesc *nextHopListBuff)
Return next route in the routing table.
open_error_t openapiRtrIntfIpStackDrvNameGet(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t intf, open_buffdesc *intfName)
Get the drv name of the configured router interface.
OPEN_ROUTING_POLICY_TYPE_t
These values must be powers of 2.
open_error_t openapiIntfIpMtuGet(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t intf, uint32_t *ipMtu)
Get the configured ipmtu value for the router interface given an address family.
openBfdTunnelType_t type
Type of BFD encapsulation RAW, UDP.
open_error_t openapiMaxNextHopsGet(openapiClientHandle_t *client_handle, uint32_t *maxNextHops)
Get the maximum number of next hops in an ECMP route.
open_error_t openapiRtrAdminModeGetVrf(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t vrfId, OPEN_CONTROL_t *enable)
Get the router admin mode of the VRF.
uint32_t echoEnable
Echo mode (0-Disabled, 1-Enabled)
uint8_t remoteDetectMult
Remote detection interval multiplier.
open_error_t openapiRtrIntfSecIpAddrGet(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t intf, open_inet_pfx_t *ipAddr, uint32_t *index)
Get a Secondary IP address on a given router interface for a given address family.
open_error_t openapiKernelRouteDelVr(openapiClientHandle_t *client_handle, uint32_t vrfId, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Delete a kernel route from the common routing table.
open_error_t openapiIpMapIsBackupElectedGet(openapiClientHandle_t *client_handle, OPEN_BOOL_t *isBackupElected)
Check if backup is elected.
uint8_t leakedRoute
Flag to indicate if this route is leaked from another VR.
OPEN_BFD_SESSION_STATE_t state
Local session state.
open_error_t openapiBestRouteEventRegisterVr(openapiClientHandle_t *client_handle, uint32_t vrfId, OPEN_AF_t family, uint32_t pid, open_buffdesc *clientName, uint32_t *clientId)
Register to be notified when there are changes to one or more routes used for IP forwarding.
uint8_t localDetectMult
Local detection interval multiplier.
uint32_t remoteMinRx
Required remote rx interval.
open_error_t openapiBestRouteEventRegister(openapiClientHandle_t *client_handle, OPEN_AF_t family, uint32_t pid, uint32_t vrfId, open_buffdesc *clientName, uint32_t *clientId)
Register to be notified when there are changes to one or more routes used for IP forwarding.
uint32_t remoteMinTx
Desired remote min tx interval.
OPEN_AF_t
OPEN uses these enumerators to indicate address family, IPV4 or IPV6.
open_error_t openapiIpRouterPreferenceSet(openapiClientHandle_t *client_handle, OPEN_PREF_INDICES_t index, uint32_t pref)
Set router preference associated with the specified protocol.
open_error_t openapiRouteTypeNameLenMax(openapiClientHandle_t *client_handle, uint32_t *routeTypeNameLen)
Get the maximum length of a protocol name.
open_error_t openapiIpRouterProtoNameNextGet(openapiClientHandle_t *client_handle, uint32_t protoId, open_buffdesc *protoName, uint32_t *nextProtoId)
Get the protocol name assigned to the associated protocol id.
uint16_t msgType
One of OPENR_MESSAGE_TYPE_t.
open_error_t openapiBestRouteChangeNextGet(openapiClientHandle_t *client_handle, uint32_t clientId, OPEN_ROUTE_EVENT_t *chType, openRoute_t *route, open_buffdesc *nextHopListBuff)
Get the next best route change pending for a specific client.
open_error_t openapiBfdSessionInfoGet(openapiClientHandle_t *client_handle, uint32_t id, openBfdSessionInfo_t *info)
Get the BFD session information.
open_error_t openapiRtrICMPUnreachablesModeGet(openapiClientHandle_t *client_handle, uint32_t intf, uint32_t *mode)
Get the ICMP Unreachables mode of the interface.
open_error_t openapiRouteTypeInfoGet(openapiClientHandle_t *client_handle, uint32_t routeType, open_buffdesc *protoName, open_buffdesc *routeTypeName)
For a given route type, get the protocol and route type names.
open_error_t openapiRoutingStartupStatusVr(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t vrfId, uint32_t *complete)
Report whether IP routing has finished initialization in the requested VRF for a given address family...
uint32_t upTime
Session UP time.
uint32_t label[OPEN_MAX_MPLS_IMPOSE_LABELS]
OPEN_CONTROL_t
OPEN uses these enumerators to indicate enable or disable for a given config or status parameter...
open_error_t openapiIntfIsUnnumbered(openapiClientHandle_t *client_handle, uint32_t intIfNum, OPEN_BOOL_t *isUnnumbered)
Check if a given interface is unnumbered.
open_error_t openapiRoutingPolicyRegister(openapiClientHandle_t *client_handle, open_buffdesc *clientName, uint32_t pid, uint32_t policyTypeMask, uint32_t *clientId)
Register to be notified when there are routing policy changes.
open_error_t openapiBestRouteEventDeregister(openapiClientHandle_t *client_handle, uint32_t clientId)
Deregister for notifications when there are changes to one or more routes used for IP forwarding...
OPEN_PREF_INDICES_t
Route Preference Types.
uint32_t session_id
BFD Session ID.
struct openBfdSessionKey_s openBfdSessionKey_t
The key into the BFD database.
OPEN_BOOL_t
OPEN uses these enumerators to indicate true or false for a given config or status parameter...
open_error_t openapiUnnumberedPeerInfoSet(openapiClientHandle_t *client_handle, uint32_t intIfNum, uint32_t peerIp, OPEN_BOOL_t isAdd, uint32_t flag)
Set the Unnumbered peer info on an interface.
uint32_t protoId
Protocol ID assigned by FASTPATH to the routing protocol that added this route.
open_error_t openapiRoutingProtocolRegister(openapiClientHandle_t *client_handle, uint32_t vrfId, OPEN_AF_t addressFamily, open_buffdesc *protoName, open_buffdesc *protoCode, uint32_t *protoId)
Register a new routing protocol.
open_error_t openapiStackIfIndexIntIfNumGet(openapiClientHandle_t *client_handle, uint32_t ifIndex, uint32_t *intIfNum)
Get the interface number corresponding to the given ipstack ifIndex.
open_error_t openapiRtrIntfIpStackStkNameGet(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t intf, open_buffdesc *intfName)
Get the stk name of the configured router interface.
open_error_t openapiRtrIntfIpStackIfNameGet(openapiClientHandle_t *client_handle, uint32_t intf, open_buffdesc *intfName)
Get the name of the configured router interface.
uint32_t authType
Authentication type - not supported.
open_error_t openapiRtrIntfLoopbackIdGet(openapiClientHandle_t *client_handle, uint32_t intf, uint32_t *loopbackId)
Get the loopback id for the configured router interface.
open_error_t openapiBfdSessionCreate(openapiClientHandle_t *client_handle, openBfdEndpoint_t *ep, uint32_t *id)
Create a BFD Session.
uint32_t actualTxEcho
Negotiated tx echo value.
open_error_t openapiRouteMod(openapiClientHandle_t *client_handle, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Modify an existing route to the common routing table.
open_error_t openapiRtrIntfNextGet(openapiClientHandle_t *client_handle, uint32_t intf, uint32_t *nextIntf)
Get the next configured router interface.
openBfdSessionKey_t key
Unique BFD session identifier.
uint32_t localMinRx
Required local rx interval.
open_error_t openapiRtrICMPEchoReplyModeGet(openapiClientHandle_t *client_handle, open_buffdesc *vrfName, uint32_t *mode)
Get the ICMP ignore echo-req mode.
open_error_t openapiIntfBandwidthGet(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t intf, uint32_t *bandwidth)
Get the bandwidth value configure on the device ( ** to change **)
uint8_t version
BFD version.
open_error_t openapiPlatRtrRouteMaxEqualCostEntriesGet(openapiClientHandle_t *client_handle, uint32_t *pval)
Get the number of ECMP MAX PATHS FROM PLATFORM params.
open_error_t openapiRouterEventDeregister(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t clientId)
Deregister for routing events.
uint32_t clientId
Client ID given to client at registration time.
open_error_t openapiRtrIntfIpAddrGet(openapiClientHandle_t *client_handle, OPEN_AF_t af, uint32_t intf, open_inet_pfx_t *ipAddr)
Get an IP address on a given router interface for a given address family.
The key into the BFD database.
uint16_t msgLen
Number of bytes in payload.
uint32_t numNextHops
Number of nexthops in the route.
OPEN_ROUTE_EVENT_t
OPEN uses these 3 enumerators to indicate the addition, deletion, or change to the best route for a g...
open_error_t openapiRouteAddVr(openapiClientHandle_t *client_handle, uint32_t vrfId, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Add a route to the common routing table.
open_error_t openapiRouteDel(openapiClientHandle_t *client_handle, openRoute_t *routeEntry)
Delete a route from the common routing table.
open_error_t openapiVrfIntfNameGet(openapiClientHandle_t *client_handle, uint32_t vrfId, open_buffdesc *intfName)
Get the name of the configured VRF interface.
uint8_t routeType
Type of route.
open_inet_addr_t destPfx
Destination prefix and prefix length.
Message structure for forwarding table change notifications.
open_error_t openapiIntfNameSizeGet(openapiClientHandle_t *client_handle, uint32_t *ifNameSize)
Get the maximum length of an OPEN interface name.
open_error_t openapiRtrIntfNextGetVrf(openapiClientHandle_t *client_handle, uint32_t vrfId, uint32_t intf, uint32_t *nextIntf)
Get the next configured router interface.
int openapiRouteMapApply(openapiClientHandle_t *client_handle, open_buffdesc *routeMapName, openRmMatchParams_t *matchParams, openRmSetParams_t *setParams)
Apply a route map with a given name to a route whose attributes are set in the matchParams argument...
open_error_t openapiRtrIntfL3MacAddressGet(openapiClientHandle_t *client_handle, uint32_t intf, open_buffdesc *mac)
Get the L3 MAC address of the router interface.
OPEN_INTF_IP_ADDR_METHOD_t
IP address configuration method.
open_error_t openapiPrefixFind(openapiClientHandle_t *client_handle, open_inet_addr_t destPrefix, uint32_t pfxLen, openRoute_t *route, open_buffdesc *nextHopListBuff)
Find the best route with a specific prefix.
open_error_t openapiIp6RouterPreferenceSet(openapiClientHandle_t *client_handle, OPEN_PREF_INDICES_t index, uint32_t pref)
Set IPV6 router preference associated with the specified protocol.
OPEN_BFD_DIAG_CODE_t diag
Local diagnostic code.
open_error_t openapiBfdModeSet(OPEN_BFD_ADMIN_MODE_t mode)
Set the BFD Global Admin Mode.
open_error_t openapiBfdSessionStatsGet(openapiClientHandle_t *client_handle, uint32_t id, openBfdSessionStats_t *stats)
Get the BFD statistics associated with the given session.
open_error_t openapiRtrIntfIpStackIfIndexGet(openapiClientHandle_t *client_handle, uint32_t intf, uint32_t *ifIndex)
Get the ipstack ifIndex on the configured router interface.
open_error_t openapiBestRouteNextGetVr(openapiClientHandle_t *client_handle, OPEN_AF_t family, uint32_t vrfId, openRoute_t *openRoute, open_buffdesc *nextHopListBuff)
Return next best route in the specified VRF routing table.
open_error_t openapiPolicyChangeAck(openapiClientHandle_t *client_handle, uint32_t clientId, uint32_t seqNo)
Acknowledge receipt of a policy change notification.
open_error_t openapiVrfNameGet(openapiClientHandle_t *client_handle, uint32_t vrfId, open_buffdesc *vrfName)
Get the VRF name for a given VRF ID.
open_error_t openapiKernelArpDelete(openapiClientHandle_t *client_handle, uint32_t vrfId, open_inet_addr_t *dest_addr, int32_t stkIfIndex)
Delete the ARP entry.
OPENR_MESSAGE_TYPE_t
Values that go in the Message Type field of event messages sent to applications.
open_error_t openapiBfdSessionDelete(openapiClientHandle_t *client_handle, openBfdEndpoint_t *ep, uint32_t id)
Delete a BFD Session.
open_error_t openapiRtrIntfUnitSlotPortGet(openapiClientHandle_t *client_handle, uint32_t intf, open_USP_t *usp)
Get the unit, slot and port of the router interface.
open_error_t openapiRouteAdd(openapiClientHandle_t *client_handle, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Add a route to the common routing table.
open_error_t openapiIpRouterPreferenceGetVr(openapiClientHandle_t *client_handle, uint32_t vrfId, OPEN_PREF_INDICES_t index, uint32_t *pref)
Get router preference associated with the specified protocol in a VRF.
uint32_t localMinTx
Desired local min tx interval.
open_error_t openapiRtrIntfIpAddrMethodGet(openapiClientHandle_t *client_handle, uint32_t intf, OPEN_INTF_IP_ADDR_METHOD_t *addrMethod, OPEN_CONTROL_t *clientIdEnable)
Get the method used to assign the IP address to a Router interface.
open_error_t openapiArpResolve(openapiClientHandle_t *client_handle, uint32_t vrfId, open_inet_addr_t *nh_addr, open_buffdesc *mac, uint32_t cbParm1, uint32_t cbParm2, uint32_t cbParm3)
Resolve ARP for the given IP Address.
open_error_t openapiExternalRoutesSaveDeRegister(openapiClientHandle_t *client_handle, OPEN_AF_t addressFamily, uint32_t vrfId, uint32_t protoId)
De-Register with RTO to save External routes to SyncDB.
open_error_t openapiBestRouteNextGet(openapiClientHandle_t *client_handle, OPEN_AF_t family, openRoute_t *routeEntry, open_buffdesc *nextHopListBuff)
Return next best route in the routing table.