diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-08-16 23:33:51 +0300 |
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-08-16 23:39:30 +0300 |
| commit | e605d0cfae6a3fc9b65058ec85b55d7d0bd5cc22 (patch) | |
| tree | 75611641eb444307c4aecd11ee60cc0f0f17b235 | |
| parent | b08784281471bebb8b8dd4a97e558ae7cc078954 (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.c | 3 |
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) { |
