diff options
Diffstat (limited to 'lib/dpif-netlink.c')
-rw-r--r-- | lib/dpif-netlink.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c index 5f4b60c5a..b5d436e66 100644 --- a/lib/dpif-netlink.c +++ b/lib/dpif-netlink.c @@ -777,9 +777,18 @@ dpif_netlink_get_stats(const struct dpif *dpif_, struct dpif_dp_stats *stats) stats->n_masks = dp.megaflow_stats->n_masks; stats->n_mask_hit = get_32aligned_u64( &dp.megaflow_stats->n_mask_hit); + stats->n_cache_hit = get_32aligned_u64( + &dp.megaflow_stats->n_cache_hit); + + if (!stats->n_cache_hit) { + /* Old kernels don't use this field and always + * report zero instead. Disable this stat. */ + stats->n_cache_hit = UINT64_MAX; + } } else { stats->n_masks = UINT32_MAX; stats->n_mask_hit = UINT64_MAX; + stats->n_cache_hit = UINT64_MAX; } ofpbuf_delete(buf); } |