Merge remote-tracking branch 'origin/stable/2.0'

This commit is contained in:
Donald Sharp 2017-02-07 13:20:12 -05:00
commit 7df2e1c379
53 changed files with 327 additions and 253 deletions

View File

@ -93,11 +93,11 @@ noinst_HEADERS = \
$(BGP_VNC_RFAPI_HD) $(BGP_VNC_RFAPI_HD)
bgpd_SOURCES = bgp_main.c bgpd_SOURCES = bgp_main.c
bgpd_LDADD = libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ @LIBM@ bgpd_LDADD = libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ @LIBM@
bgpd_LDFLAGS = $(BGP_VNC_RFP_LD_FLAGS) bgpd_LDFLAGS = $(BGP_VNC_RFP_LD_FLAGS)
bgp_btoa_SOURCES = bgp_btoa.c bgp_btoa_SOURCES = bgp_btoa.c
bgp_btoa_LDADD = libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ @LIBM@ bgp_btoa_LDADD = libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ @LIBM@
bgp_btoa_LDFLAGS = $(BGP_VNC_RFP_LD_FLAGS) bgp_btoa_LDFLAGS = $(BGP_VNC_RFP_LD_FLAGS)
examplesdir = $(exampledir) examplesdir = $(exampledir)

View File

