38 #ifndef OPENAPI_IP6MAP_H_INCLUDED
39 #define OPENAPI_IP6MAP_H_INCLUDED
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
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;
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;
91 uint64_t ipv6IfIcmpDupAddrDetects;
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;
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;
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;
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;
185 uint32_t pLen[OPEN_RTR6_MAX_INTF_ADDRS];
186 uint32_t pEuiFlag[OPEN_RTR6_MAX_INTF_ADDRS];
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 {
233 uint32_t ipv6PrefixLen;
247 unsigned char oid[2];
254 uint32_t ipv6RoutePfxLength;
255 uint32_t ipv6RouteIndex;
258 uint32_t ipv6RouteType;
259 uint32_t ipv6RouteProtocol;
260 uint32_t ipv6RoutePolicy;
261 uint32_t ipv6RouteAge;
262 uint32_t ipv6RouteNextHopRDI;
264 uint32_t ipv6RouteWeight;
266 uint32_t ipv6RouteValid;
267 uint32_t ipv6RouteProtocolType;
996 uint32_t intIfNum, uint32_t *val);
1016 uint32_t intIfNum, uint32_t val);
1037 uint32_t intIfNum, uint32_t *val);
1058 uint32_t intIfNum, uint32_t val);
1076 uint32_t intIfNum, uint32_t *val);
1094 uint32_t intIfNum, uint32_t val);
1262 uint32_t *lastUpdate,
1264 uint32_t *ipv6ScopeId);
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.
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.
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.
uint32_t ipv6IfIndex
Internal interface number.
open_in6_addr_t ip6Addr
Next hop address.