diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-03-10 18:10:43 +0200 |
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-03-13 19:31:34 +0200 |
| commit | f2058cb425b6f2e5efb3ac8608c47bcc2da5535d (patch) | |
| tree | fd6568d21b7d67043c2bfb19a24767949a2de6ac /pimd/pim_sock.c | |
| parent | 7547d5288e91d7bdc09aff4cd902d6cedbabfafc (diff) | |
pimd: Add IGMP join sent/failed statistics
```
exit1-debian-11# sh ip igmp statistics
IGMP statistics
Interface : global
V1 query : 0
V2 query : 0
V3 query : 0
V2 leave : 0
V1 report : 0
V2 report : 0
V3 report : 16
mtrace response : 0
mtrace request : 0
unsupported : 0
joins failed : 0
joins sent : 11
total groups : 4
total source groups : 0
exit1-debian-11# sh ip igmp statistics json
{
"global":{
"name":"global",
"queryV1":0,
"queryV2":0,
"queryV3":0,
"leaveV3":0,
"reportV1":0,
"reportV2":0,
"reportV3":16,
"mtraceResponse":0,
"mtraceRequest":0,
"unsupported":0,
"totalGroups":4,
"totalSourceGroups":0,
"joinsFailed":0,
"joinsSent":11
}
}
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'pimd/pim_sock.c')
| -rw-r--r-- | pimd/pim_sock.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c index 92e2d18451..8619cc3f83 100644 --- a/pimd/pim_sock.c +++ b/pimd/pim_sock.c @@ -38,6 +38,7 @@ #include "pimd.h" #include "pim_mroute.h" +#include "pim_iface.h" #include "pim_sock.h" #include "pim_str.h" @@ -233,7 +234,8 @@ int pim_socket_mcast(int protocol, pim_addr ifaddr, struct interface *ifp, return fd; } -int pim_socket_join(int fd, pim_addr group, pim_addr ifaddr, ifindex_t ifindex) +int pim_socket_join(int fd, pim_addr group, pim_addr ifaddr, ifindex_t ifindex, + struct pim_interface *pim_ifp) { int ret; @@ -248,11 +250,14 @@ int pim_socket_join(int fd, pim_addr group, pim_addr ifaddr, ifindex_t ifindex) ret = setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &opt, sizeof(opt)); #endif + pim_ifp->igmp_ifstat_joins_sent++; + if (ret) { flog_err( EC_LIB_SOCKET, "Failure socket joining fd=%d group %pPAs on interface address %pPAs: %m", fd, &group, &ifaddr); + pim_ifp->igmp_ifstat_joins_failed++; return ret; } |
