diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2020-06-22 13:59:01 -0400 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2020-06-22 13:59:01 -0400 |
| commit | adeb067232387f42635a2fe1bfb58ea6311ffb67 (patch) | |
| tree | 94facbdefb24894637ddfd0c62dc0f881bc620ab | |
| parent | a5e81e0367d3376f30589e429eef31db58aaf5d1 (diff) | |
lib: clarify usage of prefix_bit function
"prefixlen" is really a bit index
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
| -rw-r--r-- | lib/prefix.c | 6 | ||||
| -rw-r--r-- | lib/prefix.h | 12 |
2 files changed, 13 insertions, 5 deletions
diff --git a/lib/prefix.c b/lib/prefix.c index 112630e9c8..0900100be3 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -75,10 +75,10 @@ bool is_mcast_mac(const struct ethaddr *mac) return false; } -unsigned int prefix_bit(const uint8_t *prefix, const uint16_t prefixlen) +unsigned int prefix_bit(const uint8_t *prefix, const uint16_t bit_index) { - unsigned int offset = prefixlen / 8; - unsigned int shift = 7 - (prefixlen % 8); + unsigned int offset = bit_index / 8; + unsigned int shift = 7 - (bit_index % 8); return (prefix[offset] >> shift) & 1; } diff --git a/lib/prefix.h b/lib/prefix.h index 506efffb94..0bd457cc23 100644 --- a/lib/prefix.h +++ b/lib/prefix.h @@ -392,8 +392,16 @@ extern const char *family2str(int family); extern const char *safi2str(safi_t safi); extern const char *afi2str(afi_t afi); -/* Check bit of the prefix. */ -extern unsigned int prefix_bit(const uint8_t *prefix, const uint16_t prefixlen); +/* + * Check bit of the prefix. + * + * prefix + * byte buffer + * + * bit_index + * which bit to fetch from byte buffer, 0 indexed. + */ +extern unsigned int prefix_bit(const uint8_t *prefix, const uint16_t bit_index); extern struct prefix *prefix_new(void); extern void prefix_free(struct prefix **p); |
