summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_interface.c')
-rw-r--r--ospf6d/ospf6_interface.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 93265afc43..72e40676a0 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -31,10 +31,10 @@
#include "ospf6_lsa.h"
#include "ospf6_lsdb.h"
+#include "ospf6_top.h"
#include "ospf6_network.h"
#include "ospf6_message.h"
#include "ospf6_route.h"
-#include "ospf6_top.h"
#include "ospf6_area.h"
#include "ospf6_interface.h"
#include "ospf6_neighbor.h"
@@ -56,12 +56,13 @@ const char *const ospf6_interface_state_str[] = {
"None", "Down", "Loopback", "Waiting", "PointToPoint",
"DROther", "BDR", "DR", NULL};
-struct ospf6_interface *ospf6_interface_lookup_by_ifindex(ifindex_t ifindex)
+struct ospf6_interface *ospf6_interface_lookup_by_ifindex(ifindex_t ifindex,
+ vrf_id_t vrf_id)
{
struct ospf6_interface *oi;
struct interface *ifp;
- ifp = if_lookup_by_index(ifindex, VRF_DEFAULT);
+ ifp = if_lookup_by_index(ifindex, vrf_id);
if (ifp == NULL)
return (struct ospf6_interface *)NULL;
@@ -905,7 +906,7 @@ static int ospf6_interface_show(struct vty *vty, struct interface *ifp)
uint8_t default_iftype;
struct timeval res, now;
char duration[32];
- struct ospf6_lsa *lsa;
+ struct ospf6_lsa *lsa, *lsanext;
default_iftype = ospf6_default_iftype(ifp);
@@ -976,7 +977,7 @@ static int ospf6_interface_show(struct vty *vty, struct interface *ifp)
" %d Pending LSAs for LSUpdate in Time %s [thread %s]\n",
oi->lsupdate_list->count, duration,
(oi->thread_send_lsupdate ? "on" : "off"));
- for (ALL_LSDB(oi->lsupdate_list, lsa))
+ for (ALL_LSDB(oi->lsupdate_list, lsa, lsanext))
vty_out(vty, " %s\n", lsa->name);
timerclear(&res);
@@ -986,7 +987,7 @@ static int ospf6_interface_show(struct vty *vty, struct interface *ifp)
vty_out(vty, " %d Pending LSAs for LSAck in Time %s [thread %s]\n",
oi->lsack_list->count, duration,
(oi->thread_send_lsack ? "on" : "off"));
- for (ALL_LSDB(oi->lsack_list, lsa))
+ for (ALL_LSDB(oi->lsack_list, lsa, lsanext))
vty_out(vty, " %s\n", lsa->name);
ospf6_bfd_show_info(vty, oi->bfd_info, 1);
return 0;
@@ -1022,7 +1023,7 @@ DEFUN (show_ipv6_ospf6_interface,
return CMD_SUCCESS;
}
-static int ospf6_interface_show_traffic(struct vty *vty, uint32_t vrf_id,
+static int ospf6_interface_show_traffic(struct vty *vty,
struct interface *intf_ifp,
int display_once)
{
@@ -1030,7 +1031,10 @@ static int ospf6_interface_show_traffic(struct vty *vty, uint32_t vrf_id,
struct vrf *vrf = NULL;
struct ospf6_interface *oi = NULL;
- vrf = vrf_lookup_by_id(vrf_id);
+ if (intf_ifp)
+ vrf = vrf_lookup_by_id(intf_ifp->vrf_id);
+ else
+ vrf = vrf_lookup_by_id(VRF_DEFAULT);
if (!display_once) {
vty_out(vty, "\n");
@@ -1105,7 +1109,7 @@ DEFUN (show_ipv6_ospf6_interface_traffic,
}
}
- ospf6_interface_show_traffic(vty, VRF_DEFAULT, ifp, display_once);
+ ospf6_interface_show_traffic(vty, ifp, display_once);
return CMD_SUCCESS;
@@ -1943,8 +1947,13 @@ static int config_write_ospf6_interface(struct vty *vty)
return 0;
}
+static int config_write_ospf6_interface(struct vty *vty);
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1 /* VTYSH */
+ .name = "interface",
+ .node = INTERFACE_NODE,
+ .parent_node = CONFIG_NODE,
+ .prompt = "%s(config-if)# ",
+ .config_write = config_write_ospf6_interface,
};
static int ospf6_ifp_create(struct interface *ifp)
@@ -1961,8 +1970,7 @@ static int ospf6_ifp_up(struct interface *ifp)
{
if (IS_OSPF6_DEBUG_ZEBRA(RECV))
zlog_debug(
- "Zebra Interface state change: "
- "%s index %d flags %llx metric %d mtu %d bandwidth %d",
+ "Zebra Interface state change: %s index %d flags %llx metric %d mtu %d bandwidth %d",
ifp->name, ifp->ifindex, (unsigned long long)ifp->flags,
ifp->metric, ifp->mtu6, ifp->bandwidth);
@@ -1975,8 +1983,7 @@ static int ospf6_ifp_down(struct interface *ifp)
{
if (IS_OSPF6_DEBUG_ZEBRA(RECV))
zlog_debug(
- "Zebra Interface state change: "
- "%s index %d flags %llx metric %d mtu %d bandwidth %d",
+ "Zebra Interface state change: %s index %d flags %llx metric %d mtu %d bandwidth %d",
ifp->name, ifp->ifindex, (unsigned long long)ifp->flags,
ifp->metric, ifp->mtu6, ifp->bandwidth);
@@ -2001,7 +2008,7 @@ static int ospf6_ifp_destroy(struct interface *ifp)
void ospf6_interface_init(void)
{
/* Install interface node. */
- install_node(&interface_node, config_write_ospf6_interface);
+ install_node(&interface_node);
if_cmd_init();
if_zapi_callbacks(ospf6_ifp_create, ospf6_ifp_up,
ospf6_ifp_down, ospf6_ifp_destroy);