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>
This commit is contained in:
Donatas Abraitis 2022-08-16 23:33:51 +03:00
parent b087842814
commit e605d0cfae

View File

@ -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) {