Commit Graph

9906 Commits

Author SHA1 Message Date
Renato Westphal
4e7b3288f5
Merge pull request #1625 from qlyoung/fix-peer-group-admin-shutdown-override
bgpd: preserve admin shutdown on peer-group add
2018-01-16 17:40:35 -02:00
Renato Westphal
04057a91b3
Merge pull request #1611 from qlyoung/fix-vtysh-perf
vtysh: optimize printout routine
2018-01-16 17:31:10 -02:00
Russ White
df294c8f2d
Merge pull request #1632 from dwalton76/bgpd-localas-allowasin
BGP "allowas-in" should accept AS paths with "local-as"
2018-01-16 13:48:46 -05:00
Lou Berger
49323fd71e
Merge pull request #1614 from qlyoung/imp-bgpd-pthread-startup-sync
improve bgpd thread startup characteristics
2018-01-16 13:43:27 -05:00
Olivier Dugeon
23b6084b8c
Merge pull request #1642 from chiragshah6/mdev1
ospfd: Speed up show ip ospf [vrf all] route json
2018-01-16 18:02:45 +01:00
Renato Westphal
21f8f3438f
Merge pull request #1638 from LabNConsulting/working/master/vnc2zebra
bgpd: fix handling of nhp_ary when exporting vrf routes to zebra
2018-01-16 10:19:57 -02:00
Renato Westphal
9d57c91faf
Merge pull request #1635 from qlyoung/bgpd-remove-options-directly-connected
bgpd: disallow invalid config at cli layer
2018-01-16 10:11:39 -02:00
Renato Westphal
dab1b55609
Merge pull request #1612 from chiragshah6/mdev
ospf6d: Add protocol stats and show command
2018-01-16 10:08:10 -02:00
Chirag Shah
1406159faa ospfd: Speed up show ip ospf [vrf all] route json
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-01-15 18:00:49 -08:00
Chirag Shah
43855e3d47 ospf6d: Add protocol stats and show command
Add OSPFv3 Protocol incoming/outgoing packets
stats.

r3# show ipv6 ospf6 interface traffic

Interface       HELLO            DB-Desc         LS-Req    LS-Update     LS-Ack
                Rx/Tx            Rx/Tx            Rx/Tx    Rx/Tx         Rx/Tx
--------------------------------------------------------------------------------------------
swp1              3/4              2/2             0/2     8/6           3/2
swp2              3/4              2/2             0/1     7/3           2/0
swp3              0/4              0/0             0/0     0/0           0/0

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-01-15 16:55:24 -08:00
Renato Westphal
3cd878d925
Merge pull request #1623 from donaldsharp/zebra_interface_one_shot
zebra: Add one-shot thread to recheck speed
2018-01-15 10:35:39 -02:00
Lou Berger
b40c50627a bgpd: fix handling of nhp_ary when exporting vrf routes to zebra
Signed-off-by: Lou Berger <lberger@labn.net>
2018-01-14 15:42:06 -05:00
Quentin Young
a174be631a
bgpd: disallow invalid config at cli layer
Remove the ability to attempt to configure a couple of options on
directly connected neighbors that don't make sense for them, as well as
the soft error handling code.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-12 15:00:37 -05:00
Daniel Walton
c4368918e4 BGP "allowas-in" should accept AS paths with "local-as"
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

