]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
7 years agopimd: When we are initializing a pim socket limit hellos
Donald Sharp [Wed, 14 Jun 2017 14:54:41 +0000 (10:54 -0400)]
pimd: When we are initializing a pim socket limit hellos

When we are initializing a pim socket for vrf or loopback
interfaces do not schedule a hello to go out at all.

I'm currently leaving the check on is a vrf / loopback
device on the actual send as that we have several paths
to get there.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove knowledge of HAVE_TCP_ZEBRA from pim
Donald Sharp [Wed, 14 Jun 2017 00:11:06 +0000 (20:11 -0400)]
pimd: Remove knowledge of HAVE_TCP_ZEBRA from pim

pim was the only routing daemon to have any knowledge
of how zebra connects to each daemon.  There is no
need for this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Ensure packet received on vrf interface is configured for pim
Donald Sharp [Tue, 13 Jun 2017 17:49:38 +0000 (13:49 -0400)]
pimd: Ensure packet received on vrf interface is configured for pim

In a vrf configuration, when we receive a pim packet we lookup
the correct incoming interface.  There exists a chance that
the correct incoming interface has not been configured to use
pim yet.  gracefully bow out and do nothing with the packet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib, pimd, zebra: Allow pim to set pimregX into appropriate vrf
Donald Sharp [Tue, 13 Jun 2017 12:59:32 +0000 (08:59 -0400)]
lib, pimd, zebra: Allow pim to set pimregX into appropriate vrf

The pimregX devices when created by the kernel are put into
the default vrf.  When pim gets the callback that the device
exists, check to see if it is a pimregX device and if so
move it into the appropriate vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Bind msdp listen socket to vrf
Donald Sharp [Sat, 10 Jun 2017 19:05:31 +0000 (15:05 -0400)]
pimd: Bind msdp listen socket to vrf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup shutdown of vrf
Donald Sharp [Sat, 10 Jun 2017 19:03:03 +0000 (15:03 -0400)]
pimd: Cleanup shutdown of vrf

When shutting down the vrf don't kill the default vrf
when attempting to cleanup something else.

Also move the terminate to the right spot.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix msdp show command
Donald Sharp [Thu, 8 Jun 2017 12:37:02 +0000 (08:37 -0400)]
pimd: Fix msdp show command

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: For non-default vrf's bind the msdp socket to the vrf
Donald Sharp [Wed, 7 Jun 2017 20:24:07 +0000 (16:24 -0400)]
pimd: For non-default vrf's bind the msdp socket to the vrf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix 'show ip pim state...' vrf changes
Donald Sharp [Tue, 6 Jun 2017 19:09:51 +0000 (15:09 -0400)]
pimd: Fix 'show ip pim state...' vrf changes

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agozebra: Allow S,G lookup to use RTNL_FAMILY_IPMR
Donald Sharp [Tue, 6 Jun 2017 14:18:17 +0000 (10:18 -0400)]
zebra: Allow S,G lookup to use RTNL_FAMILY_IPMR

This current implementation unfortunately must
ask the kernel for all mroutes because vrf's
do not have the ability to request a single
mroute at this time.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: debug guard error message
Donald Sharp [Tue, 6 Jun 2017 14:17:45 +0000 (10:17 -0400)]
pimd: debug guard error message

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agozebra: Remove strcpy from fast path
Donald Sharp [Tue, 6 Jun 2017 14:17:06 +0000 (10:17 -0400)]
zebra: Remove strcpy from fast path

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup some join debug messages
Donald Sharp [Mon, 5 Jun 2017 17:44:15 +0000 (13:44 -0400)]
pimd: Cleanup some join debug messages

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix help string
Donald Sharp [Mon, 5 Jun 2017 17:39:08 +0000 (13:39 -0400)]
pimd: Fix help string

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add 'debug pim trace detail' command
Donald Sharp [Mon, 5 Jun 2017 17:15:47 +0000 (13:15 -0400)]
pimd: Add 'debug pim trace detail' command

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Reschedule the correct interface for incoming packets
Donald Sharp [Mon, 5 Jun 2017 16:10:31 +0000 (12:10 -0400)]
pimd: Reschedule the correct interface for incoming packets

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Trust the recvfromto ifindex information
Donald Sharp [Sat, 3 Jun 2017 00:22:39 +0000 (20:22 -0400)]
pimd: Trust the recvfromto ifindex information

