summaryrefslogtreecommitdiff
path: root/lib/mac-learning.c
diff options
context:
space:
mode:
authorEelco Chaudron <echaudro@redhat.com>2018-06-25 12:57:26 +0200
committerBen Pfaff <blp@ovn.org>2018-07-06 14:26:20 -0700
commit5f3818f1c601d006a53a2a2d71faecfc223163b4 (patch)
tree97f32550f4796ff1e0cb68ab345cd82aac74629c /lib/mac-learning.c
parent04f803fddc8df4312cc2bef6ed8a7c4d000990d9 (diff)
downloadopenvswitch-5f3818f1c601d006a53a2a2d71faecfc223163b4.tar.gz
mac-learning: Add additional mac-learning coverage counters
This patch adds two additional mac-learning coverage counters: - mac_learning_evicted, entries deleted due to mac table being full - mac_learning_moved, entries where the port has changed. Signed-off-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'lib/mac-learning.c')
-rw-r--r--lib/mac-learning.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/mac-learning.c b/lib/mac-learning.c
index 215caf0ba..8b7981dbb 100644
--- a/lib/mac-learning.c
+++ b/lib/mac-learning.c
@@ -32,6 +32,8 @@
COVERAGE_DEFINE(mac_learning_learned);
COVERAGE_DEFINE(mac_learning_expired);
+COVERAGE_DEFINE(mac_learning_evicted);
+COVERAGE_DEFINE(mac_learning_moved);
/* Returns the number of seconds since 'e' (within 'ml') was last learned. */
int
@@ -150,6 +152,7 @@ evict_mac_entry_fairly(struct mac_learning *ml)
struct mac_learning_port, heap_node);
e = CONTAINER_OF(ovs_list_front(&mlport->port_lrus),
struct mac_entry, port_lru_node);
+ COVERAGE_INC(mac_learning_evicted);
mac_learning_expire(ml, e);
}
@@ -421,6 +424,9 @@ update_learning_table__(struct mac_learning *ml, struct eth_addr src,
}
if (mac_entry_get_port(ml, mac) != in_port) {
+ if (mac_entry_get_port(ml, mac) != NULL) {
+ COVERAGE_INC(mac_learning_moved);
+ }
mac_entry_set_port(ml, mac, in_port);
return true;
}