Commit Graph

14534 Commits

Author SHA1 Message Date
Donald Sharp
4a58288894 staticd: Do not ready prefix for printing till it's decoded
The static daemon is setting up the prefix for printing
before it is decoded when we get notified about our
route.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-28 21:06:09 -05:00
Philippe Guibert
03a38493f8 lib, rip, ripng, babel, eigrp: add ctx pointer to distribute api
a distribute_ctx context pointer is returned after initialisation to the
calling daemon. this context pointer will be further used to do
discussion with distribute service. Today, there is no specific problem
with old api, since the pointer is the same in all the memory process.
but the pointer will be different if we have multiple instances. Right
now, this is not the case, but if that happens, that work will be used
for that.
distribute-list initialisation is split in two. the vty initialisation
is done at global level, while the context initialisation is done for
each routing daemon instance.
babel daemon is being equipped with a routing returning the main babel
instance.
also, a delete routine is available when the daemon routing instance is
suppressed.
a list of contexts is used inside distribute_list. This will permit
distribute_list utility to handle in the same daemon to handle more than
one context. This will be very useful in the vrf context.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-12-28 18:18:40 +01:00
Philippe Guibert
2569910bb6 lib: enforce vrf_name_to_id by returning default_vrf when name is null
in order to enforce the vrf_id to return, from a vrf name, a check is
done on the vrf_name_to_id callback.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-12-28 18:18:40 +01:00
Philippe Guibert
0378bcaad6 bgpd: flowspec redirect IP info is retrieved into nh tracking
redirect IP nh of flowspec entry is retrieved so that the nexthop
IP information is injected into the nexthop tracking, and is associated
to the bgp_path structure. This permits validating or unvalidating the
bgp_path for injection in zebra or not.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-12-28 18:10:26 +01:00
Quentin Young
71c4e0c59b
Merge pull request #3535 from kareiva/master
Fix typos in BGPd sample configuration file
2018-12-27 16:25:26 -05:00
Simonas
196f242fa0
Fix typos in BGPd sample configuration file 2018-12-27 09:13:55 +02:00
Rafael Zalamena
d0c893802a zebra: remove duplicated code
Remove duplicated netlink error message length check.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-12-26 17:06:35 -02:00
Donald Sharp
a60df89e65
Merge pull request #3527 from opensourcerouting/ldpd-bsd-fixes
ldpd: *BSD fixes
2018-12-21 20:20:48 -05:00
Rafael Zalamena
f43be00b6a ldpd: fix startup on OpenBSD
We must open the PF_KEY socket before dropping privileges, otherwise the
socket creation will fail with permission problems.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-12-21 21:00:53 -02:00
Rafael Zalamena
7f7651eba7 zebra: fix compilation on OpenBSD
OpenBSD doesn't define RTM_LOCK anymore:
https://marc.info/?l=openbsd-tech&m=153018811429193&w=2

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-12-21 19:33:58 -02:00
Rafael Zalamena
1ef00571f8 ldpd: add support for FreeBSD IP_BINDANY
Add yet another way to setsockopt a socket to listen to a foreign
address.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-12-21 19:33:48 -02:00
Rafael Zalamena
f6913418f3
Merge pull request #3499 from donaldsharp/topotest_inheritance
Topotest inheritance
2018-12-20 15:52:03 -02:00
Renato Westphal
96def26e5a
Merge pull request #3327 from adeg/feature/bgp-lu-auto-labels
bgpd, zebra: auto assign labels to regular labeled-unicast prefixes
2018-12-20 13:59:28 -02:00
Anton Degtyarev
57592a53b5 bgpd, zebra: auto assign labels from label pool to regular prefixes in BGP labeled unicast
This commit is the last missing piece to complete BGP LU support in bgpd. To this moment, bgpd (and zebra) supported auto label assignment only for prefixes leaked from VRFs to vpn and for MPLS SR prefixes. This adds auto label assignment to other routes types in bgpd. The following enhancements have been made:
* bgp_route.c:bgp_process_main_one() now sets implicit-null local_label to all local, aggregate and redistributed routes.
* bgp_route.c:bgp_process_main_one() now will request a label from the label pool for any prefix that loses the label for some reason (for example, when the static label assignment config is removed)
* bgp_label.c:bgp_reg_dereg_for_label() now requests labels from label pool for routes which have no associated label index
* zebra_mpls.c:zebra_mpls_fec_register() now expects both label and label_index from the calling function, one of which must be set to MPLS_INVALID_LABEL or MPLS_INVALID_LABEL_INDEX, based on this it will decide how to register the provided FEC.

