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 <sworley@cumulusnetworks.com>
This commit is contained in:
Stephen Worley 2019-11-25 15:16:35 -05:00
parent 0dcff6f463
commit 46b0382056

View File

@ -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;
}