return NB_OK;
}
+static int lib_prefix_list_entry_prefix_length_greater_or_equal_modify(
+ struct nb_cb_modify_args *args)
+{
+ struct prefix_list_entry *ple;
+
+ if (args->event != NB_EV_APPLY)
+ return NB_OK;
+
+ ple = nb_running_get_entry(args->dnode, NULL, true);
+
+ /* Start prefix entry update procedure. */
+ prefix_list_entry_update_start(ple);
+
+ ple->ge = yang_dnode_get_uint8(args->dnode, NULL);
+
+ /* Finish prefix entry update procedure. */
+ prefix_list_entry_update_finish(ple);
+
+ return NB_OK;
+}
+
static int lib_prefix_list_entry_prefix_length_lesser_or_equal_modify(
struct nb_cb_modify_args *args)
{
static int lib_prefix_list_entry_ipv4_prefix_length_greater_or_equal_modify(
struct nb_cb_modify_args *args)
{
- struct prefix_list_entry *ple;
-
- if (args->event == NB_EV_VALIDATE &&
- prefix_list_length_validate(args) != NB_OK)
+ if (args->event == NB_EV_VALIDATE
+ && prefix_list_length_validate(args) != NB_OK)
return NB_ERR_VALIDATION;
- if (args->event != NB_EV_APPLY)
- return NB_OK;
-
- ple = nb_running_get_entry(args->dnode, NULL, true);
-
- /* Start prefix entry update procedure. */
- prefix_list_entry_update_start(ple);
-
- ple->ge = yang_dnode_get_uint8(args->dnode, NULL);
+ if (args->event == NB_EV_VALIDATE) {
+ const struct lyd_node *plist_dnode =
+ yang_dnode_get_parent(args->dnode, "prefix-list");
- /* Finish prefix entry update procedure. */
- prefix_list_entry_update_finish(ple);
+ return prefix_list_nb_validate_v4_af_type(
+ plist_dnode, args->errmsg, args->errmsg_len);
+ }
- return NB_OK;
+ return lib_prefix_list_entry_prefix_length_greater_or_equal_modify(
+ args);
}
static int lib_prefix_list_entry_ipv4_prefix_length_greater_or_equal_destroy(
plist_dnode, args->errmsg, args->errmsg_len);
}
- return lib_prefix_list_entry_prefix_length_lesser_or_equal_modify(args);
+ return lib_prefix_list_entry_prefix_length_lesser_or_equal_modify(
+ args);
}
static int lib_prefix_list_entry_ipv4_prefix_length_lesser_or_equal_destroy(
static int lib_prefix_list_entry_ipv6_prefix_length_greater_or_equal_modify(
struct nb_cb_modify_args *args)
{
- struct prefix_list_entry *ple;
-
if (args->event == NB_EV_VALIDATE
&& prefix_list_length_validate(args) != NB_OK)
return NB_ERR_VALIDATION;
plist_dnode, args->errmsg, args->errmsg_len);
}
- if (args->event != NB_EV_APPLY)
- return NB_OK;
-
- ple = nb_running_get_entry(args->dnode, NULL, true);
-
- /* Start prefix entry update procedure. */
- prefix_list_entry_update_start(ple);
-
- ple->ge = yang_dnode_get_uint8(args->dnode, NULL);
-
- /* Finish prefix entry update procedure. */
- prefix_list_entry_update_finish(ple);
-
- return NB_OK;
+ return lib_prefix_list_entry_prefix_length_greater_or_equal_modify(
+ args);
}
static int lib_prefix_list_entry_ipv6_prefix_length_greater_or_equal_destroy(
plist_dnode, args->errmsg, args->errmsg_len);
}
- return lib_prefix_list_entry_prefix_length_lesser_or_equal_modify(args);
+ return lib_prefix_list_entry_prefix_length_lesser_or_equal_modify(
+ args);
}
static int lib_prefix_list_entry_ipv6_prefix_length_lesser_or_equal_destroy(
struct nb_cb_destroy_args *args)
{
- int af_type;
-
if (args->event == NB_EV_VALIDATE) {
const struct lyd_node *plist_dnode =
yang_dnode_get_parent(args->dnode, "prefix-list");
- af_type = yang_dnode_get_enum(plist_dnode, "./type");
- if (af_type != YPLT_IPV6) {
- snprintf(args->errmsg, args->errmsg_len,
- "prefix-list type %u is mismatched.", af_type);
- return NB_ERR_VALIDATION;
- }
- return NB_OK;
+
+ return prefix_list_nb_validate_v6_af_type(
+ plist_dnode, args->errmsg, args->errmsg_len);
}
return lib_prefix_list_entry_prefix_length_lesser_or_equal_destroy(