Signed-off-by: Anton Degtyarev <anton@cumulusnetworks.com>
2018-12-20 15:28:52 +03:00
Renato Westphal
bbfaa7054a
Merge pull request #3516 from qlyoung/doc-ip-nht-resolve-via-default
doc: add `ip nht resolve-via-default`
2018-12-20 10:05:01 -02:00
Renato Westphal
fa039939e7
Merge pull request #3517 from qlyoung/doc-exclude-snmptrap
doc: exclude snmptrap.rst from build
2018-12-20 10:04:13 -02:00
Donald Sharp
480e123687
Merge pull request #3515 from mjstapp/fix_rib_wq_timer
zebra: reduce rib workqueue retry timeout
2018-12-19 15:33:56 -05:00
Quentin Young
be11dfbf87 doc: exclude snmptrap.rst from build
This doc is .. include::'d in snmp.rst and needs to be ignored as part
of the main toctree build. This patch squashes a Sphinx build warning.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-12-19 18:10:41 +00:00
Quentin Young
43b8e264c8 doc: add ip nht resolve-via-default
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-12-19 17:55:05 +00:00
Quentin Young
f30f54a79b
Merge pull request #3513 from mjstapp/fix_dplane_q_include
zebra: include lib/queue.h in zebra dataplane
2018-12-19 12:11:24 -05:00
Russ White
69aebba51a
Merge pull request #3492 from donaldsharp/no_set_community
bgpd: Allow 'no set community`
2018-12-19 11:57:01 -05:00
Mark Stapp
7e1d580ad7 zebra: reduce rib workqueue retry timeout
Reduce the zebra rib workqueue retry timeout, used when the queue
towards the zebra dataplane has reached its limit. Lowering the
value was reported to improve update throughput on some platforms.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-12-19 11:51:41 -05:00
Russ White
c52e2ecf95
Merge pull request #3502 from donaldsharp/socket_to_me_baby
BSD route socket refactoring/cleanup
2018-12-19 11:48:42 -05:00
Donald Sharp
c9277ebb41 zebra: Fixup spaces/tabs issue found by CI in rt_socket.c
Cleanup the space/tabs issues found by CI in rt_socket.c so
it stops complaining at us.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 09:42:45 -05:00
Donald Sharp
c2519893e0 zebra: Make label processing guaranteed to be unique
The label processing for socket installs was not ensuring
that each nexthop would not accidently use the last
nexthops value.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 09:42:45 -05:00
Mark Stapp
214fc2bd3a zebra: include lib/queue.h in zebra dataplane
Replace direct use of one of the platform-specific xxx-queue.h
headers - use the wrapper queue.h instead.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-12-19 09:03:33 -05:00
Donald Sharp
4dd39a0ec4 zebra: Convert gate in kernel_rtm to a bool
Convert the gate test int to a bool as that we use it this way.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 08:58:33 -05:00
Donald Sharp
18d10d8854 zebra: The mask and sin_mask are a bit redundant for kernel_rtm
The test we were using to ensure that a mask was sent in
is a bit redundant, let's just always send it in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 08:58:33 -05:00
Donald Sharp
86afd5292f zebra: Refactor kernel_rtm to be a bit smarter about how it handles options
The ADD/DELETE messages are the only ones we support, so leave
early from the function, in other words don't check it every
nexthop loop.