@ -69,6 +69,14 @@ bgp_find_nexthop (struct bgp_info *path, int connected)
if (!bnc) if (!bnc)
return 0; return 0;
/*
* We are cheating here. Views have no associated underlying
* ability to detect nexthops. So when we have a view
* just tell everyone the nexthop is valid
*/
if (path->peer && path->peer->bgp->inst_type == BGP_INSTANCE_TYPE_VIEW)
return 1;
if (connected && !(CHECK_FLAG(bnc->flags, BGP_NEXTHOP_CONNECTED))) if (connected && !(CHECK_FLAG(bnc->flags, BGP_NEXTHOP_CONNECTED)))
return 0; return 0;
@ -196,7 +204,6 @@ bgp_find_or_add_nexthop (struct bgp *bgp, afi_t afi, struct bgp_info *ri,
bnc = rn->info; bnc = rn->info;
bgp_unlock_node (rn); bgp_unlock_node (rn);
if (is_bgp_static_route) if (is_bgp_static_route)
{ {
SET_FLAG(bnc->flags, BGP_STATIC_ROUTE); SET_FLAG(bnc->flags, BGP_STATIC_ROUTE);
@ -239,10 +246,13 @@ bgp_find_or_add_nexthop (struct bgp *bgp, afi_t afi, struct bgp_info *ri,
UNSET_FLAG(bnc->flags, BGP_NEXTHOP_REGISTERED); UNSET_FLAG(bnc->flags, BGP_NEXTHOP_REGISTERED);
UNSET_FLAG(bnc->flags, BGP_NEXTHOP_VALID); UNSET_FLAG(bnc->flags, BGP_NEXTHOP_VALID);
} }
if (bgp->inst_type == BGP_INSTANCE_TYPE_VIEW)
if (!CHECK_FLAG(bnc->flags, BGP_NEXTHOP_REGISTERED)) {
bnc->flags |= BGP_NEXTHOP_REGISTERED;
bnc->flags |= BGP_NEXTHOP_VALID;
}
else if (!CHECK_FLAG(bnc->flags, BGP_NEXTHOP_REGISTERED))
register_zebra_rnh(bnc, is_bgp_static_route); register_zebra_rnh(bnc, is_bgp_static_route);
if (ri && ri->nexthop != bnc) if (ri && ri->nexthop != bnc)
{ {
/* Unlink from existing nexthop cache, if any. This will also free /* Unlink from existing nexthop cache, if any. This will also free
@ -260,7 +270,15 @@ bgp_find_or_add_nexthop (struct bgp *bgp, afi_t afi, struct bgp_info *ri,
else if (peer) else if (peer)
bnc->nht_info = (void *)peer; /* NHT peer reference */ bnc->nht_info = (void *)peer; /* NHT peer reference */
return (bgp_isvalid_nexthop(bnc)); /*
* We are cheating here. Views have no associated underlying
* ability to detect nexthops. So when we have a view
* just tell everyone the nexthop is valid
*/
if (bgp->inst_type == BGP_INSTANCE_TYPE_VIEW)
return 1;
else
return (bgp_isvalid_nexthop(bnc));
} }
void void

View File

@ -48,5 +48,5 @@ sbin_PROGRAMS = $(RFPTEST_BIN)
examplesdir = $(exampledir) examplesdir = $(exampledir)
rfptest_LDADD = $(top_builddir)/lib/libzebra.la $(BGP_VNC_RFP_LIB) rfptest_LDADD = $(top_builddir)/lib/libfrr.la $(BGP_VNC_RFP_LIB)
dist_examples_DATA = dist_examples_DATA =

View File

@ -32,7 +32,7 @@ Q_PROTOBUF_SRCS = $(Q_PROTOBUF_CFILES) $(Q_PROTOBUF_HFILES)
# #
Q_FRR_PB_CLIENT_LDOPTS = $(top_srcdir)/qpb/libfrr_pb.la $(Q_PROTOBUF_C_CLIENT_LDOPTS) Q_FRR_PB_CLIENT_LDOPTS = $(top_srcdir)/qpb/libfrr_pb.la $(Q_PROTOBUF_C_CLIENT_LDOPTS)
Q_FPM_PB_CLIENT_LDOPTS = $(top_srcdir)/fpm/libfpm_pb.la $(Q_FRR_PB_CLIENT_LDOPTS) Q_FPM_PB_CLIENT_LDOPTS = $(top_srcdir)/fpm/libfrrfpm_pb.la $(Q_FRR_PB_CLIENT_LDOPTS)
endif # HAVE_PROTOBUF endif # HAVE_PROTOBUF

View File

@ -1688,7 +1688,7 @@ AC_CONFIG_FILES([Makefile lib/Makefile qpb/Makefile zebra/Makefile ripd/Makefile
doc/Makefile ospfclient/Makefile tests/Makefile m4/Makefile doc/Makefile ospfclient/Makefile tests/Makefile m4/Makefile
pimd/Makefile pimd/Makefile
tests/bgpd.tests/Makefile tests/bgpd.tests/Makefile
tests/libzebra.tests/Makefile tests/libfrr.tests/Makefile
redhat/Makefile redhat/Makefile
tools/Makefile tools/Makefile
cumulus/Makefile cumulus/Makefile

View File

@ -1,4 +1,3 @@
frr: non-dev-pkg-with-shlib-symlink usr/lib/libospfapiclient.so.0.0.0 usr/lib/libospfapiclient.so frr: non-dev-pkg-with-shlib-symlink usr/lib/libfrrospfapiclient.so.0.0.0 usr/lib/libfrrospfapiclient.so
frr: non-dev-pkg-with-shlib-symlink usr/lib/libospf.so.0.0.0 usr/lib/libospf.so frr: non-dev-pkg-with-shlib-symlink usr/lib/libfrr.so.0.0.0 usr/lib/libfrr.so
frr: non-dev-pkg-with-shlib-symlink usr/lib/libzebra.so.0.0.0 usr/lib/libzebra.so frr: package-name-doesnt-match-sonames libfrrospf0 libfrrospfapiclient0 libfrr0
frr: package-name-doesnt-match-sonames libospf0 libospfapiclient0 libzebra0

View File

@ -5,8 +5,8 @@ AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib $(Q
PROTOBUF_INCLUDES=-I$(top_srcdir) PROTOBUF_INCLUDES=-I$(top_srcdir)
PROTOBUF_PACKAGE = fpm PROTOBUF_PACKAGE = fpm
lib_LTLIBRARIES = libfpm_pb.la lib_LTLIBRARIES = libfrrfpm_pb.la
libfpm_pb_la_LDFLAGS = -version-info 0:0:0 libfrrfpm_pb_la_LDFLAGS = -version-info 0:0:0
if HAVE_PROTOBUF if HAVE_PROTOBUF
protobuf_srcs = protobuf_srcs =
@ -15,13 +15,13 @@ protobuf_srcs_nodist = \
fpm.pb-c.c fpm.pb-c.c
endif endif
libfpm_pb_la_SOURCES = \ libfrrfpm_pb_la_SOURCES = \
fpm.h \ fpm.h \
fpm_pb.h \ fpm_pb.h \
fpm_pb.c \ fpm_pb.c \
$(protobuf_srcs) $(protobuf_srcs)
nodist_libfpm_pb_la_SOURCES = $(protobuf_srcs_nodist) nodist_libfrrfpm_pb_la_SOURCES = $(protobuf_srcs_nodist)
CLEANFILES = $(Q_CLEANFILES) CLEANFILES = $(Q_CLEANFILES)

View File

@ -31,7 +31,7 @@ isisd_SOURCES = \
isis_main.c $(libisis_a_SOURCES) \ isis_main.c $(libisis_a_SOURCES) \
isis_bpf.c isis_dlpi.c isis_pfpacket.c isis_bpf.c isis_dlpi.c isis_pfpacket.c
isisd_LDADD = ../lib/libzebra.la @LIBCAP@ isisd_LDADD = ../lib/libfrr.la @LIBCAP@
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = isisd.conf.sample dist_examples_DATA = isisd.conf.sample

View File

@ -27,7 +27,7 @@ ldp_vty_cmds.c: $(srcdir)/ldp_vty.xml $(srcdir)/../tools/xml2cli.pl
@PERL@ $(srcdir)/../tools/xml2cli.pl $(srcdir)/ldp_vty.xml > $@ @PERL@ $(srcdir)/../tools/xml2cli.pl $(srcdir)/ldp_vty.xml > $@
ldpd_SOURCES = ldpd.c ldpd_SOURCES = ldpd.c
ldpd_LDADD = libldp.a ../lib/libzebra.la @LIBCAP@ ldpd_LDADD = libldp.a ../lib/libfrr.la @LIBCAP@
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = ldpd.conf.sample dist_examples_DATA = ldpd.conf.sample

View File

@ -10,10 +10,10 @@ command_lex.h: command_lex.c
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) command_lex.c; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) command_lex.c; else :; fi
command_parse.lo: command_lex.h command_parse.lo: command_lex.h
lib_LTLIBRARIES = libzebra.la lib_LTLIBRARIES = libfrr.la
libzebra_la_LDFLAGS = -version-info 0:0:0 libfrr_la_LDFLAGS = -version-info 0:0:0
libzebra_la_SOURCES = \ libfrr_la_SOURCES = \
network.c pid_output.c getopt.c getopt1.c \ network.c pid_output.c getopt.c getopt1.c \
checksum.c vector.c linklist.c vty.c \ checksum.c vector.c linklist.c vty.c \
graph.c command_parse.y command_lex.l command_match.c \ graph.c command_parse.y command_lex.l command_match.c \
@ -33,7 +33,7 @@ libzebra_la_SOURCES = \
BUILT_SOURCES = route_types.h gitversion.h command_parse.h command_lex.h BUILT_SOURCES = route_types.h gitversion.h command_parse.h command_lex.h
libzebra_la_LIBADD = @LIBCAP@ libfrr_la_LIBADD = @LIBCAP@
pkginclude_HEADERS = \ pkginclude_HEADERS = \
buffer.h checksum.h filter.h getopt.h hash.h \ buffer.h checksum.h filter.h getopt.h hash.h \
@ -58,7 +58,7 @@ noinst_HEADERS = \
noinst_PROGRAMS = grammar_sandbox noinst_PROGRAMS = grammar_sandbox
grammar_sandbox_SOURCES = grammar_sandbox_main.c grammar_sandbox_SOURCES = grammar_sandbox_main.c
grammar_sandbox_LDADD = libzebra.la grammar_sandbox_LDADD = libfrr.la
EXTRA_DIST = \ EXTRA_DIST = \
queue.h \ queue.h \

View File

@ -137,7 +137,7 @@ extern void list_add_list (struct list *, struct list *);
/* Deprecated: 20050406 */ /* Deprecated: 20050406 */
#if !defined(QUAGGA_NO_DEPRECATED_INTERFACES) #if !defined(QUAGGA_NO_DEPRECATED_INTERFACES)
#warning "Using deprecated libzebra interfaces" #warning "Using deprecated libfrr interfaces"
#define LISTNODE_ADD(L,N) LISTNODE_ATTACH(L,N) #define LISTNODE_ADD(L,N) LISTNODE_ATTACH(L,N)
#define LISTNODE_DELETE(L,N) LISTNODE_DETACH(L,N) #define LISTNODE_DELETE(L,N) LISTNODE_DETACH(L,N)
#define nextnode(X) ((X) = (X)->next) #define nextnode(X) ((X) = (X)->next)

View File

@ -19,11 +19,12 @@
#include <stdlib.h> #include <stdlib.h>
#include "memory.h" #include "memory.h"
#include "log.h"
static struct memgroup *mg_first = NULL; static struct memgroup *mg_first = NULL;
struct memgroup **mg_insert = &mg_first; struct memgroup **mg_insert = &mg_first;
DEFINE_MGROUP(LIB, "libzebra") DEFINE_MGROUP(LIB, "libfrr")
DEFINE_MTYPE(LIB, TMP, "Temporary memory") DEFINE_MTYPE(LIB, TMP, "Temporary memory")
static inline void static inline void

View File

@ -362,8 +362,8 @@ thread_master_create (void)
#if defined(HAVE_POLL) #if defined(HAVE_POLL)
rv->handler.pfdsize = rv->fd_limit; rv->handler.pfdsize = rv->fd_limit;
rv->handler.pfdcount = 0; rv->handler.pfdcount = 0;
rv->handler.pfds = (struct pollfd *) malloc (sizeof (struct pollfd) * rv->handler.pfdsize); rv->handler.pfds = XCALLOC (MTYPE_THREAD_MASTER,
memset (rv->handler.pfds, 0, sizeof (struct pollfd) * rv->handler.pfdsize); sizeof (struct pollfd) * rv->handler.pfdsize);
#endif #endif
return rv; return rv;
} }

View File

@ -243,7 +243,7 @@ extern int thread_should_yield (struct thread *);
/* set yield time for thread */ /* set yield time for thread */
extern void thread_set_yield_time (struct thread *, unsigned long); extern void thread_set_yield_time (struct thread *, unsigned long);
/* Internal libzebra exports */ /* Internal libfrr exports */
extern void thread_getrusage (RUSAGE_T *); extern void thread_getrusage (RUSAGE_T *);
extern void thread_cmd_init (void); extern void thread_cmd_init (void);

View File

@ -28,7 +28,7 @@ noinst_HEADERS = \
ospf6d_SOURCES = \ ospf6d_SOURCES = \
ospf6_main.c $(libospf6_a_SOURCES) ospf6_main.c $(libospf6_a_SOURCES)
ospf6d_LDADD = ../lib/libzebra.la @LIBCAP@ ospf6d_LDADD = ../lib/libfrr.la @LIBCAP@
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = ospf6d.conf.sample dist_examples_DATA = ospf6d.conf.sample

View File

@ -717,7 +717,7 @@ interface_up (struct thread *thread)
if (IS_OSPF6_DEBUG_INTERFACE) if (IS_OSPF6_DEBUG_INTERFACE)
zlog_debug ("Interface %s has no link local address, can't execute [InterfaceUp]", zlog_debug ("Interface %s has no link local address, can't execute [InterfaceUp]",
oi->interface->name); oi->interface->name);
return 0; return 0;
} }
/* Recompute cost */ /* Recompute cost */