The vrf interface is receiving the pim packet
instead of the slave interface that is bound.

Lookup the ifindex ifp pointer from that.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Don't send hello's out vrf interface
Donald Sharp [Fri, 2 Jun 2017 22:23:11 +0000 (18:23 -0400)]
pimd: Don't send hello's out vrf interface

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: We may receive a igmp packet in on unconfiged intf
Donald Sharp [Fri, 2 Jun 2017 21:17:44 +0000 (17:17 -0400)]
pimd: We may receive a igmp packet in on unconfiged intf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix dropped(?) telling of the kernel to recv cmsg data
Donald Sharp [Fri, 2 Jun 2017 17:30:48 +0000 (13:30 -0400)]
pimd: Fix dropped(?) telling of the kernel to recv cmsg data

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix mixup in addition to vrf node
Donald Sharp [Fri, 2 Jun 2017 12:16:13 +0000 (08:16 -0400)]
pimd: Fix mixup in addition to vrf node

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Bind pim kernel fd to appropriate vrf
Donald Sharp [Thu, 1 Jun 2017 22:59:43 +0000 (18:59 -0400)]
pimd: Bind pim kernel fd to appropriate vrf

Bind the pim kernel fd to the appropriate vrf, modify
the callback up into pim with the IGMP report to
retrieve the incoming interface and use that to
lookup the correct interface to use.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Push 'struct pim_instance *' a bit further
Donald Sharp [Fri, 26 May 2017 14:30:31 +0000 (10:30 -0400)]
pimd: Push 'struct pim_instance *' a bit further

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix crash when attempting to use channel_oil->pim before it is assigned
Donald Sharp [Fri, 26 May 2017 13:07:16 +0000 (09:07 -0400)]
pimd: Fix crash when attempting to use channel_oil->pim before it is assigned

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup some basic crashes from mistakes made converting to vrf
Donald Sharp [Wed, 24 May 2017 14:37:23 +0000 (10:37 -0400)]
pimd: Cleanup some basic crashes from mistakes made converting to vrf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix crash in 'show ip multicast vrf..'
Donald Sharp [Wed, 24 May 2017 11:45:18 +0000 (07:45 -0400)]
pimd: Fix crash in 'show ip multicast vrf..'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Convert pim_cmd.c to use correct pim instance
Donald Sharp [Tue, 23 May 2017 12:57:11 +0000 (08:57 -0400)]
pimd: Convert pim_cmd.c to use correct pim instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix instance startup to separate data structure setup from use
Donald Sharp [Tue, 23 May 2017 11:43:47 +0000 (07:43 -0400)]
pimd: Fix instance startup to separate data structure setup from use

Fix the instance startup to allow separation between the data structure
setup for pim instances from actual attempt to use.  More than
likely there will be other issues that need to be fixed but
this gets us 'working' again.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add vrf help strings to some commands
Donald Sharp [Tue, 23 May 2017 11:34:19 +0000 (07:34 -0400)]
pimd: Add vrf help strings to some commands

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Start 'show ip pim [vrf NAME] ...' conversions
Donald Sharp [Tue, 23 May 2017 11:25:30 +0000 (07:25 -0400)]
pimd: Start 'show ip pim [vrf NAME] ...' conversions

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add some vrf knowledge to some debugging statements
Donald Sharp [Tue, 23 May 2017 11:24:52 +0000 (07:24 -0400)]
pimd: Add some vrf knowledge to some debugging statements

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add vrf ability to msdp show commands
Donald Sharp [Mon, 22 May 2017 22:14:43 +0000 (18:14 -0400)]
pimd: Add vrf ability to msdp show commands

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: All CONFIG_NODE commands are now available in VRF_NODE
Donald Sharp [Mon, 22 May 2017 20:32:14 +0000 (16:32 -0400)]
pimd: All CONFIG_NODE commands are now available in VRF_NODE

