aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ip-neighbor/ip_neighbor.api
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/ip-neighbor/ip_neighbor.api')
-rw-r--r--src/vnet/ip-neighbor/ip_neighbor.api115
1 files changed, 114 insertions, 1 deletions
diff --git a/src/vnet/ip-neighbor/ip_neighbor.api b/src/vnet/ip-neighbor/ip_neighbor.api
index 62730e7c1e3..24cddd42fab 100644
--- a/src/vnet/ip-neighbor/ip_neighbor.api
+++ b/src/vnet/ip-neighbor/ip_neighbor.api
@@ -20,7 +20,7 @@
called through a shared memory interface.
*/
-option version = "1.0.0";
+option version = "1.0.1";
import "vnet/ip/ip_types.api";
import "vnet/ethernet/ethernet_types.api";
@@ -126,6 +126,40 @@ autoreply define ip_neighbor_config
bool recycle;
};
+/** \brief Get neighbor database configuration per AF
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param af - Address family (v4/v6)
+*/
+define ip_neighbor_config_get
+{
+ option in_progress;
+ u32 client_index;
+ u32 context;
+ vl_api_address_family_t af;
+};
+
+/** \brief Neighbor database configuration reply
+ @param context - sender context, to match reply w/ request
+ @param retval - error (0 is "no error")
+ @param af - Address family (v4/v6)
+ @param max_number - The maximum number of neighbours that will be created
+ @param max_age - The maximum age (in seconds) before an inactive neighbour
+ is flushed
+ @param recycle - If max_number of neighbours is reached and new ones need
+ to be created, should the oldest neighbour be 'recycled'
+*/
+define ip_neighbor_config_get_reply
+{
+ option in_progress;
+ u32 context;
+ i32 retval;
+ vl_api_address_family_t af;
+ u32 max_number;
+ u32 max_age;
+ bool recycle;
+};
+
/** \brief IP neighbour replace begin
The use-case is that, for some unspecified reason, the control plane
@@ -264,6 +298,85 @@ service {
events ip_neighbor_event_v2;
};
+counters ip4_neighbor {
+ throttled {
+ severity info;
+ type counter64;
+ units "packets";
+ description "ARP requests throttled";
+ };
+ resolved {
+ severity info;
+ type counter64;
+ units "packets";
+ description "ARP requests resolved";
+ };
+ no_buffers {
+ severity error;
+ type counter64;
+ units "packets";
+ description "ARP requests out of buffer";
+ };
+ request_sent {
+ severity info;
+ type counter64;
+ units "packets";
+ description "ARP requests sent";
+ };
+ non_arp_adj {
+ severity error;
+ type counter64;
+ units "packets";
+ description "ARPs to non-ARP adjacencies";
+ };
+ no_source_address {
+ severity error;
+ type counter64;
+ units "packets";
+ description "no source address for ARP request";
+ };
+};
+
+counters ip6_neighbor {
+ throttled {
+ severity info;
+ type counter64;
+ units "packets";
+ description "throttled";
+ };
+ drop {
+ severity error;
+ type counter64;
+ units "packets";
+ description "address overflow drops";
+ };
+ request_sent {
+ severity info;
+ type counter64;
+ units "packets";
+ description "neighbor solicitations sent";
+ };
+ no_source_address {
+ severity error;
+ type counter64;
+ units "packets";
+ description "no source address for ND solicitation";
+ };
+ no_buffers {
+ severity error;
+ type counter64;
+ units "packets";
+ description "no buffers";
+ };
+};
+
+paths {
+ "/err/ip4-arp" "ip4_neighbor";
+ "/err/ip4-glean" "ip4_neighbor";
+ "/err/ip6-arp" "ip6_neighbor";
+ "/err/ip6-glean" "ip6_neighbor";
+};
+
/*
* Local Variables:
* eval: (c-set-style "gnu")