diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2024-10-30 10:45:28 +0200 |
|---|---|---|
| committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-11-05 15:18:39 +0000 |
| commit | 6e58833466f006555bf581e2123805e47ceac347 (patch) | |
| tree | 487355d1cbead2b8174d6d31b969fbae432411b9 | |
| parent | 628eaf6b81cfa9a62bd096db83f4f92b25123d8e (diff) | |
bgpd: Treat numbered community-list only if it's in a range 1-500
Before this patch, if we set something like:
```
bgp extcommunity-list expanded 1234 permit admin
```
In running config we have:
```
bgp extcommunity-list 1234 seq 5 permit admin
```
That leads to incorrect rendering, even more the line can't be deleted.
With this fix we treat numbered community-list only if it's inside the range
1-500, otherwise it's a non-numbered clist.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 4c1ee29116aff081f63b1fc7dad18cbfe1b8007f)
| -rw-r--r-- | bgpd/bgp_clist.c | 2 | ||||
| -rw-r--r-- | bgpd/bgp_clist.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/bgpd/bgp_clist.c b/bgpd/bgp_clist.c index e522307134..634775cfd3 100644 --- a/bgpd/bgp_clist.c +++ b/bgpd/bgp_clist.c @@ -181,7 +181,7 @@ community_list_insert(struct community_list_handler *ch, const char *name, } /* In case of name is all digit character */ - if (i == strlen(name)) { + if (i == strlen(name) && number <= COMMUNITY_LIST_NUMBER_MAX) { new->sort = COMMUNITY_LIST_NUMBER; /* Set access_list to number list. */ diff --git a/bgpd/bgp_clist.h b/bgpd/bgp_clist.h index a435b92ce1..f0ca90bdef 100644 --- a/bgpd/bgp_clist.h +++ b/bgpd/bgp_clist.h @@ -20,6 +20,10 @@ /* Number and string based community-list name. */ #define COMMUNITY_LIST_STRING 0 #define COMMUNITY_LIST_NUMBER 1 +/* The numbered community-list (including large/ext communities) + * have a range between 1-500. + */ +#define COMMUNITY_LIST_NUMBER_MAX 500 #define COMMUNITY_SEQ_NUMBER_AUTO -1 |