Note -> Some commands storage needs to be moved into pim_instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Create macro to get appropriate pim instance
Donald Sharp [Mon, 22 May 2017 20:12:41 +0000 (16:12 -0400)]
pimd: Create macro to get appropriate pim instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup the rest of the global config to be vrf aware for spacing
Donald Sharp [Mon, 22 May 2017 19:49:01 +0000 (15:49 -0400)]
pimd: Cleanup the rest of the global config to be vrf aware for spacing

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add code to write spaces or not before 'ip pim rp'
Donald Sharp [Mon, 22 May 2017 19:35:42 +0000 (15:35 -0400)]
pimd: Add code to write spaces or not before 'ip pim rp'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Get show run to display vrf sub mode
Donald Sharp [Mon, 22 May 2017 19:13:13 +0000 (15:13 -0400)]
pimd: Get show run to display vrf sub mode

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix intentional pass of NULL
Donald Sharp [Mon, 22 May 2017 18:52:18 +0000 (14:52 -0400)]
pimd: Fix intentional pass of NULL

pim_msdp_pkt_sa_gen is intentionally passed mp as NULL
in some cases, so we need to pass through the pim instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix startup of pim instance a bit
Donald Sharp [Mon, 22 May 2017 17:02:48 +0000 (13:02 -0400)]
pimd: Fix startup of pim instance a bit

We will need to refine the difference between create and enable
of a pim instance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix crash associated with pim_ifp not actually being created yet
Donald Sharp [Mon, 22 May 2017 17:02:17 +0000 (13:02 -0400)]
pimd: Fix crash associated with pim_ifp not actually being created yet

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup pim_msg.c to use correct pim instance
Donald Sharp [Mon, 22 May 2017 15:18:22 +0000 (11:18 -0400)]
pimd: Cleanup pim_msg.c to use correct pim instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make pim_ssmpingd.c 'struct pim_instance' aware
Donald Sharp [Mon, 22 May 2017 15:09:13 +0000 (11:09 -0400)]
pimd: Make pim_ssmpingd.c 'struct pim_instance' aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make msdp `struct pim_instance *` aware
Donald Sharp [Mon, 22 May 2017 14:35:08 +0000 (10:35 -0400)]
pimd: Make msdp `struct pim_instance *` aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make pim MSDP pim instance aware to some extent
Donald Sharp [Mon, 22 May 2017 13:12:08 +0000 (09:12 -0400)]
pimd: Make pim MSDP pim instance aware to some extent

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Get the default pim code ready to write into vrf's or not
Donald Sharp [Fri, 14 Jul 2017 13:19:13 +0000 (09:19 -0400)]
pimd: Get the default pim code ready to write into vrf's or not

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Allow PIM to start writing vrf information if it has it
Donald Sharp [Mon, 22 May 2017 12:27:24 +0000 (08:27 -0400)]
pimd: Allow PIM to start writing vrf information if it has it

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup pim_pim use of pimg
Donald Sharp [Sun, 21 May 2017 16:18:59 +0000 (12:18 -0400)]
pimd: Cleanup pim_pim use of pimg

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup pimg from pim_igmpv3.c
Donald Sharp [Sun, 21 May 2017 16:16:15 +0000 (12:16 -0400)]
pimd: Cleanup pimg from pim_igmpv3.c

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Lookup loopback based upon vrf correctly.
Donald Sharp [Sun, 21 May 2017 16:12:30 +0000 (12:12 -0400)]
pimd: Lookup loopback based upon vrf correctly.

