summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/user/pbr.rst11
-rw-r--r--lib/nexthop_group.c53
-rw-r--r--lib/nexthop_group.h6
-rw-r--r--pbrd/pbr_main.c7
-rw-r--r--sharpd/sharp_nht.c40
5 files changed, 15 insertions, 102 deletions
diff --git a/doc/user/pbr.rst b/doc/user/pbr.rst
index a57a176f3..c869c6bc4 100644
--- a/doc/user/pbr.rst
+++ b/doc/user/pbr.rst
@@ -45,17 +45,6 @@ listing of ECMP nexthops used to forward packets for when a pbr-map is matched.
are used to are allowed here. The syntax was intentionally kept the same as
creating nexthops as you would for static routes.
-.. clicmd:: set installable
-
- Sets the nexthop group to be installable i.e. treated as a separate object in
- the protocol client and zebra's RIB. The proto will send down the object
- separately from the route to install into into the RIB and dataplane.
-
-.. note::
- ``set installable`` is only supported for groups with onlink, interface, and
- gateway/interface nexthop types at the moment. Recursive nexthops
- (gateway only) are considered undefined behavior.
-
.. clicmd:: [no] pbr table range (10000-4294966272) (10000-4294966272)
Set or unset the range used to assign numeric table ID's to new
diff --git a/lib/nexthop_group.c b/lib/nexthop_group.c
index 136970cff..83905abe4 100644
--- a/lib/nexthop_group.c
+++ b/lib/nexthop_group.c
@@ -54,7 +54,6 @@ struct nexthop_group_hooks {
void (*del_nexthop)(const struct nexthop_group_cmd *nhg,
const struct nexthop *nhop);
void (*delete)(const char *name);
- void (*installable)(const struct nexthop_group_cmd *nhg);
};
static struct nexthop_group_hooks nhg_hooks;
@@ -676,37 +675,6 @@ DEFPY(no_nexthop_group_backup, no_nexthop_group_backup_cmd,
return CMD_SUCCESS;
}
-DEFPY(set_installable, set_installable_cmd,
- "set installable",
- "Set for nexthop-group\n"
- "Install nexthop-group into RIB as separate object\n")
-{
- VTY_DECLVAR_CONTEXT(nexthop_group_cmd, nhgc);
-
- nhgc->installable = true;
-
- if (nhg_hooks.installable)
- nhg_hooks.installable(nhgc);
-
- return CMD_SUCCESS;
-}
-
-DEFPY(no_set_installable, no_set_installable_cmd,
- "no set installable",
- NO_STR
- "Set for nexthop-group\n"
- "Install nexthop-group into RIB as separate object\n")
-{
- VTY_DECLVAR_CONTEXT(nexthop_group_cmd, nhgc);
-
- nhgc->installable = false;
-
- if (nhg_hooks.installable)
- nhg_hooks.installable(nhgc);
-
- return CMD_SUCCESS;
-}
-
static void nexthop_group_save_nhop(struct nexthop_group_cmd *nhgc,
const char *nhvrf_name,
const union sockunion *addr,
@@ -1179,9 +1147,6 @@ static int nexthop_group_write(struct vty *vty)
vty_out(vty, "nexthop-group %s\n", nhgc->name);
- if (nhgc->installable)
- vty_out(vty, " set installable\n");
-
if (nhgc->backup_list_name[0])
vty_out(vty, " backup-group %s\n",
nhgc->backup_list_name);
@@ -1351,14 +1316,12 @@ static const struct cmd_variable_handler nhg_name_handlers[] = {
{.tokenname = "NHGNAME", .completions = nhg_name_autocomplete},
{.completions = NULL}};
-void nexthop_group_init(
- void (*new)(const char *name),
- void (*add_nexthop)(const struct nexthop_group_cmd *nhg,
- const struct nexthop *nhop),
- void (*del_nexthop)(const struct nexthop_group_cmd *nhg,
- const struct nexthop *nhop),
- void (*delete)(const char *name),
- void (*installable)(const struct nexthop_group_cmd *nhg))
+void nexthop_group_init(void (*new)(const char *name),
+ void (*add_nexthop)(const struct nexthop_group_cmd *nhg,
+ const struct nexthop *nhop),
+ void (*del_nexthop)(const struct nexthop_group_cmd *nhg,
+ const struct nexthop *nhop),
+ void (*delete)(const char *name))
{
RB_INIT(nhgc_entry_head, &nhgc_entries);
@@ -1371,8 +1334,6 @@ void nexthop_group_init(
install_default(NH_GROUP_NODE);
install_element(NH_GROUP_NODE, &nexthop_group_backup_cmd);
install_element(NH_GROUP_NODE, &no_nexthop_group_backup_cmd);
- install_element(NH_GROUP_NODE, &set_installable_cmd);
- install_element(NH_GROUP_NODE, &no_set_installable_cmd);
install_element(NH_GROUP_NODE, &ecmp_nexthops_cmd);
memset(&nhg_hooks, 0, sizeof(nhg_hooks));
@@ -1385,6 +1346,4 @@ void nexthop_group_init(
nhg_hooks.del_nexthop = del_nexthop;
if (delete)
nhg_hooks.delete = delete;
- if (installable)
- nhg_hooks.installable = installable;
}
diff --git a/lib/nexthop_group.h b/lib/nexthop_group.h
index e06035ce6..5f7bde0de 100644
--- a/lib/nexthop_group.h
+++ b/lib/nexthop_group.h
@@ -97,9 +97,6 @@ struct nexthop_group_cmd {
struct list *nhg_list;
- /* Install nhg as separate object in RIB */
- bool installable;
-
QOBJ_FIELDS
};
RB_HEAD(nhgc_entry_head, nexthp_group_cmd);
@@ -119,8 +116,7 @@ void nexthop_group_init(
const struct nexthop *nhop),
void (*del_nexthop)(const struct nexthop_group_cmd *nhgc,
const struct nexthop *nhop),
- void (*destroy)(const char *name),
- void (*installable)(const struct nexthop_group_cmd *nhg));
+ void (*destroy)(const char *name));
void nexthop_group_enable_vrf(struct vrf *vrf);
void nexthop_group_disable_vrf(struct vrf *vrf);
diff --git a/pbrd/pbr_main.c b/pbrd/pbr_main.c
index bae8be4f9..9a9edd79c 100644
--- a/pbrd/pbr_main.c
+++ b/pbrd/pbr_main.c
@@ -157,9 +157,10 @@ int main(int argc, char **argv, char **envp)
pbr_debug_init();
- nexthop_group_init(pbr_nhgroup_add_cb, pbr_nhgroup_add_nexthop_cb,
- pbr_nhgroup_del_nexthop_cb, pbr_nhgroup_delete_cb,
- NULL);
+ nexthop_group_init(pbr_nhgroup_add_cb,
+ pbr_nhgroup_add_nexthop_cb,
+ pbr_nhgroup_del_nexthop_cb,
+ pbr_nhgroup_delete_cb);
/*
* So we safely ignore these commands since
diff --git a/sharpd/sharp_nht.c b/sharpd/sharp_nht.c
index e76b1016a..731d58e56 100644
--- a/sharpd/sharp_nht.c
+++ b/sharpd/sharp_nht.c
@@ -78,8 +78,6 @@ struct sharp_nhg {
uint32_t id;
char name[256];
-
- bool installable;
};
static uint32_t nhg_id;
@@ -122,9 +120,7 @@ static void sharp_nhgroup_add_nexthop_cb(const struct nexthop_group_cmd *nhgc,
strncpy(lookup.name, nhgc->name, sizeof(lookup.name));
snhg = sharp_nhg_rb_find(&nhg_head, &lookup);
- if (snhg->installable)
- nhg_add(snhg->id, &nhgc->nhg);
-
+ nhg_add(snhg->id, &nhgc->nhg);
return;
}
@@ -137,9 +133,7 @@ static void sharp_nhgroup_del_nexthop_cb(const struct nexthop_group_cmd *nhgc,
strncpy(lookup.name, nhgc->name, sizeof(lookup.name));
snhg = sharp_nhg_rb_find(&nhg_head, &lookup);
- if (snhg->installable)
- nhg_add(snhg->id, &nhgc->nhg);
-
+ nhg_add(snhg->id, &nhgc->nhg);
return;
}
@@ -153,34 +147,12 @@ static void sharp_nhgroup_delete_cb(const char *name)
if (!snhg)
return;
- if (snhg->installable)
- nhg_del(snhg->id);
-
+ nhg_del(snhg->id);
sharp_nhg_rb_del(&nhg_head, snhg);
XFREE(MTYPE_NHG, snhg);
return;
}
-static void sharp_nhgroup_installable_cb(const struct nexthop_group_cmd *nhgc)
-{
- struct sharp_nhg lookup;
- struct sharp_nhg *snhg;
-
- strncpy(lookup.name, nhgc->name, sizeof(lookup.name));
- snhg = sharp_nhg_rb_find(&nhg_head, &lookup);
- if (!snhg)
- return;
-
- snhg->installable = nhgc->installable;
-
- if (snhg->installable)
- nhg_add(snhg->id, &nhgc->nhg);
- else
- nhg_del(snhg->id);
-
- return;
-}
-
uint32_t sharp_nhgroup_get_id(const char *name)
{
struct sharp_nhg lookup;
@@ -191,9 +163,6 @@ uint32_t sharp_nhgroup_get_id(const char *name)
if (!snhg)
return 0;
- if (!snhg->installable)
- return 0;
-
return snhg->id;
}
@@ -204,6 +173,5 @@ void sharp_nhgroup_init(void)
nexthop_group_init(sharp_nhgroup_add_cb, sharp_nhgroup_add_nexthop_cb,
sharp_nhgroup_del_nexthop_cb,
- sharp_nhgroup_delete_cb,
- sharp_nhgroup_installable_cb);
+ sharp_nhgroup_delete_cb);
}