Commit Graph

8709 Commits

Author SHA1 Message Date
Donald Sharp
7292d8510f vtysh: Convert 'show logging' to use helper function.
The 'show logging' command was not using the 'show_per_daemon'
function for some reason.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-21 07:21:50 -04:00
Donnie Savage
3c8954852c Merge pull request #1013 from donaldsharp/versions
Changes look fine
2017-08-20 07:55:54 -04:00
Donald Sharp
2bdd6c8707 Merge pull request #1014 from diivious/ext-crash
Fixed issue with eigrp crashing when an external is received
2017-08-20 06:21:14 -04:00
Donnie Savage (dsavage)
c283f389d1 eigrpd: fix crash when external route is received
When an external route is received, eigrpd will crash. For now,
    quietly discard the TLV. Work must be done to handle tlv
    processing and changes needed to FSM so it understands an
    external should not be chooses if an internal exist.

    Signed-off-by: Donnie Savage <diivious@hotmail.com>
2017-08-19 21:45:49 -04:00
Donald Sharp
f7856a4466 isisd: Remove unused version
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 21:23:14 -04:00
Donald Sharp
3b4e6bd594 ospf6d: Remove ospf6d version string
This version string has not been updated in over 11 years.
I cannot see any viable reason that we should use or update
or anything with this value, remove.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 21:21:00 -04:00
Donald Sharp
ca9e3d23f6 eigrpd: Fix code comments
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 21:07:54 -04:00
Donald Sharp
01cbe587b0 eigrpd: Setup eigrp to send FRR version
Send to our peer the major/minor version of FRR that we are
working with.  I decided to use FRR instead of the os major/minor
because the os itself doesn't tell you what version of EIGRP
you are actually using.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 20:56:50 -04:00
Donnie Savage
bd8110e50c Merge pull request #1011 from donaldsharp/tlv_crash
Tlv crash
2017-08-19 20:39:45 -04:00
Donald Sharp
cf2f4daee3 eigrpd: Pass in actual used parameter to header creation
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 14:39:07 -04:00
Donald Sharp
a6e8810ee3 eigrpd: Allow eigrp_update_send to recognize a full packet
Modify code to allow the eigrp_update_send function to
recognize that we have a full packet and to do the right
thing from there.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 14:23:15 -04:00
Donald Sharp
a75c1cc191 eigrpd: Fix memory leak in eigrp_update
When we send packets to a nbr, make a duplicate copy
as that each packet sent is assumed to be a complete
to itself.

Also clean up indentation in loop over figuring out
what to send.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-19 14:16:16 -04:00
Donnie Savage
de4ddd13aa Merge pull request #1010 from donaldsharp/reliable_eigrp
Reliable eigrp
2017-08-19 06:33:29 -04:00
Donald Sharp
17a2f658da eigrpd: When generating packets only put one on send queue at a time
When we generate update packets to go to our neighbor, Only
put one packet at a time on the send queue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-18 15:00:40 -04:00
Donald Sharp
1a0770e387 eigrpd: Only put 1 packet at a time on send queue
When we have received an ack for the last reliable
packet we must only put 1 packet onto the send
queue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-18 15:00:40 -04:00
Donald Sharp
ba11736761 tools: Always ensure that the daemon exists at startup
When starting up FRR with tools/frr, ensure that the
daemon specified that we are about to start actually exists.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-18 10:57:07 -04:00
Donald Sharp
510afcd647 bgpd: Fix bgp clear help string
The bgp clear help string was misordered.

New output:
robot.cumulusnetworks.com# clear bgp
  (1-4294967295)  Clear peers with the AS number
  *               Clear all peers
  A.B.C.D         BGP neighbor address to clear
  WORD            BGP neighbor on interface to clear
  X:X::X:X        BGP IPv6 neighbor to clear
  external        Clear all external peers
  ipv4            Address Family
  ipv6            Address Family
  peer-group      Clear all members of peer-group
  prefix          Clear bestpath and re-advertise
  view            BGP view
  vrf             BGP VRF

