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))
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 OPENR_NUM_ROUTES_CHECK_POLICY_ACTION 50
89 #define OPEN_VRF_MAX_NAME_LEN 64
105 OPEN_DELETE_ROUTE = 1,
106 OPEN_CHANGE_ROUTE = 2
114 OPEN_POLICY_ROUTE_MAP = 1,
115 OPEN_POLICY_PREFIX_LIST = 2,
116 OPEN_POLICY_AS_PATH_LIST = 4,
117 OPEN_POLICY_ACL_ROUTE_FILTER = 8
134 OPENR_BEST_ROUTE_CHANGE = 10,
137 OPENR_RTR_ENABLE = 101,
138 OPENR_RTR_DISABLE = 102,
139 OPENR_RTR_STARTUP_DONE = 103,
140 OPENR_RTR_INTF_CREATE = 104,
141 OPENR_RTR_INTF_DELETE = 105,
142 OPENR_RTR_INTF_ENABLE = 106,
143 OPENR_RTR_INTF_ENABLE_PENDING = 107,
144 OPENR_RTR_INTF_DISABLE = 108,
145 OPENR_RTR_INTF_DISABLE_PENDING = 109,
146 OPENR_RTR_INTF_ADDR_CHANGE = 110,
147 OPENR_RTR_INTF_MTU = 111,
148 OPENR_RTR_INTF_BW_CHANGE = 112,
149 OPENR_RTR_INTF_HOST_MODE = 113,
150 OPENR_RTR_INTF_CFG_CHANGE = 114,
151 OPENR_RTR_VRF_CREATE = 115,
152 OPENR_RTR_VRF_DELETE = 116,
154 OPENR_RTR6_ENABLE = 201,
155 OPENR_RTR6_DISABLE = 202,
156 OPENR_RTR6_STARTUP_DONE = 203,
157 OPENR_RTR6_INTF_CREATE = 204,
158 OPENR_RTR6_INTF_DELETE = 205,
159 OPENR_RTR6_INTF_ENABLE = 206,
160 OPENR_RTR6_INTF_DISABLE = 207,
161 OPENR_RTR6_INTF_ADDR_CHANGE = 208,
162 OPENR_RTR6_INTF_MTU = 209,
163 OPENR_RTR6_INTF_BW_CHANGE = 210,
164 OPENR_RTR6_INTF_HOST_MODE = 211,
166 OPENR_POLICY_CHANGE = 300
175 OPEN_NSF_PROTOCOL_OSPF = 0x1,
176 OPEN_NSF_PROTOCOL_RIP = 0x2,
177 OPEN_NSF_PROTOCOL_BGP = 0x4,
178 OPEN_NSF_PROTOCOL_LAST = 0x8
179 } OPEN_NSF_PROTOCOL_t;
183 OPEN_FILTER_ACTION_PERMIT = 0,
184 OPEN_FILTER_ACTION_DENY = 1
185 } OPEN_FILTER_ACTION_t;
213 uint32_t eventSeqNumber;
260 uint32_t
label[OPEN_MAX_MPLS_IMPOSE_LABELS];
309 uint8_t rfc5549Route;
312 uint8_t unnumberedRoute;
353 OPENR_RMAP_MATCH_AS_PATH = 0x1,
354 OPENR_RMAP_MATCH_COMMUNITY_LIST = 0x2,
355 OPENR_RMAP_MATCH_INTERFACE = 0x4,
356 OPENR_RMAP_MATCH_IP_ADDRESS = 0x8,
357 OPENR_RMAP_MATCH_IP_NEXT_HOP = 0x10,
358 OPENR_RMAP_MATCH_IP_ROUTE_SOURCE = 0x20,
359 OPENR_RMAP_MATCH_LENGTH = 0x40,
360 OPENR_RMAP_MATCH_METRIC = 0x80,
361 OPENR_RMAP_MATCH_METRIC_TYPE = 0x100,
362 OPENR_RMAP_MATCH_TAG = 0x200,
363 #ifdef L7_QOS_PACKAGE
364 OPENR_RMAP_MATCH_MAC_ACL = 0x400,
366 OPENR_RMAP_MATCH_EXTCOMMUNITY_LIST = 0x800,
367 OPENR_RMAP_MATCH_IPV6_ADDRESS = 0x1000,
369 OPENR_RMAP_SET_AS_PATH = 0x1,
370 OPENR_RMAP_SET_AUTOMATIC_TAG = 0x2,
371 OPENR_RMAP_SET_COMMUNITY = 0x4,
372 OPENR_RMAP_SET_COMM_LIST_DELETE = 0x8,
373 OPENR_RMAP_SET_DEFAULT_INTF = 0x10,
374 OPENR_RMAP_SET_INTF = 0x20,
375 OPENR_RMAP_SET_IP_DEFAULT_NEXT_HOP = 0x40,
376 OPENR_RMAP_SET_IPV6_NEXT_HOP = 0x80,
377 OPENR_RMAP_SET_LEVEL = 0x100,
378 OPENR_RMAP_SET_LOCAL_PREF = 0x200,
379 OPENR_RMAP_SET_METRIC = 0x400,
380 OPENR_RMAP_SET_METRIC_TYPE = 0x800,
381 OPENR_RMAP_SET_NEXT_HOP = 0x1000,
382 OPENR_RMAP_SET_TAG = 0x2000,
383 OPENR_RMAP_SET_IP_TOS = 0x4000,
384 OPENR_RMAP_SET_IP_PREC = 0x8000,
385 OPENR_RMAP_SET_RT_EXTCOMMUNITY = 0x10000,
386 OPENR_RMAP_SET_SOO_EXTCOMMUNITY = 0x20000,
387 OPENR_RMAP_SET_EXTCOMM_LIST_DELETE = 0x40000,
388 OPENR_RMAP_SET_IPV6_DEFAULT_NEXT_HOP = 0x80000,
389 OPENR_RMAP_SET_IPV6_PREC = 0x100000,
390 OPENR_RMAP_SET_IP_UNCHANGED_NEXT_HOP = 0x200000,
391 } OPENR_RMAP_PARAMS_MASK_t;
397 OPENR_RMAP_PARAMS_MASK_t matchParamsMask;
413 OPENR_RMAP_PARAMS_MASK_t setParamsMask;
429 openRoute_t route[OPENR_NUM_ROUTES_CHECK_POLICY_ACTION];
437 OPEN_BFD_DISABLE = 0,
439 } OPEN_BFD_ADMIN_MODE_t;
457 uint32_t override_config;
460 uint32_t bfdMultiplier;
461 uint32_t bfdEchoMode;
462 uint32_t bfdSlowTimer;
467 #define OPEN_BFD_MAX_REG_PROT 2
470 #define OPEN_BFD_SESSION_ID_INVALID (~0)
475 OPEN_BFD_SESSION_STATE_ADMIN_DOWN = 0,
476 OPEN_BFD_SESSION_STATE_DOWN = 1,
477 OPEN_BFD_SESSION_STATE_INIT = 2,
478 OPEN_BFD_SESSION_STATE_UP = 3,
479 } OPEN_BFD_SESSION_STATE_t;
483 OPEN_BFD_DIAG_CODE_NONE,
484 OPEN_BFD_DIAG_CODE_CTRL_DETECT_TIME_EXPIRED,
485 OPEN_BFD_DIAG_CODE_ECHO_FAILED,
486 OPEN_BFD_DIAG_CODE_NEIGHBOR_SIGNALED_SESSION_DOWN,
487 OPEN_BFD_DIAG_CODE_FORWARDING_PLANE_RESET,
488 OPEN_BFD_DIAG_CODE_PATH_DOWN,
489 OPEN_BFD_DIAG_CODE_CONCATENATED_PATH_DOWN,
490 OPEN_BFD_DIAG_CODE_ADMIN_DOWN,
491 OPEN_BFD_DIAG_CODE_REVERSE_CONCATENATED_PATH_DOWN,
492 OPEN_BFD_DIAG_CODE_MIS_CONNECTIVITY_DEFECT
493 } OPEN_BFD_DIAG_CODE_t;
496 OPEN_BFD_TUNNEL_TYPE_RAW,
497 OPEN_BFD_TUNNEL_TYPE_UDP,
498 OPEN_BFD_TUNNEL_TYPE_COUNT
499 } openBfdTunnelType_t;
501 #define SYNCDB_OPENAPI_BFD "OpEN API BFD"
502 #define SYNCDB_OPENAPI_BFD_VERSION 1
537 uint32_t
id[OPEN_BFD_MAX_REG_PROT];
549 uint32_t echoOutPkts;
632 uint32_t *routeType);
655 uint32_t addressFamily,
678 uint32_t addressFamily,
767 uint32_t *protoNameLen);
787 uint32_t *routeTypeNameLen);
1054 uint32_t *clientId);
1129 uint32_t numChanges,
1153 uint32_t clientId, uint32_t intIfNum,
1154 uint32_t numChanges,
1176 uint32_t *maxNextHops);
1205 uint32_t *clientId);
1266 uint32_t *routingIntfMax);
1288 uint32_t *nextIntf);
1308 uint32_t *nextIntf);
1438 uint32_t *loopbackId);
1455 uint32_t loopbackId,
1474 uint32_t *ifNameSize);
1511 uint32_t ifIndex, uint32_t *intIfNum);
1779 uint32_t *bandwidth);
1834 uint32_t *burstSize,
1835 uint32_t *interval);
1908 uint32_t *complete);
1947 uint32_t *complete);
1998 OPEN_FILTER_ACTION_t *action);
2059 uint32_t policyTypeMask,
2060 uint32_t *clientId);
2145 uint32_t *nextProtoId);
2222 uint32_t *clientId);
2457 uint32_t *rtoFreeRouteCount);
2585 uint32_t intIfNum, uint32_t peerIp,
OPEN_BOOL_t isAdd, uint32_t flag);
2634 int32_t stkIfIndex);