summaryrefslogtreecommitdiffstats
path: root/pbrd
diff options
context:
space:
mode:
authorG. Paul Ziemba <paulz@labn.net>2023-08-01 15:49:38 +0200
committerG. Paul Ziemba <paulz@labn.net>2023-08-08 19:18:22 +0200
commit5572f45d51c587691384a9ec3a195e6a01540930 (patch)
tree2f4eb5f788a0194b8ecf49fb5119df25817d5385 /pbrd
parentpbrd: add nexthop drop type (diff)
downloadfrr-5572f45d51c587691384a9ec3a195e6a01540930.tar.xz
frr-5572f45d51c587691384a9ec3a195e6a01540930.zip
pbrd: PBR_FILTER_DSFIELD -> {PBR_FILTER_DSCP,PBR_FILTER_ECN}
DSCP and ECN matching are configured independently. Maintain these values in independent fields in pbrd, zapi, and zebra. Signed-off-by: G. Paul Ziemba <paulz@labn.net>
Diffstat (limited to 'pbrd')
-rw-r--r--pbrd/pbr_vty.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c
index 5ee262b9c..cffd3794c 100644
--- a/pbrd/pbr_vty.c
+++ b/pbrd/pbr_vty.c
@@ -361,8 +361,10 @@ DEFPY (pbr_map_match_dscp,
/* Set the DSCP bits of the DSField */
pbrms->dsfield =
(pbrms->dsfield & ~PBR_DSFIELD_DSCP) | (rawDscp << 2);
+ SET_FLAG(pbrms->filter_bm, PBR_FILTER_DSCP);
} else {
pbrms->dsfield &= ~PBR_DSFIELD_DSCP;
+ UNSET_FLAG(pbrms->filter_bm, PBR_FILTER_DSCP);
}
pbr_map_check(pbrms, true);
@@ -391,8 +393,10 @@ DEFPY (pbr_map_match_ecn,
/* Set the ECN bits of the DSField */
pbrms->dsfield = (pbrms->dsfield & ~PBR_DSFIELD_ECN) | ecn;
+ SET_FLAG(pbrms->filter_bm, PBR_FILTER_ECN);
} else {
pbrms->dsfield &= ~PBR_DSFIELD_ECN;
+ UNSET_FLAG(pbrms->filter_bm, PBR_FILTER_ECN);
}
pbr_map_check(pbrms, true);