summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_asbr.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ospf6d: handle redistributed routes without nexthop addressesRenato Westphal2023-03-021-1/+1
| | | | | | | | | | | Do not assume that all redistributed routes have a nexthop address, otherwise blackhole nexthops can be misinterpreted as IPv6 addresses, leading to inconsistencies. Also, change the signature of a few functions to allow const nexthop addresses, such that in6addr_any can be used without type casts. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* *: auto-convert to SPDX License IDsDavid Lamparter2023-02-091-16/+1
| | | | | | Done with a combination of regex'ing and banging my head against a wall. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* ospf6d: Fixing memory leak in ospf6_summary_add_aggr_route_and_blackhole.Manoj Naragund2022-12-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem Statement: ================= Memory leak in ospf6d. 2022-11-15 02:15:11,569 - ERROR: ==30108== 440 (280 direct, 160 indirect) bytes in 1 blocks are definitely lost in loss record 15 of 17 2022-11-15 02:15:11,569 - ERROR: ==30108== at 0x4C31FAC: calloc (vg_replace_malloc.c:762) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x4E8A1BF: qcalloc (memory.c:111) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x14337A: ospf6_route_create (ospf6_route.c:462) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x11EE27: ospf6_summary_add_aggr_route_and_blackhole (ospf6_asbr.c:2779) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x11EEDA: ospf6_originate_new_aggr_lsa (ospf6_asbr.c:2816) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x120053: ospf6_handle_external_lsa_origination (ospf6_asbr.c:3659) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x12041E: ospf6_asbr_redistribute_add (ospf6_asbr.c:1547) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x14F3CC: ospf6_zebra_read_route (ospf6_zebra.c:253) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x4EC9B73: zclient_read (zclient.c:2727) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x4EB741B: thread_call (thread.c:1692) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x4E85B17: frr_run (libfrr.c:1068) 2022-11-15 02:15:11,569 - ERROR: ==30108== by 0x119585: main (ospf6_main.c:228) 2022-11-15 02:15:11,569 - ERROR: ==30108== RCA: ==== blackhole route was not freed before adding a new one. Fix: ==== Added a check before allocating new route, to free the old one. Also, added ospf6_asbr_summary_config_delete in ospf6_delet before freeing the aggregate route. Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
* ospf6d: adjust type of "aggr_delay_interval"anlan_cs2022-01-291-2/+1
| | | | | | | Adjust type of "aggr_delay_interval": Just replace `unsigned int` with `uint16_t` for range is (50..1800). Signed-off-by: anlan_cs <vic.lan@pica8.com>
* ospf6d: install summary route NULL0 as nexthopMobashshera Rasool2021-07-211-3/+4
| | | | | | | | This is a requirement for avoiding sending traffic somewhere it was not supposed to go: install summary route to local RIB to send traffic to Null0. Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
* ospf6d: ASBR summarisation feature changes for NSSA areaMobashshera Rasool2021-07-211-11/+13
| | | | | | | | 1. ASBR summarisation for Type-7 LSAs are done here. 2. Fixed Code warnings Signed-off-by: Mobashshera Rasool<mrasool@vmware.com>
* ospf6d: ASBR Summarisation feature implementationMobashshera Rasool2021-07-211-1/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | Feature Implementation. ======================== This feature will help in advertising the External LSAs with aggregation. The commands allow us to tune the advertisement with different parameters as mentioned in the CLI List below. It can also help in case we do not want to advertise any prefix with the no-advertise option. New CLIs added: =============== summary-address X:X::X:X/M$prefix [tag (1-4294967295)] [{metric (0-16777215) | metric-type (1-2)}] no summary-address X:X::X:X/M$prefix [tag (1-4294967295)] [{metric (0-16777215) | metric-type (1-2)}] summary-address X:X::X:X/M$prefix no-advertise no summary-address X:X::X:X/M$prefix no-advertise aggregation timer (5-1800) no aggregation timer (5-1800) show ipv6 ospf6 summary-address [detail$detail] [json] debug ospf6 lsa aggregation CAT RUN: ======== QE to add test scripts Signed-Off-by: Mobashshera Rasool <mrassol@vmware.com>
* ospf6d: route-map config changed, not getting applied on all types of routesMobashshera Rasool2021-06-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem Statement: ================== when route-map config is changed from permit to deny, it is not getting applied to both connected and static and vice versa RCA: ================== When route-map changes from permit to deny or vice versa, a notification is sent to ospf6 daemon via ospf6_asbr_routemap_update. In this function, a thread is scheduled after 5 seconds to apply the route-map changes. In this thread (ospf6_asbr_routemap_update_timer), only the first type is passed as argument and only the first type i.e "connected" is passed and hence in callback only on this type of route route-map gets applied. Fix: ==== Need to loop through all the route-types in the call back and process the route-map changes. Added a flag to mark which all route-types needs to be processed. Test Executed: =============== 1. Change route-map from permit to deny. 2. Change route-map from deny to permit. 3. Add new route and checked. 4. Verified summarised routes. Risk: ============ Low Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
* ospf6d: "clear ipv6 ospf6 process" commandYash Ranjan2021-06-281-0/+1
| | | | | | | | | | | | | Adding the "clear ipv6 ospf6 command" . It resets the ospfv3 datastructures and clears the database as well as route tables. It resets the neighborship by restarting the interface state machine. If the user wants to change the router-id, this command updates the router-id to the latest static router-id and starts the neighbor formation with the new router-id. Signed-off-by: Yash Ranjan <ranjany@vmware.com>
* ospf6d: Support for nssa in ospfv3Kaushik2021-06-041-0/+6
| | | | | | | | | | | | | The following is implemented. 1. Configuring area as NSSA. 2. Generating Type 7 LSA. 3. Conversion of Type 7 to Type 5 ( Default Behavior). 4. NSSA ABR selection. Reviewed-by: Rafael Zalamena <rzalamena@opensourcerouting.org> Co-authored-by: Kaushik <kaushiknath.null@gmail.com> Co-authored-by: Soman K.S <somanks@gmail.com> Signed-off-by: Kaushik <kaushiknath.null@gmail.com>
* ospf6d: Add CLI and logic for default-information originate commandYash Ranjan2021-03-291-0/+1
| | | | Signed-off-by: Yash Ranjan <ranjany@vmware.com>
* ospf6d: Don't advertise AS-External LSAs into stub arealynne2021-03-031-0/+1
| | | | | | | | | | | If area is a normal area and has adjacencies up and then the user changes the area to a stub area, the code was leaving existing AS-External LSAs in the database and was sending AS-External LSAs into the stub area causing the adjacency to stay in Ex-Start. With this change we now cleanup the AS-External LSAs that existed when area was not a stub and do not advertise AS-External LSAs into the stub area. Signed-off-by: Lynne Morrison <lynne@voltanet.io>
* Merge pull request #7492 from Niral-Networks/niral_ospfv3_fix_redistRafael Zalamena2020-12-101-2/+3
|\ | | | | ospf6d : Code refactoring for route redistribution.
| * ospf6d : Code refactoring for route redistribution.Kaushik2020-12-091-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | 1. Created new ospf6_redist structure. 2. Moved the 'route_map' structure from structure 'ospf6' to structure 'ospf6_redist'. 3. Added new message type OSPF6_REDISTRIBUTE. 4. Added the placeholder for metric option in structure ospf6_redist for redistribute. 5. Added few API's for route redistribute lookup, add & del. Signed-off-by: Kaushik <kaushik@niralnetworks.com>
* | ospf6: get instance from lsdb dataIgor Ryzhov2020-11-301-1/+1
|/ | | | Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* ospf6d : Transformation changes for ospf6 vrf support.harios_niral2020-10-311-8/+13
| | | | | | | | 1. All the changes are related to handle ospf6 with different vrf. 2. The dependancy of global ospf6 is removed. Co-authored-by: Kaushik <kaushik@niralnetworks.com> Signed-off-by: harios_niral <hari@niralnetworks.com>
* ospf6d : Preparing for ospf6d VRF support.Kaushik2020-09-011-1/+1
| | | | | | | | | 1. Removed the VRF_DEFAULT dependency from ospf6d. 2. The dependency on show command still exist will be fixed when the ospf6 master is available. Co-authored-by: Harios <hari@niralnetworks.com> Signed-off-by: Kaushik <kaushik@niralnetworks.com>
* *: use C99 standard fixed-width integer typesQuentin Young2018-03-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | The following types are nonstandard: - u_char - u_short - u_int - u_long - u_int8_t - u_int16_t - u_int32_t Replace them with the C99 standard types: - uint8_t - unsigned short - unsigned int - unsigned long - uint8_t - uint16_t - uint32_t Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* ospf6d: ECMP for external routesChirag Shah2018-03-011-1/+2
| | | | | | | | | | | | | | | | | | | | | The route being added check its origin matches, with any of the existing path (list of paths). Remove the existing path, add if its cost is eqaual or less than any of the existing path. For a given route and of existing path cost is lower (better) than one being added, discard new route update. The existing path cost is higher (lower) than one being added, ospf6_route_add replaces existing with new route info. Compare cost between delete request and with existing route. Ticket:CM-16139 Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* ospf6d: Fix redist w/ route-map during restartChirag Shah2018-01-261-0/+1
| | | | | | | | | | | | | | | | | | | | Add hook for route-map update event. Add a delay one shot timer to accomodate route-map update and reset redist with zebra to process all redistribute routes with route-map info. Cleanup route-map, prefix cached date during ospf6 exit. Ticket:CM-13800 Testing Done: configure redistribute connected with route-map to define type-2 routes. Restart frr.service and validated route-map add,update event, thread is scheduled, once timer is done redist reset with zebra. Upon redist add notification, all route map info is cached in ospf6 and processed as type-2 route and send ASE E2 LSA. Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* ospf6d: Fix External routes ECMPChirag Shah2018-01-021-0/+2
| | | | | | | | | | | | | | | | | | Handle RFC 2328 16.4 Calculating AS external routes with ECMP For ASBR route, if it is learnt via new LSA and contains different nexthop list. First lookup route in ospf6 route table if it exists, merge nexthop list to existing and call the callback to install into FIB (zebra). Delete created new route as it is identical to existing entry in route table. Ticket:CM-16139 Testing Done: Run two ASBR with 2 ECMP paths from each DUT neighbor receievs 4 ECMP path to a external route. ospf6 installs all 4 ECMP path to FIB/RIB Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* *: reindentreindent-master-afterwhitespace / reindent2017-07-171-50/+47
| | | | | | indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'` Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: make consistent & update GPLv2 file headersDavid Lamparter2017-05-151-4/+3
| | | | | | | | | | | The FSF's address changed, and we had a mixture of comment styles for the GPL file header. (The style with * at the beginning won out with 580 to 141 in existing files.) Note: I've intentionally left intact other "variations" of the copyright header, e.g. whether it says "Zebra", "Quagga", "FRR", or nothing. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* ospf6d: add support for route tagsChristian Franke2016-10-081-2/+4
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* *: use an ifindex_t type, defined in lib/if.h, for ifindex valuesPaul Jakma2016-08-181-3/+3
| | | | (cherry picked from commit 9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744)
* ospf6d: ospfv3-stub-area-support.patchDonald Sharp2015-05-201-0/+1
| | | | | | | Support stubby and totally stubby areas in OSPFv3 Signed-off-by: Dinesh G Dutt <ddutt at cumulusnetworks.com> Reviewed-by: Pradosh Mohapatra <pmohapat at cumulusnetworks.com>
* ospf6d: improve ordered shutdownChristian Franke2014-03-181-0/+1
| | | | | | | | Improve the _disable/_enable infrastructure so it gets into a more usable shape and make 'no router ospf6' actually work. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* ospf6d: implement 'match interface' for route-mapsVyacheslav Trushkin2011-12-131-0/+2
| | | | | | | | ospf6_routemap_rule_match_interface* was imported from ospfd daemon with minor changes. new CLI options defined. `ospf6_routemap_rule_match_interface' was changed to support IPv6 (ospfv3) route's external information.
* ospf6d: address more trivial compiler warningsDenis Ovsienko2011-09-271-0/+7
| | | | | | | * ospf6_main.c: include required headers * ospf6_asbr.h: idem * ospf6_spf.c * ospf6_spf_install(): remove unused variables
* ospf6d: CVE-2011-3323 (fortify packet reception)Denis Ovsienko2011-09-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #514840) was reported by CROSS project. ospf6d processes IPv6 prefix structures in incoming packets without verifying that the declared prefix length is valid. This leads to a crash caused by out of bounds memory access. * ospf6_abr.h: new macros for size/alignment validation * ospf6_asbr.h: idem * ospf6_intra.h: idem * ospf6_lsa.h: idem * ospf6_message.h: idem * ospf6_proto.h: idem * ospf6_message.c * ospf6_packet_minlen: helper array for ospf6_packet_examin() * ospf6_lsa_minlen: helper array for ospf6_lsa_examin() * ospf6_hello_recv(): do not call ospf6_header_examin(), let upper layer verify the input data * ospf6_dbdesc_recv(): idem * ospf6_lsreq_recv(): idem * ospf6_lsupdate_recv(): idem * ospf6_lsack_recv(): idem * ospf6_prefixes_examin(): new function, implements A.4.1 * ospf6_lsa_examin(): new function, implements A.4 * ospf6_lsaseq_examin(): new function, an interface to above * ospf6_packet_examin(): new function, implements A.3 * ospf6_rxpacket_examin(): new function, replaces ospf6_header_examin() * ospf6_header_examin(): sayonara * ospf6_receive(): perform passive interface check earliest possible, employ ospf6_rxpacket_examin()
* ospf6d: Have ospf6d cleanup when it terminates normallyTom Goff2011-03-211-0/+1
| | | | | | | | | | | | | | | A clean exit makes it easier to use memory debuggers. * ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map cleanup. * ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa handler vector. * ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to gracefully exit. * ospf6_message.c: (ospf6_message_terminate) Add a function that frees the send and receive buffers. * ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function. Disable ospf6 before freeing everything.
* [trivia] finish off static'ification of ospf6d and ripngdPaul Jakma2008-08-221-15/+15
| | | | | | | | | 2008-08-15 Paul Jakma <paul.jakma@sun.com> * {ospf6d,ripngd}/*: Finish job of marking functions as static, or exporting declarations for them, to quell warning noise with Quagga's GCC default high-level of warning flags. Thus allowing remaining, more useful warnings to be more easily seen.
* Ospf6d merge from Zebra repository with added privs stuff and mergedhasso2004-05-181-49/+23
| | | | zclient changes.
* Initial revisionpaul2002-12-131-0/+112