lib: Ignore duplicate alist/plist entries in CLI

If duplicate value is entered, the whole plist/alist just dropped.

Before:
```
$ grep prefix-list /etc/frr/frr.conf
ip prefix-list test seq 5 permit 1.1.1.1/32
ip prefix-list test seq 10 permit 1.1.1.1/32
$ systemctl restart frr
$ vtysh -c 'show run | include prefix-list'
$
```

After:
```
$ grep prefix-list /etc/frr/frr.conf
ip prefix-list test seq 5 permit 1.1.1.1/32
ip prefix-list test seq 10 permit 1.1.1.1/32
$ systemctl restart frr
$ vtysh -c 'show run | include prefix-list'
ip prefix-list test seq 5 permit 1.1.1.1/32
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2022-04-25 19:06:49 +03:00
parent d45a846e5c
commit 1db0e0c6c8

View File

@ -151,7 +151,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
ada.ada_type = "ipv4";
ada.ada_name = name;
ada.ada_action = action;
@ -168,10 +167,8 @@ DEFPY_YANG(
ada.ada_value[0] = "";
}
/* Duplicated entry without sequence, just quit. */
if (acl_is_dup(vty->candidate_config->dnode, &ada))
return CMD_SUCCESS;
}
/*
* Create the access-list first, so we can generate sequence if
@ -280,7 +277,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
ada.ada_type = "ipv4";
ada.ada_name = name;
ada.ada_action = action;
@ -318,10 +314,8 @@ DEFPY_YANG(
idx++;
}
/* Duplicated entry without sequence, just quit. */
if (acl_is_dup(vty->candidate_config->dnode, &ada))
return CMD_SUCCESS;
}
/*
* Create the access-list first, so we can generate sequence if
@ -466,7 +460,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
ada.ada_type = "ipv4";
ada.ada_name = name;
ada.ada_action = action;
@ -483,10 +476,8 @@ DEFPY_YANG(
ada.ada_value[0] = "";
}
/* Duplicated entry without sequence, just quit. */
if (acl_is_dup(vty->candidate_config->dnode, &ada))
return CMD_SUCCESS;
}
/*
* Create the access-list first, so we can generate sequence if
@ -656,7 +647,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
ada.ada_type = "ipv6";
ada.ada_name = name;
ada.ada_action = action;
@ -673,10 +663,8 @@ DEFPY_YANG(
ada.ada_value[0] = "";
}
/* Duplicated entry without sequence, just quit. */
if (acl_is_dup(vty->candidate_config->dnode, &ada))
return CMD_SUCCESS;
}
/*
* Create the access-list first, so we can generate sequence if
@ -850,7 +838,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
ada.ada_type = "mac";
ada.ada_name = name;
ada.ada_action = action;
@ -863,10 +850,8 @@ DEFPY_YANG(
ada.ada_value[0] = "";
}
/* Duplicated entry without sequence, just quit. */
if (acl_is_dup(vty->candidate_config->dnode, &ada))
return CMD_SUCCESS;
}
/*
* Create the access-list first, so we can generate sequence if
@ -1272,7 +1257,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
pda.pda_type = "ipv4";
pda.pda_name = name;
pda.pda_action = action;
@ -1284,10 +1268,8 @@ DEFPY_YANG(
pda.any = true;
}
/* Duplicated entry without sequence, just quit. */
if (plist_is_dup(vty->candidate_config->dnode, &pda))
return CMD_SUCCESS;
}
/*
* Create the prefix-list first, so we can generate sequence if
@ -1476,7 +1458,6 @@ DEFPY_YANG(
* Backward compatibility: don't complain about duplicated values,
* just silently accept.
*/
if (seq_str == NULL) {
pda.pda_type = "ipv6";
pda.pda_name = name;
pda.pda_action = action;
@ -1488,10 +1469,8 @@ DEFPY_YANG(
pda.any = true;
}
/* Duplicated entry without sequence, just quit. */
if (plist_is_dup(vty->candidate_config->dnode, &pda))
return CMD_SUCCESS;
}
/*
* Create the prefix-list first, so we can generate sequence if