The vrf loopback ip address should be associated with the
vrf device for vrf's, else use the loopback.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup pim_ssm.c to use 'struct pim_instance *'
Donald Sharp [Sun, 21 May 2017 13:30:02 +0000 (09:30 -0400)]
pimd: Cleanup pim_ssm.c to use 'struct pim_instance *'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Finish up pimg -> pim conversion in pim_rpf.c
Donald Sharp [Sun, 21 May 2017 13:20:37 +0000 (09:20 -0400)]
pimd: Finish up pimg -> pim conversion in pim_rpf.c

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup missed pimg
Donald Sharp [Sun, 21 May 2017 13:18:09 +0000 (09:18 -0400)]
pimd: Cleanup missed pimg

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Finish up pim_mroute.c 'struct pim_instance' awareness
Donald Sharp [Sun, 21 May 2017 13:16:49 +0000 (09:16 -0400)]
pimd: Finish up pim_mroute.c 'struct pim_instance' awareness

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make pim_hello choose correct vrf
Donald Sharp [Sun, 21 May 2017 13:14:39 +0000 (09:14 -0400)]
pimd: Make pim_hello choose correct vrf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup pimg from pim_upstream.c
Donald Sharp [Sun, 21 May 2017 13:10:17 +0000 (09:10 -0400)]
pimd: Cleanup pimg from pim_upstream.c

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make zlookup 'struct pim_instance' aware
Donald Sharp [Sun, 21 May 2017 13:03:07 +0000 (09:03 -0400)]
pimd: Make zlookup 'struct pim_instance' aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make XX_forward_start 'struct pim_instance *' aware
Donald Sharp [Sun, 21 May 2017 12:57:18 +0000 (08:57 -0400)]
pimd: Make XX_forward_start 'struct pim_instance *' aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Convert channel_oil_hash and list into 'struct pim_instance *'
Donald Sharp [Sun, 21 May 2017 12:45:46 +0000 (08:45 -0400)]
pimd: Convert channel_oil_hash and list into 'struct pim_instance *'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Convert vif and ifindex lookups to use 'struct pim_instance *'
Donald Sharp [Sun, 21 May 2017 12:29:56 +0000 (08:29 -0400)]
pimd: Convert vif and ifindex lookups to use 'struct pim_instance *'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Move pim_ifchannel_list and vif array into 'struct pim_instance *'
Donald Sharp [Sat, 20 May 2017 18:17:48 +0000 (14:17 -0400)]
pimd: Move pim_ifchannel_list and vif array into 'struct pim_instance *'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove pimg from pim_iface.c
Donald Sharp [Sat, 20 May 2017 17:57:34 +0000 (13:57 -0400)]
pimd: Remove pimg from pim_iface.c

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove pimg from pim_register.c
Donald Sharp [Sat, 20 May 2017 17:54:31 +0000 (13:54 -0400)]
pimd: Remove pimg from pim_register.c

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup pim_jp_agg_upstream_verification function
Donald Sharp [Sat, 20 May 2017 17:48:26 +0000 (13:48 -0400)]
pimd: Cleanup pim_jp_agg_upstream_verification function

Do not use pimg, figure out which instance we are in and use that.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Convert pim_rp.c to use 'struct pim_instance *'
Donald Sharp [Sat, 20 May 2017 17:43:58 +0000 (13:43 -0400)]
pimd: Convert pim_rp.c to use 'struct pim_instance *'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove pimg from pim_upstream.c
Donald Sharp [Fri, 19 May 2017 23:36:53 +0000 (19:36 -0400)]
pimd: Remove pimg from pim_upstream.c