Additionally nexthops only care about non recursive active flags.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 08:58:33 -05:00
Donald Sharp
08ea27d112 zebra: Refactor kernel_socket kernel_rtm_ipv4 and ipv6 functions
Refactor both v4 and v6 functions down to 1 install function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 08:58:33 -05:00
Donald Sharp
9ba0e5706c zebra: Move sin6_masklen to earlier in the file
I'm going to rearrage the kernel_rtm_ipv4 and v6 functions
so the sin6_masklen needs to be moved a bit earlier.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 08:58:33 -05:00
Donald Sharp
ca2c70bde0 zebra: Convert socket interface to use union sockunion
The write function converted to v4 and v6 functions to a union sockunion
via casting.  Just use `union sockunion` instead.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 08:58:33 -05:00
Donald Sharp
76a20aa982 bgpd: Allow shortened 'no set large-community' and 'no set large-comm-list'
These two commands previously required the whole original command but
we should allow the user to shorten out this since the data at the
end is not required to figure out what to delete.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 07:30:01 -05:00
Donald Sharp
4db5ee8ea3 bgpd: Allow no set extcommunity [rt|soo]
The ability to shorten the extended community commands for routemaps
upon removal should be allowed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 07:23:41 -05:00
Donald Sharp
2929de9ecd bgpd: Allow 'no set community`
Allow user to enter `no set community` to remove the community
set for the route-map.

Fixes: #3491
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-19 07:09:44 -05:00
Sri Mohana Singamsetty
f944fe9b00
Merge pull request #3448 from chiragshah6/evpn_dev1
bgpd: l3vni add-del handle non-defualt route-target
2018-12-18 18:12:18 -08:00
Donald Sharp
38a5232499
Merge pull request #3507 from opensourcerouting/master-init-fixes
[master] minor tools/ fixes
2018-12-18 19:21:39 -05:00
David Lamparter
5704786344
Merge pull request #3503 from qlyoung/fix-bgpd-show-ip-neigh-json-double-free
bgpd: fix json double free when showing neighbors
2018-12-18 18:01:48 +01:00
Donald Sharp
01b4cb3ed6 zebra: Allow ns delete to happen after under/over flow checks
Allow the ns deletion event to happen *after* the data validity
checks.

Please note this probably still leaves a weird hole if we receive
multiple namespace events ( as the for loop implies ).  We will
stop handling anything after a namespace deletion notification.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-12-18 17:57:53 +01:00
David Lamparter
8c7de11843
Merge pull request #3485 from dslicenc/frr-reload-delete-vrf
tools: stop frr-reload.py from trying to delete the vrf context
2018-12-18 17:54:28 +01:00
David Lamparter
130f87b90e
Merge pull request #3422 from pguibert6WIND/license_gplv3_rule
doc: add a community rule to permit usage of GPLv3
2018-12-18 17:42:27 +01:00
Donald Sharp
19cf7e3332
Merge pull request #3337 from manuhalo/isis_nb
IS-IS northbound conversion - configuration and notifications only
2018-12-18 11:33:40 -05:00
Emanuele Di Pascale
8a5b2e100e isisd: suppress maybe uninitialized warnings
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:25:57 +01:00
Emanuele Di Pascale
9fe69cbb5a isisd, yang: set default network-type to broadcast
isisd has both a circ_type and a circ_type_config variable to track
the network tpye of an interface. The former has no default, but the
latter defaults to broadcast. Adding that default makes sure that the
yang leaf won't be deleted, which is something that would not make
sense from an isisd perspective. We will need to add an operational
state leaf to match the potential difference between the configured
network type and the actual network type, since the latter might be
different based on the interface flags received from zebra.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:25:57 +01:00
Emanuele Di Pascale
f34ab52dd0 isisd: formatting fixes in isis_cli.c
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:25:57 +01:00
Emanuele Di Pascale
4ecc4b46ac isisd: fix 'no router isis' on candidate config
if we are using the transactional CLI, we might be trying to
delete an area that has not been actually created in isisd.
So rather than relying on isis_area_lookup, check the candidate
config for the presence of the corresponding area instance.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:25:57 +01:00
Emanuele Di Pascale
cc50ddb273 isisd: retrieve default values from the yang model
also fix a minor issue with isis_config_write where we were
not incrementing the write variable, which is used to append
a new line at the end of the vty string

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:25:57 +01:00
Emanuele Di Pascale
96f2c00903 lib: add frr-isisd to the native models
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:25:57 +01:00
Emanuele Di Pascale
98cbd0f2e0 isisd: implement sighup handler
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:24:46 +01:00
Emanuele Di Pascale
5f1e5e3fc6 isisd, yang: change type empty leafs to booleans
As requested by the reviewers. Additionally, added a check when
setting a circuit on an interface to see if it is a loopback,
and in that case, set it to passive.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2018-12-18 15:24:46 +01:00