summaryrefslogtreecommitdiffstats
path: root/pathd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* pathd: fix SA warning in path_pcep_configMark Stapp2022-12-191-2/+1
| | | | | | Fix an SA warning about a possibly-uninited local. Signed-off-by: Mark Stapp <mjs@labn.net>
* pathd: display SRTE policy status when removing policyPhilippe Guibert2022-11-141-4/+20
| | | | | | | Create a function that logs the status of a given SR-TE policy. Add a call to this function when a policy is being removed. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* pathd: some traces are added to 'debug pathd ted' command.Philippe Guibert2022-11-141-6/+8
| | | | | | | Some traces initially displayed will be hidden behind the vty command: 'debug pathd ted'. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* pathd: use a define to store the the length of endpoint stringPhilippe Guibert2022-11-143-16/+30
| | | | | | | The endpoint string is a 46 byte length buffer. Use a single place to store the length of that buffer. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* pathd: add 'debug pathd policy' commandPhilippe Guibert2022-11-143-43/+115
| | | | | | | | Add a new cli command to troubleshoort pathd daemon. Some traces initially enabled are hidden behind this cli command. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* pathd: display path ted debugging statusPhilippe Guibert2022-11-143-0/+10
| | | | | | | On 'show debugging' call, display the status about ted debugging. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* Merge pull request #12196 from opensourcerouting/xref-vtyshDonald Sharp2022-11-034-11/+0
|\ | | | | *: rewrite `extract.pl` using `xref` infra
| * build, vtysh: extract vtysh commands from .xrefDavid Lamparter2022-10-264-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | pathd: Make pathd happy with clang-16Donald Sharp2022-10-261-1/+1
|/ | | | Signed-off-by: Donald Sharp <donaldsharp72@gmail.com>
* *: Create and use infrastructure to show debugs in libDonald Sharp2022-10-071-0/+2
| | | | | | | | | 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>
* Merge pull request #12018 from pguibert6WIND/pathd_warning_notedDonald Sharp2022-09-271-1/+1
|\ | | | | pathd: change the vty output, when no ted is enabled on pathd
| * pathd: change the vty output, when no ted is enabled on pathdPhilippe Guibert2022-09-261-1/+1
| | | | | | | | | | | | Change the vty output, in case ted is not enabled. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | Merge pull request #11910 from fdumontet6WIND/NAI_AdjOlivier Dugeon2022-09-271-8/+8
|\ \ | |/ |/| pathd: nai adjacency fix query type f for IPV6
| * pathd: nai adjacency fix query type f for IPV6Francois Dumontet2022-09-061-8/+8
| | | | | | | | | | | | | | | | | | | | | | 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>
* | pathd: 'no mpls-te on' command was not workingPhilippe Guibert2022-09-201-1/+1
|/ | | | | | Fix the 'no mpls-te on' command. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* pathd: Ensure path is free'd after we no longer need it.Donald Sharp2022-08-151-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* pathd: add a zebra stop handlerPhilippe Guibert2022-07-223-0/+9
| | | | | | This handler code is used to stop zebra related contexts. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* *: Properly use memset() when zeroingDonatas Abraitis2022-05-111-1/+1
| | | | | | | Wrong: memset(&a, 0, sizeof(struct ...)); Good: memset(&a, 0, sizeof(a)); Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* build: first header *must* be zebra.h or config.hDavid Lamparter2022-04-041-2/+2
| | | | | | | | 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>
* *: Fix spelling of wetherDonald Sharp2022-04-021-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* *: Fix spelling of FollowingDonald Sharp2022-04-011-1/+1
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* isisd, lib, ospfd, pathd: Null out free'd pointerDonald Sharp2022-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pathd: bad order of nai adjacencies for ipv6Philippe Guibert2022-03-231-1/+1
| | | | | | | | 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>
* *: Change thread->func to return void instead of intDonald Sharp2022-02-245-64/+46
| | | | | | | 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>
* pathd: Fix spelling mistakesDonald Sharp2022-02-143-5/+5
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* pathd: fix typo in pathd/path_ted.cYamato Sugawara2021-12-191-1/+1
| | | | Signed-off-by: Yamato Sugawara <yamato.sugawara@linecorp.com>
* *: Remove redundand braces for single statement blocksDonatas Abraitis2021-11-271-2/+1
| | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* pathd: Convert vty_out to vty_json for JSONDonatas Abraitis2021-11-251-4/+1
| | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* Merge pull request #10036 from donaldsharp/finally_frrJafar Al-Gharaibeh2021-11-131-1/+1
|\ | | | | Finally frr
| * *: Convert quagga_signal_X to frr_signal_XDonald Sharp2021-11-111-1/+1
| | | | | | | | | | | | | | Naming functions/data structures more appropriately for the project we are actually in. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: use compiler.h MIN/MAX macros instead of everyone having oneDonald Sharp2021-11-111-9/+1
|/ | | | | | | | 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>
* Merge pull request #9854 from opensourcerouting/zapi-call-tableRuss White2021-10-261-5/+9
|\ | | | | *: convert zclient callbacks to table
| * *: convert zclient callbacks to tableDavid Lamparter2021-10-201-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge pull request #9824 from idryzhov/nb-cli-const-lyd-nodeDonald Sharp2021-10-252-20/+24
|\ \ | | | | | | lib: northbound cli show/cmd functions must not modify data nodes
| * | lib: northbound cli show/cmd functions must not modify data nodesIgor Ryzhov2021-10-132-20/+24
| |/ | | | | | | | | | | | | | | 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>
* / pathd: Call frr_fini() before exitDonald Sharp2021-10-201-0/+2
|/ | | | | | | | 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>
* pathd: Ensure node_src_id is inited before usageDonald Sharp2021-09-091-0/+9
| | | | | | | 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>
* *: fix for -Wstrict-prototypesDavid Lamparter2021-09-021-1/+1
| | | | | | Just some "void" missing between empty braces. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* Merge pull request #9331 from idryzhov/explicit-exitChristian Hopps2021-08-265-26/+48
|\ | | | | *: explicitly print "exit" at the end of every node config
| * *: explicitly print "exit" at the end of every node configIgor Ryzhov2021-08-234-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * pathd: rework config printing codeIgor Ryzhov2021-08-233-25/+11
| | | | | | | | | | | | | | | | 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>
* | *: Drop `break` after using frr_help_exit() in switch/caseDonatas Abraitis2021-08-251-1/+0
|/ | | | Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
* vtysh, pathd: fix pcep node-entering commandsIgor Ryzhov2021-08-111-12/+33
| | | | | | | | | | | 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>
* pathd: fix indentation and redundant space in index configIgor Ryzhov2021-08-051-1/+1
| | | | | | | | | | | | | | | | | | | | 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>
* pathd: fix indentation for mpls-te configIgor Ryzhov2021-08-051-4/+4
| | | | | | | | | | | | | | | | | | | | 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>
* Merge pull request #9102 from opensourcerouting/autoconf-fix-gcovDonald Sharp2021-07-221-1/+1
|\ | | | | build: fix LDFLAGS confusion & gcov
| * build: fix `AM_LDFLAGS` usage (and gcov)David Lamparter2021-07-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | pathd: don't use localtimeMark Stapp2021-07-201-3/+3
|/ | | | | | Use localtime_r() instead of localtime() in pathd. Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
* Merge pull request #8938 from volta-networks/fix_no_path_retriesDonald Sharp2021-07-062-2/+53
|\ | | | | pathd : Better RFC complain for two cases, no_path answer and srp_id handle
| * pathd: Handle srp_id correctly (2/2)Javier Garcia2021-06-282-1/+2
| | | | | | | | | | | | | | | | Based on RFC 8231 #5.8.3 PcUpd RFC 8181 #5.1 Pcinit Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>