staticd: Add no form for static-sids command

Currently, when the user tries to delete all static SIDs with the
`no static-sids` command, staticd returns an error.

```
router# config
router(config)# segment-routing
router(sr)# srv6
router(srv6)# no static-sids
% Unknown command: no  static-sids
```

The problem is the `static-sids` command does not support the `no` form.

This PR enables the `no` form for the `static-sids` command.

```
router# config
router(config)# segment-routing
router(sr)# srv6
router(srv6)# no static-sids
```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
This commit is contained in:
Carmine Scarpitta 2025-02-26 15:34:19 +01:00
parent e7640f3885
commit ab7a7541a6
2 changed files with 18 additions and 2 deletions

View File

@ -184,6 +184,10 @@ int routing_control_plane_protocols_name_validate(
"frr-staticd:staticd/segment-routing/srv6"
/* srv6/static-sids */
#define FRR_STATIC_SRV6_STATIC_SIDS_XPATH \
FRR_STATIC_SRV6_INFO_KEY_XPATH \
"/static-sids"
#define FRR_STATIC_SRV6_SID_KEY_XPATH \
FRR_STATIC_SRV6_INFO_KEY_XPATH \
"/static-sids/" \

View File

@ -1190,10 +1190,22 @@ DEFUN_YANG_NOSH (no_static_srv6, no_static_srv6_cmd,
return nb_cli_apply_changes(vty, "%s", xpath);
}
DEFPY_NOSH (static_srv6_sids, static_srv6_sids_cmd,
"static-sids",
DEFPY_YANG_NOSH (static_srv6_sids, static_srv6_sids_cmd,
"[no] static-sids",
NO_STR
"Segment Routing SRv6 SIDs\n")
{
char xpath[XPATH_MAXLEN];
if (no) {
snprintf(xpath, sizeof(xpath), FRR_STATIC_SRV6_STATIC_SIDS_XPATH,
"frr-staticd:staticd", "staticd", VRF_DEFAULT_NAME);
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
return nb_cli_apply_changes(vty, "%s", xpath);
}
VTY_PUSH_CONTEXT_NULL(SRV6_SIDS_NODE);
return CMD_SUCCESS;
}