Commit Graph

796 Commits

Author SHA1 Message Date
Donald Sharp
18d8291fa2 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>
2017-07-24 13:51:34 -04:00
Donald Sharp
ea3d967be0 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>
2017-07-24 13:51:34 -04:00
Donald Sharp
c3bd5a10f1 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>
2017-07-24 13:51:34 -04:00
Donald Sharp
f507c1966e pimg: Actually properly create the pim socket per vrf
Create the actual pim socket per vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
1145d0256e pimd: Start cleanup of documentation
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
405d63578a pimd: Convert upcalls from kernel to use appropriate pim instance
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
8ea5d94477 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>
2017-07-24 13:51:34 -04:00
Donald Sharp
cdbfaec57b 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>
2017-07-24 13:51:34 -04:00
Donald Sharp
a88e628d29 pimd: Remove unnecessary NULL check
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
61e99c94ae pimd: Ensure a 0 read fails cleanly
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
9403d28515 pimd: Prevent NULL dereference
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
2e8345c139 pimd: Error check str2prefix
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
767a7788b9 pimd: Fix unchecked return value
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
e07fe9e658 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>
2017-07-24 13:51:34 -04:00
Donald Sharp
6beed98735 pimd: Modify pim_mroute_socket_[enable|disable] to be vrf aware
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:34 -04:00
Donald Sharp
fe232c1948 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>
2017-07-24 13:51:33 -04:00
Donald Sharp
ff673f4525 pimd: Start conversion of socket and counters for VRF
Convert the socket fd to be owned by the pimg pointer as
well as the counters associated with the fd.  This will
allow us to future proof our code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:33 -04:00
Donald Sharp
0708beb1f4 pimd: Cleanup use of VRF_DEFAULT to pimg->vrf_id
Use the appropriate vrf_id instead of always defaulting
to VRF_DEFAULT

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:33 -04:00
David Lamparter
9d303b37d7 Revert "*: reindent pt. 2"
This reverts commit c14777c6bf.

clang 5 is not widely available enough for people to indent with.  This
is particularly problematic when rebasing/adjusting branches.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-22 14:52:33 +02:00
whitespace / reindent
c14777c6bf
*: reindent pt. 2
w/ clang 5

* reflow comments
* struct members go 1 per line
* binpack algo was adjusted
2017-07-17 15:26:02 -04:00
whitespace / reindent
d62a17aede *: reindent
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'`

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-17 14:04:07 +02:00
David Lamparter
2d8270596a Merge remote-tracking branch 'frr/master' into newline-redux
Lots of conflicts from CMD_WARNING_CONFIG_FAILED...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 13:07:30 +02:00
David Lamparter
625e016d14 *: remove VTYNL, part 6 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:03 +02:00
David Lamparter
61b7d449bd *: remove VTYNL, part 3 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:03 +02:00
David Lamparter
6d3c2ed4ed *: remove VTYNL, part 1 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:02 +02:00
David Lamparter
181039f3d7 *: ditch vty_outln(), part 2 of 2
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:19:58 +02:00
Daniel Walton
f1a05de982 vtysh: return non-zero for configuration failures
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

This allows frr-reload.py (or anything else that scripts via vtysh)
to know if the vtysh command worked or hit an error.
2017-07-13 19:56:08 +00:00
David Lamparter
5c7571d43f *: ditch vty_outln(), part 1 of 2
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-13 20:29:22 +02:00
Quentin Young
7111c1a0cd
*: fix excess docstring
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-05 15:33:00 -04:00
Quentin Young
dfd19ccc3a
*: update hash_create(), hash_create_size()
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-01 19:18:37 -04:00
Donald Sharp
da13682c88 pimd: Fix zclient cleanup on shutdown
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-30 10:32:45 -04:00
Quentin Young
e31b6333f4 *: vty_outln (vty, "") --> vty_out (vty, VTYNL)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-29 17:34:56 +00:00
Quentin Young
1318e7c841 *: s/VTY_NEWLINE/VTYNL/g
Should be able to fit more vty_out onto one line now

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-29 17:34:54 +00:00
Quentin Young
96ade3ed77 *: use vty_outln
Saves 400 lines

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-29 17:31:28 +00:00
Chirag Shah
925574ba66 pimd: move variable declartion outside of switch
To Address ICC (intel CC) warning, moving variables
declaration out of switch statement.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-06-15 12:20:59 -07:00
Donald Sharp
71007eab71 pimd: Cleanup ifp->info setup
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-13 13:28:20 -04:00
Chirag Shah
f6a1dd837b Merge branch 'master' of https://github.com/FRRouting/frr into pim_dev 2017-06-06 09:59:29 -07:00
David Lamparter
326452238a Merge branch 'stable/3.0'
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-06 17:37:41 +02:00
Chirag Shah
72a83d6daa pimd: fix pim bfd crash and bfd neigh down
During running config, all IFPs are traversed, bfd interface config write
need to check for ifp->info null in case pim info is missing and skip the interface.

bfd update for address change need to check if particular pim neighbor's address matches
with bfd address update

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-06-05 18:21:52 -07:00
Renato Westphal
247e6469da Merge pull request #657 from donaldsharp/rompapotamus
Rompapotamus
2017-06-03 18:52:59 -03:00
Donald Sharp
7656e7fc46 pimd: Remove qpim_inaddr_any
In prep for switching over to having PIM understand VRF
remove the qpim_inaddr_any global variable and just
use INADDR_ANY directly.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-02 13:44:37 -04:00
Donald Sharp
bade23d3b0 pimd: Remove some unneeded debugs from pim
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-01 20:11:19 -04:00
David Lamparter
68b2595ec9 Merge pull request #576 from chiragshah6/pim_dev
pimd: pim bfd support
2017-05-30 14:37:08 +02:00
Jafar Al-Gharaibeh
f3d2ef782d Merge pull request #583 from chiragshah6/pim_dev_3_0
pimd: Fix to Transmit S,G Join when transitioning from SGRpt to Join state
2017-05-29 12:37:26 -06:00
Donald Sharp
ad5233c886 pimd: Allow secondary address comparisons to work
The secondary address comparison done to determine if we are
an RP for a specified address was comparing A.B.C.D/32 to A.B.C.D/0
because when we created the rp_info we were not setting the prefixlen

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-23 15:31:37 -04:00
Donald Sharp
4bf6638636 Merge remote-tracking branch 'origin/stable/3.0' 2017-05-19 08:09:42 -04:00
David Lamparter
be1f2d1802 Merge pull request #586 from donaldsharp/msdp_crashalicious
pimd: Fix crash from cli missinterpertation
2017-05-19 13:38:48 +02:00
Donald Sharp
53c438dae2 pimd: Fix crash from cli missinterpertation
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-18 23:06:12 -04:00
Chirag Shah
ee22bbae78 pimd: Fix to Tx S,G Join when SGRpt->Join state
-Upon Rx (*,G) Join w/o SGRpt at RP, trigger (S,G) Join
towards FHR, unset SGRpt flag from channel,
add (*,G) oif to (S,G) entry.
-Add I am not RP check to triger SGRpt on *,G path otherwise,
send S,G Prune on SPT path from RP to FHR upon receving *,G Prune.
-Upon Rx SGRpt receive, remove OIF(downstream where Prune received) from specific S,G.

Testing Done:
pim-smoke
Ran 95 tests in 11790.552s
FAILED (SKIP=10, failures=4)

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-05-18 14:36:25 -07:00
Donald Sharp
ac139b5fb6 Merge remote-tracking branch 'origin/master' into pim_crash_a_boo 2017-05-18 09:45:57 -04:00