summaryrefslogtreecommitdiffstats
path: root/ospfd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #4604 from opensourcerouting/mutex-sugarQuentin Young2019-09-032-2/+2
|\ | | | | mutex syntactic sugar
| * *: frr_elevate_privs -> frr_with_privsDavid Lamparter2019-09-032-2/+2
| | | | | | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | ospfd: Cleanup oi->obuf to always be createdDonald Sharp2019-08-303-58/+17
| | | | | | | | | | | | | | | | | | | | | | | | This looks like a finish up of the partial cleanup that ocurred at some point in time in the past. When we alloc oi also always alloc the oi->obuf. When we delete oi always delete the oi->obuf right before. This cleans up a bunch of code to be simpler and hopefully easier to follow. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | ospfd: tighten up what functions can be used outside of ospf_packet.cDonald Sharp2019-08-302-10/+4
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | ospfd: Do not turn on write thread unless we have something in itDonald Sharp2019-08-302-7/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am rarely seeing this crash: r2: ospfd crashed. Core file found - Backtrace follows: [New LWP 32748] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/lib/frr/ospfd'. Program terminated with signal SIGABRT, Aborted. 2019-08-29 15:59:36,149 ERROR: assert failed at "test_ospf_sr_topo1/test_memory_leak": Which translates to this code: node = listhead(ospf->oi_write_q); assert(node); oi = listgetdata(node); assert(oi); So if we get into ospf_write without anything on the oi_write_q we are stopping the program. This is happening because in ospf_ls_upd_queue_send we are calling ospf_write. Imagine that we have a interface already on the on_write_q and then ospf_write handles the packet send for all functions. We are not clearing the t_write thread and we are popping and causing a crash. Additionally modify OSPF_ISM_WRITE_ON(O) to not just blindly turn on the t_write thread. Only do so if we have data. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> ospfd: Remove redundant asserts assert(oi) is impossible all listgetdata(node) directly proceeding it already asserts here, besides a node cannot be created with a null pointer! If list_isempty is called directly before the listhead call it is impossilbe that we do not have a valid pointer here. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #4812 from pogojotz/fix-destination-multi-useDonald Sharp2019-08-261-35/+32
|\ | | | | zebra: Do not use connection dest for bcast
| * zebra: Do not use connection dest for bcastJuergen Werner2019-08-181-35/+32
| | | | | | | | | | | | | | | | | | The `destination` field of the connection structure was used to store the broadcast address, if the connection was not p2p. This multipurpose is not very evident and the benefits over calculating the bcast address on the fly minimal. Signed-off-by: Juergen Werner <juergen@opensourcerouting.org>
* | *: Fix spelling errors pointed out by debian packagingDonald Sharp2019-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Debian packaging when run finds a bunch of spelling errors: I: frr: spelling-error-in-binary usr/bin/vtysh occurences occurrences I: frr: spelling-error-in-binary usr/lib/frr/bfdd Amount of times Number of times I: frr: spelling-error-in-binary usr/lib/frr/bgpd occurences occurrences I: frr: spelling-error-in-binary usr/lib/frr/bgpd recieved received I: frr: spelling-error-in-binary usr/lib/frr/isisd betweeen between I: frr: spelling-error-in-binary usr/lib/frr/ospf6d Infomation Information I: frr: spelling-error-in-binary usr/lib/frr/ospfd missmatch mismatch I: frr: spelling-error-in-binary usr/lib/frr/pimd bootsrap bootstrap I: frr: spelling-error-in-binary usr/lib/frr/pimd Unknwon Unknown I: frr: spelling-error-in-binary usr/lib/frr/zebra Requsted Requested I: frr: spelling-error-in-binary usr/lib/frr/zebra uknown unknown I: frr: spelling-error-in-binary usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0 overriden overridden This commit fixes all of them except the bgp `recieved` issue due to it being part of json output. That one will need to go through a deprecation cycle. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | ospfd: add redist message detail to debugMark Stapp2019-08-141-1/+2
| | | | | | | | | | | | | | Add the specific message being processed when ospfd receives a redistribution from zebra. Signed-off-by: Mark Stapp <mjs@voltanet.io>
* | ospfd,ripd: Enabling build with opensslMichal Ruprich2019-08-081-0/+30
|/ | | | | | Enabling openssl library for md5 authentication in RIP and OSPF Signed-off-by: Michal Ruprich <michalruprich@gmail.com>
* ospfd: clean up default route logicDavid Lamparter2019-08-024-127/+55
| | | | | | What a mess... Signed-off-by: David Lamparter <equinox@diac24.net>
* ospfd: don't ASE with router-ID 0David Lamparter2019-08-021-0/+7
| | | | | | The ASEs will be generated later by ospf_external_lsa_rid_change(). Signed-off-by: David Lamparter <equinox@diac24.net>
* ospfd: unset default route external_infoDavid Lamparter2019-08-021-2/+8
| | | | | | | Need to clear out the external_info for the "always" default route that we installed in ospf_redistribute_default_set(). Signed-off-by: David Lamparter <equinox@diac24.net>
* ospfd: remove LSA reorigin on NSM changeDavid Lamparter2019-08-021-28/+0
| | | | | | | | | This is a "workaround" for something broken in LSDB sync that has been kept around since the beginning of our git history... (It works correctly without this "workaround".) Signed-off-by: David Lamparter <equinox@diac24.net>
* ospfd: re-fix default origination checkDavid Lamparter2019-08-021-4/+19
| | | | | | | | ospf->external[DEFAULT_ROUTE] and zclient->default_information don't line up with each other; the former is only used for "originate always". Fixes: #4237 Signed-off-by: David Lamparter <equinox@diac24.net>
* Revert "ospfd: default route got flushed after lsa refresh timer."David Lamparter2019-08-021-1/+1
| | | | | | | | | | | This reverts commit a6b4e1fdedb290e8d86f73b0d7f842f7042b26af. This fix is wrong too. The zclient->redist & ->mi_redist arrays are accessed past their size for any external route that is not 0.0.0.0/0. Also, it is incorrect to check default_information for DEFAULT_ROUTE since that's "originate always". Signed-off-by: David Lamparter <equinox@diac24.net>
* Revert "ospfd: remove default origin max age lsa"David Lamparter2019-08-023-20/+0
| | | | | | | | | | | | | | | | This reverts commit 313919d6e3db67eedef77960ea4e2ba2a6018ee1. This is not the correct way to fix this. - touching the LSDB to explicitly remove a MaxAge LSA is always wrong and results in desynchronization of the entire routing domain - the LSDB code correctly handles replacing a MaxAge LSA with a newly issued one - removing the old LSA resets the sequence numbers, which may cause other routers to reject the new LSA as old - the function was horribly misnamed Signed-off-by: David Lamparter <equinox@diac24.net>
* ospfd: kill totally misnamed "timers"David Lamparter2019-08-025-97/+43
| | | | | | | | Neither ospf_external_lsa_originate_timer() nor ospf_default_originate_timer() are actually timers. They're only executed on router-ID changes to refresh a particular LSA type. Signed-off-by: David Lamparter <equinox@diac24.net>
* ospfd: remove t_external_lsaDavid Lamparter2019-08-023-4/+0
| | | | | | It's unused... Signed-off-by: David Lamparter <equinox@diac24.net>
* lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOPLakshman Krishnamoorthy2019-07-222-30/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introducing a 3rd state for route_map_apply library function: RMAP_NOOP Traditionally route map MATCH rule apis were designed to return a binary response, consisting of either RMAP_MATCH or RMAP_NOMATCH. (Route-map SET rule apis return RMAP_OKAY or RMAP_ERROR). Depending on this response, the following statemachine decided the course of action: State1: If match cmd returns RMAP_MATCH then, keep existing behaviour. If routemap type is PERMIT, execute set cmds or call cmds if applicable, otherwise PERMIT! Else If routemap type is DENY, we DENYMATCH right away State2: If match cmd returns RMAP_NOMATCH, continue on to next route-map. If there are no other rules or if all the rules return RMAP_NOMATCH, return DENYMATCH We require a 3rd state because of the following situation: The issue - what if, the rule api needs to abort or ignore a rule?: "match evpn vni xx" route-map filter can be applied to incoming routes regardless of whether the tunnel type is vxlan or mpls. This rule should be N/A for mpls based evpn route, but applicable to only vxlan based evpn route. Also, this rule should be applicable for routes with VNI label only, and not for routes without labels. For example, type 3 and type 4 EVPN routes do not have labels, so, this match cmd should let them through. Today, the filter produces either a match or nomatch response regardless of whether it is mpls/vxlan, resulting in either permitting or denying the route.. So an mpls evpn route may get filtered out incorrectly. Eg: "route-map RM1 permit 10 ; match evpn vni 20" or "route-map RM2 deny 20 ; match vni 20" With the introduction of the 3rd state, we can abort this rule check safely. How? The rules api can now return RMAP_NOOP to indicate that it encountered an invalid check, and needs to abort just that rule, but continue with other rules. As a result we have a 3rd state: State3: If match cmd returned RMAP_NOOP Then, proceed to other route-map, otherwise if there are no more rules or if all the rules return RMAP_NOOP, then, return RMAP_PERMITMATCH. Signed-off-by: Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
* ospfd: no router ospf crash fixChirag Shah2019-07-152-8/+17
| | | | | | | | | | | | | | | | | | | | | | | no router ospf triggers to cancel all threads including read/write (receive/send packets) threads, cleans up resources fd, message queue and data. Last job of write (packet) thread invoked where the ospf instance is referenced is not running nor the socket fd valid. Write thread callback should check if fd is valid and ospf instance is running before proceeding to send a message over socket. Ticket:CM-20095 Testing Done: Performed the multiple 'no router ospf' with the fix in topology where the crash was seen. Post fix the crash is not observed. Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* ospfd: fix show ip ospf neigh jsonChirag Shah2019-07-101-44/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Same ospf neigbor can be learnt via multiple interfaces, ospf detail json only displayed last instance only. Fix json output format to contain "neighbors" keyword, under which to display all neighbors for a given vrf. Fix show ip ospf neighbor detail json show ip ospf neighbor detail all json show ip ospf neighbor <intf name> detail json Ticket:CM-25528 Reviewed By: Testing Done: Run the output with JSON formatter and the output has passed. switch1# show ip ospf vrf all neighbor detail json { "default":{ "vrfName":"default", "vrfId":0, "neighbors":{ "0.0.0.2":[ { "ifaceAddress":"14.0.0.22", "areaId":"0.0.0.0", "ifaceName":"Bridge1.510", "nbrPriority":1, "nbrState":"Full", "stateChangeCounter":6, "lastPrgrsvChangeMsec":82668, "routerDesignatedId":"14.0.0.22", "routerDesignatedBackupId":"14.0.0.21", "optionsCounter":2, "optionsList":"*|-|-|-|-|-|E|-", "routerDeadIntervalTimerDueMsec":36195, "databaseSummaryListCounter":0, "linkStateRequestListCounter":0, "linkStateRetransmissionListCounter":0, "threadInactivityTimer":"on", "threadLinkStateRequestRetransmission":"on", "threadLinkStateUpdateRetransmission":"on", "peerBfdInfo":{ "type":"single hop", "detectMultiplier":4, "rxMinInterval":600, "txMinInterval":800, "status":"Down", "lastUpdate":"0:00:00:29" } }, { "ifaceAddress":"14.0.0.26", "areaId":"0.0.0.0", "ifaceName":"Bridge1.511", "nbrPriority":1, "nbrState":"Full", "stateChangeCounter":6, "lastPrgrsvChangeMsec":82658, "routerDesignatedId":"14.0.0.26", "routerDesignatedBackupId":"14.0.0.25", "optionsCounter":2, "optionsList":"*|-|-|-|-|-|E|-", "routerDeadIntervalTimerDueMsec":36196, "databaseSummaryListCounter":0, "linkStateRequestListCounter":0, "linkStateRetransmissionListCounter":0, "threadInactivityTimer":"on", "threadLinkStateRequestRetransmission":"on", "threadLinkStateUpdateRetransmission":"on" }, ] } } } Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
* ospfd: Do not modify list when using _RO loopDonald Sharp2019-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | The shutdown of ospf was causing crashes because the shutdown was calling a ALL_LIST_ELEMENTS_RO macro and modifying the underlying data structures. Switch to using ALL_LIST_ELEMENTS. This is caused by this change: commit f9e1501aea5d429be2ecda1a3e2bde17e6ad5e4b Author: Donald Sharp <sharpd@cumulusnetworks.com> Date: Wed Feb 27 15:08:29 2019 -0500 ospfd: Cleanup ospf->redist and ospf->external on shutdown Effectively my original testing for this only had one external route and as such we would not have a crash here. It only showed up after multiple externals have been introduced. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #4624 from qlyoung/use-standard-boolsDavid Lamparter2019-07-022-26/+26
|\ | | | | *: s/TRUE/true/, s/FALSE/false/
| * *: s/TRUE/true/, s/FALSE/false/Quentin Young2019-07-012-26/+26
| | | | | | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* | Merge pull request #3888 from donaldsharp/ospf_cleanupOlivier Dugeon2019-07-021-1/+5
|\ \ | |/ |/| ospfd: Cleanup ospf->redist and ospf->external on shutdown
| * ospfd: Cleanup ospf->redist and ospf->external on shutdownDonald Sharp2019-06-221-1/+5
| | | | | | | | | | | | | | | | | | | | These two data types were written to handle redistribute and external data types. On shutdown cleanup the memory allocated to these if we are doing redistribution. This was found using valgrind. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | Revert "Ospf missing interface handling 2"Donald Sharp2019-06-246-44/+27
|/
* Merge pull request #3775 from pguibert6WIND/ospf_missing_interface_handling_2Donald Sharp2019-06-226-27/+44
|\ | | | | Ospf missing interface handling 2
| * *: change interface structure, from vrf_id to vrfPhilippe Guibert2019-06-125-15/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Field vrf_id is replaced by the pointer of the struct vrf *. For that all other code referencing to (interface)->vrf_id is replaced. This work should not change the behaviour. It is just a continuation work toward having an interface API handling vrf pointer only. some new generic functions are created in vrf: vrf_to_id, vrf_to_name, a zebra function is also created: zvrf_info_lookup an ospf function is also created: ospf_lookup_by_vrf it is to be noted that now that interface has a vrf pointer, some more optimisations could be thought through all the rest of the code. as example, many structure store the vrf_id. those structures could get the exact vrf structure if inherited from an interface vrf context. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
| * lib, bgpd, ospfd, pimd, zebra, rip, ripng, bfd: change ↵Philippe Guibert2019-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | if_update_to_new_vrf() api vrf_id parameter is replaced with struct vrf * parameter. It is needed to create vrf structure before entering in the fuction. an error is generated in case the vrf parameter is missing. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
| * *: change if_lookup_by_name() api with vrfPhilippe Guibert2019-06-123-8/+15
| | | | | | | | | | | | | | | | | | | | the vrf_id parameter is replaced by struct vrf * parameter. this impacts most of the daemons that look for an interface based on the name and the vrf identifier. Also, it fixes 2 lookup calls in zebra and sharpd, where the vrf_id was ignored until now. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
| * lib, ospfd, pimd, zebra: change if_create() api with vrfPhilippe Guibert2019-06-111-1/+3
| | | | | | | | | | | | if_create() takes as input a vrf poiter instead of the vrf_id parameter. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
| * ospf, ospf6d, zebra, lib: change if_get_by_name prototype with vrfPhilippe Guibert2019-06-111-2/+4
| | | | | | | | | | | | | | | | vrf pointer is used as reference when calling if_get_by_name() function. this will permit to create interfaces with an unknown vrf_id, since it is only necessary to get the vrf structure to store the interfaces. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | rmap: Add hooks into zebra,ospf,rip for `match ip next-hop type blackhole`Donatas Abraitis2019-06-211-0/+38
| | | | | | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* | ospfd: fix clang-SA warningDavid Lamparter2019-06-131-5/+7
|/ | | | Signed-off-by: David Lamparter <equinox@diac24.net>
* Revert of PR 4078 and PR 4315Lakshman Krishnamoorthy2019-06-042-24/+28
| | | | Signed-off-by: Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
* Merge pull request #4315 from lkrishnamoor/route_map_3rd_stateDonald Sharp2019-05-312-28/+24
|\ | | | | lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP
| * lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOPLakshman Krishnamoorthy2019-05-302-28/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introducing a 3rd state for route_map_apply library function: RMAP_NOOP Traditionally route map MATCH rule apis were designed to return a binary response, consisting of either RMAP_MATCH or RMAP_NOMATCH. (Route-map SET rule apis return RMAP_OKAY or RMAP_ERROR). Depending on this response, the following statemachine decided the course of action: Action: Apply route-map match and return the result (RMAP_MATCH/RMAP_NOMATCH) State1: Receveived RMAP_MATCH THEN: If Routemap type is PERMIT, execute other rules if applicable, otherwise we PERMIT! Else: If Routemap type is DENY, we DENYMATCH right away State2: Received RMAP_NOMATCH, continue on to next route-map, otherwise, return DENYMATCH by default if nothing matched. With reference to PR 4078 (https://github.com/FRRouting/frr/pull/4078), we require a 3rd state because of the following situation: The issue - what if, the rule api needs to abort or ignore a rule?: "match evpn vni xx" route-map filter can be applied to incoming routes regardless of whether the tunnel type is vxlan or mpls. This rule should be N/A for mpls based evpn route, but applicable to only vxlan based evpn route. Today, the filter produces either a match or nomatch response regardless of whether it is mpls/vxlan, resulting in either permitting or denying the route.. So an mpls evpn route may get filtered out incorrectly. Eg: "route-map RM1 permit 10 ; match evpn vni 20" or "route-map RM2 deny 20 ; match vni 20" With the introduction of the 3rd state, we can abort this rule check safely. How? The rules api can now return RMAP_NOOP (or another enum) to indicate that it encountered an invalid check, and needs to abort just that rule, but continue with other rules. Question: Do we repurpose an existing enum RMAP_OKAY or RMAP_ERROR as the 3rd state (or create a new enum like RMAP_NOOP)? RMAP_OKAY and RMAP_ERROR are used to return the result of set cmd. We chose to go with RMAP_NOOP (but open to ideas), as a way to bypass the rmap filter As a result we have a 3rd state: State3: Received RMAP_NOOP Then, proceed to other route-map, otherwise return RMAP_PERMITMATCH by default. Signed-off-by:Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
* | ospfd: initialize maybe-uninitialized boolQuentin Young2019-05-291-1/+1
|/ | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Merge pull request #4144 from pguibert6WIND/bfd_cbitRuss White2019-05-161-2/+6
|\ | | | | BFD CBIT
| * bfdd, lib, bgpd: add bfd cbit usagePhilippe Guibert2019-05-141-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bfd cbit is a value carried out in bfd messages, that permit to keep or not, the independence between control plane and dataplane. In other words, while most of the cases plan to flush entries, when bfd goes down, there are some cases where that bfd event should be ignored. this is the case with non stop forwarding mechanisms where entries may be kept. this is the case for BGP, when graceful restart capability is used. If BFD event down happens, and bgp is in graceful restart mode, it is wished to ignore the BFD event while waiting for the remote router to restart. The changes take into account the following: - add a config flag across zebra layer so that daemon can set or not the cbit capability. - ability for daemons to read the remote bfd capability associated to a bfd notification. - in bfdd, according to the value, the cbit value is set - in bfdd, the received value is retrived and stored in the bfd session context. - by default, the local cbit announced to remote is set to 1 while preservation of the local path is not set. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | lib: hashing functions should take const argumentsQuentin Young2019-05-141-1/+1
|/ | | | | | | | | | It doesn't make much sense for a hash function to modify its argument, so const the hash input. BGP does it in a couple places, those cast away the const. Not great but not any worse than it was. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Merge pull request #4304 from donaldsharp/route_map_switchDavid Lamparter2019-05-141-1/+1
|\ | | | | Route map switch
| * bgpd, lib, ospf6d, ospfd, pimd, zebra: Rework routemap event callbackDonald Sharp2019-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | The route_map_event_hook callback was passing the `route_map_event_t` to each individual interested party. No-one is ever using this data so let's cut to the chase a bit and remove the pass through of data. This is considered ok in that the routemap.c code came this way originally and after 15+ years no-one is using this functionality. Nor do I see any `easy` way to do anything useful with this data. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* | Merge pull request #4112 from pguibert6WIND/bfd_vrfRafael Zalamena2019-05-142-2/+2
|\ \ | |/ |/| support for BFD VRF
| * bgp, ospfd, ospf6d, pimd, lib, isisd: add bfd_client_sendmsg vrf_idPhilippe Guibert2019-05-072-2/+2
| | | | | | | | | | | | | | vrf_id parameter is added to the api of bfd_client_sendmsg(). this permits being registered to bfd from a separate vrf. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | Merge pull request #4215 from Orange-OpenSource/TEQuentin Young2019-05-071-97/+98
|\ \ | |/ |/| ospfd: Correct Link-ID and Remote IP for TE LSA
| * ospfd: Correct Link-ID and Remote IP for TE LSAOlivier Dugeon2019-04-301-97/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Solve issue #4198 Link-ID and Remote IP address must be set accordingly to the interface type (Point-to-Point or Broadcast) from the neighbor information. However, this information are only valid once the Network State Machine (NSM) is Full i.e. when the adjacency is up. The original TE code only look to Interface State Machine (ISM) change which not allow to collect valid neighbor information. The patch move setup of Link-ID and Remote-IP TE parameters from ospf_mpls_te_ism_change() to ospf_mpls_te_nsm_change() function. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* | Merge pull request #4264 from pguibert6WIND/trace_bfdDonald Sharp2019-05-071-0/+7
|\ \ | | | | | | More traces for BFD clients