Go to file
Sarita Patra bbe598df21 pimd: added comments for upstream and channel_oil new values
Added comments which explains the new values for existing fields
and new fields in the upstream and channel_oil data structure.

Following are the summary of the behaviour change in PIM code.

Scenario 1 : RP doesn’t exist/RP not reachable
Event: Join received
Current behaviour:
	No upstream gets created
Changed behaviour:
	Upstream data structure created with below info
	upstream_addr: INADDR_ANY
	channel_oil iif:  MAXVIF
	channel_oil is_valid: FALSE (flag introduced to indicate if this entry is valid to get installed in hardware)
	RPF details: Not valid
	Join state: NOT_JOINED
	Kernal installed: FALSE

Scenario 2: Dummy upstream exists
Event: RP configured
Current Behaviour:
	upstream address updated for the dummy upstream created.
Changed Behaviour:
	upstream_addr: RP address
	channel_oil iif:  MAXVIF
	channel_oil is_valid: FALSE
	RPF details: only RP address updated
	Join state: NOT_JOINED
	Kernel installed: FALSE

Scenario 3: Dummy upstream exists
Event: RP becomes reachable
Current Behaviour:
	Update channel oil, rpf details in the upstream and install in hardware
Changed Behaviour:
	upstream_addr: RP Adress
	channel_oil iif:  MAXVIF
	channel_oil is_valid: FALSE
	RPF details: RPF details updated via NHT callback
	Join state: JOINED
	Kernel installed: TRUE

Scenario 4: MRoute exists
Event: RP gets deleted
Current behaviour:
	Nothing got updated in him upstream and channel oil,
	join timer still runs. Mroute still exists in kernel.
Changed behaviour:
	upstream_addr: INADDR_ANY
	channel_oil iif:  MAXVIF
	channel_oil is_valid: FALSE
	RPF details: Not valid
	Join state: NOT_JOINED (also sent prune towards deleted RPF nbr)
	Kernel installed: FALSE

Scenario 5: MRoute Exists
Event: RP unreachable
Current behaviour:
	Nothing got updated in him upstream and channel oil,
	join timer still runs. Mroute sdeleted from  kernel.
Changed behaviour:
	upstream_addr: RP address
	channel_oil iif:  MAXVIF
	channel_oil is_valid: FALSE
	RPF details: only RP address updated
	Join state: NOT_JOINED (also sent prune towards deleted RPF nbr)
	Kernel installed: FALSE

Scenario 6: Mroute exists
Event: Better RP configured with precise group range & reachable.
Current behaviour:
	No effect on existing route.
Changed behaviour:
	Upstream address: Better RP
	RPF interface: towards the better RP
	Join state: JOINED (Send a prune towards the old RP and send a join
		towards the better RP)

Scenario 7: Mroute exists
Event: RP deleted and another RP with broad group range fits this group & reachable
Current behaviour:
	No effect on current behaviour
Changed behaviour:
	Upstream address: next available RP
	RPF interface: towards the next available RP
	Join state: JOINED (Send a prune towards the old RP and send a join
		towards the better RP)
