Index: sys/net/route.h =================================================================== --- sys/net/route.h +++ sys/net/route.h @@ -104,6 +104,10 @@ /* lle state is exported in rmx_state rt_metrics field */ #define rmx_state rmx_weight +/* lle cache statistics are exported via the rmx_{recv,send}pipe rt_metrics fields. */ +#define rmx_lookup_count rmx_recvpipe +#define rmx_cache_hits rmx_sendpipe + /* default route weight */ #define RT_DEFAULT_WEIGHT 1 #define RT_MAX_WEIGHT 16777215 /* 3 bytes */ Index: sys/netinet/in.c =================================================================== --- sys/netinet/in.c +++ sys/netinet/in.c @@ -1659,6 +1659,9 @@ arpc.rtm.rtm_flags |= RTF_STATIC; if (lle->la_flags & LLE_IFADDR) arpc.rtm.rtm_flags |= RTF_PINNED; + /* Re-purposed rmx_recvpipe and rmx_sendpipe to send LLE cache info. */ + arpc.rtm.rtm_rmx.rmx_lookup_count = lle->lle_lookup_count; + arpc.rtm.rtm_rmx.rmx_cache_hits = lle->lle_cache_hits; arpc.rtm.rtm_index = ifp->if_index; error = SYSCTL_OUT(wr, &arpc, sizeof(arpc)); Index: sys/netinet6/in6.c =================================================================== --- sys/netinet6/in6.c +++ sys/netinet6/in6.c @@ -2434,6 +2434,9 @@ ndpc.rtm.rtm_rmx.rmx_pksent = lle->la_asked; /* Store state in rmx_weight value */ ndpc.rtm.rtm_rmx.rmx_state = lle->ln_state; + /* Re-purposed rmx_recvpipe and rmx_sendpipe to send LLE cache info. */ + ndpc.rtm.rtm_rmx.rmx_lookup_count = lle->lle_lookup_count; + ndpc.rtm.rtm_rmx.rmx_cache_hits = lle->lle_cache_hits; ndpc.rtm.rtm_index = ifp->if_index; error = SYSCTL_OUT(wr, &ndpc, sizeof(ndpc));