Merge remote-tracking branch 'origin/cmaster' into cmaster-next

This commit is contained in:
Donald Sharp 2016-08-15 12:10:28 -04:00
commit aee0f4498d
9 changed files with 24 additions and 196 deletions

View File

@ -32,8 +32,6 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "memory.h" #include "memory.h"
#include "hash.h" #include "hash.h"
#include "queue.h" #include "queue.h"
#include "if.h"
#include "vrf.h"
#include "bgpd/bgpd.h" #include "bgpd/bgpd.h"
#include "bgpd/bgp_advertise.h" #include "bgpd/bgp_advertise.h"
@ -835,10 +833,6 @@ DEFUN (no_bgp_router_id,
int ret; int ret;
struct in_addr id; struct in_addr id;
struct bgp *bgp; struct bgp *bgp;
struct interface *ifp;
struct listnode *node;
struct connected *ifc;
struct prefix *p;
bgp = vty->index; bgp = vty->index;
@ -846,28 +840,16 @@ DEFUN (no_bgp_router_id,
{ {
ret = inet_aton (argv[0], &id); ret = inet_aton (argv[0], &id);
if (! ret) if (! ret)
{ {
ifp = if_lookup_by_name_vrf(argv[0], bgp->vrf_id); vty_out (vty, "%% Malformed BGP router identifier%s", VTY_NEWLINE);
if (!ifp) { return CMD_WARNING;
vty_out (vty, "%% Malformed BGP router identifier%s", VTY_NEWLINE); }
return CMD_WARNING;
}
for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc))
{
p = ifc->address;
if (p && (p->family == AF_INET))
{
id = p->u.prefix4;
break;
}
}
}
if (! IPV4_ADDR_SAME (&bgp->router_id_static, &id)) if (! IPV4_ADDR_SAME (&bgp->router_id_static, &id))
{ {
vty_out (vty, "%% BGP router-id doesn't match%s", VTY_NEWLINE); vty_out (vty, "%% BGP router-id doesn't match%s", VTY_NEWLINE);
return CMD_WARNING; return CMD_WARNING;
} }
} }
id.s_addr = 0; id.s_addr = 0;
@ -884,53 +866,6 @@ ALIAS (no_bgp_router_id,
"Override configured router identifier\n" "Override configured router identifier\n"
"Manually configured router identifier\n") "Manually configured router identifier\n")
DEFUN (bgp_router_id_interface,
bgp_router_id_interface_cmd,
"bgp router-id IFNAME",
BGP_STR
"Override configured router identifier\n"
"Interface name\n")
{
struct bgp *bgp;
struct interface *ifp;
struct connected *ifc;
struct listnode *node;
struct prefix *p;
struct vrf *vrf;
bgp = vty->index;
p = NULL;
ifp = if_lookup_by_name_vrf(argv[0], bgp->vrf_id);
if (!ifp)
{
vrf = vrf_lookup(bgp->vrf_id);
vty_out (vty, "%% Couldnt find interface %s in VRF %s%s", argv[0], vrf? vrf->name:"", VTY_NEWLINE);
return CMD_WARNING;
}
for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc))
{
p = ifc->address;
if (p && (p->family == AF_INET))
{
bgp_router_id_static_set(bgp, p->u.prefix4);
return CMD_SUCCESS;
}
}
vty_out (vty, "%% Couldnt assign the router-id%s", VTY_NEWLINE);
return CMD_WARNING;
}
ALIAS (no_bgp_router_id,
no_bgp_router_id_interface_cmd,
"no bgp router-id IFNAME",
NO_STR
BGP_STR
"Override configured router identifier\n"
"Interface name\n")
/* BGP Cluster ID. */ /* BGP Cluster ID. */
DEFUN (bgp_cluster_id, DEFUN (bgp_cluster_id,
@ -14477,8 +14412,6 @@ bgp_vty_init (void)
install_element (BGP_NODE, &bgp_router_id_cmd); install_element (BGP_NODE, &bgp_router_id_cmd);
install_element (BGP_NODE, &no_bgp_router_id_cmd); install_element (BGP_NODE, &no_bgp_router_id_cmd);
install_element (BGP_NODE, &no_bgp_router_id_val_cmd); install_element (BGP_NODE, &no_bgp_router_id_val_cmd);
install_element (BGP_NODE, &bgp_router_id_interface_cmd);
install_element (BGP_NODE, &no_bgp_router_id_interface_cmd);
/* "bgp cluster-id" commands. */ /* "bgp cluster-id" commands. */
install_element (BGP_NODE, &bgp_cluster_id_cmd); install_element (BGP_NODE, &bgp_cluster_id_cmd);

View File

@ -0,0 +1,3 @@
log file /var/log/quagga/quagga.log
log timestamp precision 6

View File

@ -1,3 +0,0 @@
hostname bgpd
log timestamp precision 6
log file /var/log/quagga/bgpd.log

View File

@ -1,3 +0,0 @@
hostname ospfd
log timestamp precision 6
log file /var/log/quagga/ospf6d.log

View File

@ -1,3 +0,0 @@
hostname ospfd
log timestamp precision 6
log file /var/log/quagga/ospfd.log

View File

@ -1,5 +0,0 @@
hostname pimd
password cn321
enable password cn321
log timestamp precision 6
log file /var/log/quagga/pimd.log

View File

@ -1,2 +0,0 @@
hostname zebra
log file /var/log/quagga/zebra.log

View File

@ -271,43 +271,10 @@ DEFUN (no_ospf_router_id,
struct ospf *ospf = vty->index; struct ospf *ospf = vty->index;
struct listnode *node; struct listnode *node;
struct ospf_area *area; struct ospf_area *area;
struct in_addr id;
struct interface *ifp;
struct connected *ifc;
struct prefix *p;
int ret;
if (!ospf) if (!ospf)
return CMD_SUCCESS; return CMD_SUCCESS;
if (argc == 1)
{
ret = inet_aton (argv[0], &id);
if (! ret)
{
ifp = if_lookup_by_name(argv[0]);
if (!ifp) {
vty_out (vty, "%% Malformed OSPF router identifier%s", VTY_NEWLINE);
return CMD_WARNING;
}
for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc))
{
p = ifc->address;
if (p && (p->family == AF_INET))
{
id = p->u.prefix4;
break;
}
}
}
if (! IPV4_ADDR_SAME (&ospf->router_id_static, &id))
{
vty_out (vty, "%% OSPF router-id doesn't match%s", VTY_NEWLINE);
return CMD_WARNING;
}
}
ospf->router_id_static.s_addr = 0; ospf->router_id_static.s_addr = 0;
for (ALL_LIST_ELEMENTS_RO (ospf->areas, node, area)) for (ALL_LIST_ELEMENTS_RO (ospf->areas, node, area))
@ -331,63 +298,6 @@ ALIAS (no_ospf_router_id,
"router-id for the OSPF process\n" "router-id for the OSPF process\n"
"OSPF router-id in IP address format\n") "OSPF router-id in IP address format\n")
DEFUN (ospf_router_id_interface,
ospf_router_id_interface_cmd,
"ospf router-id IFNAME",
"OSPF specific commands\n"
"router-id for the OSPF process\n"
"Interface name\n")
{
struct ospf *ospf = vty->index;
struct listnode *node;
struct ospf_area *area;
struct interface *ifp;
struct connected *ifc;
struct prefix *p;
if (!ospf)
return CMD_SUCCESS;
p = NULL;
ifp = if_lookup_by_name(argv[0]);
if (!ifp)
{
vty_out (vty, "%% Couldnt find interface %s%s", argv[0], VTY_NEWLINE);
return CMD_WARNING;
}
for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc))
{
p = ifc->address;
if (p && (p->family == AF_INET))
{
if (IPV4_ADDR_SAME (&ospf->router_id_static, &p->u.prefix4))
return CMD_SUCCESS;
ospf->router_id_static = p->u.prefix4;
for (ALL_LIST_ELEMENTS_RO (ospf->areas, node, area))
if (area->full_nbrs)
{
vty_out (vty, "For this router-id change to take effect,"
" save config and restart ospfd%s", VTY_NEWLINE);
return CMD_SUCCESS;
}
ospf_router_id_update (ospf);
return CMD_SUCCESS;
}
}
vty_out (vty, "%% Couldnt assign the router-id%s", VTY_NEWLINE);
return CMD_WARNING;
}
ALIAS (no_ospf_router_id,
no_ospf_router_id_interface_cmd,
"no ospf router-id IFNAME",
NO_STR
"OSPF specific commands\n"
"router-id for the OSPF process\n"
"Interface name\n")
static void static void
ospf_passive_interface_default (struct ospf *ospf, u_char newval) ospf_passive_interface_default (struct ospf *ospf, u_char newval)
{ {
@ -10421,10 +10331,8 @@ ospf_vty_init (void)
/* "ospf router-id" commands. */ /* "ospf router-id" commands. */
install_element (OSPF_NODE, &ospf_router_id_cmd); install_element (OSPF_NODE, &ospf_router_id_cmd);
install_element (OSPF_NODE, &ospf_router_id_old_cmd); install_element (OSPF_NODE, &ospf_router_id_old_cmd);
install_element (OSPF_NODE, &ospf_router_id_interface_cmd);
install_element (OSPF_NODE, &no_ospf_router_id_cmd); install_element (OSPF_NODE, &no_ospf_router_id_cmd);
install_element (OSPF_NODE, &no_ospf_router_id_val_cmd); install_element (OSPF_NODE, &no_ospf_router_id_val_cmd);
install_element (OSPF_NODE, &no_ospf_router_id_interface_cmd);
/* "passive-interface" commands. */ /* "passive-interface" commands. */
install_element (OSPF_NODE, &ospf_passive_interface_addr_cmd); install_element (OSPF_NODE, &ospf_passive_interface_addr_cmd);

View File

@ -69,22 +69,25 @@ static void rtadv_event (struct zebra_ns *, enum rtadv_event, int);
static int if_join_all_router (int, struct interface *); static int if_join_all_router (int, struct interface *);
static int if_leave_all_router (int, struct interface *); static int if_leave_all_router (int, struct interface *);
static int rtadv_increment_received(unsigned int *ifindex) { static int
rtadv_increment_received(struct zebra_ns *zns, unsigned int *ifindex)
{
int ret = -1; int ret = -1;
struct interface *iface; struct interface *iface;
struct zebra_if *zif; struct zebra_if *zif;
iface = if_lookup_by_index_vrf(*ifindex, VRF_DEFAULT); iface = if_lookup_by_index_per_ns (zns, *ifindex);
if (iface && iface->info) { if (iface && iface->info)
zif = iface->info; {
zif->ra_rcvd++; zif = iface->info;
ret = 0; zif->ra_rcvd++;
} ret = 0;
}
return ret; return ret;
} }
static int static int
rtadv_recv_packet (int sock, u_char *buf, int buflen, rtadv_recv_packet (struct zebra_ns *zns, int sock, u_char *buf, int buflen,
struct sockaddr_in6 *from, unsigned int *ifindex, struct sockaddr_in6 *from, unsigned int *ifindex,
int *hoplimit) int *hoplimit)
{ {
@ -134,10 +137,7 @@ rtadv_recv_packet (int sock, u_char *buf, int buflen,
} }
} }
if(rtadv_increment_received(ifindex) < 0) rtadv_increment_received(zns, ifindex);
zlog_err("%s: could not increment RA received counter on ifindex %d",
__func__, *ifindex);
return ret; return ret;
} }
@ -619,7 +619,7 @@ rtadv_read (struct thread *thread)
/* Register myself. */ /* Register myself. */
rtadv_event (zns, RTADV_READ, sock); rtadv_event (zns, RTADV_READ, sock);
len = rtadv_recv_packet (sock, buf, BUFSIZ, &from, &ifindex, &hoplimit); len = rtadv_recv_packet (zns, sock, buf, BUFSIZ, &from, &ifindex, &hoplimit);
if (len < 0) if (len < 0)
{ {