diff options
| author | Nigel Kukard <nkukard@lbsd.net> | 2017-08-30 05:53:37 +0000 |
|---|---|---|
| committer | Nigel Kukard <nkukard@lbsd.net> | 2017-08-31 23:39:53 +0000 |
| commit | 79dab4b7f4af46ade2b87fa76c94e34355dcc7cd (patch) | |
| tree | a6e59e2d5701262b8eaf3167f722526ae6c23326 | |
| parent | 8ea01902d28e107183d10453da809ca502b07a09 (diff) | |
bgpd: Cleaned up the lcom->size * LCOMMUNITY_SIZE with lcom_length()
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
| -rw-r--r-- | bgpd/bgp_attr.c | 17 | ||||
| -rw-r--r-- | bgpd/bgp_lcommunity.c | 16 |
2 files changed, 15 insertions, 18 deletions
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index da5d1e8d9c..42cf45c88a 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -3058,20 +3058,20 @@ bgp_size_t bgp_packet_attribute(struct bgp *bgp, struct peer *peer, if (CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_SEND_LARGE_COMMUNITY) && (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_LARGE_COMMUNITIES))) { - if (attr->lcommunity->size * LCOMMUNITY_SIZE > 255) { + if (lcom_length(attr->lcommunity) > 255) { stream_putc(s, BGP_ATTR_FLAG_OPTIONAL | BGP_ATTR_FLAG_TRANS | BGP_ATTR_FLAG_EXTLEN); stream_putc(s, BGP_ATTR_LARGE_COMMUNITIES); - stream_putw(s, attr->lcommunity->size * LCOMMUNITY_SIZE); + stream_putw(s, lcom_length(attr->lcommunity)); } else { stream_putc(s, BGP_ATTR_FLAG_OPTIONAL | BGP_ATTR_FLAG_TRANS); stream_putc(s, BGP_ATTR_LARGE_COMMUNITIES); - stream_putc(s, attr->lcommunity->size * LCOMMUNITY_SIZE); + stream_putc(s, lcom_length(attr->lcommunity)); } stream_put(s, attr->lcommunity->val, - attr->lcommunity->size * LCOMMUNITY_SIZE); + lcom_length(attr->lcommunity)); } /* Route Reflector. */ @@ -3422,21 +3422,20 @@ void bgp_dump_routes_attr(struct stream *s, struct attr *attr, /* Large Community attribute. */ if (attr->flag & ATTR_FLAG_BIT(BGP_ATTR_LARGE_COMMUNITIES)) { - if (attr->lcommunity->size * LCOMMUNITY_SIZE > 255) { + if (lcom_length(attr->lcommunity) > 255) { stream_putc(s, BGP_ATTR_FLAG_OPTIONAL | BGP_ATTR_FLAG_TRANS | BGP_ATTR_FLAG_EXTLEN); stream_putc(s, BGP_ATTR_LARGE_COMMUNITIES); - stream_putw(s, attr->lcommunity->size * LCOMMUNITY_SIZE); + stream_putw(s, lcom_length(attr->lcommunity)); } else { stream_putc(s, BGP_ATTR_FLAG_OPTIONAL | BGP_ATTR_FLAG_TRANS); stream_putc(s, BGP_ATTR_LARGE_COMMUNITIES); - stream_putc(s, attr->lcommunity->size * LCOMMUNITY_SIZE); + stream_putc(s, lcom_length(attr->lcommunity)); } - stream_put(s, attr->lcommunity->val, - attr->lcommunity->size * LCOMMUNITY_SIZE); + stream_put(s, attr->lcommunity->val, lcom_length(attr->lcommunity)); } /* Add a MP_NLRI attribute to dump the IPv6 next hop */ diff --git a/bgpd/bgp_lcommunity.c b/bgpd/bgp_lcommunity.c index 344a25dfa6..fd734b2c5b 100644 --- a/bgpd/bgp_lcommunity.c +++ b/bgpd/bgp_lcommunity.c @@ -151,9 +151,8 @@ struct lcommunity *lcommunity_dup(struct lcommunity *lcom) new = XCALLOC(MTYPE_LCOMMUNITY, sizeof(struct lcommunity)); new->size = lcom->size; if (new->size) { - new->val = XMALLOC(MTYPE_LCOMMUNITY_VAL, - lcom->size * LCOMMUNITY_SIZE); - memcpy(new->val, lcom->val, lcom->size * LCOMMUNITY_SIZE); + new->val = XMALLOC(MTYPE_LCOMMUNITY_VAL, lcom_length(lcom)); + memcpy(new->val, lcom->val, lcom_length(lcom)); } else new->val = NULL; return new; @@ -175,14 +174,13 @@ struct lcommunity *lcommunity_merge(struct lcommunity *lcom1, if (lcom1->val) lcom1->val = XREALLOC(MTYPE_LCOMMUNITY_VAL, lcom1->val, - (lcom1->size + lcom2->size) * LCOMMUNITY_SIZE); + lcom_length(lcom1) + lcom_length(lcom2)); else lcom1->val = XMALLOC(MTYPE_LCOMMUNITY_VAL, - (lcom1->size + lcom2->size) * LCOMMUNITY_SIZE); + lcom_length(lcom1) + lcom_length(lcom2)); - memcpy(lcom1->val + (lcom1->size * LCOMMUNITY_SIZE), lcom2->val, - lcom2->size * LCOMMUNITY_SIZE); + memcpy(lcom1->val + lcom_length(lcom1), lcom2->val, lcom_length(lcom2)); lcom1->size += lcom2->size; return lcom1; @@ -231,7 +229,7 @@ void lcommunity_unintern(struct lcommunity **lcom) unsigned int lcommunity_hash_make(void *arg) { const struct lcommunity *lcom = arg; - int size = lcom->size * LCOMMUNITY_SIZE; + int size = lcom_length(lcom); u_int8_t *pnt = lcom->val; unsigned int key = 0; int c; @@ -261,7 +259,7 @@ int lcommunity_cmp(const void *arg1, const void *arg2) const struct lcommunity *lcom2 = arg2; return (lcom1->size == lcom2->size - && memcmp(lcom1->val, lcom2->val, lcom1->size * LCOMMUNITY_SIZE) + && memcmp(lcom1->val, lcom2->val, lcom_length(lcom1)) == 0); } |