View File

@ -1,16 +1,17 @@
## Automake.am for OSPF API client ## Automake.am for OSPF API client
AUTOMAKE_OPTIONS = subdir-objects
AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
AM_CFLAGS = $(WERROR) AM_CFLAGS = $(WERROR)
lib_LTLIBRARIES = libospfapiclient.la lib_LTLIBRARIES = libfrrospfapiclient.la
libospfapiclient_la_LDFLAGS = -version-info 0:0:0 libfrrospfapiclient_la_LDFLAGS = -version-info 0:0:0
libospfapiclient_la_LIBADD = ../ospfd/libospf.la ../lib/libzebra.la libfrrospfapiclient_la_LIBADD = ../lib/libfrr.la
sbin_PROGRAMS = ospfclient sbin_PROGRAMS = ospfclient
libospfapiclient_la_SOURCES = \ libfrrospfapiclient_la_SOURCES = \
ospf_apiclient.c ospf_apiclient.c ../ospfd/ospf_dump_api.c ../ospfd/ospf_api.c
ospfapiheaderdir = $(pkgincludedir)/ospfapi ospfapiheaderdir = $(pkgincludedir)/ospfapi
@ -20,8 +21,8 @@ ospfapiheader_HEADERS = \
ospfclient_SOURCES = \ ospfclient_SOURCES = \
ospfclient.c ospfclient.c
ospfclient_LDADD = libospfapiclient.la \ ospfclient_LDADD = libfrrospfapiclient.la \
../ospfd/libospf.la ../lib/libzebra.la @LIBCAP@ ../lib/libfrr.la @LIBCAP@
ospfclient_CFLAGS = $(AM_CFLAGS) ospfclient_CFLAGS = $(AM_CFLAGS)
ospfclient_LDFLAGS = $(AM_LDFLAGS) ospfclient_LDFLAGS = $(AM_LDFLAGS)

View File

@ -49,7 +49,8 @@
#include "ospf_apiclient.h" #include "ospf_apiclient.h"
DEFINE_MTYPE_STATIC(OSPFD, OSPF_APICLIENT, "OSPF-API client") DEFINE_MGROUP(OSPFCLIENT, "libospfapiclient")
DEFINE_MTYPE_STATIC(OSPFCLIENT, OSPF_APICLIENT, "OSPF-API client")
/* Backlog for listen */ /* Backlog for listen */
#define BACKLOG 5 #define BACKLOG 5

View File

@ -52,7 +52,7 @@ struct zebra_privs_t ospfd_privs =
}; };
/* The following includes are specific to this application. For /* The following includes are specific to this application. For
example it uses threads from libzebra, however your application is example it uses threads from libfrr, however your application is
free to use any thread library (like pthreads). */ free to use any thread library (like pthreads). */
#include "ospfd/ospf_dump.h" /* for ospf_lsa_header_dump */ #include "ospfd/ospf_dump.h" /* for ospf_lsa_header_dump */

View File

@ -5,25 +5,23 @@ AM_CFLAGS = $(WERROR)
DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA=@INSTALL@ -m 600 INSTALL_SDATA=@INSTALL@ -m 600
lib_LTLIBRARIES = libospf.la noinst_LIBRARIES = libfrrospf.a
libospf_la_LDFLAGS = -version-info 0:0:0
libospf_la_LIBADD = ../lib/libzebra.la
sbin_PROGRAMS = ospfd sbin_PROGRAMS = ospfd
libospf_la_SOURCES = \ libfrrospf_a_SOURCES = \
ospfd.c ospf_zebra.c ospf_interface.c ospf_ism.c ospf_neighbor.c \ ospfd.c ospf_zebra.c ospf_interface.c ospf_ism.c ospf_neighbor.c \
ospf_nsm.c ospf_dump.c ospf_network.c ospf_packet.c ospf_lsa.c \ ospf_nsm.c ospf_dump.c ospf_network.c ospf_packet.c ospf_lsa.c \
ospf_spf.c ospf_route.c ospf_ase.c ospf_abr.c ospf_ia.c ospf_flood.c \ ospf_spf.c ospf_route.c ospf_ase.c ospf_abr.c ospf_ia.c ospf_flood.c \
ospf_lsdb.c ospf_asbr.c ospf_routemap.c ospf_snmp.c \ ospf_lsdb.c ospf_asbr.c ospf_routemap.c ospf_snmp.c \
ospf_opaque.c ospf_te.c ospf_ri.c ospf_vty.c ospf_api.c ospf_apiserver.c \ ospf_opaque.c ospf_te.c ospf_ri.c ospf_vty.c ospf_api.c ospf_apiserver.c \
ospf_bfd.c ospf_memory.c ospf_bfd.c ospf_memory.c ospf_dump_api.c
ospfdheaderdir = $(pkgincludedir)/ospfd ospfdheaderdir = $(pkgincludedir)/ospfd
ospfdheader_HEADERS = \ ospfdheader_HEADERS = \
ospf_api.h ospf_asbr.h ospf_dump.h ospf_lsa.h ospf_lsdb.h \ ospf_api.h ospf_asbr.h ospf_dump.h ospf_lsa.h ospf_lsdb.h \
ospf_nsm.h ospf_ism.h ospf_opaque.h ospfd.h ospf_nsm.h ospf_ism.h ospf_opaque.h ospfd.h \
ospf_dump_api.h
noinst_HEADERS = \ noinst_HEADERS = \
ospf_interface.h ospf_neighbor.h ospf_network.h ospf_packet.h \ ospf_interface.h ospf_neighbor.h ospf_network.h ospf_packet.h \
@ -33,7 +31,7 @@ noinst_HEADERS = \
ospfd_SOURCES = ospf_main.c ospfd_SOURCES = ospf_main.c
ospfd_LDADD = libospf.la ../lib/libzebra.la @LIBCAP@ @LIBM@ ospfd_LDADD = libfrrospf.a ../lib/libfrr.la @LIBCAP@ @LIBM@
EXTRA_DIST = OSPF-MIB.txt OSPF-TRAP-MIB.txt ChangeLog.opaque.txt EXTRA_DIST = OSPF-MIB.txt OSPF-TRAP-MIB.txt ChangeLog.opaque.txt

View File

@ -701,7 +701,7 @@ ospf_abr_translate_nssa (struct ospf_area *area, struct ospf_lsa *lsa)
zlog_debug ("ospf_abr_translate_nssa(): Could not translate " zlog_debug ("ospf_abr_translate_nssa(): Could not translate "
"Type-7 for %s to Type-5", "Type-7 for %s to Type-5",
inet_ntoa (lsa->data->id)); inet_ntoa (lsa->data->id));
return 1; return 1;
} }
} }
@ -948,11 +948,11 @@ ospf_abr_announce_network (struct ospf *ospf,
zlog_debug ("ospf_abr_announce_network(): " zlog_debug ("ospf_abr_announce_network(): "
"this is intra-area route to %s/%d", "this is intra-area route to %s/%d",
inet_ntoa (p->prefix), p->prefixlen); inet_ntoa (p->prefix), p->prefixlen);
if ((range = ospf_area_range_match (or_area, p)) if ((range = ospf_area_range_match (or_area, p))
&& !ospf_area_is_transit (area)) && !ospf_area_is_transit (area))
ospf_abr_update_aggregate (range, or, area); ospf_abr_update_aggregate (range, or, area);
else else
ospf_abr_announce_network_to_area (p, or->cost, area); ospf_abr_announce_network_to_area (p, or->cost, area);
} }
} }
} }

