]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pbrd:fix mismatching in match src-dst
authorChirag Shah <chirag@nvidia.com>
Fri, 17 Mar 2023 04:47:07 +0000 (21:47 -0700)
committerChirag Shah <chirag@nvidia.com>
Sat, 18 Mar 2023 00:01:13 +0000 (17:01 -0700)
upstream commit 67765a232d has incorect
address family check which prevent from
deleting src/dst config under pbr rule.

Ticket:#3405024
Issue:3405024
Testing Done:

Config:

pbr-map map6 seq 1
 match src-ip 2000::200:100:100:0/96
 match dst-ip 2000::100:100:100:0/96
 set nexthop-group group3

Before:
torc-12(config)# pbr-map map6 seq 1
torc-12(config-pbr-map)# no match src-ip 2000::200:100:100:0/96
Cannot mismatch families within match src/dst

After:
torc-12(config)# pbr-map map6 seq 1
torc-12(config-pbr-map)# no match src-ip 2000::200:100:100:0/96
torc-12(config-pbr-map)#

Signed-off-by: Chirag Shah <chirag@nvidia.com>
pbrd/pbr_vty.c

index bb09a10b982924df0cc8d4101400cfcad838ec02..c4e36ebd46ed21da61f6c433f60178a0ad4cd93a 100644 (file)
@@ -125,7 +125,7 @@ DEFPY(pbr_map_match_src, pbr_map_match_src_cmd,
        if (!pbrms)
                return CMD_WARNING_CONFIG_FAILED;
 
-       if (pbrms->dst && pbrms->family && prefix->family != pbrms->family) {
+       if (pbrms->dst && prefix->family != pbrms->dst->family) {
                vty_out(vty, "Cannot mismatch families within match src/dst\n");
                return CMD_WARNING_CONFIG_FAILED;
        }
@@ -161,7 +161,7 @@ DEFPY(pbr_map_match_dst, pbr_map_match_dst_cmd,
        if (!pbrms)
                return CMD_WARNING_CONFIG_FAILED;
 
-       if (pbrms->src && pbrms->family && prefix->family != pbrms->family) {
+       if (pbrms->src && prefix->family != pbrms->src->family) {
                vty_out(vty, "Cannot mismatch families within match src/dst\n");
                return CMD_WARNING_CONFIG_FAILED;
        }