Coverage Report

Created: 2025-08-26 06:20

/src/frr/pimd/pim_addr.c
Line
Count
Source (jump to first uncovered line)
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
250k
{
18
250k
  const pim_addr *addr = vptr;
19
250k
  bool use_star = false;
20
21
250k
  if (ea->fmt[0] == 's') {
22
209k
    use_star = true;
23
209k
    ea->fmt++;
24
209k
  }
25
26
250k
  if (!addr)
27
0
    return bputs(buf, "(null)");
28
29
250k
  if (use_star && pim_addr_is_any(*addr))
30
494
    return bputch(buf, '*');
31
32
249k
#if PIM_IPV == 4
33
249k
  return bprintfrr(buf, "%pI4", addr);
34
#else
35
  return bprintfrr(buf, "%pI6", addr);
36
#endif
37
250k
}
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
104k
{
43
104k
  const pim_sgaddr *sga = vptr;
44
45
104k
  if (!sga)
46
0
    return bputs(buf, "(null)");
47
48
104k
  return bprintfrr(buf, "(%pPAs,%pPAs)", &sga->src, &sga->grp);
49
104k
}