{RI_RIP_VERSION_NONE, "none"},
{0}};
-/* RIP enabled interface table. */
-struct route_table *rip_enable_network;
-
/* Vector to store passive-interface name. */
vector Vrip_passive_nondefault;
struct connected *connected;
struct prefix_ipv4 address;
+ if (!rip)
+ return -1;
+
for (ALL_LIST_ELEMENTS(ifp->connected, node, nnode, connected)) {
struct prefix *p;
struct route_node *n;
address.prefix = p->u.prefix4;
address.prefixlen = IPV4_MAX_BITLEN;
- n = route_node_match(rip_enable_network,
+ n = route_node_match(rip->enable_network,
(struct prefix *)&address);
if (n) {
route_unlock_node(n);
address.prefixlen = IPV4_MAX_BITLEN;
/* LPM on p->family, p->u.prefix4/IPV4_MAX_BITLEN within
- * rip_enable_network */
- node = route_node_match(rip_enable_network,
+ * rip->enable_network */
+ node = route_node_match(rip->enable_network,
(struct prefix *)&address);
if (node) {
{
struct route_node *node;
- node = route_node_get(rip_enable_network, p);
+ node = route_node_get(rip->enable_network, p);
if (node->info) {
route_unlock_node(node);
{
struct route_node *node;
- node = route_node_lookup(rip_enable_network, p);
+ node = route_node_lookup(rip->enable_network, p);
if (node) {
node->info = NULL;
char *str;
struct route_node *rn;
- /* rip_enable_network. */
- for (rn = route_top(rip_enable_network); rn; rn = route_next(rn))
+ /* rip->enable_network. */
+ for (rn = route_top(rip->enable_network); rn; rn = route_next(rn))
if (rn->info) {
rn->info = NULL;
route_unlock_node(rn);
struct route_node *node;
/* Network type RIP enable interface statement. */
- for (node = route_top(rip_enable_network); node;
+ for (node = route_top(rip->enable_network); node;
node = route_next(node))
if (node->info)
vty_out(vty, " %s/%u\n",
hook_register_prio(if_add, 0, rip_interface_new_hook);
hook_register_prio(if_del, 0, rip_interface_delete_hook);
- /* RIP network init. */
- rip_enable_network = route_table_init();
-
/* RIP passive interface. */
Vrip_passive_nondefault = vector_init(1);
rip->table = route_table_init();
rip->neighbor = route_table_init();
rip->enable_interface = vector_init(1);
+ rip->enable_network = route_table_init();
/* Distribute list install. */
rip->distribute_ctx =
rip_clean_network();
rip_passive_nondefault_clean();
vector_free(rip->enable_interface);
+ route_table_finish(rip->enable_network);
rip_offset_clean();
rip_interfaces_clean();
rip_distance_reset();