Move the upstream_list, hash and wheel into 'struct pim_instance'
Remove all pimg to pim in pim_upstream

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: pim_rp.c -> convert pimg to pim
Donald Sharp [Fri, 19 May 2017 20:41:25 +0000 (16:41 -0400)]
pimd: pim_rp.c -> convert pimg to pim

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove pimg from pim_nht.c in totality
Donald Sharp [Fri, 19 May 2017 20:00:00 +0000 (16:00 -0400)]
pimd: Remove pimg from pim_nht.c in totality

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: More refactor for 'struct pim_instance *' for pim_nht.c
Donald Sharp [Fri, 19 May 2017 19:45:51 +0000 (15:45 -0400)]
pimd: More refactor for 'struct pim_instance *' for pim_nht.c

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add 'struct pim_instance' to find_or_track_nexthop
Donald Sharp [Fri, 19 May 2017 19:40:34 +0000 (15:40 -0400)]
pimd: Add 'struct pim_instance' to find_or_track_nexthop

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Make nexthop cache pim instance aware
Donald Sharp [Fri, 19 May 2017 19:34:40 +0000 (15:34 -0400)]
pimd: Make nexthop cache pim instance aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix mistake in uplifting to new thread model
Donald Sharp [Fri, 19 May 2017 15:14:28 +0000 (11:14 -0400)]
pimd: Fix mistake in uplifting to new thread model

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Refactor some functions
Donald Sharp [Fri, 19 May 2017 02:53:50 +0000 (22:53 -0400)]
pimd: Refactor some functions

A bunch of functions had return values that were never
checked for ( and not needed ) and opposite return values
for proper calling function boolean logic.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Have pim_if_find_by_vif_index iterate over all vrf's
Donald Sharp [Fri, 19 May 2017 00:11:24 +0000 (20:11 -0400)]
pimd: Have pim_if_find_by_vif_index iterate over all vrf's

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Refactore qpim_static_route_list into pim->static_routes
Donald Sharp [Thu, 18 May 2017 23:56:10 +0000 (19:56 -0400)]
pimd: Refactore qpim_static_route_list into pim->static_routes

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix c_oil->pim set spot
Donald Sharp [Thu, 18 May 2017 23:26:49 +0000 (19:26 -0400)]
pimd: Fix c_oil->pim set spot

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Refactor code to be in better spots
Donald Sharp [Thu, 18 May 2017 22:51:31 +0000 (18:51 -0400)]
pimd: Refactor code to be in better spots

1) Create pim_instance.[ch] to allow us to handle the instance information there
2) Refactor some pim_rpf_ and some pim_rp commands into appropriate files and
appropriate includes.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Set c_oil->pim for static routes
Donald Sharp [Thu, 18 May 2017 22:00:49 +0000 (18:00 -0400)]
pimd: Set c_oil->pim for static routes

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: If c_oil->pim is set use that pim instance in pim_mroute.c
Donald Sharp [Thu, 18 May 2017 21:58:40 +0000 (17:58 -0400)]
pimd: If c_oil->pim is set use that pim instance in pim_mroute.c

As a transitory mechanism, if c_oil->pim is set, use that particular
pim instance, else use the default pimg.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Add vrf output to 'interface ...' write command
Donald Sharp [Thu, 18 May 2017 21:25:52 +0000 (17:25 -0400)]
pimd: Add vrf output to 'interface ...' write command

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix 'show ip multicast'
Donald Sharp [Thu, 18 May 2017 21:21:18 +0000 (17:21 -0400)]
pimd: Fix 'show ip multicast'

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Modify 'show ip multicast' to be VRF aware
Donald Sharp [Wed, 17 May 2017 19:08:39 +0000 (15:08 -0400)]
pimd: Modify 'show ip multicast' to be VRF aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Create the pimreg device name correctly
Donald Sharp [Fri, 19 May 2017 13:14:06 +0000 (09:14 -0400)]
pimd: Create the pimreg device name correctly

The pimreg device name should be based upon the
tableid we create( as that this is what the kernel does )

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Use actual vrf table_id for pim vrf creation
Donald Sharp [Wed, 17 May 2017 20:01:31 +0000 (16:01 -0400)]
pimd: Use actual vrf table_id for pim vrf creation

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Create the pimreg per vrf
Donald Sharp [Wed, 17 May 2017 20:21:33 +0000 (16:21 -0400)]
pimd: Create the pimreg per vrf

7 years agopimd: Create pim_get_pim_instance
Donald Sharp [Mon, 15 May 2017 15:16:14 +0000 (11:16 -0400)]
pimd: Create pim_get_pim_instance