For issue #1548
2018-01-12 15:31:16 +00:00
Donald Sharp
b782607f7f
Merge pull request #1626 from LabNConsulting/working/master/vnc-config
bgp: don't show vnc response-lifetime config line when set to default…
2018-01-12 08:54:36 -05:00
Philippe Guibert
8eac481260
Merge pull request #1455 from mkanjari/evpn-symmetric-routing
Support for Evpn symmetric routing + EVPN Prefix route
2018-01-12 08:27:37 +01:00
Renato Westphal
48442c0a9a
Merge pull request #1624 from qlyoung/fix-cmd-argc-max-usage
lib, bgpd: fixup use of of CMD_ARGC_MAX
2018-01-12 00:15:09 -02:00
Lou Berger
9b73cd86f5 bgp: don't show vnc response-lifetime config line when set to default value
Signed-off-by: Lou Berger <lberger@labn.net>
2018-01-11 17:09:26 -05:00
Quentin Young
89898ced5f
bgpd: preserve admin shutdown on peer-group add
When a peer configured with administrative shutdown is added to a peer
group, the administrative shutdown status is discarded and the peer will
enter the BGP FSM. This is not what we want. Preserve the flag instead.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-11 17:07:07 -05:00
Mitesh Kanjariya
4781461158
Merge branch 'master' into evpn-symmetric-routing 2018-01-11 09:57:47 -08:00
Mitesh Kanjariya
9bb77a5b3d
Merge branch 'master' into evpn-symmetric-routing 2018-01-11 09:00:23 -08:00
Quentin Young
09f6d019b4
lib, bgpd: fixup use of of CMD_ARGC_MAX
The constant to limit # of allowed cli tokens on any one line was
defined in multiple places, all inconsistent with each other. Fix.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-11 11:31:45 -05:00
Donald Sharp
dc7b3caefb zebra: Add one-shot thread to recheck speed
There are certain interfaces that when brought up and we receive
the netlink notification about it, the speed of the interface is
not set correctly.  This creates a one-shot thread that will
wait 15 seconds and then requery the speed and if it is different
it will renotify the running daemons.

The kernel should notify us on speed changes, unfortunately this
is not done currently via a netlink message as you would think.
As I understand it there is some in-fighting about the proper
way to approach this issue and due to the way the kernel release
cycle works we are a ways off from getting this fixed.  This
is a `hack` to make us work correctly while we wait for the
true answer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-01-11 09:52:34 -05:00
Russ White
c1240044fb
Merge pull request #1609 from dwalton76/ospf-reconfigure-area
ospfd: do not complain if same area is reconfigured
2018-01-10 20:12:19 -05:00
Russ White
51f682b368
Merge pull request #1616 from qlyoung/sharpd-gitignore
sharpd: add .gitignore
2018-01-10 20:10:09 -05:00
Russ White
d29715c48b
Merge pull request #1619 from donaldsharp/bgp_debugging
bgpd: 'summary' to show NoNeg if peer did not negotiate afi/safi
2018-01-10 20:00:51 -05:00
Russ White
3a92d531b8
Merge pull request #1620 from dslicenc/bgpd-vrf-redist
bgpd: fix updating redist bitmask when vrf_id changes
2018-01-10 20:00:14 -05:00
Russ White
2ed7e4c3c3
Merge pull request #1591 from qlyoung/bgpd-ringbuf
bgpd: use ring buffer for network input
2018-01-10 19:59:24 -05:00
Russ White
bb469889e5
Merge pull request #1586 from donaldsharp/1585_fix
bgpd: Fix peer uptime display in milliseconds
2018-01-10 19:58:09 -05:00
Don Slice
48c74f8825 bgpd: fix updating redist bitmask when vrf_id changes
Problem reported that when "systemctl restart networking" was
performed, prefixes previously redistributed into bgp from connected
were deleted from the bgp table.  Determined that we were not correctly
changing the redistribution bitmask when the vrf_id of the vrf was
changed. This patch corrects that behavior.

Manual tests look good. bgp-min and vrf-min completed with no new failures.

