summaryrefslogtreecommitdiffstats
path: root/pimd/pim_pim.c
Commit message (Collapse)AuthorAgeFilesLines
* *: use an ifindex_t type, defined in lib/if.h, for ifindex valuesPaul Jakma2016-02-261-2/+2
|
* pimd: Limit pim hello log messagesDonald Sharp2015-12-081-7/+11
| | | | | | | | pimd was outputting allot of data surrounding pim hello packets. In addition the debugging was inconsistent and not all turned on via 'debug pim packet hello'. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Notice when we receive a packet type we can't handle yetDonald Sharp2015-10-271-0/+14
| | | | | | | There are PIM packet types that have not been implemented yet. Notice when we get one of those and safely do nothing. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Fix leaked fdDonald Sharp2015-09-241-0/+1
| | | | | | | When caling pim_sock_open if the failure cause happens, however unlikely, don't leak the fd on failure. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Ensure new generation_id is different from previousDonald Sharp2015-08-211-1/+13
| | | | | | | | | | | | | | | | The RFC states that an interfaces generation_id must be changed if it experiences an if down. From 4.3.1: The GenID option contains a randomly generated 32-bit value that is regenerated each time PIM forwarding is started or restarted on the interface, including when the router itself restarts. Since we are only grabbing a new generation_id without comparing it to the previous generation_id, it is possible that random can generate the exact same number. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: Stop DR election on every helloDonald Sharp2015-08-211-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DR election is occurring on every hello received. This is because the hello receive packet returns a 0 for any successfully received packet. PIMD then looked at the 0 returned and did a DR election. Code was inspected for the cases where DR should happen: (A) Interface ip address change (B) DR priority in hello packet changes (C) Received a new neighbor on an interface (D) Neighbor timer pops. Each of these initiate a DR election in the code currently. Testing was initiated on a pim network: tor-11# show ip pim designated-router NonPri: Number of neighbors missing DR Priority hello option Interface Address DR Uptime Elections Changes NonPri br1 20.0.15.1 20.0.15.1 00:08:16 1 1 0 swp1 169.254.0.10 169.254.0.10 00:08:16 2 1 0 swp2 169.254.0.26 169.254.0.26 00:08:16 2 1 0 tor-11# As you can see Elections == 2. This is because pimd performs an election on (A) and (C) above. I see no need to modify (A) to check if we have any knowledge of the interface before this call. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* PIMD: Fix code to use srandom/randomDonald Sharp2015-06-211-3/+2
| | | | | | | | pimd rolled it's own solution to random #'s, that was not terribly random. Rely on the underlying system to generate random #'s for us Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* pimd: cast to sockaddr_in to sockaddrDavid Lamparter2015-04-211-1/+2
| | | | | | | While glibc seems to have something in the system headers that prevents this from triggering a warning, FreeBSD doesn't. Fix the warning. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* pimd: Log ifindex found for an interface when zebra lib reports a new ↵Everton Marques2015-02-041-2/+2
| | | | connected address.
* pimd: Addition of Hello & Join-Prune message debug commandsBalaji.G2015-02-041-1/+1
| | | | | Separate "debug pim packets hello and Join-Prune" added to enable hello and Join-Prune debugs specifically
* pimd: Remove unused pim checksum in favour of quagga's version.Everton Marques2015-02-041-1/+1
|
* Run DR election when hello packet is received.Everton Marques2015-02-041-5/+13
|
* pimd: fix worst char * <> uint8_t * interminglingDavid Lamparter2015-02-041-5/+5
|
* pimd: fix format stringsDavid Lamparter2015-02-041-5/+5
| | | | | | | | | | | | | | | | * pim_igmp.c, * pim_igmpv3.c, * pim_pim.c, * pim_tlv.c: use %zu / %zd for size_t/ssize_t * pim_iface.c, * pim_ifchannel.c, * pim_mroute.c, * pim_neighbor.c, * pim_oil.c, * pim_ssmpingd.c, * pim_upstream.c: %zu for size_t * pim_cmd.c: %zu + a few (long long) casts for int64_t * pim_hello.c: %td for ptrdiff_t
* [pim] Packet dump debuggingEverton Marques2015-02-041-0/+12
|
* [pim] igmpv3: specific query interval set to 1 second (RFC 3376 8.8.)Leonard Herve2015-02-041-1/+1
| | | | | | | [pim] pim messages: encoded source address format with Sparse bit=1 (RFC 4601 4.9.1.) [pim] and Mask Len MUST be equal to 32 [pim] dr election: new traces [pim] fix triggered_hello_delay_msec randomization
* [pim] Log physical interface up/downEverton Marques2015-02-041-3/+9
| | | | | | | | | [pim] Replace strerror with safe_strerror [pim] Fix PIM socket removal from non-PIM interfaces [pim] show ip igmp querier: left-align Querier string [pim] Version up to 0.157 [pim] Recipe to re-sync with Quagga repository [pim] Build vtysh in development script
* [pim] Initial pim 0.155Everton Marques2015-02-041-0/+716