summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--table/path.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/table/path.go b/table/path.go
index 83e442c0..b45b7f68 100644
--- a/table/path.go
+++ b/table/path.go
@@ -569,7 +569,11 @@ func (path *Path) SetExtCommunities(values []byte, doReplace bool) {
idx, attr := path.getPathAttr(bgp.BGP_ATTR_TYPE_EXTENDED_COMMUNITIES)
if attr != nil {
l := attr.(*bgp.PathAttributeExtendedCommunities).Value
- l = append(l, exts...)
+ if doReplace {
+ l = exts
+ } else {
+ l = append(l, exts...)
+ }
path.pathAttrs[idx] = bgp.NewPathAttributeExtendedCommunities(l)
} else {
path.pathAttrs = append(path.pathAttrs, bgp.NewPathAttributeExtendedCommunities(exts))