mirror_frr/ospfd
Donald Sharp 7c8ff89e93 Multi-Instance OSPF Summary
——————————————-------------

- etc/init.d/quagga is modified to support creating separate ospf daemon
  process for each instance. Each individual instance is monitored by
  watchquagga just like any protocol daemons.(requires initd-mi.patch).

- Vtysh is modified to able to connect to multiple daemons of the same
  protocol (supported for OSPF only for now).

- ospfd is modified to remember the Instance-ID that its invoked with. For
  the entire life of the process it caters to any command request that
  matches that instance-ID (unless its a non instance specific command).
  Routes/messages to zebra are tagged with instance-ID.

- zebra route/redistribute mechanisms are modified to work with
  [protocol type + instance-id]

- bgpd now has ability to have multiple instance specific redistribution
  for a protocol (OSPF only supported/tested for now).

- zlog ability to display instance-id besides the protocol/daemon name.

- Changes in other daemons are to because of the needed integration with
  some of the modified APIs/routines. (Didn’t prefer replicating too many
  separate instance specific APIs.)

- config/show/debug commands are modified to take instance-id argument
  as appropriate.

Guidelines to start using multi-instance ospf
---------------------------------------------

The patch is backward compatible, i.e for any previous way of single ospf
deamon(router ospf <cr>) will continue to work as is, including all the
show commands etc.

To enable multiple instances, do the following:

     1. service quagga stop
     2. Modify /etc/quagga/daemons to add instance-ids of each desired
        instance in the following format:
        ospfd=“yes"
        ospfd_instances="1,2,3"
	assuming you want to enable 3 instances with those instance ids.
     3. Create corresponding ospfd config files as ospfd-1.conf, ospfd-2.conf
        and ospfd-3.conf.
     4. service quagga start/restart
     5. Verify that the deamons are started as expected. You should see
        ospfd started with -n <instance-id> option.
     	ps –ef | grep quagga
     	With that /var/run/quagga/ should have ospfd-<instance-id>.pid and
	ospfd-<instance-id>/vty to each instance.
     6. vtysh to work with instances as you would with any other deamons.
     7. Overall most quagga semantics are the same working with the instance
     	deamon, like it is for any other daemon.

NOTE:
     To safeguard against errors leading to too many processes getting invoked,
     a hard limit on number of instance-ids is in place, currently its 5.
     Allowed instance-id range is <1-65535>
     Once daemons are up, show running from vtysh should show the instance-id
     of  each daemon as 'router ospf <instance-id>’  (without needing explicit
     configuration)
     Instance-id can not be changed via vtysh, other router ospf configuration
     is allowed as before.

Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
2015-05-19 18:03:42 -07:00
..
.gitignore [administrivia] Git should ignore backup files and .loT files 2008-08-22 20:00:46 +01:00
ChangeLog.opaque.txt Initial revision 2003-02-03 16:31:16 +00:00
Makefile.am build: correct libtool parameter used within Makefiles 2012-09-25 05:56:00 +02:00
ospf_abr.c ospfd-spf-stats.patch 2015-05-19 16:36:05 -07:00
ospf_abr.h ospf6d: ospfv3-abr-ecmp-support.patch 2015-05-19 18:03:39 -07:00
ospf_api.c ospfd: CVE-2013-2236, stack overrun in apiserver 2013-07-28 16:13:10 +02:00
ospf_api.h 2005-05-06 Paul Jakma <paul.jakma@sun.com> 2005-05-06 21:37:42 +00:00
ospf_apiserver.c ospfd: compile warning cleanups 2013-01-07 09:59:59 -08:00
ospf_apiserver.h ospf: Fix OSPF API and ospf-te LSA refreshers to match recent API change 2011-04-13 15:13:33 +01:00
ospf_asbr.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_asbr.h Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_ase.c ospfd-spf-stats.patch 2015-05-19 16:36:05 -07:00
ospf_ase.h 2005-05-06 Paul Jakma <paul.jakma@sun.com> 2005-05-06 21:37:42 +00:00
ospf_dump.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_dump.h ospfd: introduce ospf_auth_type_str[] 2012-03-12 11:05:34 +01:00
ospf_flood.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_flood.h ospfd: Fix maxage/flush to not try flood twice, remember maxages for longer 2010-12-08 17:13:19 +00:00
ospf_ia.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
ospf_ia.h 2005-05-06 Paul Jakma <paul.jakma@sun.com> 2005-05-06 21:37:42 +00:00
ospf_interface.c Unnumbered interface support. 2015-05-19 17:58:13 -07:00
ospf_interface.h per-interface ospf enable and area set command. 2015-05-19 17:58:14 -07:00
ospf_ism.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
ospf_ism.h [ospfd] Make OSPF_ISM_TIMER_OFF macro safer. 2005-11-16 19:33:22 +00:00
ospf_lsa.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_lsa.h Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_lsdb.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
ospf_lsdb.h ospf: Convert MAX_AGE LSA list to tree 2013-01-07 09:59:43 -08:00
ospf_main.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_neighbor.c [cleanup] Convert XMALLOC/memset to XCALLOC 2009-06-12 17:07:49 +01:00
ospf_neighbor.h [ospfd] Additional NSM neighbour state change stats/information 2006-07-25 20:44:12 +00:00
ospf_network.c Set the RCVBUF and SNDBUF sizes to the maximum possible amount to 2015-05-19 17:24:42 -07:00
ospf_network.h ospfd: compile warning cleanups 2013-01-07 09:59:59 -08:00
ospf_nsm.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_nsm.h ospfd: Update nsm_change_state to static scope, as it is not called from elsewhere 2013-01-07 09:59:57 -08:00
ospf_opaque.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_opaque.h ospfd: Compile fix for opaque support 2011-03-22 15:23:55 +00:00
ospf_packet.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_packet.h Send ARP requests proactively during OSPF Adjacency formation. 2015-05-19 17:24:41 -07:00
ospf_route.c Unnumbered interface support. 2015-05-19 17:58:13 -07:00
ospf_route.h Unnumbered interface support. 2015-05-19 17:58:13 -07:00
ospf_routemap.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_snmp.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
ospf_snmp.h 2005-09-29 Alain Ritoux <alain.ritoux@6wind.com> 2005-09-29 16:34:30 +00:00
ospf_spf.c Section 16.0 of rfc2328 (OSPF) specifies that the short-path 2015-05-19 17:24:44 -07:00
ospf_spf.h ospfd-spf-stats.patch 2015-05-19 16:36:05 -07:00
ospf_te.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_te.h ospfd: Changed TE instance check to remove -Wtype-limits warning 2013-01-07 09:59:53 -08:00
ospf_vty.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_vty.h Support for 'clear ip ospf interface [IFNAME]' 2015-05-19 17:58:13 -07:00
ospf_zebra.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospf_zebra.h Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
OSPF-ALIGNMENT.txt add note about alignment in LS updates due to opaque LSAs. 2004-11-17 17:59:52 +00:00
OSPF-MIB.txt spelling: s/supress/suppress/ 2004-11-05 13:24:12 +00:00
OSPF-TRAP-MIB.txt Initial revision 2002-12-13 20:15:29 +00:00
ospfd.c Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00
ospfd.conf.sample Initial revision 2002-12-13 20:15:29 +00:00
ospfd.h Multi-Instance OSPF Summary 2015-05-19 18:03:42 -07:00