Fixes: #1005
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-18 09:45:16 -04:00
Jafar Al-Gharaibeh
f887261b92 Merge pull request #1003 from donaldsharp/pim_mem_leak
pimd: Fix memory leak on failure case
2017-08-18 00:16:38 -05:00
Jafar Al-Gharaibeh
fd178a6a04 Merge pull request #1001 from dwalton76/pimd-CMD-WARNING
pimd: "No Path to RP address specified" should exit 0
2017-08-18 00:15:37 -05:00
Jafar Al-Gharaibeh
3b09001eb1 Merge pull request #1000 from donaldsharp/eigrp_packet_stuff
Eigrp packet stuff
2017-08-18 00:13:58 -05:00
Donald Sharp
29e48d5859 eigrpd: and More Debugging Cleanup
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 19:40:44 -04:00
Donald Sharp
0f6c16fbe6 eigrpd: Cleanup some more debugs
Properly place a few more debugs.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 19:20:45 -04:00
Donald Sharp
f90f65a242 eigrpd: Cleanup FIFO
The FIFO really was a LIFO for some reason.

Push new packets onto the top, always pull from the bottom.

This allows eigrp neighbors to come up.  Topotests
eigrp-topo1( in a topotest PR ) now form neighbors
with itself. With this commit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 19:16:53 -04:00
Donald Sharp
a5d4c69d6a pimd: Fix memory leak on failure case
When we fail to create upstream we were not properly
cleaning up all memory.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 13:05:08 -04:00
Jorge Boncompte
19aad877b7 lib: optimize IPV4_ADDR_[SAME|COPY]()
Change all callers of IPV4_ADDR_SAME() to pass a pointer to a struct in_addr

Use assignment and comparison instead of memcpy() and memcmp(). Avoids function
calls. Faster.

Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
2017-08-17 17:58:35 +02:00
Jorge Boncompte
aac2483887 bgpd: bgp process queue optimization
There are several code paths that dump nodes to the queue for route
processing in a loop. This patch tries to reduce memory allocations/freeing
(work item, list node) and thread scheduling overhead by batching the nodes
in a simple queue list.

In the past when route processing wasn't event driven (bgp_scan()), this used
to have a noticeable impact in table loading, convergence time and memory heap
fragmentation due to reduced alloc's/free's.

Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
2017-08-17 17:58:35 +02:00
Jorge Boncompte
92375c917e bgpd: inline bgp_lock()/bgp_unlock()
Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
2017-08-17 17:47:07 +02:00
Jorge Boncompte
f104f6c1a6 lib: cleanup the work queue implementation
Convert the work queue implementation to not use the generic linked list
to mantain the item list and use instead a simple queue from queue.h that
does not allocate memory for each node.

Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
2017-08-17 17:47:07 +02:00
Jorge Boncompte
cd85bc2e0b lib: standardize use of queue.h
The simple queue implementation in OpenBSD and FreeBSD are called diferently,
standardize in the use of the FreeBSD version and map the missing names only
if we compile on OpenBSD.

Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
2017-08-17 17:47:05 +02:00
Jorge Boncompte
01dccc0b19 lib: inline route_node_lock()/route_node_unlock()
Avoid function calls.

Signed-off-by: Jorge Boncompte <jbonor@gmail.com>
2017-08-17 17:46:22 +02:00
Daniel Walton
c6e7b95248 pimd: "No Path to RP address specified" should exit 0
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

This could happen if routing isn't up yet but the command did take so we
should exit 0 here.  Testing:

