summaryrefslogtreecommitdiffstats
path: root/ospfd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #7132 from volta-networks/fix_ldp_sync_cmdsDonald Sharp2020-09-221-4/+11
|\ | | | | Fix ldp sync cmds
| * ospfd: updates to the ldp-sync ospf commandslynne2020-09-211-4/+11
| | | | | | | | | | | | Improve the output of the show ip ospf mpls ldp-sync command. Signed-off-by: Lynne Morrison <lynne@voltanet.io>
* | Merge pull request #7122 from ckishimo/type4Russ White2020-09-221-0/+9
|\ \ | | | | | | ospfd: do not generate type 4 LSA from NSSA ABR
| * | ospfd: do not generate type 4 LSA from NSSA ABRckishimo2020-09-171-0/+9
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a topology like R1 -- R2 -- R5, with R2 being NSSA ABR and R5 being ASBR redistributing external routes, the ABR R2 will translate type-7 LSA into type-5 and advertise to the backbone. In the current implementation R2 is also advertising a type-4 LSA when there is no need. RFC 3101: "...NSSA's border routers never originate Type-4 summary-LSAs for the NSSA's AS boundary routers, since Type-7 AS-external-LSAs are never flooded beyond the NSSA's border..." With this PR a type-4 LSA will not be advertised Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
* | Merge pull request #7133 from Niral-Networks/niral_fix_ospf_timerDonald Sharp2020-09-193-0/+35
|\ \ | | | | | | ospfd : Fix for ospf dead interval and hello due.
| * | ospfd : Fix for ospf dead interval and hello due.Kaushik2020-09-193-0/+35
| |/ | | | | | | | | | | | | | | | | 1. Ospf dead-interval will be set as 4 times of hello-interval, incase if it is not set by using "ip ospf dead-interval <dead-val>". 2. On resetting hello-interval using "no ip ospf hello-interval" the dead interval and hello due will be changed accordingly. Signed-off-by: Kaushik <kaushik@niralnetworks.com>
* | Merge pull request #7074 from Niral-Networks/acl_fixDonald Sharp2020-09-191-10/+20
|\ \ | | | | | | ospfd : Resolving conflict in distribute-list update during MaxAge LSA.
| * | ospfd : Resolving conflict in distribute-list update during MaxAge LSA.Kaushik2020-09-121-10/+20
| |/ | | | | | | | | | | | | | | 1. Fix for duplicating calls of ospf_external_lsa_refresh() in ospf_distribute_list_update_timer(). 2. Added the comment and change from PR 6981. Signed-off-by: Kaushik <kaushik@niralnetworks.com>
* | Merge pull request #7086 from ckishimo/flush_type5Donald Sharp2020-09-181-0/+9
|\ \ | | | | | | ospfd: flush type 5 when type 7 is removed
| * | ospfd: flush type 5 when type 7 is removedckishimo2020-09-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the ASBR stops announcing a prefix into the NSSA area, the LSA type 7 is removed from the area. However the ABR is refreshing the type 5 in its LSDB while removing the Type 7 LSA. Routers outside the area do not get an update. With this change the LSA type 5 is flushed from the LSDB and the change is announced to routers outside the area Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
* | | ospfd: fix debug ospf nssa prints wrong infockishimo2020-09-151-8/+9
| |/ |/| | | | | Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
* | Merge pull request #6789 from volta-networks/feat_ldp_igp_syncRenato Westphal2020-09-1112-0/+1331
|\ \ | |/ |/| ldpd: Add support for LDP-IGP Synchronization
| * ospfd: ldp-igp-sync feature: adding ospf supportlynne2020-09-0912-0/+1331
| | | | | | | | | | Signed-off-by: Lynne Morrison <lynne@voltanet.io> Signed-off-by: Karen Schoener <karen@voltanet.io>
* | Merge pull request #6982 from achernavin22/ospf_nssa_after_redistSantosh P K2020-09-073-0/+26
|\ \ | | | | | | ospfd: install Type-7 when NSSA enabled after redistribution
| * | ospfd: install Type-7 when NSSA enabled after redistributionAlexander Chernavin2020-09-033-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If NSSA is enabled before redistribution is configured, Type-7 LSA's are installed. But if NSSA is enabled after redistribution is configured, Type-7 LSAs are missing. With this change, when NSSA is enabled, scan for external LSA's and if they exist, install Type-7. Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
* | | Merge pull request #6987 from Niral-Networks/acl_fixSantosh P K2020-09-031-5/+12
|\ \ \ | | | | | | | | lib, ospf : Fix when redist is performed with route-map using access-list
| * | | ospfd : Fix in lsa refresh when redist is done with route-map using access-list.Kaushik2020-09-021-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Minor change in distribute-list update timer based on lsa flag. Co-authored-by: harios <hari@niralnetworks.com> Signed-off-by: Kaushik <kaushik@niralnetworks.com>
* | | | Merge pull request #7003 from GalaxyGorilla/ospf_ti_lfa_prepOlivier Dugeon2020-09-013-25/+30
|\ \ \ \ | | | | | | | | | | ospfd: use a new vertex list for every SPF run
| * | | | ospfd: use a new vertex list for every SPF runGalaxyGorilla2020-08-273-25/+30
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the context of TI-LFA it is necessary to have multiple representations of SPFs for so called P and Q spaces. Hence it makes sense to start with fresh vertex lists, and only delete them when the SPF calculation is not a 'dry run'. Signed-off-by: GalaxyGorilla <sascha@netdef.org>
* | | | Merge pull request #7005 from Orange-OpenSource/dev_ospf_srDonald Sharp2020-08-273-30/+45
|\ \ \ \ | |/ / / |/| | | ospfd: Coverity corrections
| * | | ospfd: Coverity correctionsOlivier Dugeon2020-08-263-30/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Following PR #6726, Coverity Scan detected some new errors in the OSPF Segment Routing code. This patch corrects them. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* | | | Merge pull request #6726 from Orange-OpenSource/dev_ospf_srRenato Westphal2020-08-2410-268/+1045
|\| | | | | | | | | | | ospfd: Segment Routing Improvement
| * | | OSPFd: Correct Extended Prefix flooding for SROlivier Dugeon2020-08-201-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR #6416 that solves opsf crash when segment routing is restarted, introduce a regression in Extended Prefix flooding: when segment routing prefix is modified or removed, new segment routing prefix is no more flooded. This patch correct this regression. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
| * | | OSPFd: Explicit Null option for Segment-RoutingOlivier Dugeon2020-08-201-64/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new option to `segment-routing prefix` command to set the Explcit Null flag in addition to the No-PHP flag. MPLS LFIB configuration has been also updated to take into account the Explicit Null flag. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
| * | | ospfd: Add Segment Routing Local BlockOlivier Dugeon2020-08-208-166/+689
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC 8665 defines a Segment Routing Local Block for Adjacency SID. This patch provides the possibility to modify the SRLB as well as reserved the block range from the Label Manager. - Introduce new CLI 'segment-routing local-block' - Add local block to SRDB structure - Parse / Serialize SRLB in Router Information LSA - Update OSPF-SR topotest - Update documentation Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
| * | | ospfd: Add Label Manager for Segment RoutingOlivier Dugeon2020-08-204-94/+309
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | Segment Routing Global Block is now using the Label Manager to reserved label range. Label Manager connection uses the synchronous mode and dedicated thread timer is used to establish the connection in safe manner without blocking OSPFd is the Label Manager is not available. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* | | Merge pull request #6912 from GalaxyGorilla/ospf_ti_lfa_prepOlivier Dugeon2020-08-246-391/+540
|\ \ \ | |_|/ |/| | ospfd: preparation for TI-LFA
| * | ospfd: bring back some P2P SPF interface codeGalaxyGorilla2020-08-183-22/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the case of P2P links it is possible to use IP unnumbered which yields a strong dependency to the interface data for nexthop resolution in the SPF calculations. While the SPF code strives to be as independent of non-LSA data as possible there is no way around here: one has to resolve the nexthop for such a special case using the interface data. For this purpose a new flag 'spf_root_node' is introduced to signal that interface data can be used for P2P links. For now this flag is always 'true' since the SPF currently always uses the calculating node as the root node. This will change with the introduction of TI-LFA where other nodes can be root nodes. Signed-off-by: GalaxyGorilla <sascha@netdef.org>
| * | ospfd: add print helper for SPF trees and route tablesGalaxyGorilla2020-08-184-0/+61
| | | | | | | | | | | | Signed-off-by: GalaxyGorilla <sascha@netdef.org>
| * | ospfd: introduce a 'dry run' into SPF codeGalaxyGorilla2020-08-186-143/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in OSPF interface data is used for the nexthop resolution during the SPF algorithm, see RFC2328 16.1.1. However, for certain technologies like TI-LFA it is desirable to be able to calculate SPFs for arbitrary root nodes, not just the calculating node. Since interface data is not available for other nodes it is necessary to remove this dependency and make its usage optional, depending on the intent of changing the RIB with the generated tree (or not). To signal that a SPF run is used without the intent to change the RIB an additional flag `spf_dry_run` is introduced to the ospf_area struct. This flag is currently only used within the pure SPF code but will be extended to the SPF postprocessing later on. Signed-off-by: GalaxyGorilla <sascha@netdef.org>
| * | ospfd: clean some bitrot in SPF codeGalaxyGorilla2020-08-141-289/+304
| |/ | | | | | | | | | | | | | | Just non-functional changes, cosmetics, removal of eye cancer. The intention here is to make the SPF code more approachable. Signed-off-by: GalaxyGorilla <sascha@netdef.org>
* / ospfd: make proactive ARP configurableJakub Urbańczyk2020-08-204-1/+44
|/ | | | | | | | | OSPFD sends ARP proactively to speed up convergence for /32 networks on a p2p connection. It is only an optimization, so it can be disabled. It is enabled by default. Signed-off-by: Jakub Urbańczyk <xthaid@gmail.com>
* ospfd: send ARP requests using zebraJakub Urbańczyk2020-08-123-12/+11
| | | | Signed-off-by: Jakub Urbańczyk <xthaid@gmail.com>
* ospfd: fix processing of SR RI LSAsGalaxyGorilla2020-08-101-21/+14
| | | | | | | | | | | | | | Router Information are contained in opaque LSAs and when such a LSA is received a new SR node for the advertising router is created. However, the RI related data is currently not set when such a SR node already exists. This can happen when e.g. link and prefix information arrive before the RI and therefore an SR node is created. This is now fixed by setting the data everytime the RI is received, independent of the SR node already existing or not. Signed-off-by: GalaxyGorilla <sascha@netdef.org>
* ospfd: Fix Zebra route add message truncation issueAaron LI2020-07-301-1/+1
| | | | | | | | The `INET_ADDRSTRLEN` is 16 and is only enough to format an IPv4 address. So when there is a prefix (`/xx`), the debug output may get truncated. Use `PREFIX2STR_BUFFER` macro instead to fix the issue. Signed-off-by: Aaron LI <aly@aaronly.me>
* Merge pull request #6711 from GalaxyGorilla/bfd_isis_profilesQuentin Young2020-07-211-1/+1
|\ | | | | Add BFD profiles for IS-IS
| * *: add BFD profile support for IS-ISGalaxyGorilla2020-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | BFD profiles can now be used on the interface level like this: interface eth1 ip router isis 1 isis bfd isis bfd profile default Here the 'default' profile needs to be specified as usual in the bfdd configuration. Signed-off-by: GalaxyGorilla <sascha@netdef.org>
* | ospfd: remove redundant line continuationsIgor Ryzhov2020-07-201-3/+3
| | | | | | | | Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | Merge pull request #6701 from deastoe/ospf-area-formatDonald Sharp2020-07-161-0/+2
|\ \ | | | | | | ospf: set display format for range command
| * | ospfd: set display format for range commandGeorge Wilkie2020-07-141-0/+2
| |/ | | | | | | | | | | | | | | | | If you configure an area range in decimal format, the running configuration displays it in dotted format. Call ospf_area_display_format_set() for area range command, as it is done for other variants. Signed-off-by: Duncan Eastoe <duncan.eastoe@att.com>
* | Merge pull request #6731 from opensourcerouting/style-string-prepDonald Sharp2020-07-1617-336/+164
|\ \ | | | | | | *: string coding style
| * | *: un-split strings across linesDavid Lamparter2020-07-1417-336/+164
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove mid-string line breaks, cf. workflow doc: .. [#tool_style_conflicts] For example, lines over 80 characters are allowed for text strings to make it possible to search the code for them: please see `Linux kernel style (breaking long lines and strings) <https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings>`_ and `Issue #1794 <https://github.com/FRRouting/frr/issues/1794>`_. Scripted commit, idempotent to running: ``` python3 tools/stringmangle.py --unwrap `git ls-files | egrep '\.[ch]$'` ``` Signed-off-by: David Lamparter <equinox@diac24.net>
* | Merge pull request #6333 from Spantik/ospf_defaultRafael Zalamena2020-07-157-16/+312
|\ \ | |/ |/| ospf: Default-information originate with routemap
| * ospf: Default-information originate with routemapSantosh P K2020-07-077-16/+312
| | | | | | | | | | | | | | | | | | Default originate with route-map was broken. Routemap was not getting applied for redistribute route but was getting applied default route itself. No default route was originated even when routemap was satisfied. Signed-off-by: Santosh P K <sapk@vmware.com>
* | ospfd: allow interfaces to come up in rare situationDonald Sharp2020-07-081-0/+12
|/ | | | | | | | | | | | | | | | On startup of both zebra and ospfd. If ospfd has not received a valid router-id *but* has received interface data, interfaces will not be turned on in the state machine. When ospf finally receives a valid router-id it would never actually kick the state machine into action for those interfaces it has been configured for. Modify ospf on router id changes, *if* the old router id was INADDR_ANY *and* the interface is operative *and* the oi->state is ISM_Down, give it the old kick in the patooeys Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* *: have daemons call frr_fini() at terminationMark Stapp2020-06-112-2/+4
| | | | | | | | Fix a number of library and daemon issues so that daemons can call frr_fini() during normal termination. Without this, temporary logging files are left behind in /var/tmp/frr/. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* Merge pull request #6460 from rgirada/ospf_external_lsaDonald Sharp2020-06-101-14/+24
|\ | | | | ospfd: External LSA lookup in LSDB failed in a specific scenario
| * ospfd: External LSA lookup in LSDB failed in a specific scenariorgirada2020-05-291-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: OSPF uses an algo to generate unique LSIDs when route updates exists with same adrress and different masklens. It genearates the unique LSIDs by masking its hostbits. Ex : Rt1 : 10.0.0.0/32 - LSID : 10.0.0.0 Rt2 : 10.0.0.0/16 - LSID : 10.0.255.255 Rt3 : 10.0.0.0/24 - LSID : 10.0.0.255 Observed an issue with external LSAs when such routes originated. If the first route (with actual address as LSID) is got deleted, the routes with same addresss(different msaks) are failed to get LSA pointers from LSDB due to current fetching API design. api : ospf_external_info_find_lsa Here , it is allowing to look up the LSA with address specific unique LSID (address with host bits set ex: 10.0.255.255) only if the LSA exists where LSID as actual address of the route (ex: 10.0.0.0 ) which is not expected and cauing for other issues. Fix: Corrected this logic, by looking up the LSA with unique LSID first if it doesn’t exist then It is allowing to look up the LSDB with LSID as address of the route. Signed-off-by: Rajesh Girada <rgirada@vmware.com>
* | Merge pull request #5323 from opensourcerouting/filter-nbDonald Sharp2020-06-101-0/+1
|\ \ | | | | | | lib: migrate FRR filter to northbound
| * | *: add filter northbound supportRafael Zalamena2020-06-051-0/+1
| | | | | | | | | | | | | | | | | | Allow all daemons to work with filter northbound. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>