Hi folks,
An update on this, I've been doing some more testing - it is still probably worth a TAC case but not for an OS bug.
This is, I think, a CLI default behaviour issue, and it isn't limited to communities.
I was configuring a workaround with a route-map on the Cisco, and for this to work I needed to have next-hop-self set on the IPv6 IBGP peer. And I had that configured, or so I thought; but the next hops being received were not the peer IPv6 address. This led me to finding out what my actual issue was.
Going back to the original community problem, I had this config for the peer - this is the v4 and v6 address of the same router:
configure bgp neighbor 217.65.165.254 send-community both
configure bgp neighbor 2001:1420:a::fe send-community both
What I did not have was:
configure bgp neighbor 2001:1420:a::fe address-family ipv6-unicast send-community both
So I was enabling communities on the ipv4-unicast address family on that v6 peer (technically possible, of course, but not likely what you meant). There was also no error, despite the fact that the ipv4-unicast address family was disabled for the 2001:1420:a::fe peer.
Now when you create a V6 peer, eg:
ag2.hbr.3 # create bgp neigh 2001:1420:ffff::1 remote-as 65001
EXOS automatically disables the v4 address families:
* ag2.hbr.4 # show config | inc 2001:1420:ffff::1
create bgp neighbor 2001:1420:ffff::1 remote-AS-number 65001
disable bgp neighbor 2001:1420:ffff::1 capability ipv4-unicast
disable bgp neighbor 2001:1420:ffff::1 capability ipv4-multicast
What it doesn't do here (certainly on 15.3.4) is automatically enable ipv6-unicast, but that's a different issue.
So, in a roundabout way, what I'm saying is that you need to remember to explicitly specify the ipv6-unicast address family when enabling communities or next-hop-self on an IPv6 peer.
In my opinion, the CLI should work as follows:
For IPv4 peer, as it does now, default to ipv4-unicast and disable ipv6-unicast and ipv6-multicast.
For IPv6 peer:
a) Automatically disable ipv4-unicast and ipv4-multicast (it does this now) and enable ipv6-unicast on the neighbor (it does not do this part).
b) When commands such as enable next-hop-self or enable community are issued, default to the ipv6-unicast address family.
c) If you try and enable a feature that relies on an address-family that has been disabled, at least issue a warning.
Of course it is possible to carry ipv6 routes on an ipv4 peering session, and ipv4 routes on an ipv6 peering session; but in real life the few people actually do this - they have two sessions and carry v4 routes on one, and v6 routes on the other. It would be sensible if the defaults reflected this.
I'll check the current behaviour in latest code on an X460 and if it still behaves in this way, I'll raise a TAC case.
Paul.