Ticket: CM-19369
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-01-10 19:54:21 +00:00
Jafar Al-Gharaibeh
d1df0eedc3
Merge pull request #1608 from donaldsharp/use_source
pimd: Allow use-source to return more subtle error codes
2018-01-10 11:34:22 -06:00
Daniel Walton
95077abf60 bgpd: 'summary' to show NoNeg if peer did not negotiate afi/safi
If we have configured neighbor 1.1.1.1 for an afi/safi but they have not
activated that afi/safi with us then display "NoNeg" in the state column
of the summary output.  This is to make troubleshooting afi/safi
easier.

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2018-01-10 12:15:44 -05:00
Quentin Young
f42ebe8a67
bgpd: move startup sync lock around
Condition needs to be set inside critical section, otherwise i/o thread
can deadlock. Also unlock mutex once finished with it, no need to hold
the lock for the life of the program.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-10 11:20:09 -05:00
Quentin Young
1de8dd93f1
sharpd: add .gitignore
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-10 10:50:57 -05:00
Lou Berger
d215f9a9fa
Merge pull request #1615 from qlyoung/fix-bgpd-atomic-usage
bgpd: use atomic_* ops on _Atomic variables
2018-01-09 17:03:24 -05:00
Quentin Young
0112e9e0b9
bgpd: use atomic_* ops on _Atomic variables
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-09 15:40:48 -05:00
Quentin Young
f09a656d24
bgpd: improve bgp thread startup characteristics
Replace atomic spinlock with condition variable.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-09 14:27:44 -05:00
Quentin Young
0bbb9e72f2
lib: add MTYPE for synchronization primitives
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-09 14:01:31 -05:00
Quentin Young
08ee8e2231
vtysh: optimize printout routine
When printing responses from a client, vtysh searches through every
response it receives twice. Once is to look for the terminating
sequence and the other is to translate \n to \0, which is used with the
line processing callback capability. However:

* There's no need to search all of the output for the terminator, we can
  just check the last 4 bytes.
* In most scenarios we won't have a callback. Therefore we don't need to
  process the output and can just dump it.

Together these optimizations have a significant impact on the total
runtime of talkative CLI commands, such as `sh ip bgp json` which runs
roughly 1000% faster when dumping 1,000,000 routes.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-08 16:55:36 -05:00
Daniel Walton
2b0a905a2e ospfd: do not complain if same area is reconfigured
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

Before
------
cel-redxp-10(config)# router ospf vrf RED
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0.0.0.0
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0.0.0.0
There is already same network statement.
cel-redxp-10(config-router)#

When we see the "There is already same network statement." message
vtysh exits non-zero.  This scenario breaks frr-reload because
the command took and it in the config, it should exit zero here.

After
-----
cel-redxp-10(config)# router ospf vrf RED
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0.0.0.0
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0.0.0.0
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0.0.0.0
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0
cel-redxp-10(config-router)#
cel-redxp-10(config-router)# network 1.1.1.1/32 area 0.0.0.1
There is already same network statement.
cel-redxp-10(config-router)#
2018-01-08 21:16:18 +00:00
Donald Sharp
23f1c68bb2 pimd: Allow use-source to return more subtle error codes
The 'ip pim use-source ...' command returns a hard
success/failure.  Allow it to return a soft-failure
for when we re-enter the same line.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-01-08 16:01:22 -05:00
Jafar Al-Gharaibeh
4060fcc47b
Merge pull request #1599 from chiragshah6/mdev
ospfd: Fix no passive interface command parsing
2018-01-08 11:36:45 -06:00
Jafar Al-Gharaibeh
76724ed3bc
Merge pull request #1588 from donaldsharp/msdp_return
pimd: Add finer grain return codes for configuration
2018-01-08 11:34:36 -06:00
Jafar Al-Gharaibeh
e741a61225
Merge pull request #1590 from chiragshah6/pim_dev
lib: Fix no interface cmd vrf parsing
2018-01-08 11:25:06 -06:00
Chirag Shah
9a0dfa3aa9 ospfd: Fix no passive interface command parsing
Ticket: CM-19365

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-01-08 08:08:36 -08:00
Donald Sharp
3abeaef71e
Merge pull request #1606 from bingen/lm_privs
ldpd: Add privs to label manager
2018-01-08 07:44:02 -05:00
Lou Berger
18823231d8
Merge pull request #1600 from donaldsharp/more_thread_yield
More thread yield
2018-01-06 18:28:46 -05:00
Donald Sharp
88b24dee19 bgpd: Ensure that io thread is running after start
The BGP IO thread must be running before other threads
can start using it.  So at startup check to see
that it running once, instead of before every
function call into.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-01-06 14:09:29 -05:00
Donald Sharp
b2140cb7c8 lib: Add pthread_yield
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-01-06 14:08:30 -05:00
Donald Sharp
bdb6f268f3
Merge pull request #1595 from dwiesner/pmsi-tunnel
bgpd: add PMSI_TUNNEL_ATTRIBUTE to EVPN IMET routes
2018-01-05 14:08:29 -05:00