Seems like given this RIB entry:

% ./bgpctl show rib detail 10.0.0.0
BGP routing table entry for 10.0.0.0/24
    1.0
    Nexthop 192.168.219.19 (via 192.168.219.19) from test (192.168.0.1)
    Origin IGP, metric 0, localpref 100, external, valid, best
    Last update: 03:20:38 ago
    Communities: 7:7 NO_ADVERTISE

it should be possible to do this:

% ./bgpctl show rib community no_advertise
Invalid community
unknown argument: no_advertise
valid commands/args:
  <community>

There is some code in parse_community() that sets the value of "as" to
COMMUNITY_WELLKNOWN, which is also the value of USHRT_MAX, which
guarantees that the test will fail:

done:
        if (as == 0 || as == USHRT_MAX) {
                fprintf(stderr, "Invalid community\n");
                return (0);
        }
        if (as == COMMUNITY_WELLKNOWN)
                switch (type) {
                case COMMUNITY_NO_EXPORT:
                case COMMUNITY_NO_ADVERTISE:
                case COMMUNITY_NO_EXPSUBCONFED:
                        /* valid */
                        break;
                default:
                        /* unknown */
                        fprintf(stderr, "Invalid well-known community\n");
                        return (0);
                }

Reply via email to