From: Stephen Worley Date: Mon, 25 Nov 2019 20:16:35 +0000 (-0500) Subject: pbrd: don't silently fail on atomic match MARK change attempts X-Git-Tag: base_7.3~105^2~5 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=46b0382056881b346624d340d8d835de742f18fd;p=mirror%2Ffrr.git pbrd: don't silently fail on atomic match MARK change attempts Also don't silently fail when we attempt to atomically change a match MARK to a new one. We would overwrite the frist one but never actually install it. Change it to explicitly fail if a config is already present for now. Signed-off-by: Stephen Worley --- diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c index 5bc94a2b33..24d3c0fd13 100644 --- a/pbrd/pbr_vty.c +++ b/pbrd/pbr_vty.c @@ -189,9 +189,14 @@ DEFPY(pbr_map_match_mark, pbr_map_match_mark_cmd, #endif if (!no) { - if (pbrms->mark == (uint32_t) mark) + if (pbrms->mark && pbrms->mark == (uint32_t)mark) return CMD_SUCCESS; - pbrms->mark = (uint32_t) mark; + else if (pbrms->mark) { + vty_out(vty, + "A `match mark XX` command already exists, please remove that first\n"); + return CMD_WARNING_CONFIG_FAILED; + } else + pbrms->mark = (uint32_t)mark; } else { pbrms->mark = 0; }