Create function to get the pim instance from the vrf_id

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: pim_mroute_[add|del]_vif become VRF aware
Donald Sharp [Sun, 14 May 2017 18:33:53 +0000 (14:33 -0400)]
pimd: pim_mroute_[add|del]_vif become VRF aware

Make the pim_mroute_[add|del]_vif functions be vrf aware.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Store the pim instance off of the pim interface
Donald Sharp [Sun, 14 May 2017 18:20:17 +0000 (14:20 -0400)]
pimd: Store the pim instance off of the pim interface

Storing the pim instance off of the pim interface will allow
us to easily keep track of vrf information.  This is because
pretty much is everything is interface based.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimg: Actually properly create the pim socket per vrf
Donald Sharp [Thu, 11 May 2017 13:53:45 +0000 (09:53 -0400)]
pimg: Actually properly create the pim socket per vrf

Create the actual pim socket per vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Start cleanup of documentation
Donald Sharp [Thu, 11 May 2017 01:47:26 +0000 (21:47 -0400)]
pimd: Start cleanup of documentation

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Convert upcalls from kernel to use appropriate pim instance
Donald Sharp [Thu, 11 May 2017 01:44:25 +0000 (21:44 -0400)]
pimd: Convert upcalls from kernel to use appropriate pim instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Move thread read to struct pim_instance
Donald Sharp [Thu, 11 May 2017 01:34:27 +0000 (21:34 -0400)]
pimd: Move thread read to struct pim_instance

When we are handling the thread read/writes for
a pim mroute socket, make it so that it can
be appropriately handled by the 'struct pim_instance'
instead of defaulting to the default VRF's

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Call code to create appropriate MRT_TABLE
Donald Sharp [Thu, 11 May 2017 00:52:20 +0000 (20:52 -0400)]
pimd: Call code to create appropriate MRT_TABLE

When dealing with vrf's we need to create a table within
the linux kernel to handle the vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove unnecessary NULL check
Donald Sharp [Thu, 11 May 2017 00:06:17 +0000 (20:06 -0400)]
pimd: Remove unnecessary NULL check

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Ensure a 0 read fails cleanly
Donald Sharp [Thu, 11 May 2017 00:04:02 +0000 (20:04 -0400)]
pimd: Ensure a 0 read fails cleanly

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Prevent NULL dereference
Donald Sharp [Thu, 11 May 2017 00:00:07 +0000 (20:00 -0400)]
pimd: Prevent NULL dereference

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Error check str2prefix
Donald Sharp [Wed, 10 May 2017 23:54:26 +0000 (19:54 -0400)]
pimd: Error check str2prefix

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix unchecked return value
Donald Sharp [Wed, 10 May 2017 23:48:12 +0000 (19:48 -0400)]
pimd: Fix unchecked return value

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Save pim instance on vrf pointer
Donald Sharp [Wed, 10 May 2017 12:50:16 +0000 (08:50 -0400)]
pimd: Save pim instance on vrf pointer

This commit does these things:

1) Saves the pim instance created on the vrf pointer
2) Moves some initialization to the proper spot.
3) Remove vrf_id from 'struct pim_ssm' it is not needed
4) Removes some checks to prevent non-default vrf's from
being created.
5) When creating the pim instance, save default vrf in pimg to allow backwards compatibility

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Modify pim_mroute_socket_[enable|disable] to be vrf aware
Donald Sharp [Wed, 10 May 2017 12:45:25 +0000 (08:45 -0400)]
pimd: Modify pim_mroute_socket_[enable|disable] to be vrf aware

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Use setsockopt_so_recvbuf instead of doing it ourselves
Donald Sharp [Wed, 10 May 2017 12:36:20 +0000 (08:36 -0400)]
pimd: Use setsockopt_so_recvbuf instead of doing it ourselves

This change allows other non-linux platforms to be a bit
more forgiving if we ask for a very very large size.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>