Signed-off-by: Sarita Patra <saritap@vmware.com>
2019-02-24 09:38:03 -08:00
.github .github: add core guidelines to issue template 2018-12-13 17:12:23 +00:00
alpine *: get rid of most daemons.conf references 2018-12-06 23:05:48 +01:00
babeld build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
bfdd bfdd: fix CI warnings 2019-02-14 14:18:23 -02:00
bgpd Merge pull request #3836 from opensourcerouting/debian/master-kill-backports 2019-02-23 18:23:21 -05:00
debian debian: remove superseded systemd lintian override 2019-02-19 21:34:27 +01:00
doc Merge pull request #3836 from opensourcerouting/debian/master-kill-backports 2019-02-23 18:23:21 -05:00
docker docker: quick and dirty debian 9 img 2019-02-15 07:42:23 -05:00
eigrpd eigrpd: Do not redelete the eigrp interface data structure 2019-02-11 07:23:23 -05:00
fpm build: disable empty libfrrfpm_pb 2018-12-13 21:14:39 +01:00
gdb bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
include Revert "include: Add linux header mroute.h to our build" 2019-01-31 01:37:14 +01:00
isisd isisd: fix crash when entering "no ip[v6] router isis" twice 2019-02-20 23:04:12 -03:00
ldpd build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
lib Merge pull request #3836 from opensourcerouting/debian/master-kill-backports 2019-02-23 18:23:21 -05:00
m4 *: spelchek 2018-10-25 20:10:57 +02:00
nhrpd build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
ospf6d ospf6d: reset the global ospf6 pointer 2019-02-15 17:42:13 +01:00
ospfclient build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
ospfd Merge pull request #3693 from chiragshah6/ospf_vrf_dev 2019-02-05 11:25:30 -05:00
pbrd pbrd: add missing newline at the end of warning message 2019-02-20 23:04:12 -03:00
pimd pimd: added comments for upstream and channel_oil new values 2019-02-24 09:38:03 -08:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
ports *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python python: make DEFPY provide the text token of fixed parameters 2019-01-21 11:11:00 -02:00
qpb *: fix config.h/zebra.h include order 2018-09-08 21:30:42 +02:00
redhat Merge pull request #3719 from liam-mcb/master 2019-02-12 08:54:53 +07:00
ripd libs, rip, isis: change northbound operation enum to DESTROY 2019-02-11 15:49:49 -02:00
ripngd libs, rip, isis: change northbound operation enum to DESTROY 2019-02-11 15:49:49 -02:00
sharpd Merge pull request #3797 from donaldsharp/allow_in_dir_build 2019-02-18 13:09:29 +01:00
snapcraft *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
solaris *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
staticd build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
tests Merge pull request #3777 from donaldsharp/topotest_all_routes 2019-02-18 13:41:44 +01:00
tools Merge pull request #3836 from opensourcerouting/debian/master-kill-backports 2019-02-23 18:23:21 -05:00
vtysh vtysh: fix pager compatibility handling 2019-02-19 14:06:01 +01:00
watchfrr watchfrr: build in defaults for -r/-s/-k 2019-02-19 21:34:31 +01:00
yang build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
zebra zebra: Fix use after free in rib_process_result 2019-02-23 20:03:48 -05:00
.clang-format lib: introduce new northbound API 2018-10-27 16:16:12 -02:00
.dir-locals.el .dir-locals.el: show trailing whitespace 2017-11-07 12:05:09 -05:00
.dockerignore tests/topotests: Change docker build context 2018-12-01 16:54:58 +01:00
.gitignore debian: cleanly split off from dist tarball 2019-02-19 21:31:18 +01:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
changelog-auto.in debian: cleanly split off from dist tarball 2019-02-19 21:31:18 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac Merge pull request #3836 from opensourcerouting/debian/master-kill-backports 2019-02-23 18:23:21 -05:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
defaults.h *: reindent 2017-07-17 14:04:07 +02:00
Makefile.am debian: cleanly split off from dist tarball 2019-02-19 21:31:18 +01:00
README.md README.md: update list of supported protos 2019-02-15 17:57:13 +00:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00

FRRouting

FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD as well as Solaris and supports all modern CPU architectures.

FRR currently supports the following protocols:

  • BGP
  • OSPFv2
  • OSPFv3
  • RIPv1
  • RIPv2
  • RIPng
  • IS-IS
  • PIM-SM/MSDP
  • LDP
  • BFD
  • Babel
  • PBR
  • OpenFabric
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

Packages are available for various distributions on our releases page.

Snaps are also available here.

Instructions on building and installing from source for supported platforms may be found here.

Once installed, please refer to the user guide for instructions on use.

Community

The FRRouting email list server is located here and offers the following public lists:

Topic List
Development dev@lists.frrouting.org
Users & Operators frog@lists.frrouting.org
Announcements announce@lists.frrouting.org

For chat, we currently use Slack. Please email the mailing list to request an invite as we do not issue automatic invites.

Contributing

FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.

We welcome and appreciate all contributions, no matter how small!

Security

To report security issues, please use our security mailing list:

security [at] lists.frrouting.org