Line | Count | Source |
1 | | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | | /* Bitfields |
3 | | * Copyright (C) 2016 Cumulus Networks, Inc. |
4 | | */ |
5 | | /** |
6 | | * A simple bit array implementation to allocate and free IDs. An example |
7 | | * of its usage is in allocating link state IDs for OSPFv3 as OSPFv3 has |
8 | | * removed all address semantics from LS ID. Another usage can be in |
9 | | * allocating IDs for BGP neighbors (and dynamic update groups) for |
10 | | * efficient storage of adj-rib-out. |
11 | | * |
12 | | * An example: |
13 | | * #include "bitfield.h" |
14 | | * |
15 | | * bitfield_t bitfield; |
16 | | * |
17 | | * bf_init(bitfield, 32); |
18 | | * ... |
19 | | * bf_assign_index(bitfield, id1); |
20 | | * bf_assign_index(bitfield, id2); |
21 | | * ... |
22 | | * bf_release_index(bitfield, id1); |
23 | | */ |
24 | | |
25 | | #ifndef _BITFIELD_H |
26 | | #define _BITFIELD_H |
27 | | |
28 | | #include <stdio.h> |
29 | | #include <string.h> |
30 | | #include <stdlib.h> |
31 | | |
32 | | #ifdef __cplusplus |
33 | | extern "C" { |
34 | | #endif |
35 | | |
36 | | typedef unsigned int word_t; |
37 | 8 | #define WORD_MAX 0xFFFFFFFF |
38 | 15 | #define WORD_SIZE (sizeof(word_t) * 8) |
39 | | |
40 | | /** |
41 | | * The bitfield structure. |
42 | | * @data: the bits to manage. |
43 | | * @n: The current word number that is being used. |
44 | | * @m: total number of words in 'data' |
45 | | */ |
46 | | typedef struct {word_t *data; size_t n, m; } bitfield_t; |
47 | | |
48 | | DECLARE_MTYPE(BITFIELD); |
49 | | |
50 | | /** |
51 | | * Initialize the bits. |
52 | | * @v: an instance of bitfield_t struct. |
53 | | * @N: number of bits to start with, which equates to how many |
54 | | * IDs can be allocated. |
55 | | */ |
56 | | #define bf_init(v, N) \ |
57 | 3 | do { \ |
58 | 3 | (v).n = 0; \ |
59 | 3 | (v).m = ((N) / WORD_SIZE + 1); \ |
60 | 3 | (v).data = (word_t *)XCALLOC(MTYPE_BITFIELD, \ |
61 | 3 | ((v).m * sizeof(word_t))); \ |
62 | 3 | } while (0) |
63 | | |
64 | | /** |
65 | | * allocate and assign an id from bitfield v. |
66 | | */ |
67 | | #define bf_assign_index(v, id) \ |
68 | 4 | do { \ |
69 | 4 | bf_find_bit(v, id); \ |
70 | 4 | bf_set_bit(v, id); \ |
71 | 4 | } while (0) |
72 | | |
73 | | /* |
74 | | * allocate and assign 0th bit in the bitfiled. |
75 | | */ |
76 | | #define bf_assign_zero_index(v) \ |
77 | 3 | do { \ |
78 | 3 | int id = 0; \ |
79 | 3 | bf_assign_index(v, id); \ |
80 | 3 | } while (0) |
81 | | |
82 | | /* |
83 | | * return an id to bitfield v |
84 | | */ |
85 | | #define bf_release_index(v, id) \ |
86 | 0 | (v).data[bf_index(id)] &= ~(1 << (bf_offset(id))) |
87 | | |
88 | | /* check if an id is in use */ |
89 | | #define bf_test_index(v, id) \ |
90 | 0 | ((v).data[bf_index(id)] & (1 << (bf_offset(id)))) |
91 | | |
92 | | /* check if the bit field has been setup */ |
93 | 0 | #define bf_is_inited(v) ((v).data) |
94 | | |
95 | | /* compare two bitmaps of the same length */ |
96 | 0 | #define bf_cmp(v1, v2) (memcmp((v1).data, (v2).data, ((v1).m * sizeof(word_t)))) |
97 | | |
98 | | /* |
99 | | * return 0th index back to bitfield |
100 | | */ |
101 | | #define bf_release_zero_index(v) bf_release_index(v, 0) |
102 | | |
103 | 4 | #define bf_index(b) ((b) / WORD_SIZE) |
104 | 4 | #define bf_offset(b) ((b) % WORD_SIZE) |
105 | | |
106 | | /** |
107 | | * Set a bit in the array. If it fills up that word and we are |
108 | | * out of words, extend it by one more word. |
109 | | */ |
110 | | #define bf_set_bit(v, b) \ |
111 | 4 | do { \ |
112 | 4 | size_t w = bf_index(b); \ |
113 | 4 | (v).data[w] |= 1 << (bf_offset(b)); \ |
114 | 4 | (v).n += ((v).data[w] == WORD_MAX); \ |
115 | 4 | if ((v).n == (v).m) { \ |
116 | 0 | (v).m = (v).m + 1; \ |
117 | 0 | (v).data = realloc((v).data, (v).m * sizeof(word_t)); \ |
118 | 0 | } \ |
119 | 4 | } while (0) |
120 | | |
121 | | /* Find a clear bit in v and assign it to b. */ |
122 | | #define bf_find_bit(v, b) \ |
123 | 4 | do { \ |
124 | 4 | word_t word = 0; \ |
125 | 4 | unsigned int w, sh; \ |
126 | 4 | for (w = 0; w <= (v).n; w++) { \ |
127 | 4 | if ((word = (v).data[w]) != WORD_MAX) \ |
128 | 4 | break; \ |
129 | 4 | } \ |
130 | 4 | (b) = ((word & 0xFFFF) == 0xFFFF) << 4; \ |
131 | 4 | word >>= (b); \ |
132 | 4 | sh = ((word & 0xFF) == 0xFF) << 3; \ |
133 | 4 | word >>= sh; \ |
134 | 4 | (b) |= sh; \ |
135 | 4 | sh = ((word & 0xF) == 0xF) << 2; \ |
136 | 4 | word >>= sh; \ |
137 | 4 | (b) |= sh; \ |
138 | 4 | sh = ((word & 0x3) == 0x3) << 1; \ |
139 | 4 | word >>= sh; \ |
140 | 4 | (b) |= sh; \ |
141 | 4 | sh = ((word & 0x1) == 0x1) << 0; \ |
142 | 4 | word >>= sh; \ |
143 | 4 | (b) |= sh; \ |
144 | 4 | (b) += (w * WORD_SIZE); \ |
145 | 4 | } while (0) |
146 | | |
147 | | /* |
148 | | * Find a clear bit in v and return it |
149 | | * Start looking in the word containing bit position start_index. |
150 | | * If necessary, wrap around after bit position max_index. |
151 | | */ |
152 | | static inline unsigned int |
153 | | bf_find_next_clear_bit_wrap(bitfield_t *v, word_t start_index, word_t max_index) |
154 | 0 | { |
155 | 0 | int start_bit; |
156 | 0 | unsigned long i, offset, scanbits, wordcount_max, index_max; |
157 | |
|
158 | 0 | if (start_index > max_index) |
159 | 0 | start_index = 0; |
160 | |
|
161 | 0 | start_bit = start_index & (WORD_SIZE - 1); |
162 | 0 | wordcount_max = bf_index(max_index) + 1; |
163 | |
|
164 | 0 | scanbits = WORD_SIZE; |
165 | 0 | for (i = bf_index(start_index); i < v->m; ++i) { |
166 | 0 | if (v->data[i] == WORD_MAX) { |
167 | | /* if the whole word is full move to the next */ |
168 | 0 | start_bit = 0; |
169 | 0 | continue; |
170 | 0 | } |
171 | | /* scan one word for clear bits */ |
172 | 0 | if ((i == v->m - 1) && (v->m >= wordcount_max)) |
173 | | /* max index could be only part of word */ |
174 | 0 | scanbits = (max_index % WORD_SIZE) + 1; |
175 | 0 | for (offset = start_bit; offset < scanbits; ++offset) { |
176 | 0 | if (!((v->data[i] >> offset) & 1)) |
177 | 0 | return ((i * WORD_SIZE) + offset); |
178 | 0 | } |
179 | | /* move to the next word */ |
180 | 0 | start_bit = 0; |
181 | 0 | } |
182 | | |
183 | 0 | if (v->m < wordcount_max) { |
184 | | /* |
185 | | * We can expand bitfield, so no need to wrap. |
186 | | * Return the index of the first bit of the next word. |
187 | | * Assumption is that caller will call bf_set_bit which |
188 | | * will allocate additional space. |
189 | | */ |
190 | 0 | v->m += 1; |
191 | 0 | v->data = (word_t *)realloc(v->data, v->m * sizeof(word_t)); |
192 | 0 | v->data[v->m - 1] = 0; |
193 | 0 | return v->m * WORD_SIZE; |
194 | 0 | } |
195 | | |
196 | | /* |
197 | | * start looking for a clear bit at the start of the bitfield and |
198 | | * stop when we reach start_index |
199 | | */ |
200 | 0 | scanbits = WORD_SIZE; |
201 | 0 | index_max = bf_index(start_index - 1); |
202 | 0 | for (i = 0; i <= index_max; ++i) { |
203 | 0 | if (i == index_max) |
204 | 0 | scanbits = ((start_index - 1) % WORD_SIZE) + 1; |
205 | 0 | for (offset = start_bit; offset < scanbits; ++offset) { |
206 | 0 | if (!((v->data[i] >> offset) & 1)) |
207 | 0 | return ((i * WORD_SIZE) + offset); |
208 | 0 | } |
209 | | /* move to the next word */ |
210 | 0 | start_bit = 0; |
211 | 0 | } |
212 | | |
213 | 0 | return WORD_MAX; |
214 | 0 | } Unexecuted instantiation: ospf_main.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-ospf-route-map.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_bfd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_dump.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_dump_api.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_errors.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_interface.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_lsa.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_lsdb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_neighbor.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_network.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_nsm.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_opaque.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_packet.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ri.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_routemap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_routemap_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_routemap_nb_config.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_spf.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ti_lfa.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_sr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_te.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_zebra.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospfd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_gr_helper.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_abr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_apiserver.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_asbr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ase.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ext.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_flood.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_gr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ia.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ism.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_ldp_sync.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_route.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ospf_api.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: admin_group.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: affinitymap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: affinitymap_cli.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: affinitymap_northbound.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: agg_table.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: asn.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bfd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: buffer.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: command.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: command_graph.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: command_match.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: cspf.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: debug.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: distribute.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ferr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: filter.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: filter_cli.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: filter_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: flex_algo.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr_pthread.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: grammar_sandbox.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: hash.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: id_alloc.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: if.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: if_rmap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: json.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: keychain.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ldp_sync.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: lib_errors.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: lib_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: libfrr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: link_state.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: log.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: log_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: mgmt_be_client.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: mgmt_fe_client.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: mgmt_msg.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: mlag.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: srv6.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: network.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: nexthop.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: netns_linux.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: nexthop_group.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: northbound.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: northbound_cli.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: northbound_db.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pid_output.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: plist.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: prefix.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: privs.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pullwr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: routemap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: routemap_cli.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: routemap_northbound.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: sigevent.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: skiplist.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: sockopt.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: sockunion.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: spf_backoff.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: srcdest_table.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: stream.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: systemd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: table.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: termtable.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: event.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vrf.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: workqueue.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: xref.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: yang_translator.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: yang_wrappers.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zclient.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zlog_5424.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zlog_5424_cli.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: routing_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: routing_nb_config.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: tc.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-affinity-map.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-filter.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-if-rmap.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-interface.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-route-map.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-route-types.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-vrf.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-routing.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-nexthop.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ietf-routing-types.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ietf-interfaces.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ietf-bgp-types.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-module-translator.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: connected.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: if_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: interface.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: ioctl.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: kernel_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: label_manager.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: main.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: netconf_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: redistribute.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: router-id.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rt_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rtadv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rtread_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rule_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: table_manager.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: tc_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zapi_msg.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_affinitymap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_dplane.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_errors.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_gr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_l2.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_l2_bridge_if.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_evpn.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_evpn_mac.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_evpn_neigh.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mlag.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mlag_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mpls.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mpls_netlink.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mpls_null.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mpls_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_srv6.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_srv6_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_mroute.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_nb_config.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_nb_rpcs.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_nb_state.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_netns_id.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_netns_notify.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_nhg.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_ns.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_opaque.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_pbr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_ptm.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_ptm_redistribute.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_pw.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_rib.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_router.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_rnh.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_routemap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_routemap_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_routemap_nb_config.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_script.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_srte.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_tc.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_vrf.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_vxlan.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_vxlan_if.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_evpn_mh.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zebra_neigh.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: zserv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: debug_nl.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-zebra.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-zebra-route-map.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_main.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-types.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-common-structure.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-common.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-neighbor.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-peer-group.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-bmp.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-rpki.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-filter.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-bgp-route-map.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_attr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_attr_evpn.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_clist.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_community.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_community_alias.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_debug.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_dump.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_ecommunity.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_errors.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_evpn.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_evpn_mh.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_evpn_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_filter.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_flowspec_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_fsm.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_io.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_keepalives.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_labelpool.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_lcommunity.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_mac.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_mpath.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_mplsvpn.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_network.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_nexthop.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_nht.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_packet.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_pbr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_rd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_regex.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_route.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_routemap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_routemap_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_routemap_nb_config.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_table.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_updgrp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_updgrp_adv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_updgrp_packet.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_vpn.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_zebra.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgpd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_rfapi_cfg.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_import.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_ap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_encap_tlv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_nve_addr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_monitor.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_rib.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfapi_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vnc_debug.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vnc_export_bgp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vnc_export_table.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vnc_import_bgp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: vnc_zebra.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_addpath.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_advertise.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_aspath.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_bfd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_conditional_adv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_damp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_encap_tlv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_flowspec.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_flowspec_util.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_label.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: bgp_open.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: rfp_example.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_addr.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_assert.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_bfd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_bsm.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_cmd_common.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_errors.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_hello.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_iface.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_ifchannel.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_instance.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_join.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_jp_agg.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_macro.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_mroute.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_msg.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_nb.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_nb_config.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_neighbor.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_nht.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_oil.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_pim.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_routemap.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_rp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_rpf.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_sock.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_ssm.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_ssmpingd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_static.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_str.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_tib.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_time.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_tlv.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_upstream.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_util.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_vty.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_zebra.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_zlookup.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_vxlan.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_register.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pimd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_cmd.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_igmp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_igmp_mtrace.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_igmpv2.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_igmpv3.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_main.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_mlag.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_msdp.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_msdp_packet.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_msdp_socket.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_signals.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: pim_zpthread.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-pim.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-pim-rp.yang.c:bf_find_next_clear_bit_wrap Unexecuted instantiation: frr-gmp.yang.c:bf_find_next_clear_bit_wrap |
215 | | |
216 | | static inline unsigned int bf_find_next_set_bit(bitfield_t v, |
217 | | word_t start_index) |
218 | 0 | { |
219 | 0 | int start_bit; |
220 | 0 | unsigned long i, offset; |
221 | |
|
222 | 0 | start_bit = start_index & (WORD_SIZE - 1); |
223 | |
|
224 | 0 | for (i = bf_index(start_index); i < v.m; ++i) { |
225 | 0 | if (v.data[i] == 0) { |
226 | | /* if the whole word is empty move to the next */ |
227 | 0 | start_bit = 0; |
228 | 0 | continue; |
229 | 0 | } |
230 | | /* scan one word for set bits */ |
231 | 0 | for (offset = start_bit; offset < WORD_SIZE; ++offset) { |
232 | 0 | if ((v.data[i] >> offset) & 1) |
233 | 0 | return ((i * WORD_SIZE) + offset); |
234 | 0 | } |
235 | | /* move to the next word */ |
236 | 0 | start_bit = 0; |
237 | 0 | } |
238 | 0 | return WORD_MAX; |
239 | 0 | } Unexecuted instantiation: ospf_main.c:bf_find_next_set_bit Unexecuted instantiation: frr-ospf-route-map.yang.c:bf_find_next_set_bit Unexecuted instantiation: ospf_bfd.c:bf_find_next_set_bit Unexecuted instantiation: ospf_dump.c:bf_find_next_set_bit Unexecuted instantiation: ospf_dump_api.c:bf_find_next_set_bit Unexecuted instantiation: ospf_errors.c:bf_find_next_set_bit Unexecuted instantiation: ospf_interface.c:bf_find_next_set_bit Unexecuted instantiation: ospf_lsa.c:bf_find_next_set_bit Unexecuted instantiation: ospf_lsdb.c:bf_find_next_set_bit Unexecuted instantiation: ospf_neighbor.c:bf_find_next_set_bit Unexecuted instantiation: ospf_network.c:bf_find_next_set_bit Unexecuted instantiation: ospf_nsm.c:bf_find_next_set_bit Unexecuted instantiation: ospf_opaque.c:bf_find_next_set_bit Unexecuted instantiation: ospf_packet.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ri.c:bf_find_next_set_bit Unexecuted instantiation: ospf_routemap.c:bf_find_next_set_bit Unexecuted instantiation: ospf_routemap_nb.c:bf_find_next_set_bit Unexecuted instantiation: ospf_routemap_nb_config.c:bf_find_next_set_bit Unexecuted instantiation: ospf_spf.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ti_lfa.c:bf_find_next_set_bit Unexecuted instantiation: ospf_sr.c:bf_find_next_set_bit Unexecuted instantiation: ospf_te.c:bf_find_next_set_bit Unexecuted instantiation: ospf_vty.c:bf_find_next_set_bit Unexecuted instantiation: ospf_zebra.c:bf_find_next_set_bit Unexecuted instantiation: ospfd.c:bf_find_next_set_bit Unexecuted instantiation: ospf_gr_helper.c:bf_find_next_set_bit Unexecuted instantiation: ospf_abr.c:bf_find_next_set_bit Unexecuted instantiation: ospf_apiserver.c:bf_find_next_set_bit Unexecuted instantiation: ospf_asbr.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ase.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ext.c:bf_find_next_set_bit Unexecuted instantiation: ospf_flood.c:bf_find_next_set_bit Unexecuted instantiation: ospf_gr.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ia.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ism.c:bf_find_next_set_bit Unexecuted instantiation: ospf_ldp_sync.c:bf_find_next_set_bit Unexecuted instantiation: ospf_route.c:bf_find_next_set_bit Unexecuted instantiation: ospf_api.c:bf_find_next_set_bit Unexecuted instantiation: admin_group.c:bf_find_next_set_bit Unexecuted instantiation: affinitymap.c:bf_find_next_set_bit Unexecuted instantiation: affinitymap_cli.c:bf_find_next_set_bit Unexecuted instantiation: affinitymap_northbound.c:bf_find_next_set_bit Unexecuted instantiation: agg_table.c:bf_find_next_set_bit Unexecuted instantiation: asn.c:bf_find_next_set_bit Unexecuted instantiation: bfd.c:bf_find_next_set_bit Unexecuted instantiation: buffer.c:bf_find_next_set_bit Unexecuted instantiation: command.c:bf_find_next_set_bit Unexecuted instantiation: command_graph.c:bf_find_next_set_bit Unexecuted instantiation: command_match.c:bf_find_next_set_bit Unexecuted instantiation: cspf.c:bf_find_next_set_bit Unexecuted instantiation: debug.c:bf_find_next_set_bit Unexecuted instantiation: distribute.c:bf_find_next_set_bit Unexecuted instantiation: ferr.c:bf_find_next_set_bit Unexecuted instantiation: filter.c:bf_find_next_set_bit Unexecuted instantiation: filter_cli.c:bf_find_next_set_bit Unexecuted instantiation: filter_nb.c:bf_find_next_set_bit Unexecuted instantiation: flex_algo.c:bf_find_next_set_bit Unexecuted instantiation: frr_pthread.c:bf_find_next_set_bit Unexecuted instantiation: grammar_sandbox.c:bf_find_next_set_bit Unexecuted instantiation: hash.c:bf_find_next_set_bit Unexecuted instantiation: id_alloc.c:bf_find_next_set_bit Unexecuted instantiation: if.c:bf_find_next_set_bit Unexecuted instantiation: if_rmap.c:bf_find_next_set_bit Unexecuted instantiation: json.c:bf_find_next_set_bit Unexecuted instantiation: keychain.c:bf_find_next_set_bit Unexecuted instantiation: ldp_sync.c:bf_find_next_set_bit Unexecuted instantiation: lib_errors.c:bf_find_next_set_bit Unexecuted instantiation: lib_vty.c:bf_find_next_set_bit Unexecuted instantiation: libfrr.c:bf_find_next_set_bit Unexecuted instantiation: link_state.c:bf_find_next_set_bit Unexecuted instantiation: log.c:bf_find_next_set_bit Unexecuted instantiation: log_vty.c:bf_find_next_set_bit Unexecuted instantiation: mgmt_be_client.c:bf_find_next_set_bit Unexecuted instantiation: mgmt_fe_client.c:bf_find_next_set_bit Unexecuted instantiation: mgmt_msg.c:bf_find_next_set_bit Unexecuted instantiation: mlag.c:bf_find_next_set_bit Unexecuted instantiation: srv6.c:bf_find_next_set_bit Unexecuted instantiation: network.c:bf_find_next_set_bit Unexecuted instantiation: nexthop.c:bf_find_next_set_bit Unexecuted instantiation: netns_linux.c:bf_find_next_set_bit Unexecuted instantiation: nexthop_group.c:bf_find_next_set_bit Unexecuted instantiation: northbound.c:bf_find_next_set_bit Unexecuted instantiation: northbound_cli.c:bf_find_next_set_bit Unexecuted instantiation: northbound_db.c:bf_find_next_set_bit Unexecuted instantiation: pid_output.c:bf_find_next_set_bit Unexecuted instantiation: plist.c:bf_find_next_set_bit Unexecuted instantiation: prefix.c:bf_find_next_set_bit Unexecuted instantiation: privs.c:bf_find_next_set_bit Unexecuted instantiation: pullwr.c:bf_find_next_set_bit Unexecuted instantiation: routemap.c:bf_find_next_set_bit Unexecuted instantiation: routemap_cli.c:bf_find_next_set_bit Unexecuted instantiation: routemap_northbound.c:bf_find_next_set_bit Unexecuted instantiation: sigevent.c:bf_find_next_set_bit Unexecuted instantiation: skiplist.c:bf_find_next_set_bit Unexecuted instantiation: sockopt.c:bf_find_next_set_bit Unexecuted instantiation: sockunion.c:bf_find_next_set_bit Unexecuted instantiation: spf_backoff.c:bf_find_next_set_bit Unexecuted instantiation: srcdest_table.c:bf_find_next_set_bit Unexecuted instantiation: stream.c:bf_find_next_set_bit Unexecuted instantiation: systemd.c:bf_find_next_set_bit Unexecuted instantiation: table.c:bf_find_next_set_bit Unexecuted instantiation: termtable.c:bf_find_next_set_bit Unexecuted instantiation: event.c:bf_find_next_set_bit Unexecuted instantiation: vrf.c:bf_find_next_set_bit Unexecuted instantiation: vty.c:bf_find_next_set_bit Unexecuted instantiation: workqueue.c:bf_find_next_set_bit Unexecuted instantiation: xref.c:bf_find_next_set_bit Unexecuted instantiation: yang.c:bf_find_next_set_bit Unexecuted instantiation: yang_translator.c:bf_find_next_set_bit Unexecuted instantiation: yang_wrappers.c:bf_find_next_set_bit Unexecuted instantiation: zclient.c:bf_find_next_set_bit Unexecuted instantiation: zlog_5424.c:bf_find_next_set_bit Unexecuted instantiation: zlog_5424_cli.c:bf_find_next_set_bit Unexecuted instantiation: routing_nb.c:bf_find_next_set_bit Unexecuted instantiation: routing_nb_config.c:bf_find_next_set_bit Unexecuted instantiation: tc.c:bf_find_next_set_bit Unexecuted instantiation: frr-affinity-map.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-filter.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-if-rmap.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-interface.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-route-map.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-route-types.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-vrf.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-routing.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-nexthop.yang.c:bf_find_next_set_bit Unexecuted instantiation: ietf-routing-types.yang.c:bf_find_next_set_bit Unexecuted instantiation: ietf-interfaces.yang.c:bf_find_next_set_bit Unexecuted instantiation: ietf-bgp-types.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-module-translator.yang.c:bf_find_next_set_bit Unexecuted instantiation: connected.c:bf_find_next_set_bit Unexecuted instantiation: if_netlink.c:bf_find_next_set_bit Unexecuted instantiation: interface.c:bf_find_next_set_bit Unexecuted instantiation: ioctl.c:bf_find_next_set_bit Unexecuted instantiation: kernel_netlink.c:bf_find_next_set_bit Unexecuted instantiation: label_manager.c:bf_find_next_set_bit Unexecuted instantiation: main.c:bf_find_next_set_bit Unexecuted instantiation: netconf_netlink.c:bf_find_next_set_bit Unexecuted instantiation: redistribute.c:bf_find_next_set_bit Unexecuted instantiation: router-id.c:bf_find_next_set_bit Unexecuted instantiation: rt_netlink.c:bf_find_next_set_bit Unexecuted instantiation: rtadv.c:bf_find_next_set_bit Unexecuted instantiation: rtread_netlink.c:bf_find_next_set_bit Unexecuted instantiation: rule_netlink.c:bf_find_next_set_bit Unexecuted instantiation: table_manager.c:bf_find_next_set_bit Unexecuted instantiation: tc_netlink.c:bf_find_next_set_bit Unexecuted instantiation: zapi_msg.c:bf_find_next_set_bit Unexecuted instantiation: zebra_affinitymap.c:bf_find_next_set_bit Unexecuted instantiation: zebra_dplane.c:bf_find_next_set_bit Unexecuted instantiation: zebra_errors.c:bf_find_next_set_bit Unexecuted instantiation: zebra_gr.c:bf_find_next_set_bit Unexecuted instantiation: zebra_l2.c:bf_find_next_set_bit Unexecuted instantiation: zebra_l2_bridge_if.c:bf_find_next_set_bit Unexecuted instantiation: zebra_evpn.c:bf_find_next_set_bit Unexecuted instantiation: zebra_evpn_mac.c:bf_find_next_set_bit Unexecuted instantiation: zebra_evpn_neigh.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mlag.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mlag_vty.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mpls.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mpls_netlink.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mpls_null.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mpls_vty.c:bf_find_next_set_bit Unexecuted instantiation: zebra_srv6.c:bf_find_next_set_bit Unexecuted instantiation: zebra_srv6_vty.c:bf_find_next_set_bit Unexecuted instantiation: zebra_mroute.c:bf_find_next_set_bit Unexecuted instantiation: zebra_nb.c:bf_find_next_set_bit Unexecuted instantiation: zebra_nb_config.c:bf_find_next_set_bit Unexecuted instantiation: zebra_nb_rpcs.c:bf_find_next_set_bit Unexecuted instantiation: zebra_nb_state.c:bf_find_next_set_bit Unexecuted instantiation: zebra_netns_id.c:bf_find_next_set_bit Unexecuted instantiation: zebra_netns_notify.c:bf_find_next_set_bit Unexecuted instantiation: zebra_nhg.c:bf_find_next_set_bit Unexecuted instantiation: zebra_ns.c:bf_find_next_set_bit Unexecuted instantiation: zebra_opaque.c:bf_find_next_set_bit Unexecuted instantiation: zebra_pbr.c:bf_find_next_set_bit Unexecuted instantiation: zebra_ptm.c:bf_find_next_set_bit Unexecuted instantiation: zebra_ptm_redistribute.c:bf_find_next_set_bit Unexecuted instantiation: zebra_pw.c:bf_find_next_set_bit Unexecuted instantiation: zebra_rib.c:bf_find_next_set_bit Unexecuted instantiation: zebra_router.c:bf_find_next_set_bit Unexecuted instantiation: zebra_rnh.c:bf_find_next_set_bit Unexecuted instantiation: zebra_routemap.c:bf_find_next_set_bit Unexecuted instantiation: zebra_routemap_nb.c:bf_find_next_set_bit Unexecuted instantiation: zebra_routemap_nb_config.c:bf_find_next_set_bit Unexecuted instantiation: zebra_script.c:bf_find_next_set_bit Unexecuted instantiation: zebra_srte.c:bf_find_next_set_bit Unexecuted instantiation: zebra_tc.c:bf_find_next_set_bit Unexecuted instantiation: zebra_vrf.c:bf_find_next_set_bit Unexecuted instantiation: zebra_vty.c:bf_find_next_set_bit Unexecuted instantiation: zebra_vxlan.c:bf_find_next_set_bit Unexecuted instantiation: zebra_vxlan_if.c:bf_find_next_set_bit Unexecuted instantiation: zebra_evpn_mh.c:bf_find_next_set_bit Unexecuted instantiation: zebra_neigh.c:bf_find_next_set_bit Unexecuted instantiation: zserv.c:bf_find_next_set_bit Unexecuted instantiation: debug_nl.c:bf_find_next_set_bit Unexecuted instantiation: frr-zebra.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-zebra-route-map.yang.c:bf_find_next_set_bit Unexecuted instantiation: bgp_main.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-types.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-common-structure.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-common.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-neighbor.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-peer-group.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-bmp.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-rpki.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-filter.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-bgp-route-map.yang.c:bf_find_next_set_bit Unexecuted instantiation: bgp_attr.c:bf_find_next_set_bit Unexecuted instantiation: bgp_attr_evpn.c:bf_find_next_set_bit Unexecuted instantiation: bgp_clist.c:bf_find_next_set_bit Unexecuted instantiation: bgp_community.c:bf_find_next_set_bit Unexecuted instantiation: bgp_community_alias.c:bf_find_next_set_bit Unexecuted instantiation: bgp_debug.c:bf_find_next_set_bit Unexecuted instantiation: bgp_dump.c:bf_find_next_set_bit Unexecuted instantiation: bgp_ecommunity.c:bf_find_next_set_bit Unexecuted instantiation: bgp_errors.c:bf_find_next_set_bit Unexecuted instantiation: bgp_evpn.c:bf_find_next_set_bit Unexecuted instantiation: bgp_evpn_mh.c:bf_find_next_set_bit Unexecuted instantiation: bgp_evpn_vty.c:bf_find_next_set_bit Unexecuted instantiation: bgp_filter.c:bf_find_next_set_bit Unexecuted instantiation: bgp_flowspec_vty.c:bf_find_next_set_bit Unexecuted instantiation: bgp_fsm.c:bf_find_next_set_bit Unexecuted instantiation: bgp_io.c:bf_find_next_set_bit Unexecuted instantiation: bgp_keepalives.c:bf_find_next_set_bit Unexecuted instantiation: bgp_labelpool.c:bf_find_next_set_bit Unexecuted instantiation: bgp_lcommunity.c:bf_find_next_set_bit Unexecuted instantiation: bgp_mac.c:bf_find_next_set_bit Unexecuted instantiation: bgp_mpath.c:bf_find_next_set_bit Unexecuted instantiation: bgp_mplsvpn.c:bf_find_next_set_bit Unexecuted instantiation: bgp_network.c:bf_find_next_set_bit Unexecuted instantiation: bgp_nexthop.c:bf_find_next_set_bit Unexecuted instantiation: bgp_nht.c:bf_find_next_set_bit Unexecuted instantiation: bgp_packet.c:bf_find_next_set_bit Unexecuted instantiation: bgp_pbr.c:bf_find_next_set_bit Unexecuted instantiation: bgp_rd.c:bf_find_next_set_bit Unexecuted instantiation: bgp_regex.c:bf_find_next_set_bit Unexecuted instantiation: bgp_route.c:bf_find_next_set_bit Unexecuted instantiation: bgp_routemap.c:bf_find_next_set_bit Unexecuted instantiation: bgp_routemap_nb.c:bf_find_next_set_bit Unexecuted instantiation: bgp_routemap_nb_config.c:bf_find_next_set_bit Unexecuted instantiation: bgp_table.c:bf_find_next_set_bit Unexecuted instantiation: bgp_updgrp.c:bf_find_next_set_bit Unexecuted instantiation: bgp_updgrp_adv.c:bf_find_next_set_bit Unexecuted instantiation: bgp_updgrp_packet.c:bf_find_next_set_bit Unexecuted instantiation: bgp_vpn.c:bf_find_next_set_bit Unexecuted instantiation: bgp_vty.c:bf_find_next_set_bit Unexecuted instantiation: bgp_zebra.c:bf_find_next_set_bit Unexecuted instantiation: bgpd.c:bf_find_next_set_bit Unexecuted instantiation: bgp_rfapi_cfg.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_import.c:bf_find_next_set_bit Unexecuted instantiation: rfapi.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_ap.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_encap_tlv.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_nve_addr.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_monitor.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_rib.c:bf_find_next_set_bit Unexecuted instantiation: rfapi_vty.c:bf_find_next_set_bit Unexecuted instantiation: vnc_debug.c:bf_find_next_set_bit Unexecuted instantiation: vnc_export_bgp.c:bf_find_next_set_bit Unexecuted instantiation: vnc_export_table.c:bf_find_next_set_bit Unexecuted instantiation: vnc_import_bgp.c:bf_find_next_set_bit Unexecuted instantiation: vnc_zebra.c:bf_find_next_set_bit Unexecuted instantiation: bgp_addpath.c:bf_find_next_set_bit Unexecuted instantiation: bgp_advertise.c:bf_find_next_set_bit Unexecuted instantiation: bgp_aspath.c:bf_find_next_set_bit Unexecuted instantiation: bgp_bfd.c:bf_find_next_set_bit Unexecuted instantiation: bgp_conditional_adv.c:bf_find_next_set_bit Unexecuted instantiation: bgp_damp.c:bf_find_next_set_bit Unexecuted instantiation: bgp_encap_tlv.c:bf_find_next_set_bit Unexecuted instantiation: bgp_flowspec.c:bf_find_next_set_bit Unexecuted instantiation: bgp_flowspec_util.c:bf_find_next_set_bit Unexecuted instantiation: bgp_label.c:bf_find_next_set_bit Unexecuted instantiation: bgp_open.c:bf_find_next_set_bit Unexecuted instantiation: rfp_example.c:bf_find_next_set_bit Unexecuted instantiation: pim_addr.c:bf_find_next_set_bit Unexecuted instantiation: pim_assert.c:bf_find_next_set_bit Unexecuted instantiation: pim_bfd.c:bf_find_next_set_bit Unexecuted instantiation: pim_bsm.c:bf_find_next_set_bit Unexecuted instantiation: pim_cmd_common.c:bf_find_next_set_bit Unexecuted instantiation: pim_errors.c:bf_find_next_set_bit Unexecuted instantiation: pim_hello.c:bf_find_next_set_bit Unexecuted instantiation: pim_iface.c:bf_find_next_set_bit Unexecuted instantiation: pim_ifchannel.c:bf_find_next_set_bit Unexecuted instantiation: pim_instance.c:bf_find_next_set_bit Unexecuted instantiation: pim_join.c:bf_find_next_set_bit Unexecuted instantiation: pim_jp_agg.c:bf_find_next_set_bit Unexecuted instantiation: pim_macro.c:bf_find_next_set_bit Unexecuted instantiation: pim_mroute.c:bf_find_next_set_bit Unexecuted instantiation: pim_msg.c:bf_find_next_set_bit Unexecuted instantiation: pim_nb.c:bf_find_next_set_bit Unexecuted instantiation: pim_nb_config.c:bf_find_next_set_bit Unexecuted instantiation: pim_neighbor.c:bf_find_next_set_bit Unexecuted instantiation: pim_nht.c:bf_find_next_set_bit Unexecuted instantiation: pim_oil.c:bf_find_next_set_bit Unexecuted instantiation: pim_pim.c:bf_find_next_set_bit Unexecuted instantiation: pim_routemap.c:bf_find_next_set_bit Unexecuted instantiation: pim_rp.c:bf_find_next_set_bit Unexecuted instantiation: pim_rpf.c:bf_find_next_set_bit Unexecuted instantiation: pim_sock.c:bf_find_next_set_bit Unexecuted instantiation: pim_ssm.c:bf_find_next_set_bit Unexecuted instantiation: pim_ssmpingd.c:bf_find_next_set_bit Unexecuted instantiation: pim_static.c:bf_find_next_set_bit Unexecuted instantiation: pim_str.c:bf_find_next_set_bit Unexecuted instantiation: pim_tib.c:bf_find_next_set_bit Unexecuted instantiation: pim_time.c:bf_find_next_set_bit Unexecuted instantiation: pim_tlv.c:bf_find_next_set_bit Unexecuted instantiation: pim_upstream.c:bf_find_next_set_bit Unexecuted instantiation: pim_util.c:bf_find_next_set_bit Unexecuted instantiation: pim_vty.c:bf_find_next_set_bit Unexecuted instantiation: pim_zebra.c:bf_find_next_set_bit Unexecuted instantiation: pim_zlookup.c:bf_find_next_set_bit Unexecuted instantiation: pim_vxlan.c:bf_find_next_set_bit Unexecuted instantiation: pim_register.c:bf_find_next_set_bit Unexecuted instantiation: pimd.c:bf_find_next_set_bit Unexecuted instantiation: pim_cmd.c:bf_find_next_set_bit Unexecuted instantiation: pim_igmp.c:bf_find_next_set_bit Unexecuted instantiation: pim_igmp_mtrace.c:bf_find_next_set_bit Unexecuted instantiation: pim_igmpv2.c:bf_find_next_set_bit Unexecuted instantiation: pim_igmpv3.c:bf_find_next_set_bit Unexecuted instantiation: pim_main.c:bf_find_next_set_bit Unexecuted instantiation: pim_mlag.c:bf_find_next_set_bit Unexecuted instantiation: pim_msdp.c:bf_find_next_set_bit Unexecuted instantiation: pim_msdp_packet.c:bf_find_next_set_bit Unexecuted instantiation: pim_msdp_socket.c:bf_find_next_set_bit Unexecuted instantiation: pim_signals.c:bf_find_next_set_bit Unexecuted instantiation: pim_zpthread.c:bf_find_next_set_bit Unexecuted instantiation: frr-pim.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-pim-rp.yang.c:bf_find_next_set_bit Unexecuted instantiation: frr-gmp.yang.c:bf_find_next_set_bit |
240 | | |
241 | | /* iterate through all the set bits */ |
242 | | #define bf_for_each_set_bit(v, b, max) \ |
243 | 0 | for ((b) = bf_find_next_set_bit((v), 0); \ |
244 | 0 | (b) < max; \ |
245 | 0 | (b) = bf_find_next_set_bit((v), (b) + 1)) |
246 | | |
247 | | /* |
248 | | * Free the allocated memory for data |
249 | | * @v: an instance of bitfield_t struct. |
250 | | */ |
251 | | #define bf_free(v) \ |
252 | 0 | do { \ |
253 | 0 | XFREE(MTYPE_BITFIELD, (v).data); \ |
254 | 0 | (v).data = NULL; \ |
255 | 0 | } while (0) |
256 | | |
257 | | static inline bitfield_t bf_copy(bitfield_t src) |
258 | 0 | { |
259 | 0 | bitfield_t dst; |
260 | |
|
261 | 0 | assert(bf_is_inited(src)); |
262 | 0 | bf_init(dst, WORD_SIZE * (src.m - 1)); |
263 | 0 | for (size_t i = 0; i < src.m; i++) |
264 | 0 | dst.data[i] = src.data[i]; |
265 | 0 | dst.n = src.n; |
266 | 0 | return dst; |
267 | 0 | } Unexecuted instantiation: ospf_main.c:bf_copy Unexecuted instantiation: frr-ospf-route-map.yang.c:bf_copy Unexecuted instantiation: ospf_bfd.c:bf_copy Unexecuted instantiation: ospf_dump.c:bf_copy Unexecuted instantiation: ospf_dump_api.c:bf_copy Unexecuted instantiation: ospf_errors.c:bf_copy Unexecuted instantiation: ospf_interface.c:bf_copy Unexecuted instantiation: ospf_lsa.c:bf_copy Unexecuted instantiation: ospf_lsdb.c:bf_copy Unexecuted instantiation: ospf_neighbor.c:bf_copy Unexecuted instantiation: ospf_network.c:bf_copy Unexecuted instantiation: ospf_nsm.c:bf_copy Unexecuted instantiation: ospf_opaque.c:bf_copy Unexecuted instantiation: ospf_packet.c:bf_copy Unexecuted instantiation: ospf_ri.c:bf_copy Unexecuted instantiation: ospf_routemap.c:bf_copy Unexecuted instantiation: ospf_routemap_nb.c:bf_copy Unexecuted instantiation: ospf_routemap_nb_config.c:bf_copy Unexecuted instantiation: ospf_spf.c:bf_copy Unexecuted instantiation: ospf_ti_lfa.c:bf_copy Unexecuted instantiation: ospf_sr.c:bf_copy Unexecuted instantiation: ospf_te.c:bf_copy Unexecuted instantiation: ospf_vty.c:bf_copy Unexecuted instantiation: ospf_zebra.c:bf_copy Unexecuted instantiation: ospfd.c:bf_copy Unexecuted instantiation: ospf_gr_helper.c:bf_copy Unexecuted instantiation: ospf_abr.c:bf_copy Unexecuted instantiation: ospf_apiserver.c:bf_copy Unexecuted instantiation: ospf_asbr.c:bf_copy Unexecuted instantiation: ospf_ase.c:bf_copy Unexecuted instantiation: ospf_ext.c:bf_copy Unexecuted instantiation: ospf_flood.c:bf_copy Unexecuted instantiation: ospf_gr.c:bf_copy Unexecuted instantiation: ospf_ia.c:bf_copy Unexecuted instantiation: ospf_ism.c:bf_copy Unexecuted instantiation: ospf_ldp_sync.c:bf_copy Unexecuted instantiation: ospf_route.c:bf_copy Unexecuted instantiation: ospf_api.c:bf_copy Unexecuted instantiation: admin_group.c:bf_copy Unexecuted instantiation: affinitymap.c:bf_copy Unexecuted instantiation: affinitymap_cli.c:bf_copy Unexecuted instantiation: affinitymap_northbound.c:bf_copy Unexecuted instantiation: agg_table.c:bf_copy Unexecuted instantiation: asn.c:bf_copy Unexecuted instantiation: bfd.c:bf_copy Unexecuted instantiation: buffer.c:bf_copy Unexecuted instantiation: command.c:bf_copy Unexecuted instantiation: command_graph.c:bf_copy Unexecuted instantiation: command_match.c:bf_copy Unexecuted instantiation: cspf.c:bf_copy Unexecuted instantiation: debug.c:bf_copy Unexecuted instantiation: distribute.c:bf_copy Unexecuted instantiation: ferr.c:bf_copy Unexecuted instantiation: filter.c:bf_copy Unexecuted instantiation: filter_cli.c:bf_copy Unexecuted instantiation: filter_nb.c:bf_copy Unexecuted instantiation: flex_algo.c:bf_copy Unexecuted instantiation: frr_pthread.c:bf_copy Unexecuted instantiation: grammar_sandbox.c:bf_copy Unexecuted instantiation: hash.c:bf_copy Unexecuted instantiation: id_alloc.c:bf_copy Unexecuted instantiation: if.c:bf_copy Unexecuted instantiation: if_rmap.c:bf_copy Unexecuted instantiation: json.c:bf_copy Unexecuted instantiation: keychain.c:bf_copy Unexecuted instantiation: ldp_sync.c:bf_copy Unexecuted instantiation: lib_errors.c:bf_copy Unexecuted instantiation: lib_vty.c:bf_copy Unexecuted instantiation: libfrr.c:bf_copy Unexecuted instantiation: link_state.c:bf_copy Unexecuted instantiation: log.c:bf_copy Unexecuted instantiation: log_vty.c:bf_copy Unexecuted instantiation: mgmt_be_client.c:bf_copy Unexecuted instantiation: mgmt_fe_client.c:bf_copy Unexecuted instantiation: mgmt_msg.c:bf_copy Unexecuted instantiation: mlag.c:bf_copy Unexecuted instantiation: srv6.c:bf_copy Unexecuted instantiation: network.c:bf_copy Unexecuted instantiation: nexthop.c:bf_copy Unexecuted instantiation: netns_linux.c:bf_copy Unexecuted instantiation: nexthop_group.c:bf_copy Unexecuted instantiation: northbound.c:bf_copy Unexecuted instantiation: northbound_cli.c:bf_copy Unexecuted instantiation: northbound_db.c:bf_copy Unexecuted instantiation: pid_output.c:bf_copy Unexecuted instantiation: plist.c:bf_copy Unexecuted instantiation: prefix.c:bf_copy Unexecuted instantiation: privs.c:bf_copy Unexecuted instantiation: pullwr.c:bf_copy Unexecuted instantiation: routemap.c:bf_copy Unexecuted instantiation: routemap_cli.c:bf_copy Unexecuted instantiation: routemap_northbound.c:bf_copy Unexecuted instantiation: sigevent.c:bf_copy Unexecuted instantiation: skiplist.c:bf_copy Unexecuted instantiation: sockopt.c:bf_copy Unexecuted instantiation: sockunion.c:bf_copy Unexecuted instantiation: spf_backoff.c:bf_copy Unexecuted instantiation: srcdest_table.c:bf_copy Unexecuted instantiation: stream.c:bf_copy Unexecuted instantiation: systemd.c:bf_copy Unexecuted instantiation: table.c:bf_copy Unexecuted instantiation: termtable.c:bf_copy Unexecuted instantiation: event.c:bf_copy Unexecuted instantiation: vrf.c:bf_copy Unexecuted instantiation: vty.c:bf_copy Unexecuted instantiation: workqueue.c:bf_copy Unexecuted instantiation: xref.c:bf_copy Unexecuted instantiation: yang.c:bf_copy Unexecuted instantiation: yang_translator.c:bf_copy Unexecuted instantiation: yang_wrappers.c:bf_copy Unexecuted instantiation: zclient.c:bf_copy Unexecuted instantiation: zlog_5424.c:bf_copy Unexecuted instantiation: zlog_5424_cli.c:bf_copy Unexecuted instantiation: routing_nb.c:bf_copy Unexecuted instantiation: routing_nb_config.c:bf_copy Unexecuted instantiation: tc.c:bf_copy Unexecuted instantiation: frr-affinity-map.yang.c:bf_copy Unexecuted instantiation: frr-filter.yang.c:bf_copy Unexecuted instantiation: frr-if-rmap.yang.c:bf_copy Unexecuted instantiation: frr-interface.yang.c:bf_copy Unexecuted instantiation: frr-route-map.yang.c:bf_copy Unexecuted instantiation: frr-route-types.yang.c:bf_copy Unexecuted instantiation: frr-vrf.yang.c:bf_copy Unexecuted instantiation: frr-routing.yang.c:bf_copy Unexecuted instantiation: frr-nexthop.yang.c:bf_copy Unexecuted instantiation: ietf-routing-types.yang.c:bf_copy Unexecuted instantiation: ietf-interfaces.yang.c:bf_copy Unexecuted instantiation: ietf-bgp-types.yang.c:bf_copy Unexecuted instantiation: frr-module-translator.yang.c:bf_copy Unexecuted instantiation: connected.c:bf_copy Unexecuted instantiation: if_netlink.c:bf_copy Unexecuted instantiation: interface.c:bf_copy Unexecuted instantiation: ioctl.c:bf_copy Unexecuted instantiation: kernel_netlink.c:bf_copy Unexecuted instantiation: label_manager.c:bf_copy Unexecuted instantiation: main.c:bf_copy Unexecuted instantiation: netconf_netlink.c:bf_copy Unexecuted instantiation: redistribute.c:bf_copy Unexecuted instantiation: router-id.c:bf_copy Unexecuted instantiation: rt_netlink.c:bf_copy Unexecuted instantiation: rtadv.c:bf_copy Unexecuted instantiation: rtread_netlink.c:bf_copy Unexecuted instantiation: rule_netlink.c:bf_copy Unexecuted instantiation: table_manager.c:bf_copy Unexecuted instantiation: tc_netlink.c:bf_copy Unexecuted instantiation: zapi_msg.c:bf_copy Unexecuted instantiation: zebra_affinitymap.c:bf_copy Unexecuted instantiation: zebra_dplane.c:bf_copy Unexecuted instantiation: zebra_errors.c:bf_copy Unexecuted instantiation: zebra_gr.c:bf_copy Unexecuted instantiation: zebra_l2.c:bf_copy Unexecuted instantiation: zebra_l2_bridge_if.c:bf_copy Unexecuted instantiation: zebra_evpn.c:bf_copy Unexecuted instantiation: zebra_evpn_mac.c:bf_copy Unexecuted instantiation: zebra_evpn_neigh.c:bf_copy Unexecuted instantiation: zebra_mlag.c:bf_copy Unexecuted instantiation: zebra_mlag_vty.c:bf_copy Unexecuted instantiation: zebra_mpls.c:bf_copy Unexecuted instantiation: zebra_mpls_netlink.c:bf_copy Unexecuted instantiation: zebra_mpls_null.c:bf_copy Unexecuted instantiation: zebra_mpls_vty.c:bf_copy Unexecuted instantiation: zebra_srv6.c:bf_copy Unexecuted instantiation: zebra_srv6_vty.c:bf_copy Unexecuted instantiation: zebra_mroute.c:bf_copy Unexecuted instantiation: zebra_nb.c:bf_copy Unexecuted instantiation: zebra_nb_config.c:bf_copy Unexecuted instantiation: zebra_nb_rpcs.c:bf_copy Unexecuted instantiation: zebra_nb_state.c:bf_copy Unexecuted instantiation: zebra_netns_id.c:bf_copy Unexecuted instantiation: zebra_netns_notify.c:bf_copy Unexecuted instantiation: zebra_nhg.c:bf_copy Unexecuted instantiation: zebra_ns.c:bf_copy Unexecuted instantiation: zebra_opaque.c:bf_copy Unexecuted instantiation: zebra_pbr.c:bf_copy Unexecuted instantiation: zebra_ptm.c:bf_copy Unexecuted instantiation: zebra_ptm_redistribute.c:bf_copy Unexecuted instantiation: zebra_pw.c:bf_copy Unexecuted instantiation: zebra_rib.c:bf_copy Unexecuted instantiation: zebra_router.c:bf_copy Unexecuted instantiation: zebra_rnh.c:bf_copy Unexecuted instantiation: zebra_routemap.c:bf_copy Unexecuted instantiation: zebra_routemap_nb.c:bf_copy Unexecuted instantiation: zebra_routemap_nb_config.c:bf_copy Unexecuted instantiation: zebra_script.c:bf_copy Unexecuted instantiation: zebra_srte.c:bf_copy Unexecuted instantiation: zebra_tc.c:bf_copy Unexecuted instantiation: zebra_vrf.c:bf_copy Unexecuted instantiation: zebra_vty.c:bf_copy Unexecuted instantiation: zebra_vxlan.c:bf_copy Unexecuted instantiation: zebra_vxlan_if.c:bf_copy Unexecuted instantiation: zebra_evpn_mh.c:bf_copy Unexecuted instantiation: zebra_neigh.c:bf_copy Unexecuted instantiation: zserv.c:bf_copy Unexecuted instantiation: debug_nl.c:bf_copy Unexecuted instantiation: frr-zebra.yang.c:bf_copy Unexecuted instantiation: frr-zebra-route-map.yang.c:bf_copy Unexecuted instantiation: bgp_main.c:bf_copy Unexecuted instantiation: frr-bgp-types.yang.c:bf_copy Unexecuted instantiation: frr-bgp.yang.c:bf_copy Unexecuted instantiation: frr-bgp-common-structure.yang.c:bf_copy Unexecuted instantiation: frr-bgp-common.yang.c:bf_copy Unexecuted instantiation: frr-bgp-common-multiprotocol.yang.c:bf_copy Unexecuted instantiation: frr-bgp-neighbor.yang.c:bf_copy Unexecuted instantiation: frr-bgp-peer-group.yang.c:bf_copy Unexecuted instantiation: frr-bgp-bmp.yang.c:bf_copy Unexecuted instantiation: frr-bgp-rpki.yang.c:bf_copy Unexecuted instantiation: frr-deviations-bgp-datacenter.yang.c:bf_copy Unexecuted instantiation: frr-bgp-filter.yang.c:bf_copy Unexecuted instantiation: frr-bgp-route-map.yang.c:bf_copy Unexecuted instantiation: bgp_attr.c:bf_copy Unexecuted instantiation: bgp_attr_evpn.c:bf_copy Unexecuted instantiation: bgp_clist.c:bf_copy Unexecuted instantiation: bgp_community.c:bf_copy Unexecuted instantiation: bgp_community_alias.c:bf_copy Unexecuted instantiation: bgp_debug.c:bf_copy Unexecuted instantiation: bgp_dump.c:bf_copy Unexecuted instantiation: bgp_ecommunity.c:bf_copy Unexecuted instantiation: bgp_errors.c:bf_copy Unexecuted instantiation: bgp_evpn.c:bf_copy Unexecuted instantiation: bgp_evpn_mh.c:bf_copy Unexecuted instantiation: bgp_evpn_vty.c:bf_copy Unexecuted instantiation: bgp_filter.c:bf_copy Unexecuted instantiation: bgp_flowspec_vty.c:bf_copy Unexecuted instantiation: bgp_fsm.c:bf_copy Unexecuted instantiation: bgp_io.c:bf_copy Unexecuted instantiation: bgp_keepalives.c:bf_copy Unexecuted instantiation: bgp_labelpool.c:bf_copy Unexecuted instantiation: bgp_lcommunity.c:bf_copy Unexecuted instantiation: bgp_mac.c:bf_copy Unexecuted instantiation: bgp_mpath.c:bf_copy Unexecuted instantiation: bgp_mplsvpn.c:bf_copy Unexecuted instantiation: bgp_network.c:bf_copy Unexecuted instantiation: bgp_nexthop.c:bf_copy Unexecuted instantiation: bgp_nht.c:bf_copy Unexecuted instantiation: bgp_packet.c:bf_copy Unexecuted instantiation: bgp_pbr.c:bf_copy Unexecuted instantiation: bgp_rd.c:bf_copy Unexecuted instantiation: bgp_regex.c:bf_copy Unexecuted instantiation: bgp_route.c:bf_copy Unexecuted instantiation: bgp_routemap.c:bf_copy Unexecuted instantiation: bgp_routemap_nb.c:bf_copy Unexecuted instantiation: bgp_routemap_nb_config.c:bf_copy Unexecuted instantiation: bgp_table.c:bf_copy Unexecuted instantiation: bgp_updgrp.c:bf_copy Unexecuted instantiation: bgp_updgrp_adv.c:bf_copy Unexecuted instantiation: bgp_updgrp_packet.c:bf_copy Unexecuted instantiation: bgp_vpn.c:bf_copy Unexecuted instantiation: bgp_vty.c:bf_copy Unexecuted instantiation: bgp_zebra.c:bf_copy Unexecuted instantiation: bgpd.c:bf_copy Unexecuted instantiation: bgp_rfapi_cfg.c:bf_copy Unexecuted instantiation: rfapi_import.c:bf_copy Unexecuted instantiation: rfapi.c:bf_copy Unexecuted instantiation: rfapi_ap.c:bf_copy Unexecuted instantiation: rfapi_encap_tlv.c:bf_copy Unexecuted instantiation: rfapi_nve_addr.c:bf_copy Unexecuted instantiation: rfapi_monitor.c:bf_copy Unexecuted instantiation: rfapi_rib.c:bf_copy Unexecuted instantiation: rfapi_vty.c:bf_copy Unexecuted instantiation: vnc_debug.c:bf_copy Unexecuted instantiation: vnc_export_bgp.c:bf_copy Unexecuted instantiation: vnc_export_table.c:bf_copy Unexecuted instantiation: vnc_import_bgp.c:bf_copy Unexecuted instantiation: vnc_zebra.c:bf_copy Unexecuted instantiation: bgp_addpath.c:bf_copy Unexecuted instantiation: bgp_advertise.c:bf_copy Unexecuted instantiation: bgp_aspath.c:bf_copy Unexecuted instantiation: bgp_bfd.c:bf_copy Unexecuted instantiation: bgp_conditional_adv.c:bf_copy Unexecuted instantiation: bgp_damp.c:bf_copy Unexecuted instantiation: bgp_encap_tlv.c:bf_copy Unexecuted instantiation: bgp_flowspec.c:bf_copy Unexecuted instantiation: bgp_flowspec_util.c:bf_copy Unexecuted instantiation: bgp_label.c:bf_copy Unexecuted instantiation: bgp_open.c:bf_copy Unexecuted instantiation: rfp_example.c:bf_copy Unexecuted instantiation: pim_addr.c:bf_copy Unexecuted instantiation: pim_assert.c:bf_copy Unexecuted instantiation: pim_bfd.c:bf_copy Unexecuted instantiation: pim_bsm.c:bf_copy Unexecuted instantiation: pim_cmd_common.c:bf_copy Unexecuted instantiation: pim_errors.c:bf_copy Unexecuted instantiation: pim_hello.c:bf_copy Unexecuted instantiation: pim_iface.c:bf_copy Unexecuted instantiation: pim_ifchannel.c:bf_copy Unexecuted instantiation: pim_instance.c:bf_copy Unexecuted instantiation: pim_join.c:bf_copy Unexecuted instantiation: pim_jp_agg.c:bf_copy Unexecuted instantiation: pim_macro.c:bf_copy Unexecuted instantiation: pim_mroute.c:bf_copy Unexecuted instantiation: pim_msg.c:bf_copy Unexecuted instantiation: pim_nb.c:bf_copy Unexecuted instantiation: pim_nb_config.c:bf_copy Unexecuted instantiation: pim_neighbor.c:bf_copy Unexecuted instantiation: pim_nht.c:bf_copy Unexecuted instantiation: pim_oil.c:bf_copy Unexecuted instantiation: pim_pim.c:bf_copy Unexecuted instantiation: pim_routemap.c:bf_copy Unexecuted instantiation: pim_rp.c:bf_copy Unexecuted instantiation: pim_rpf.c:bf_copy Unexecuted instantiation: pim_sock.c:bf_copy Unexecuted instantiation: pim_ssm.c:bf_copy Unexecuted instantiation: pim_ssmpingd.c:bf_copy Unexecuted instantiation: pim_static.c:bf_copy Unexecuted instantiation: pim_str.c:bf_copy Unexecuted instantiation: pim_tib.c:bf_copy Unexecuted instantiation: pim_time.c:bf_copy Unexecuted instantiation: pim_tlv.c:bf_copy Unexecuted instantiation: pim_upstream.c:bf_copy Unexecuted instantiation: pim_util.c:bf_copy Unexecuted instantiation: pim_vty.c:bf_copy Unexecuted instantiation: pim_zebra.c:bf_copy Unexecuted instantiation: pim_zlookup.c:bf_copy Unexecuted instantiation: pim_vxlan.c:bf_copy Unexecuted instantiation: pim_register.c:bf_copy Unexecuted instantiation: pimd.c:bf_copy Unexecuted instantiation: pim_cmd.c:bf_copy Unexecuted instantiation: pim_igmp.c:bf_copy Unexecuted instantiation: pim_igmp_mtrace.c:bf_copy Unexecuted instantiation: pim_igmpv2.c:bf_copy Unexecuted instantiation: pim_igmpv3.c:bf_copy Unexecuted instantiation: pim_main.c:bf_copy Unexecuted instantiation: pim_mlag.c:bf_copy Unexecuted instantiation: pim_msdp.c:bf_copy Unexecuted instantiation: pim_msdp_packet.c:bf_copy Unexecuted instantiation: pim_msdp_socket.c:bf_copy Unexecuted instantiation: pim_signals.c:bf_copy Unexecuted instantiation: pim_zpthread.c:bf_copy Unexecuted instantiation: frr-pim.yang.c:bf_copy Unexecuted instantiation: frr-pim-rp.yang.c:bf_copy Unexecuted instantiation: frr-gmp.yang.c:bf_copy |
268 | | |
269 | | |
270 | | #ifdef __cplusplus |
271 | | } |
272 | | #endif |
273 | | |
274 | | #endif |