Coverage Report

Created: 2026-05-11 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/frr/pimd/pim_addr.c
Line
Count
Source
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
/*
3
 * PIM address generalizations
4
 * Copyright (C) 2022  David Lamparter for NetDEF, Inc.
5
 */
6
7
#include <zebra.h>
8
9
#include "pim_addr.h"
10
#include "printfrr.h"
11
#include "prefix.h"
12
13
14
printfrr_ext_autoreg_p("PA", printfrr_pimaddr);
15
static ssize_t printfrr_pimaddr(struct fbuf *buf, struct printfrr_eargs *ea,
16
        const void *vptr)
17
203k
{
18
203k
  const pim_addr *addr = vptr;
19
203k
  bool use_star = false;
20
21
203k
  if (ea->fmt[0] == 's') {
22
172k
    use_star = true;
23
172k
    ea->fmt++;
24
172k
  }
25
26
203k
  if (!addr)
27
0
    return bputs(buf, "(null)");
28
29
203k
  if (use_star && pim_addr_is_any(*addr))
30
430
    return bputch(buf, '*');
31
32
202k
#if PIM_IPV == 4
33
202k
  return bprintfrr(buf, "%pI4", addr);
34
#else
35
  return bprintfrr(buf, "%pI6", addr);
36
#endif
37
203k
}
38
39
printfrr_ext_autoreg_p("SG", printfrr_sgaddr);
40
static ssize_t printfrr_sgaddr(struct fbuf *buf, struct printfrr_eargs *ea,
41
             const void *vptr)
42
86.4k
{
43
86.4k
  const pim_sgaddr *sga = vptr;
44
45
86.4k
  if (!sga)
46
0
    return bputs(buf, "(null)");
47
48
86.4k
  return bprintfrr(buf, "(%pPAs,%pPAs)", &sga->src, &sga->grp);
49
86.4k
}