summaryrefslogtreecommitdiff
path: root/pathd
AgeCommit message (Collapse)Author
2022-11-03Merge pull request #12196 from opensourcerouting/xref-vtyshDonald Sharp
*: rewrite `extract.pl` using `xref` infra
2022-10-26build, vtysh: extract vtysh commands from .xrefDavid Lamparter
Rather than running selected source files through the preprocessor and a bunch of perl regex'ing to get the list of all DEFUNs, use the data collected in frr.xref. This not only eliminates issues we've been having with preprocessor failures due to nonexistent header files, but is also much faster. Where extract.pl would take 5s, this now finishes in 0.2s. And since this is a non-parallelizable build step towards the end of the build (dependent on a lot of other things being done already), the speedup is actually noticeable. Also files containing CLI no longer need to be listed in `vtysh_scan` since the .xref data covers everything. `#ifndef VTYSH_EXTRACT_PL` checks are equally obsolete. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-26pathd: Make pathd happy with clang-16Donald Sharp
Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
2022-10-07*: Create and use infrastructure to show debugs in libDonald Sharp
There are lib debugs being set but never show up in `show debug` commands because there was no way to show that they were being used. Add a bit of infrastructure to allow this and then use it for `debug route-map` Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-09-27Merge pull request #12018 from pguibert6WIND/pathd_warning_notedDonald Sharp
pathd: change the vty output, when no ted is enabled on pathd
2022-09-27Merge pull request #11910 from fdumontet6WIND/NAI_AdjOlivier Dugeon
pathd: nai adjacency fix query type f for IPV6
2022-09-26pathd: change the vty output, when no ted is enabled on pathdPhilippe Guibert
Change the vty output, in case ted is not enabled. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-09-20pathd: 'no mpls-te on' command was not workingPhilippe Guibert
Fix the 'no mpls-te on' command. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-09-06 pathd: nai adjacency fix query type f for IPV6Francois Dumontet
This commit is dedicated to fix some issues in path_ted_query_type_f function. Issues are related to IPv6 implementation. -key is not based on the pertinent part of IPv6 address. -test on memcmp return value is mismatch. -wrong flag value tested (ipv4 against ipv6). -return adj_sid was the wrong one. Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2022-08-15pathd: Ensure path is free'd after we no longer need it.Donald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-07-22pathd: add a zebra stop handlerPhilippe Guibert
This handler code is used to stop zebra related contexts. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-05-11*: Properly use memset() when zeroingDonatas Abraitis
Wrong: memset(&a, 0, sizeof(struct ...)); Good: memset(&a, 0, sizeof(a)); Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-04build: first header *must* be zebra.h or config.hDavid Lamparter
This has already been a requirement for Solaris, it is still a requirement for some of the autoconf feature checks to work correctly, and it will be a requirement for `-fms-extensions`. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-04-02*: Fix spelling of wetherDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-01*: Fix spelling of FollowingDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-03-31isisd, lib, ospfd, pathd: Null out free'd pointerDonald Sharp
The commands: router isis 1 mpls-te on no mpls-te on mpls-te on no mpls-te on ! Will crash Valgrind gives us this: ==652336== Invalid read of size 8 ==652336== at 0x49AB25C: typed_rb_min (typerb.c:495) ==652336== by 0x4943B54: vertices_const_first (link_state.h:424) ==652336== by 0x493DCE4: vertices_first (link_state.h:424) ==652336== by 0x493DADC: ls_ted_del_all (link_state.c:1010) ==652336== by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871) ==652336== by 0x495BE20: nb_callback_destroy (northbound.c:1131) ==652336== by 0x495B5AC: nb_callback_configuration (northbound.c:1356) ==652336== by 0x4958127: nb_transaction_process (northbound.c:1473) ==652336== by 0x4958275: nb_candidate_commit_apply (northbound.c:906) ==652336== by 0x49585B8: nb_candidate_commit (northbound.c:938) ==652336== by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64) ==652336== by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250) ==652336== Address 0x6f928e0 is 272 bytes inside a block of size 320 free'd ==652336== at 0x48399AB: free (vg_replace_malloc.c:538) ==652336== by 0x494BA30: qfree (memory.c:141) ==652336== by 0x493D99D: ls_ted_del (link_state.c:997) ==652336== by 0x493DC20: ls_ted_del_all (link_state.c:1018) ==652336== by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871) ==652336== by 0x495BE20: nb_callback_destroy (northbound.c:1131) ==652336== by 0x495B5AC: nb_callback_configuration (northbound.c:1356) ==652336== by 0x4958127: nb_transaction_process (northbound.c:1473) ==652336== by 0x4958275: nb_candidate_commit_apply (northbound.c:906) ==652336== by 0x49585B8: nb_candidate_commit (northbound.c:938) ==652336== by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64) ==652336== by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250) ==652336== Block was alloc'd at ==652336== at 0x483AB65: calloc (vg_replace_malloc.c:760) ==652336== by 0x494B6F8: qcalloc (memory.c:116) ==652336== by 0x493D7D2: ls_ted_new (link_state.c:967) ==652336== by 0x47E4DD: isis_instance_mpls_te_create (isis_nb_config.c:1832) ==652336== by 0x495BB29: nb_callback_create (northbound.c:1034) ==652336== by 0x495B547: nb_callback_configuration (northbound.c:1348) ==652336== by 0x4958127: nb_transaction_process (northbound.c:1473) ==652336== by 0x4958275: nb_candidate_commit_apply (northbound.c:906) ==652336== by 0x49585B8: nb_candidate_commit (northbound.c:938) ==652336== by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64) ==652336== by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250) ==652336== by 0x495D23E: nb_cli_apply_changes (northbound_cli.c:268) Let's null out the pointer. After this change. Valgrind no longer reports issues and isisd no longer crashes. Fixes: #10939 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-03-23pathd: bad order of nai adjacencies for ipv6Philippe Guibert
The order of nai adjacencies ipv6 addresses was wrong. The src and the destination addresses were swapped. Change it. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-02-23*: Change thread->func to return void instead of intDonald Sharp
The int return value is never used. Modify the code base to just return a void instead. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-02-14pathd: Fix spelling mistakesDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-12-19pathd: fix typo in pathd/path_ted.cYamato Sugawara
Signed-off-by: Yamato Sugawara <yamato.sugawara@linecorp.com>
2021-11-27*: Remove redundand braces for single statement blocksDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-25pathd: Convert vty_out to vty_json for JSONDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-12Merge pull request #10036 from donaldsharp/finally_frrJafar Al-Gharaibeh
Finally frr
2021-11-11*: Convert quagga_signal_X to frr_signal_XDonald Sharp
Naming functions/data structures more appropriately for the project we are actually in. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-11*: use compiler.h MIN/MAX macros instead of everyone having oneDonald Sharp
We had various forms of min/max macros across multiple daemons all of which duplicated what we have in compiler.h. Convert everyone to use the `correct` ones Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-26Merge pull request #9854 from opensourcerouting/zapi-call-tableRuss White
*: convert zclient callbacks to table
2021-10-25Merge pull request #9824 from idryzhov/nb-cli-const-lyd-nodeDonald Sharp
lib: northbound cli show/cmd functions must not modify data nodes
2021-10-20pathd: Call frr_fini() before exitDonald Sharp
pathd was never calling frr_fini and as such the proper shutdown was not happening for libfrr. This includes logging. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-20*: convert zclient callbacks to tableDavid Lamparter
This removes a giant `switch { }` block from lib/zclient.c and harmonizes all zclient callback function types to be the same (some had a subset of the args, some had a void return, now they all have ZAPI_CALLBACK_ARGS and int return.) Apart from getting rid of the giant switch, this is a minor security benefit since the function pointers are now in a `const` array, so they can't be overwritten by e.g. heap overflows for code execution anymore. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-10-13lib: northbound cli show/cmd functions must not modify data nodesIgor Ryzhov
To ensure this, add a const modifier to functions' arguments. Would be great do this initially and avoid this large code change, but better late than never. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-09-09pathd: Ensure node_src_id is inited before usageDonald Sharp
Compiler is warning that node_src_id may be used uninited we know this is not possible but the compiler doesn't. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-09-02*: fix for -Wstrict-prototypesDavid Lamparter
Just some "void" missing between empty braces. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-08-26Merge pull request #9331 from idryzhov/explicit-exitChristian Hopps
*: explicitly print "exit" at the end of every node config
2021-08-25*: Drop `break` after using frr_help_exit() in switch/caseDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-23*: explicitly print "exit" at the end of every node configIgor Ryzhov
There is a possibility that the same line can be matched as a command in some node and its parent node. In this case, when reading the config, this line is always executed as a command of the child node. For example, with the following config: ``` router ospf network 193.168.0.0/16 area 0 ! mpls ldp discovery hello interval 111 ! ``` Line `mpls ldp` is processed as command `mpls ldp-sync` inside the `router ospf` node. This leads to a complete loss of `mpls ldp` node configuration. To eliminate this issue and all possible similar issues, let's print an explicit "exit" at the end of every node config. This commit also changes indentation for a couple of existing exit commands so that all existing commands are on the same level as their corresponding node-entering commands. Fixes #9206. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-23pathd: rework config printing codeIgor Ryzhov
Instead of setting a config_write callback for each node, set a single callback and print all config from there. It is necessary for the following work on explicit "exit" command in every node. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-11vtysh, pathd: fix pcep node-entering commandsIgor Ryzhov
pce-config, pce and pcc node-entering commands in vtysh include no-form, which is incorrect. Currently, when user passes a no-form command like `no pcc`, vtysh enters the node while pathd deletes the node and this leads to a desynchronization. Regular and no-form commands should be defined separately to fix this. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-05pathd: fix indentation and redundant space in index configIgor Ryzhov
Before: ``` segment-routing traffic-eng segment-list SL1 index 10 mpls label 16010 ``` After: ``` segment-routing traffic-eng segment-list SL1 index 10 mpls label 16010 ``` Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-08-05pathd: fix indentation for mpls-te configIgor Ryzhov
Before: ``` segment-routing traffic-eng mpls-te on mpls-te import ospfv2 ``` After: ``` segment-routing traffic-eng mpls-te on mpls-te import ospfv2 ``` Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-21Merge pull request #9102 from opensourcerouting/autoconf-fix-gcovDonald Sharp
build: fix LDFLAGS confusion & gcov
2021-07-21build: fix `AM_LDFLAGS` usage (and gcov)David Lamparter
like the other automake variables, setting `xyz_LDFLAGS` causes `AM_LDFLAGS` to be ignored for `xyz`. For some reason I had in my mind that automake doesn't do this for LDFLAGS, but... it does. (Which is consistent with `_CFLAGS` and co.) So, all the libraries and modules have been ignoring `AM_LDFLAGS` (which includes `SAN_FLAGS` too). Set up new `LIB_LDFLAGS` and `MODULE_LDFLAGS` to handle all of this correctly (and move these bits to a central location.) Fixes: #9034 Fixes: 0c4285d77eb ("build: properly split CFLAGS from AC_CFLAGS") Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-07-20pathd: don't use localtimeMark Stapp
Use localtime_r() instead of localtime() in pathd. Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
2021-07-06Merge pull request #8938 from volta-networks/fix_no_path_retriesDonald Sharp
pathd : Better RFC complain for two cases, no_path answer and srp_id handle
2021-06-28pathd: Handle srp_id correctly (2/2)Javier Garcia
Based on RFC 8231 #5.8.3 PcUpd RFC 8181 #5.1 Pcinit Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
2021-06-25pathd: coverity msg , frr_weak_random instead rand.Javier Garcia
Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
2021-06-24pathd: If pce ret no-path to PcReq don't retry PcReq nor delegate(1/2)Javier Garcia
Based in RFC 5440 @4.2.2 ""...after a no-path , the pcc may decide" and RFC 8231 #5.8.3 "... pcc must not set PcReq after path is delegated" So will not (try) to delegate the path with no-path neither must do further retries. Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
2021-06-22pathd: Sanity checks. (4/4)Javier Garcia
Co-authored-by: Javier Garcia <javier.garcia@voltanet.io> Signed-off-by: Sebastien Merle <sebastien@netdef.org>
2021-06-22pathd: Handle PCInitiated configuration, main thread. (3/4)Javier Garcia
Co-authored-by: Javier Garcia <javier.garcia@voltanet.io> Signed-off-by: Sebastien Merle <sebastien@netdef.org>
2021-06-22pathd: Handle PCInitiated messages, thread controller. (2/4)Javier Garcia
Co-authored-by: Javier Garcia <javier.garcia@voltanet.io> Signed-off-by: Sebastien Merle <sebastien@netdef.org> Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
2021-06-05pathd: Remove unused functionDonald Sharp
format_yang_dnode is never used and it has coverity issues, removing Signed-off-by: Donald Sharp <sharpd@nvidia.com>