View File

@ -43,89 +43,6 @@
#include "ospfd/ospf_packet.h" #include "ospfd/ospf_packet.h"
#include "ospfd/ospf_network.h" #include "ospfd/ospf_network.h"
const struct message ospf_ism_state_msg[] =
{
{ ISM_DependUpon, "DependUpon" },
{ ISM_Down, "Down" },
{ ISM_Loopback, "Loopback" },
{ ISM_Waiting, "Waiting" },
{ ISM_PointToPoint, "Point-To-Point" },
{ ISM_DROther, "DROther" },
{ ISM_Backup, "Backup" },
{ ISM_DR, "DR" },
};
const int ospf_ism_state_msg_max = OSPF_ISM_STATE_MAX;
const struct message ospf_nsm_state_msg[] =
{
{ NSM_DependUpon, "DependUpon" },
{ NSM_Deleted, "Deleted" },
{ NSM_Down, "Down" },
{ NSM_Attempt, "Attempt" },
{ NSM_Init, "Init" },
{ NSM_TwoWay, "2-Way" },
{ NSM_ExStart, "ExStart" },
{ NSM_Exchange, "Exchange" },
{ NSM_Loading, "Loading" },
{ NSM_Full, "Full" },
};
const int ospf_nsm_state_msg_max = OSPF_NSM_STATE_MAX;
const struct message ospf_lsa_type_msg[] =
{
{ OSPF_UNKNOWN_LSA, "unknown" },
{ OSPF_ROUTER_LSA, "router-LSA" },
{ OSPF_NETWORK_LSA, "network-LSA" },
{ OSPF_SUMMARY_LSA, "summary-LSA" },
{ OSPF_ASBR_SUMMARY_LSA, "summary-LSA" },
{ OSPF_AS_EXTERNAL_LSA, "AS-external-LSA" },
{ OSPF_GROUP_MEMBER_LSA, "GROUP MEMBER LSA" },
{ OSPF_AS_NSSA_LSA, "NSSA-LSA" },
{ 8, "Type-8 LSA" },
{ OSPF_OPAQUE_LINK_LSA, "Link-Local Opaque-LSA" },
{ OSPF_OPAQUE_AREA_LSA, "Area-Local Opaque-LSA" },
{ OSPF_OPAQUE_AS_LSA, "AS-external Opaque-LSA" },
};
const int ospf_lsa_type_msg_max = OSPF_MAX_LSA;
const struct message ospf_link_state_id_type_msg[] =
{
{ OSPF_UNKNOWN_LSA, "(unknown)" },
{ OSPF_ROUTER_LSA, "" },
{ OSPF_NETWORK_LSA, "(address of Designated Router)" },
{ OSPF_SUMMARY_LSA, "(summary Network Number)" },
{ OSPF_ASBR_SUMMARY_LSA, "(AS Boundary Router address)" },
{ OSPF_AS_EXTERNAL_LSA, "(External Network Number)" },
{ OSPF_GROUP_MEMBER_LSA, "(Group membership information)" },
{ OSPF_AS_NSSA_LSA, "(External Network Number for NSSA)" },
{ 8, "(Type-8 LSID)" },
{ OSPF_OPAQUE_LINK_LSA, "(Link-Local Opaque-Type/ID)" },
{ OSPF_OPAQUE_AREA_LSA, "(Area-Local Opaque-Type/ID)" },
{ OSPF_OPAQUE_AS_LSA, "(AS-external Opaque-Type/ID)" },
};
const int ospf_link_state_id_type_msg_max = OSPF_MAX_LSA;
const struct message ospf_network_type_msg[] =
{
{ OSPF_IFTYPE_NONE, "NONE" },
{ OSPF_IFTYPE_POINTOPOINT, "Point-to-Point" },
{ OSPF_IFTYPE_BROADCAST, "Broadcast" },
{ OSPF_IFTYPE_NBMA, "NBMA" },
{ OSPF_IFTYPE_POINTOMULTIPOINT, "Point-to-MultiPoint" },
{ OSPF_IFTYPE_VIRTUALLINK, "Virtual-Link" },
};
const int ospf_network_type_msg_max = OSPF_IFTYPE_MAX;
/* AuType */
const struct message ospf_auth_type_str[] =
{
{ OSPF_AUTH_NULL, "Null" },
{ OSPF_AUTH_SIMPLE, "Simple" },
{ OSPF_AUTH_CRYPTOGRAPHIC, "Cryptographic" },
};
const size_t ospf_auth_type_str_max = sizeof (ospf_auth_type_str) /
sizeof (ospf_auth_type_str[0]);
/* Configuration debug option variables. */ /* Configuration debug option variables. */
unsigned long conf_debug_ospf_packet[5] = {0, 0, 0, 0, 0}; unsigned long conf_debug_ospf_packet[5] = {0, 0, 0, 0, 0};
unsigned long conf_debug_ospf_event = 0; unsigned long conf_debug_ospf_event = 0;
@ -323,25 +240,6 @@ ospf_timer_dump (struct thread *t, char *buf, size_t size)
return ospf_timeval_dump (&result, buf, size); return ospf_timeval_dump (&result, buf, size);
} }
#define OSPF_OPTION_STR_MAXLEN 24
char *
ospf_options_dump (u_char options)
{
static char buf[OSPF_OPTION_STR_MAXLEN];
snprintf (buf, OSPF_OPTION_STR_MAXLEN, "*|%s|%s|%s|%s|%s|%s|%s",
(options & OSPF_OPTION_O) ? "O" : "-",
(options & OSPF_OPTION_DC) ? "DC" : "-",
(options & OSPF_OPTION_EA) ? "EA" : "-",
(options & OSPF_OPTION_NP) ? "N/P" : "-",
(options & OSPF_OPTION_MC) ? "MC" : "-",
(options & OSPF_OPTION_E) ? "E" : "-",
(options & OSPF_OPTION_MT) ? "M/T" : "-");
return buf;
}
static void static void
ospf_packet_hello_dump (struct stream *s, u_int16_t length) ospf_packet_hello_dump (struct stream *s, u_int16_t length)
{ {
@ -379,24 +277,6 @@ ospf_dd_flags_dump (u_char flags, char *buf, size_t size)
return buf; return buf;
} }
void
ospf_lsa_header_dump (struct lsa_header *lsah)
{
const char *lsah_type = LOOKUP (ospf_lsa_type_msg, lsah->type);
zlog_debug (" LSA Header");
zlog_debug (" LS age %d", ntohs (lsah->ls_age));
zlog_debug (" Options %d (%s)", lsah->options,
ospf_options_dump (lsah->options));
zlog_debug (" LS type %d (%s)", lsah->type,
(lsah->type ? lsah_type : "unknown type"));
zlog_debug (" Link State ID %s", inet_ntoa (lsah->id));
zlog_debug (" Advertising Router %s", inet_ntoa (lsah->adv_router));
zlog_debug (" LS sequence number 0x%lx", (u_long)ntohl (lsah->ls_seqnum));
zlog_debug (" LS checksum 0x%x", ntohs (lsah->checksum));
zlog_debug (" length %d", ntohs (lsah->length));
}
static char * static char *
ospf_router_lsa_flags_dump (u_char flags, char *buf, size_t size) ospf_router_lsa_flags_dump (u_char flags, char *buf, size_t size)
{ {

View File

@ -126,20 +126,16 @@ extern unsigned long term_debug_ospf_te;
/* Message Strings. */ /* Message Strings. */
extern char *ospf_lsa_type_str[]; extern char *ospf_lsa_type_str[];
extern const struct message ospf_auth_type_str[];
extern const size_t ospf_auth_type_str_max;
/* Prototypes. */ /* Prototypes. */
extern const char *ospf_area_name_string (struct ospf_area *); extern const char *ospf_area_name_string (struct ospf_area *);
extern const char *ospf_area_desc_string (struct ospf_area *); extern const char *ospf_area_desc_string (struct ospf_area *);
extern const char *ospf_if_name_string (struct ospf_interface *); extern const char *ospf_if_name_string (struct ospf_interface *);
extern void ospf_nbr_state_message (struct ospf_neighbor *, char *, size_t); extern void ospf_nbr_state_message (struct ospf_neighbor *, char *, size_t);
extern char *ospf_options_dump (u_char);
extern const char *ospf_timer_dump (struct thread *, char *, size_t); extern const char *ospf_timer_dump (struct thread *, char *, size_t);
extern const char *ospf_timeval_dump (struct timeval *, char *, size_t); extern const char *ospf_timeval_dump (struct timeval *, char *, size_t);
extern void ospf_ip_header_dump (struct ip *); extern void ospf_ip_header_dump (struct ip *);
extern void ospf_packet_dump (struct stream *); extern void ospf_packet_dump (struct stream *);
extern void ospf_lsa_header_dump (struct lsa_header *);
extern void debug_init (void); extern void debug_init (void);
/* Appropriate buffer size to use with ospf_timer_dump and ospf_timeval_dump: */ /* Appropriate buffer size to use with ospf_timer_dump and ospf_timeval_dump: */

151
ospfd/ospf_dump_api.c Normal file
View File

@ -0,0 +1,151 @@
/*
* OSPFd dump routine (parts used by ospfclient).
* Copyright (C) 1999, 2000 Toshiaki Takada
*
* This file is part of FreeRangeRouting (FRR).
*
* FRR is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2, or (at your option) any later version.
*
* FRR is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with FRR; see the file COPYING. If not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <zebra.h>
#include "log.h"
#include "prefix.h"
#include "ospf_dump_api.h"
#include "ospfd.h"
#include "ospf_asbr.h"
#include "ospf_lsa.h"
#include "ospf_nsm.h"
#include "ospf_ism.h"
const struct message ospf_ism_state_msg[] =
{
{ ISM_DependUpon, "DependUpon" },
{ ISM_Down, "Down" },
{ ISM_Loopback, "Loopback" },
{ ISM_Waiting, "Waiting" },
{ ISM_PointToPoint, "Point-To-Point" },
{ ISM_DROther, "DROther" },
{ ISM_Backup, "Backup" },
{ ISM_DR, "DR" },
};
const int ospf_ism_state_msg_max = OSPF_ISM_STATE_MAX;
const struct message ospf_nsm_state_msg[] =
{
{ NSM_DependUpon, "DependUpon" },
{ NSM_Deleted, "Deleted" },
{ NSM_Down, "Down" },
{ NSM_Attempt, "Attempt" },
{ NSM_Init, "Init" },
{ NSM_TwoWay, "2-Way" },
{ NSM_ExStart, "ExStart" },
{ NSM_Exchange, "Exchange" },
{ NSM_Loading, "Loading" },
{ NSM_Full, "Full" },
};
const int ospf_nsm_state_msg_max = OSPF_NSM_STATE_MAX;
const struct message ospf_lsa_type_msg[] =
{
{ OSPF_UNKNOWN_LSA, "unknown" },
{ OSPF_ROUTER_LSA, "router-LSA" },
{ OSPF_NETWORK_LSA, "network-LSA" },
{ OSPF_SUMMARY_LSA, "summary-LSA" },
{ OSPF_ASBR_SUMMARY_LSA, "summary-LSA" },
{ OSPF_AS_EXTERNAL_LSA, "AS-external-LSA" },
{ OSPF_GROUP_MEMBER_LSA, "GROUP MEMBER LSA" },
{ OSPF_AS_NSSA_LSA, "NSSA-LSA" },
{ 8, "Type-8 LSA" },
{ OSPF_OPAQUE_LINK_LSA, "Link-Local Opaque-LSA" },
{ OSPF_OPAQUE_AREA_LSA, "Area-Local Opaque-LSA" },
{ OSPF_OPAQUE_AS_LSA, "AS-external Opaque-LSA" },
};
const int ospf_lsa_type_msg_max = OSPF_MAX_LSA;
const struct message ospf_link_state_id_type_msg[] =
{
{ OSPF_UNKNOWN_LSA, "(unknown)" },
{ OSPF_ROUTER_LSA, "" },
{ OSPF_NETWORK_LSA, "(address of Designated Router)" },
{ OSPF_SUMMARY_LSA, "(summary Network Number)" },
{ OSPF_ASBR_SUMMARY_LSA, "(AS Boundary Router address)" },
{ OSPF_AS_EXTERNAL_LSA, "(External Network Number)" },
{ OSPF_GROUP_MEMBER_LSA, "(Group membership information)" },
{ OSPF_AS_NSSA_LSA, "(External Network Number for NSSA)" },
{ 8, "(Type-8 LSID)" },
{ OSPF_OPAQUE_LINK_LSA, "(Link-Local Opaque-Type/ID)" },
{ OSPF_OPAQUE_AREA_LSA, "(Area-Local Opaque-Type/ID)" },
{ OSPF_OPAQUE_AS_LSA, "(AS-external Opaque-Type/ID)" },
};
const int ospf_link_state_id_type_msg_max = OSPF_MAX_LSA;
const struct message ospf_network_type_msg[] =
{
{ OSPF_IFTYPE_NONE, "NONE" },
{ OSPF_IFTYPE_POINTOPOINT, "Point-to-Point" },
{ OSPF_IFTYPE_BROADCAST, "Broadcast" },
{ OSPF_IFTYPE_NBMA, "NBMA" },
{ OSPF_IFTYPE_POINTOMULTIPOINT, "Point-to-MultiPoint" },
{ OSPF_IFTYPE_VIRTUALLINK, "Virtual-Link" },
};
const int ospf_network_type_msg_max = OSPF_IFTYPE_MAX;
/* AuType */
const struct message ospf_auth_type_str[] =
{
{ OSPF_AUTH_NULL, "Null" },
{ OSPF_AUTH_SIMPLE, "Simple" },
{ OSPF_AUTH_CRYPTOGRAPHIC, "Cryptographic" },
};
const size_t ospf_auth_type_str_max = sizeof (ospf_auth_type_str) /
sizeof (ospf_auth_type_str[0]);
#define OSPF_OPTION_STR_MAXLEN 24
char *
ospf_options_dump (u_char options)
{
static char buf[OSPF_OPTION_STR_MAXLEN];
snprintf (buf, OSPF_OPTION_STR_MAXLEN, "*|%s|%s|%s|%s|%s|%s|%s",
(options & OSPF_OPTION_O) ? "O" : "-",
(options & OSPF_OPTION_DC) ? "DC" : "-",
(options & OSPF_OPTION_EA) ? "EA" : "-",
(options & OSPF_OPTION_NP) ? "N/P" : "-",
(options & OSPF_OPTION_MC) ? "MC" : "-",
(options & OSPF_OPTION_E) ? "E" : "-",
(options & OSPF_OPTION_MT) ? "M/T" : "-");
return buf;
}
void
ospf_lsa_header_dump (struct lsa_header *lsah)
{
const char *lsah_type = LOOKUP (ospf_lsa_type_msg, lsah->type);
zlog_debug (" LSA Header");
zlog_debug (" LS age %d", ntohs (lsah->ls_age));
zlog_debug (" Options %d (%s)", lsah->options,
ospf_options_dump (lsah->options));
zlog_debug (" LS type %d (%s)", lsah->type,
(lsah->type ? lsah_type : "unknown type"));
zlog_debug (" Link State ID %s", inet_ntoa (lsah->id));
zlog_debug (" Advertising Router %s", inet_ntoa (lsah->adv_router));
zlog_debug (" LS sequence number 0x%lx", (u_long)ntohl (lsah->ls_seqnum));
zlog_debug (" LS checksum 0x%x", ntohs (lsah->checksum));
zlog_debug (" length %d", ntohs (lsah->length));
}

43
ospfd/ospf_dump_api.h Normal file
View File

@ -0,0 +1,43 @@
/*
* OSPFd dump routine (parts used by ospfclient).
* Copyright (C) 1999 Toshiaki Takada
*
* This file is part of FreeRangeRouting (FRR).
*
* FRR is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2, or (at your option) any later version.
*
* FRR is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with FRR; see the file COPYING. If not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _ZEBRA_OSPF_DUMP_API_H
#define _ZEBRA_OSPF_DUMP_API_H
#include "log.h"
struct lsa_header;
extern const struct message ospf_ism_state_msg[];
extern const struct message ospf_nsm_state_msg[];
extern const struct message ospf_lsa_type_msg[];
extern const struct message ospf_link_state_id_type_msg[];
extern const struct message ospf_network_type_msg[];
extern const struct message ospf_auth_type_str[];
extern const int ospf_ism_state_msg_max;
extern const int ospf_nsm_state_msg_max;
extern const int ospf_lsa_type_msg_max;
extern const int ospf_link_state_id_type_msg_max;
extern const int ospf_network_type_msg_max;
extern const size_t ospf_auth_type_str_max;
extern char *ospf_options_dump (u_char);
extern void ospf_lsa_header_dump (struct lsa_header *);
#endif /* _ZEBRA_OSPF_DUMP_API_H */

View File

@ -114,8 +114,8 @@ ospf_router_id_update (struct ospf *ospf)
else else
router_id = router_id_zebra; router_id = router_id_zebra;
if (!IPV4_ADDR_SAME (&router_id_old, &router_id)) if (!IPV4_ADDR_SAME (&router_id_old, &router_id))
{ {
for (ALL_LIST_ELEMENTS_RO (ospf->oiflist, node, oi)) for (ALL_LIST_ELEMENTS_RO (ospf->oiflist, node, oi))

View File

@ -31,6 +31,7 @@
#include "log.h" #include "log.h"
#include "ospf_memory.h" #include "ospf_memory.h"
#include "ospf_dump_api.h"
#define OSPF_VERSION 2 #define OSPF_VERSION 2
@ -510,17 +511,7 @@ struct ospf_nbr_nbma
/* Extern variables. */ /* Extern variables. */
extern struct ospf_master *om; extern struct ospf_master *om;
extern const struct message ospf_ism_state_msg[];
extern const struct message ospf_nsm_state_msg[];
extern const struct message ospf_lsa_type_msg[];
extern const struct message ospf_link_state_id_type_msg[];
extern const struct message ospf_network_type_msg[];
extern const int ospf_ism_state_msg_max;
extern const int ospf_nsm_state_msg_max;
extern const int ospf_lsa_type_msg_max;
extern const int ospf_link_state_id_type_msg_max;
extern const int ospf_redistributed_proto_max; extern const int ospf_redistributed_proto_max;
extern const int ospf_network_type_msg_max;
extern struct zclient *zclient; extern struct zclient *zclient;
extern struct thread_master *master; extern struct thread_master *master;
extern int ospf_zlog; extern int ospf_zlog;

View File

@ -72,8 +72,8 @@ pimd_SOURCES = \
test_igmpv3_join_SOURCES = \ test_igmpv3_join_SOURCES = \
test_igmpv3_join.c test_igmpv3_join.c
pimd_LDADD = ../lib/libzebra.la @LIBCAP@ pimd_LDADD = ../lib/libfrr.la @LIBCAP@
test_igmpv3_join_LDADD = ../lib/libzebra.la test_igmpv3_join_LDADD = ../lib/libfrr.la
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = pimd.conf.sample dist_examples_DATA = pimd.conf.sample

View File

@ -144,7 +144,7 @@ T22 DONE IGMP must be protected against adding looped MFC entries
created by both source and receiver attached to the same created by both source and receiver attached to the same
interface. interface.
T23 DONE libzebra crash after zclient_lookup_nexthop. T23 DONE libfrr crash after zclient_lookup_nexthop.
See mailing list post: See mailing list post:
http://lists.nongnu.org/archive/html/qpimd-users/2009-04/msg00008.html http://lists.nongnu.org/archive/html/qpimd-users/2009-04/msg00008.html

View File

@ -21,7 +21,7 @@ noinst_HEADERS = \
ripd_SOURCES = \ ripd_SOURCES = \
rip_main.c $(librip_a_SOURCES) rip_main.c $(librip_a_SOURCES)
ripd_LDADD = ../lib/libzebra.la @LIBCAP@ ripd_LDADD = ../lib/libfrr.la @LIBCAP@
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = ripd.conf.sample dist_examples_DATA = ripd.conf.sample

View File

@ -2283,8 +2283,8 @@ rip_output_process (struct connected *ifc, struct sockaddr_in *to,
{ {
if (IS_RIP_DEBUG_PACKET) if (IS_RIP_DEBUG_PACKET)
zlog_debug ("RIP %s/%d is filtered by route-map out", zlog_debug ("RIP %s/%d is filtered by route-map out",
inet_ntoa (p->prefix), p->prefixlen); inet_ntoa (p->prefix), p->prefixlen);
continue; continue;
} }
} }

View File

@ -21,7 +21,7 @@ noinst_HEADERS = \
ripngd_SOURCES = \ ripngd_SOURCES = \
ripng_main.c $(libripng_a_SOURCES) ripng_main.c $(libripng_a_SOURCES)
ripngd_LDADD = ../lib/libzebra.la @LIBCAP@ ripngd_LDADD = ../lib/libfrr.la @LIBCAP@
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = ripngd.conf.sample dist_examples_DATA = ripngd.conf.sample

View File

@ -1,12 +1,10 @@
i pkginfo=$abs_builddir/pkginfo.dev.full i pkginfo=$abs_builddir/pkginfo.dev.full
i depend=$abs_builddir/depend.dev i depend=$abs_builddir/depend.dev
i copying=$abs_top_srcdir/COPYING i copying=$abs_top_srcdir/COPYING
f none @libdir@/libzebra.la=$DESTDIR/@libdir@/libzebra.la 0755 root bin f none @libdir@/libfrr.la=$DESTDIR/@libdir@/libfrr.la 0755 root bin
f none @libdir@/libzebra.a=$DESTDIR/@libdir@/libzebra.a 0644 root bin f none @libdir@/libfrr.a=$DESTDIR/@libdir@/libfrr.a 0644 root bin
f none @libdir@/libospf.la=$DESTDIR/@libdir@/libospf.la 0755 root bin f none @libdir@/libfrrospfapiclient.la=$DESTDIR/@libdir@/libfrrospfapiclient.la 0755 root bin
f none @libdir@/libospf.a=$DESTDIR/@libdir@/libospf.a 0644 root bin f none @libdir@/libfrrospfapiclient.a=$DESTDIR/@libdir@/libfrrospfapiclient.a 0644 root bin
f none @libdir@/libospfapiclient.la=$DESTDIR/@libdir@/libospfapiclient.la 0755 root bin
f none @libdir@/libospfapiclient.a=$DESTDIR/@libdir@/libospfapiclient.a 0644 root bin
d none @includedir@=$DESTDIR/@includedir@ 0755 root bin d none @includedir@=$DESTDIR/@includedir@ 0755 root bin
d none @includedir@/frr=$DESTDIR/@includedir@/frr 0755 root bin d none @includedir@/frr=$DESTDIR/@includedir@/frr 0755 root bin
d none @includedir@/frr/ospfd=$DESTDIR/@includedir@/frr/ospfd 0755 root bin d none @includedir@/frr/ospfd=$DESTDIR/@includedir@/frr/ospfd 0755 root bin

View File

@ -2,12 +2,9 @@ i pkginfo=$abs_builddir/pkginfo.libs.full
i depend=$abs_builddir/depend.libs i depend=$abs_builddir/depend.libs
i copying=$abs_top_srcdir/COPYING i copying=$abs_top_srcdir/COPYING
d none @libdir@=$DESTDIR/@libdir@ 0755 root bin d none @libdir@=$DESTDIR/@libdir@ 0755 root bin
s none @libdir@/libzebra.so.0=libzebra.so.0.0.0 s none @libdir@/libfrr.so.0=libfrr.so.0.0.0
f none @libdir@/libzebra.so.0.0.0=$DESTDIR/@libdir@/libzebra.so.0.0.0 0755 root bin f none @libdir@/libfrr.so.0.0.0=$DESTDIR/@libdir@/libfrr.so.0.0.0 0755 root bin
s none @libdir@/libzebra.so=libzebra.so.0.0.0 s none @libdir@/libfrr.so=libfrr.so.0.0.0
s none @libdir@/libospf.so.0=libospf.so.0.0.0 f none @libdir@/libfrrospfapiclient.so.0.0.0=$DESTDIR/@libdir@/libfrrospfapiclient.so.0.0.0 0755 root bin
f none @libdir@/libospf.so.0.0.0=$DESTDIR/@libdir@/libospf.so.0.0.0 0755 root bin s none @libdir@/libfrrospfapiclient.so.0=libfrrospfapiclient.so.0.0.0
s none @libdir@/libospf.so=libospf.so.0.0.0 s none @libdir@/libfrrospfapiclient.so=libfrrospfapiclient.so.0.0.0
f none @libdir@/libospfapiclient.so.0.0.0=$DESTDIR/@libdir@/libospfapiclient.so.0.0.0 0755 root bin
s none @libdir@/libospfapiclient.so.0=libospfapiclient.so.0.0.0
s none @libdir@/libospfapiclient.so=libospfapiclient.so.0.0.0

View File

@ -1,14 +1,14 @@
AUTOMAKE_OPTIONS = dejagnu AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = libzebra DEJATOOL = libfrr
SUBDIRS = \ SUBDIRS = \
bgpd.tests \ bgpd.tests \
libzebra.tests libfrr.tests
EXTRA_DIST = \ EXTRA_DIST = \
config/unix.exp \ config/unix.exp \
lib/bgpd.exp \ lib/bgpd.exp \
lib/libzebra.exp \ lib/libfrr.exp \
global-conf.exp \ global-conf.exp \
testcommands.in \ testcommands.in \
testcommands.refout \ testcommands.refout \
@ -75,25 +75,25 @@ test_timer_correctness_SOURCES = test-timer-correctness.c prng.c
test_timer_performance_SOURCES = test-timer-performance.c prng.c test_timer_performance_SOURCES = test-timer-performance.c prng.c
test_srcdest_table_SOURCES = test-srcdest-table.c prng.c test_srcdest_table_SOURCES = test-srcdest-table.c prng.c
testcli_LDADD = ../lib/libzebra.la @LIBCAP@ testcli_LDADD = ../lib/libfrr.la @LIBCAP@
testsig_LDADD = ../lib/libzebra.la @LIBCAP@ testsig_LDADD = ../lib/libfrr.la @LIBCAP@
testsegv_LDADD = ../lib/libzebra.la @LIBCAP@ testsegv_LDADD = ../lib/libfrr.la @LIBCAP@
testbuffer_LDADD = ../lib/libzebra.la @LIBCAP@ testbuffer_LDADD = ../lib/libfrr.la @LIBCAP@
testmemory_LDADD = ../lib/libzebra.la @LIBCAP@ testmemory_LDADD = ../lib/libfrr.la @LIBCAP@
testprivs_LDADD = ../lib/libzebra.la @LIBCAP@ testprivs_LDADD = ../lib/libfrr.la @LIBCAP@
teststream_LDADD = ../lib/libzebra.la @LIBCAP@ teststream_LDADD = ../lib/libfrr.la @LIBCAP@
heavy_LDADD = ../lib/libzebra.la @LIBCAP@ -lm heavy_LDADD = ../lib/libfrr.la @LIBCAP@ -lm
heavywq_LDADD = ../lib/libzebra.la @LIBCAP@ -lm heavywq_LDADD = ../lib/libfrr.la @LIBCAP@ -lm
heavythread_LDADD = ../lib/libzebra.la @LIBCAP@ -lm heavythread_LDADD = ../lib/libfrr.la @LIBCAP@ -lm
aspathtest_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ -lm aspathtest_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ -lm
testbgpcap_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ -lm testbgpcap_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ -lm
ecommtest_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ -lm ecommtest_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ -lm
testbgpmpattr_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ -lm testbgpmpattr_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ -lm
testchecksum_LDADD = ../lib/libzebra.la @LIBCAP@ testchecksum_LDADD = ../lib/libfrr.la @LIBCAP@
testbgpmpath_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libzebra.la @LIBCAP@ -lm testbgpmpath_LDADD = ../bgpd/libbgp.a $(BGP_VNC_RFP_LIB) ../lib/libfrr.la @LIBCAP@ -lm
tabletest_LDADD = ../lib/libzebra.la @LIBCAP@ -lm tabletest_LDADD = ../lib/libfrr.la @LIBCAP@ -lm
testnexthopiter_LDADD = ../lib/libzebra.la @LIBCAP@ testnexthopiter_LDADD = ../lib/libfrr.la @LIBCAP@
testcommands_LDADD = ../lib/libzebra.la @LIBCAP@ testcommands_LDADD = ../lib/libfrr.la @LIBCAP@
test_timer_correctness_LDADD = ../lib/libzebra.la @LIBCAP@ test_timer_correctness_LDADD = ../lib/libfrr.la @LIBCAP@
test_timer_performance_LDADD = ../lib/libzebra.la @LIBCAP@ test_timer_performance_LDADD = ../lib/libfrr.la @LIBCAP@
test_srcdest_table_LDADD = ../lib/libzebra.la @LIBCAP@ test_srcdest_table_LDADD = ../lib/libfrr.la @LIBCAP@

View File

@ -44,7 +44,7 @@ extern vector cmdvec;
extern struct cmd_node vty_node; extern struct cmd_node vty_node;
extern void test_init_cmd(void); /* provided in test-commands-defun.c */ extern void test_init_cmd(void); /* provided in test-commands-defun.c */
struct thread_master *master; /* dummy for libzebra*/ struct thread_master *master; /* dummy for libfrr*/
static vector test_cmds; static vector test_cmds;
static char test_buf[32768]; static char test_buf[32768];

View File

@ -5,7 +5,7 @@ EXTRA_DIST =
bin_PROGRAMS = permutations bin_PROGRAMS = permutations
permutations_SOURCES = permutations.c permutations_SOURCES = permutations.c
permutations_LDADD = ../lib/libzebra.la permutations_LDADD = ../lib/libfrr.la
sbin_SCRIPTS = frr-reload.py frr sbin_SCRIPTS = frr-reload.py frr

View File

@ -30,7 +30,7 @@ vtysh_SOURCES = vtysh_main.c vtysh.c vtysh_user.c vtysh_config.c
nodist_vtysh_SOURCES = vtysh_cmd.c nodist_vtysh_SOURCES = vtysh_cmd.c
CLEANFILES = vtysh_cmd.c CLEANFILES = vtysh_cmd.c
noinst_HEADERS = vtysh.h vtysh_user.h noinst_HEADERS = vtysh.h vtysh_user.h
vtysh_LDADD = ../lib/libzebra.la @LIBCAP@ @LIBREADLINE@ vtysh_LDADD = ../lib/libfrr.la @LIBCAP@ @LIBREADLINE@
examplesdir = $(exampledir) examplesdir = $(exampledir)
dist_examples_DATA = vtysh.conf.sample dist_examples_DATA = vtysh.conf.sample

View File

@ -49,7 +49,7 @@ DECLARE_MGROUP(MVTYSH)
/* vtysh local configuration file. */ /* vtysh local configuration file. */
#define VTYSH_DEFAULT_CONFIG "vtysh.conf" #define VTYSH_DEFAULT_CONFIG "vtysh.conf"
#define QUAGGA_DEFAULT_CONFIG "Quagga.conf" #define FRR_DEFAULT_CONFIG "Frr.conf"
enum vtysh_write_integrated { enum vtysh_write_integrated {
WRITE_INTEGRATED_UNSPECIFIED, WRITE_INTEGRATED_UNSPECIFIED,

View File

@ -46,7 +46,7 @@ char *progname;
/* Configuration file name and directory. */ /* Configuration file name and directory. */
static char vtysh_config_always[MAXPATHLEN] = SYSCONFDIR VTYSH_DEFAULT_CONFIG; static char vtysh_config_always[MAXPATHLEN] = SYSCONFDIR VTYSH_DEFAULT_CONFIG;
static char quagga_config_default[MAXPATHLEN] = SYSCONFDIR QUAGGA_DEFAULT_CONFIG; static char quagga_config_default[MAXPATHLEN] = SYSCONFDIR FRR_DEFAULT_CONFIG;
char *quagga_config = quagga_config_default; char *quagga_config = quagga_config_default;
char history_file[MAXPATHLEN]; char history_file[MAXPATHLEN];
@ -357,17 +357,17 @@ main (int argc, char **argv, char **env)
/* /*
* Overwrite location for Quagga.conf * Overwrite location for Quagga.conf
*/ */
vtysh_configfile_name = strrchr(QUAGGA_DEFAULT_CONFIG, '/'); vtysh_configfile_name = strrchr(FRR_DEFAULT_CONFIG, '/');
if (vtysh_configfile_name) if (vtysh_configfile_name)
/* skip '/' */ /* skip '/' */
vtysh_configfile_name++; vtysh_configfile_name++;
else else
/* /*
* QUAGGA_DEFAULT_CONFIG configured with relative path * FRR_DEFAULT_CONFIG configured with relative path
* during config? Should really never happen for * during config? Should really never happen for
* sensible config * sensible config
*/ */
vtysh_configfile_name = (char *) QUAGGA_DEFAULT_CONFIG; vtysh_configfile_name = (char *) FRR_DEFAULT_CONFIG;
strlcpy(quagga_config_default, optarg, sizeof(vtysh_config_always)); strlcpy(quagga_config_default, optarg, sizeof(vtysh_config_always));
strlcat(quagga_config_default, "/", sizeof(vtysh_config_always)); strlcat(quagga_config_default, "/", sizeof(vtysh_config_always));
strlcat(quagga_config_default, vtysh_configfile_name, strlcat(quagga_config_default, vtysh_configfile_name,

View File

@ -10,4 +10,4 @@ sbin_PROGRAMS = watchfrr
noinst_HEADERS = watchfrr.h noinst_HEADERS = watchfrr.h
watchfrr_SOURCES = watchfrr.c watchfrr_vty.c watchfrr_SOURCES = watchfrr.c watchfrr_vty.c
watchfrr_LDADD = ../lib/libzebra.la @LIBCAP@ watchfrr_LDADD = ../lib/libfrr.la @LIBCAP@

View File

@ -62,7 +62,7 @@
#define PING_TOKEN "PING" #define PING_TOKEN "PING"
/* Needs to be global, referenced somewhere inside libzebra. */ /* Needs to be global, referenced somewhere inside libfrr. */
struct thread_master *master; struct thread_master *master;
typedef enum { typedef enum {

View File

@ -62,9 +62,9 @@ noinst_HEADERS = \
zebra_ns.h zebra_vrf.h ioctl_solaris.h zebra_static.h zebra_mpls.h \ zebra_ns.h zebra_vrf.h ioctl_solaris.h zebra_static.h zebra_mpls.h \
kernel_netlink.h if_netlink.h zebra_mroute.h kernel_netlink.h if_netlink.h zebra_mroute.h
zebra_LDADD = $(otherobj) ../lib/libzebra.la $(LIBCAP) $(Q_FPM_PB_CLIENT_LDOPTS) zebra_LDADD = $(otherobj) ../lib/libfrr.la $(LIBCAP) $(Q_FPM_PB_CLIENT_LDOPTS)
testzebra_LDADD = ../lib/libzebra.la $(LIBCAP) testzebra_LDADD = ../lib/libfrr.la $(LIBCAP)
zebra_DEPENDENCIES = $(otherobj) zebra_DEPENDENCIES = $(otherobj)
@ -77,7 +77,7 @@ EXTRA_DIST = if_ioctl.c if_ioctl_solaris.c if_netlink.c \
zebra_mpls_netlink.c zebra_mpls_openbsd.c \ zebra_mpls_netlink.c zebra_mpls_openbsd.c \
GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB
client : client_main.o ../lib/libzebra.la client : client_main.o ../lib/libfrr.la
$(CC) -g -o client client_main.o ../liblzebra.la $(LIBS) $(LIB_IPV6) $(CC) -g -o client client_main.o ../liblzebra.la $(LIBS) $(LIB_IPV6)
quaggaconfdir = $(sysconfdir) quaggaconfdir = $(sysconfdir)

View File

@ -63,7 +63,7 @@ pid_t pid;
/* VTY Socket prefix */ /* VTY Socket prefix */
char vty_sock_path[MAXPATHLEN] = ZEBRA_VTYSH_PATH; char vty_sock_path[MAXPATHLEN] = ZEBRA_VTYSH_PATH;
/* Pacify zclient.o in libzebra, which expects this variable. */ /* Pacify zclient.o in libfrr, which expects this variable. */
struct thread_master *master; struct thread_master *master;
/* Route retain mode flag. */ /* Route retain mode flag. */

View File

@ -56,7 +56,7 @@ int allow_delete = 0;
/* zebra_rib's workqueue hold time. Private export for use by test code only */ /* zebra_rib's workqueue hold time. Private export for use by test code only */
extern int rib_process_hold_time; extern int rib_process_hold_time;
/* Pacify zclient.o in libzebra, which expects this variable. */ /* Pacify zclient.o in libfrr, which expects this variable. */
struct thread_master *master; struct thread_master *master;
/* Command line options. */ /* Command line options. */