root@cel-redxp-10[frr-dwalton76]# vtysh -c 'conf t' -c' ip pim rp
11.11.11.11'
% No Path to RP address specified: 11.11.11.11
root@cel-redxp-10[frr-dwalton76]# echo $?
0
root@cel-redxp-10[frr-dwalton76]#
2017-08-17 15:04:25 +00:00
Donald Sharp
7fe9e03556 Merge pull request #999 from fabled/master
nhrpd: use hop count 1 for registration requests
2017-08-17 10:48:28 -04:00
Donald Sharp
9c273c6d28 eigrpd: Rework ack sent to neighbor
EIGRP schedules and builds packets to send in the future.
Before those packets are being sent, we are receiving
update information from our peer.  At that time we
need to reach into the built packet and reset the
outgoing ack to a better value.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 10:02:54 -04:00
Timo Teräs
ef9329ac02 nhrpd: use hop count 1 for registration requests
Cisco has a bug that it rejects packets with zero hop count.
Use one to avoid potential forwarding of registration requests.

Fixes #951

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
2017-08-17 16:57:09 +03:00
Donald Sharp
907b430346 eigrpd: Store nbr in packet data
Store the neighbor information( if available ) in the packet
data that we are sending.  This will allow in a future commit
the ability to fixup the outgoing ack we are sending.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 09:53:51 -04:00
Donald Sharp
3bbde7327a eigrpd: Remove extra newline in debug
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-17 09:48:21 -04:00
David Lamparter
f66bd13f3c Merge pull request #994 from dwalton76/ospfd-show-neighbor
ospfd: "show ip ospf neighbor" options not passed
2017-08-17 12:37:25 +02:00
Daniel Walton
596074af62 vtysh: vtysh -f FOO should exit non-zero if it hits an error
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

Today if we hit an error while apply the contents of file FOO that error
does not bubble up to a non-zero exit.
2017-08-16 20:22:59 +00:00
Daniel Walton
b4e84315e4 ospfd: "show ip ospf neighbor" options not passed
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-08-16 18:40:12 +00:00
David Lamparter
74218b297f Merge pull request #989 from qlyoung/if-area-df
ospfd: remember area-id format for ifaces
2017-08-16 19:28:09 +02:00
David Lamparter
c9974c7995 Merge pull request #984 from donaldsharp/debugging
Some Small Pim Issues
2017-08-16 19:18:31 +02:00
Russ White
863f4bf143 Merge pull request #990 from donaldsharp/eigrp_cleanup
Eigrp cleanup
2017-08-16 13:16:54 -04:00
David Lamparter
1208e7bca2 Merge pull request #979 from donaldsharp/ifchannel_fix
pimd: Ensure cleanup of S,G on ifchannel failure to create
2017-08-16 19:16:46 +02:00
David Lamparter
ad5c17afcd Merge pull request #972 from chiragshah6/mdev
Pim Bfd related changes
2017-08-16 19:14:08 +02:00
Quentin Young
5ed0add5e4
ospfd: remember area-id format for ifaces
Display dotted quad or decimal back in the config depending on what the
user enters.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-08-16 11:18:11 -04:00
Martin Winter
fb13970d31 Merge pull request #985 from chiragshah6/mdev2
ospfd: Fix ospfd crash in free_nexthop
2017-08-15 20:30:23 -07:00
Donald Sharp
9a8d52a495 eigrpd: Cleanup eigrp_get_fsm_event
Make this function a bit more legible

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 22:38:17 -04:00
Donald Sharp
748a2ba408 eigrpd: Make eigrp_get_fsm_event use metric changed
Refactor eigrp_get_fsm_event a tiny bit to let all
the states get the new metric.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 22:38:17 -04:00
Donald Sharp
9294886309 eigrpd: cleanup eigrp_topology_update_distance
Cleanup eigrp_topology_update_distance to
return an enum of whether or not the metric
has changed or not.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 22:38:17 -04:00
Donald Sharp
47bf9e213a pimd: Add 'show ip msdp vrf all sa ...' command
Allow the ability to iterate over all vrfs.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 16:37:13 -04:00