summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2022-08-16 23:33:51 +0300
committerDonatas Abraitis <donatas@opensourcerouting.org>2022-08-16 23:39:30 +0300
commite605d0cfae6a3fc9b65058ec85b55d7d0bd5cc22 (patch)
tree75611641eb444307c4aecd11ee60cc0f0f17b235
parentb08784281471bebb8b8dd4a97e558ae7cc078954 (diff)
bgpd: Drop `internet` community check from community_list_match()
Before this, if the community-list has an entry with permit internet (0:0), then it's treated as permit everything and returned as MATCH. So if we have something like: ``` bgp community-list standard OUT_AS_PERMIT seq 5 permit internet bgp community-list standard OUT_AS_PERMIT seq 10 deny 4:1 bgp community-list standard OUT_AS_PERMIT seq 20 permit 3:1 ``` It's not gonna work because it will return MATCH and stops parsing. Routes with 4:1 community will be advertised. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
-rw-r--r--bgpd/bgp_clist.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/bgpd/bgp_clist.c b/bgpd/bgp_clist.c
index 34d4be8c93..bc6d4e144e 100644
--- a/bgpd/bgp_clist.c
+++ b/bgpd/bgp_clist.c
@@ -674,9 +674,6 @@ bool community_list_match(struct community *com, struct community_list *list)
return entry->direct == COMMUNITY_PERMIT;
if (entry->style == COMMUNITY_LIST_STANDARD) {
- if (community_include(entry->u.com, COMMUNITY_INTERNET))
- return entry->direct == COMMUNITY_PERMIT;
-
if (community_match(com, entry->u.com))
return entry->direct == COMMUNITY_PERMIT;
} else if (entry->style == COMMUNITY_LIST_EXPANDED) {