summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_routemap.c10
-rw-r--r--doc/user/routemap.rst5
2 files changed, 12 insertions, 3 deletions
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index 20ee2e4d49..c7f5e0433b 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -263,10 +263,14 @@ route_match_peer(void *rule, const struct prefix *prefix, void *object)
peer = ((struct bgp_path_info *)object)->peer;
if (pc->interface) {
- if (!peer->conf_if)
+ if (!peer->conf_if || !peer->group)
return RMAP_NOMATCH;
- if (strcmp(peer->conf_if, pc->interface) == 0)
+ if (peer->conf_if && strcmp(peer->conf_if, pc->interface) == 0)
+ return RMAP_MATCH;
+
+ if (peer->group &&
+ strcmp(peer->group->name, pc->interface) == 0)
return RMAP_MATCH;
return RMAP_NOMATCH;
@@ -4567,7 +4571,7 @@ DEFPY_YANG (match_peer,
"Match peer address\n"
"IP address of peer\n"
"IPv6 address of peer\n"
- "Interface name of peer\n")
+ "Interface name of peer or peer group name\n")
{
const char *xpath =
"./match-condition[condition='frr-bgp-route-map:peer']";
diff --git a/doc/user/routemap.rst b/doc/user/routemap.rst
index ef7aef9c5e..754b709173 100644
--- a/doc/user/routemap.rst
+++ b/doc/user/routemap.rst
@@ -205,6 +205,11 @@ Route Map Match Command
interface name specified if the neighbor was specified
in this manner.
+.. clicmd:: match peer PEER_GROUP_NAME
+
+ This is a BGP specific match command. Matches the peer
+ group name specified for the peer in question.
+
.. clicmd:: match source-protocol PROTOCOL_NAME
This is a ZEBRA specific match command. Matches the