summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* lib: libyang2 add missed conversionChristian Hopps2021-05-188-65/+88
| | | | Signed-off-by: Christian Hopps <chopps@labn.net>
* Merge pull request #8643 from icosahedral/masterSri Mohana Singamsetty2021-05-171-4/+8
|\ | | | | bgpd: modify path selection for EVPN type-5 routes
| * bgpd: scope evpn specific path selection to type-2 routesNeal Shrader2021-05-101-4/+8
| | | | | | | | | | | | | | | | | | | | | | For EVPN routes, there is specific logic in place for path selection surrounding MAC Mobility. For pure type-5 routes, if a route is advertised with a MED, this is ignored since it ultimately falls inside of the EVPN specific path selection logic, and ultimately selects the lower IP address. This change ensures only type-2 routes fall into the EVPN BGP path selection. Signed-off-by: Neal Shrader <neal@digitalocean.com>
* | Merge pull request #8676 from idryzhov/test-gitignoreMark Stapp2021-05-171-0/+1
|\ \ | | | | | | tests: fix missing gitignore entry
| * | tests: fix missing gitignore entryIgor Ryzhov2021-05-171-0/+1
| | | | | | | | | | | | Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | | Merge pull request #8672 from qlyoung/fix-bgp-timer-displayIgor Ryzhov2021-05-151-1/+1
|\ \ \ | |/ / |/| |
| * | bgpd: fix display of timers when only 1 is changedQuentin Young2021-05-141-1/+1
| | | | | | | | | | | | | | | | | | | | | When only one of the keepalive or hold timers is changed from the default, bgp won't print the timers command in the config. Signed-off-by: Quentin Young <qlyoung@nvidia.com>
* | | Merge pull request #8556 from donaldsharp/bgp_pbr_weirdRuss White2021-05-143-54/+38
|\ \ \ | | | | | | | | Bgp flowspec cleanups
| * | | tests: Add pytestmark to the flowspec topotestDonald Sharp2021-05-121-0/+4
| | | | | | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | bgpd: Remove usage of prefix2str and use builtin in bgp_zebra.cDonald Sharp2021-05-121-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert over from prefix2str explicit call and use the builtin %pFX we have now. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | bgpd: reduce cut-n-paste of bgp_zebra_announce_default for installDonald Sharp2021-05-121-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bit of code was cut-n-pasted all over the place: if (!bpa->installed && !bpa->install_in_progress) { bgp_send_pbr_rule_action(bpa, NULL, true); bgp_zebra_announce_default(bgp, nh, bpa->afi, bpa->table_id, true); } Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | bgpd: reduce cut-n-paste code in bgp_pbr.cDonald Sharp2021-05-121-32/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a function bgp_bpr_bpa_remove that is this cut-n-paste code: if (bpa->refcnt == 0) { if (bpa->installed && bpa->table_id != 0) { bgp_send_pbr_rule_action(bpa, NULL, false); bgp_zebra_announce_default(bpa->bgp, &(bpa->nh), AFI_IP, bpa->table_id, false); bpa->installed = false; } } Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | Merge pull request #8144 from LabNConsulting/chopps/ly2Martin Winter2021-05-1471-1267/+1226
|\ \ \ \ | | | | | | | | | | libyang2
| * | | | lib: adapt to version 2 of libyangChristian Hopps2021-05-1371-1267/+1226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compile with v2.0.0 tag of `libyang2` branch of: https://github.com/CESNET/libyang staticd init load time of 10k routes now 6s vs ly1 time of 150s Signed-off-by: Christian Hopps <chopps@labn.net>
* | | | | Merge pull request #8658 from gromit1811/bugfix_8567Martin Winter2021-05-131-8/+10
|\ \ \ \ \ | | | | | | | | | | | | Fix #8567 OSPFv3-26.13 ANVL failure
| * | | | | ospf6d: Send MAXAGE LS update for received old self-originated LSAsMartin Buck2021-05-111-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes OSPFv3-26.13 ANVL RFC conformance bug #8576 by improving the bugfix for #7030 from 4c63a76a. That commit changed handling of received old non-MAXAGE LSAs with a MAXAGE counterpart in the LSDB from "add all LSAs to LSDB and flood non-self-originated ones" to "add & flood only non-self-originated LSAs and ignore self-originated LSAs". The new behaviour is similar but adds sending a MAXAGE LS Update for received self-originated LSAs to remove the old LSAs from the network, resulting in "add & flood non-self-originated LSAs, don't add but send MAXAGE LS Update for self-originated LSAs". The missing MAXAGE LS Update is what OSPFv3-26.13 ANVL complained about. Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
* | | | | | Merge pull request #8649 from ton31337/fix/unify-naming-for-topotests-directoryDonald Sharp2021-05-132086-8/+11
|\ \ \ \ \ \ | | | | | | | | | | | | | | tests: Rename tests/topotests directories to be consistent
| * | | | | | tests: Skip example_topojson_test and example_test from being testedDonatas Abraitis2021-05-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| * | | | | | tools: Ignore mass renaming of topotests for git blameDonatas Abraitis2021-05-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| * | | | | | tests: Unify directory naming for topotestsDonatas Abraitis2021-05-112082-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change every `-` to `_` in directory names. This is to avoid mixing _ and -. Just for consistency and directory sorting properly. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| * | | | | | tools: Fix topotest directory for TravisDonatas Abraitis2021-05-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ospf1-topo1 => ospf1_topo1 Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
| * | | | | | doc: Require topotests directory to be consistent with othersDonatas Abraitis2021-05-111-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just add a requirement to avoid hyphens in directory naming. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | | | | | Merge pull request #8659 from mjstapp/fix_connected_multiDonald Sharp2021-05-132-5/+26
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | lib,zebra: Use a flag to track down status for connected addrs
| * | | | | | | lib,zebra: Use a flag to track down status for connected addrsMark Stapp2021-05-122-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Track 'down' state of connected addresses with a new flag. We may have multiple addresses on an interface that share a prefix; in those cases, we need to determine when the first address is valid, to install a connected route, and similarly detect when the last address goes 'down', to remove the connected route. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | | | | | | | Merge pull request #8663 from donaldsharp/pretty_functionDonatas Abraitis2021-05-1312-59/+46
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Use __func__ instead of __PRETTY_FUNCTION__
| * | | | | | | | pimd: Use __func__ instead of __PRETTY_FUNCTION__Donald Sharp2021-05-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | | | | | | ospfd: Use _func__ instead of __PRETTY_FUNCTION__Donald Sharp2021-05-126-43/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | | | | | | zebra: Use __func__ instead of __PRETTY_FUNCTION__Donald Sharp2021-05-123-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | | | | | | bgpd: use __func__ instead of __PRETTY_FUNCTION__Donald Sharp2021-05-122-5/+5
| | |_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | | | | Merge pull request #8544 from donaldsharp/weird_stuff_in_topoMark Stapp2021-05-121-15/+15
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | tests: Fix pylint issues in test_bgp_recursive_route_ebgp_multi_hop.py
| * | | | | | | tests: Fix pylint issues in test_bgp_recursive_route_ebgp_multi_hop.pyDonald Sharp2021-05-121-15/+15
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tests had format for strings with 2 variables but 1 place to put the data. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | | | Merge pull request #8661 from donaldsharp/more_privsMark Stapp2021-05-122-0/+5
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | lib: Add ZCAP_IPC_LOCK
| * | | | | | lib: Add ZCAP_IPC_LOCKDonald Sharp2021-05-122-0/+5
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll need ZCAP_IPC_LOCK for future work coming down the pike related to dataplane work being done. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | | Merge pull request #8660 from ↵Donatas Abraitis2021-05-121-1/+1
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | qlyoung/fix-bgp-conditional-advertisement-deconfig-removing-unrelated-filters bgpd: fix deconfig of conditional advertisement
| * | | | | bgpd: fix deconfig of conditional advertisementQuentin Young2021-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deconfiguring conditional advertisement resulted in all other policy settings on the peer getting removed due to an excessively large memset. This also created a desync with the northbound config tree, which caused its own set of problems... Fix the memset to just remove the conditional advertisement config. Signed-off-by: Quentin Young <qlyoung@nvidia.com>
* | | | | | Merge pull request #8629 from donaldsharp/parse_rtattrIgor Ryzhov2021-05-123-32/+16
|\ \ \ \ \ \ | | | | | | | | | | | | | | Parse rtattr
| * | | | | | zebra: Consolidate on 1 function netlink_parse_rattr_nestedDonald Sharp2021-05-121-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if_netlink.c created it's on nested parsing #define which is identical to netlink_parse_rtattr_nested. Consolidate on one instead of having this duality. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| * | | | | | zebra: memset the `struct rtattr *tb[SIZE]` in setting functionDonald Sharp2021-05-123-19/+3
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to parse the netlink message into the `struct rtattr *tb[size]` it is assumed that the buffer is memset to 0 before the parsing. As such if you attempt to read a value that was not returned in the message you will not crash when you test for it. The code has places were we memset it and places where we don't. This *will* lead to crashes when the kernel changes. In our parsing routines let's have them memset instead of having to remember to do it pre pass in to the parser. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | | | | Merge pull request #8509 from volta-networks/pathd_ls_clientOlivier Dugeon2021-05-1240-145/+3144
|\ \ \ \ \ \ | | | | | | | | | | | | | | pathd: Traffic Engineering Database support
| * | | | | | pathd. Pathd TED support . Documentation update - [part 4/4]Javier Garcia2021-05-101-19/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - As an example of pathd and igp (ospfd) config: ! igp ospfv2 snippet interface eth0 ip ospf network point-to-point ! router ospf$ mpls-te on mpls-te export ... !pathd snippet segment-routing traffic-eng mpls-te on mpls-te import ospfv2 segment-list sl-1 index 10 nai adjacency 10.1.2.11 10.1.2.1 index 20 nai adjacency 10.1.20.1 10.1.20.2 index 30 nai adjacency 10.2.5.2 10.2.5.5 ! policy color 5 endpoint 10.10.10.5 name five binding-sid 5555 candidate-path preference 600 name cp51 explicit segment-list sl-1 candidate-path preference 500 name cp52-dyn dynamic Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
| * | | | | | pathd. TED support . Topotest - [part 3/4]Javier Garcia2021-05-1026-0/+1384
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
| * | | | | | pathd. TED support . Validation of candidate path - [part 2/4]Javier Garcia2021-05-108-124/+752
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Explicit segment list nai will be resolved to corresponded sid. - Dynamic segment list (from pce) will be validated. - If segment list could not be resolved or validated won't be used. - Now this new config is supported segment-list sl-1 index 10 nai prefix 10.1.2.1/32 iface 1 index 30 nai adjacency 10.2.5.2 10.2.5.5 index 40 nai prefix 10.10.10.5/32 algorithm 0 Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
| * | | | | | pathd. TED support . Client to link State - [part 1/4]Javier Garcia2021-05-107-2/+987
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - pathd will act as a client to for the configured igp. - pathd must be configured to activate and receive data from igp. !pathd config snippet segment-routing traffic-eng mpls-te on mpls-te import ospfv2 Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
* | | | | | | Merge pull request #8622 from volta-networks/fix_ospf6_max_if_addrRuss White2021-05-127-7/+94
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | ospf6d: Limit the number of interface addresses being supported in ospfv3
| * | | | | | ospf6d: document the interface address limits for ospfv3lynne2021-05-111-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Lynne Morrison <lynne@voltanet.io>
| * | | | | | ospf6d: Limit the number of interface addresses being supportedlynne2021-05-116-7/+84
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code had no limits on addresses configured on an interface running ospf6d. The code would crash when more than 100 addresses were added. This change limits the number of interface address to 100 if mtu is set to the default value. If the mtu is set to a jumbo packet size or larger we will support 200 interface addresses. Signed-off-by: Lynne Morrison <lynne@voltanet.io>
* | | | | | Merge pull request #8652 from ton31337/fix/doc_bgp_aliasIgor Ryzhov2021-05-111-18/+32
|\ \ \ \ \ \ | | | | | | | | | | | | | | doc: Move BGP community alias under a separate section
| * | | | | | doc: Move BGP community alias under a separate sectionDonatas Abraitis2021-05-111-18/+32
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are more useful CLI commands comming, thus it's desired to have it's own section. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | | | | | Merge pull request #8589 from idryzhov/bgp-cli-nb-fixesRuss White2021-05-113-59/+49
|\ \ \ \ \ \ | | | | | | | | | | | | | | bgp cli/nb fixes
| * | | | | | bgpd: forbid modification of bgp instance typeIgor Ryzhov2021-04-292-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a user issues the following commands: ``` router bgp 65000 vrf red router bgp 65000 view red ``` bgpd ends up having NB config inconsistent with actual data. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>