summaryrefslogtreecommitdiffstats
path: root/tools (follow)
Commit message (Collapse)AuthorAgeFilesLines
* tools/gcc-plugins: warn for `suseconds_t` formatDavid Lamparter2024-05-021-0/+6
| | | | | | | | | | The plugin was already catching attempts to print `time_t` without casting it first (there is no valid printf specifier without a cast), but `__suseconds64_t` needs the same treatment. (Probably `__suseconds_t` too, if it exists, which I'm not sure it does - but that doesn't matter, the plugin ignores non-existing types.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* Merge pull request #15834 from pguibert6WIND/alias_path_iproute2Donald Sharp2024-04-291-0/+1
|\ | | | | tools: add iproute2 alias for pathd daemon
| * tools: add iproute2 alias for pathd daemonPhilippe Guibert2024-04-291-0/+1
| | | | | | | | | | | | | | | | With SRv6 traffic engineering, some ipv6 routes will be installed by the Pathd daemon. Populate the iproute2 aliasing table with pathd. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
* | tools: Handle seq num for BGP as-path in frr-reload.pyChirag Shah2024-04-261-0/+29
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If frr.conf has bgp as-path access-list clause without sequence number then upon performing frr-rleoad, the running config clause with sequence number will always be deleted and the new ones without sequence will be re-added. This could lead to blackholing until the config gets reapplied. Testing: frr.conf: bgp as-path access-list important_internet_bgp_as_numbers permit _16509_ Running config: bgp as-path access-list important_internet_bgp_as_numbers seq 5 permit _16509_ ! Before fix Upon frr-reload it deletes and readd line as without seq 2024-04-26 03:16:45,772 INFO: Executed "no bgp as-path access-list important_internet_bgp_as_numbers seq 5 permit _16509_" 'bgp as-path access-list important_internet_bgp_as_numbers permit _16509_\n' After fix: no form is not executed and no delta determine between frr.conf and running-config. Signed-off-by: Chirag Shah <chirag@nvidia.com>
* tools: fix frr-reload for no ip msdp peer cmdChirag Shah2024-04-231-0/+11
| | | | | | | | | | | | | | | | | | | | | | | no form of 'ip pm msdp peer <> source <>' does not accept source argument. Stip the 'source <>' part from config line being deleted via frr-reload. Ticket: #3874971 Testing: Config: vrf blue ip msdp peer 1.1.1.1 source 1.1.1.1 frr-reload failure log: 2024-04-23 02:08:32,501 INFO: Failed to execute vrf blue no ip msdp peer 1.1.1.1 source 1.1.1.1 exit 2024-04-23 02:08:32,501 ERROR: "vrf blue -- no ip msdp peer 1.1.1.1 source 1.1.1.1 -- exit" we failed to remove this command 2024-04-23 02:08:32,501 ERROR: % Unknown command: no ip msdp peer 1.1.1.1 source 1.1.1.1 Signed-off-by: Chirag Shah <chirag@nvidia.com>
* tools: fix pim interface config deletionIIChirag Shah2024-04-231-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When no ip pim is performed subsequent pim related configs under the interface also implicitly deleted. The previous fix was attempting to remove from the same list which was being integrated. First collect the lines to remove in separate list then at the end remove from the original lines_to_del. commit 623af04e1c does not work properly if tries to delete an entry from existing list which is being walked on. Ticket: #3869779 Testing done: frr.conf: no interface config running-config: -------------- interface swp1 ip pim ip pim active-active ip pim allow-rp rp-list sample ip pim bfd ip pim use-source 1.1.1.1 ip multicast boundary oil test exit frr-reload log pointing only no ip pim config is removed under interface: 2024-04-18 18:44:37,202 INFO: "frr defaults datacenter" cannot be removed 2024-04-18 18:44:37,202 INFO: "service integrated-vtysh-config" cannot be removed 2024-04-18 18:44:37,504 INFO: Executed "interface swp1 no ip pim exit" 2024-04-18 18:44:37,505 INFO: /var/run/frr/reload-YHS51E.txt content Signed-off-by: Chirag Shah <chirag@nvidia.com>
* Merge pull request #15709 from chiragshah6/fdev2Mark Stapp2024-04-161-0/+21
|\ | | | | tools: frr-reload strip interface vrf ctx line
| * tools: frr-reload strip interface vrf ctx lineChirag Shah2024-04-111-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if frr.conf file contains 'interface x vrf <name> config it causes protocol (like ospf) neighbor session flap, as it deletes interface base config line ('interface x') from running config and readds with 'interface x vrf <name>' line from frr.conf. This deletion and readdition of lines leads to neighborship flaps. This issue is by product of (PR-10411 | https://github.com/FRRouting/frr/pull/10411) (commit id: 788a036fdb) where running config for interface config no loger displays associated vrf line. Ticket: #3858146 Testing: frr.conf interface swp1.2 vrf vrf1012 ip ospf network point-to-point running-config: interface swp1.2 ip ospf network point-to-point exit Before fix: frr-reload logs: 2024-04-09 00:28:31,096 INFO: Executed "interface swp1.2 no ip ospf network point-to-point exit" 'interface swp1.2 vrf vrf1012\n ip ospf network point-to-point\nexit\n', After fix: frr-reload strips vrf line, thus no config change between frr.conf and running config. Signed-off-by: Chirag Shah <chirag@nvidia.com>
* | tools/indent.py: fix encoded byte stream handlingAndrew Cooks2024-04-101-2/+2
|/ | | | | | Python subprocess communication now operates on bytes, not strings. Signed-off-by: Andrew Cooks <acooks.at.bda@gmail.com>
* *: Add missing SPDX-License-Identifier for some .c/.h filesDonatas Abraitis2024-03-211-0/+2
| | | | | | Adding them as others: GPL-2.0-or-later Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* doc, tools: Remove ARRAY_SIZE checkDonald Sharp2024-03-041-13/+0
| | | | | | | | checkpatch.pl wants you to use ARRAY_SIZE in a kernel header file. We don't have access to this kernel header file for normal compilation. I'm just going to remove it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* Merge pull request #14898 from chiragshah6/mdevDonatas Abraitis2024-02-291-4/+5
|\ | | | | tools: fix frr-reload for nbr deletion
| * tools: fix frr-reload for nbr deletionChirag Shah2024-01-061-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bgp neighbor config can have multiple lines, if neighbor is deleted via frr-reload, no neighbor remote-as <> wipes out the neighbor, subsequent neighbor associated config deletion would throw generic error. Frr-reload needs to move neighbor remote-as line to end and allow all other config lines to be removed. Ticket:#3588361 #3589216 Testing Done: config: neighbor swp3 interface remote-as external neighbor swp3 bfd 3 300 300 neighbor swp3 password leaf11-spine INFO: Executed "router bgp 65101 no neighbor swp3 interface remote-as external" INFO: Failed to execute router bgp 65101 no neighbor swp3 bfd 3 300 300 INFO: Failed to execute router bgp 65101 no neighbor swp3 bfd 3 300 INFO: Failed to execute router bgp 65101 no neighbor swp3 bfd 3 INFO: Failed to execute router bgp 65101 no neighbor swp3 bfd INFO: Failed to execute router bgp 65101 no neighbor swp3 INFO: Failed to execute router bgp 65101 no neighbor INFO: Failed to execute router bgp 65101 no ERROR: "router bgp 65101 -- no" we failed to remove this command ERROR: % Specify remote-as or peer-group commands first INFO: Failed to execute router bgp 65101 no neighbor swp3 password leaf11-spine INFO: Failed to execute router bgp 65101 no neighbor swp3 password INFO: Failed to execute router bgp 65101 no neighbor swp3 INFO: Failed to execute router bgp 65101 no neighbor INFO: Failed to execute router bgp 65101 no ERROR: "router bgp 65101 -- no" we failed to remove this command ERROR: % Specify remote-as or peer-group commands first After fix: move the neighbor remote-as deletion line to end which allows to remove other neighbor associated lines to be deleted. router bgp 65101 no neighbor swp3 interface remote-as external Signed-off-by: Chirag Shah <chirag@nvidia.com>
* | tools: add config-write callbacks to nb templatesMark Stapp2024-01-301-19/+158
| | | | | | | | | | | | | | | | | | | | Add the cli_show (config write) callback when emitting the create or modify callback in the northbound template. Split the config-handling and config-output callbacks into two structs/arrays; this seems to be helpful when doing mgmtd conversion. Signed-off-by: Mark Stapp <mjs@labn.net>
* | lib: add support for "features" when loading YANG modulesIgor Ryzhov2024-01-282-2/+2
| | | | | | | | Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | build: homologize path handlingDavid Lamparter2024-01-276-22/+22
| | | | | | | | | | | | | | | | | | Use consistent `e_somepath` names for expanded versions of `somepath`. Also remove all paths from `config.h` and put them into `lib/config_paths.h` - this is to make more obvious when someone is doing something probably not quite properly structured. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | lib: split nb_operation into two typesIgor Ryzhov2024-01-111-20/+21
| | | | | | | | | | | | | | | | | | | | Currently, nb_operation enum means two different things - edit operation type (frontend part), and callback type (backend part). These types overlap, but they are not identical. We need to add more operation types to support NETCONF/RESTCONF integration, so it's better to have separate enums to identify different entities. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | *: remove sys/stat.h from zebra.hDonald Sharp2024-01-091-0/+1
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | tools: Rename `show thread ...` to `show event ...`Donatas Abraitis2024-01-071-4/+4
|/ | | | Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* tools: Add some more data to support bundlesDonald Sharp2023-12-211-0/+2
| | | | | | | The ipv[4|6] vpn tables in bgp were not being gathered. This would be useful for some situations Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* tools: Use error log level when failing to execute commands via frr-reload.pyDonatas Abraitis2023-12-141-1/+1
| | | | Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* tools: fix frr-reload multiple no description cmdsChirag Shah2023-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure to change description for index 0 from the list. Ticket: #3628756 Testing Done: After fix: start with three interfaces description delete in lines_to_del: (Pdb) lines_to_del [(('interface swp1',), "description swp1 -> sp1's swp1"), (('interface swp2',), "description swp2 -> sp2's swp 1"), (('interface swp3',), "description swp3 -> sp3's swp1")] After first iteration swp1: (Pdb) index 0 (Pdb) lines_to_del [(('interface swp1',), 'description'), (('interface swp2',), "description swp2 -> sp2's swp1"), (('interface swp 1s2',), "description swp3 -> sp3's swp1")] After second iteration swp2: (Pdb) lines_to_del [(('interface swp1',), 'description'), (('interface swp2',), 'description'), (('interface swp3',), "description swp3 -> sp3's swp1")] After third iteration swp3 fix (Pdb) lines_to_del [(('interface swp1',), 'description'), (('interface swp2',), 'description'), (('interface swp3',), 'description' )] Signed-off-by: Chirag Shah <chirag@nvidia.com>
* bgpd: lttng tp add evpn route eventsChirag Shah2023-11-301-0/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Ticket:#3597393 Testing Done: 2023-09-08T22:53:03.532 frr_bgp:evpn_withdraw_type5 {'vrf_id': 42, 'ip': '53.1.1.0'} 2023-09-08T22:53:06.207 frr_bgp:evpn_advertise_type5 {'vrf_id': 42, 'ip': '53.1.1.0', 'rmac': '00:02:00:00:00:38', 'vtep': '27.0.0.15'} 2023-09-08T21:51:15.637 frr_bgp:evpn_mh_local_ead_es_evi_route_upd {'esi': '03:44:38:39:ff:ff:01:00:00:03', 'vni': 1000, 'route_type': 1, 'vtep': '27.0.0.15'} 2023-09-08T20:45:17.059 frr_bgp:evpn_mh_local_ead_es_evi_route_del {'esi': '03:44:38:39:ff:ff:01:00:00:01', 'vni': 0, 'route_type': 4, 'vtep': '27.0.0.15'} 2023-09-08T21:51:18.363 frr_bgp:evpn_mh_es_evi_vtep_add {'esi': '03:44:38:39:ff:ff:01:00:00:02', 'vni': 1000, 'vtep': '27.0.0.16', 'ead_es': 1} 2023-09-08T20:43:50.206 frr_bgp:evpn_mh_es_evi_vtep_del {'esi': '03:44:38:39:ff:ff:01:00:00:01', 'vni': 1002, 'vtep': '27.0.0.16', 'ead_es': 0} Signed-off-by: Chirag Shah <chirag@nvidia.com>
* tools: fix frr-reload interface desc cmdChirag Shah2023-11-291-0/+11
| | | | | | | | | | | | | | | | | | Fix frr-reload script to only render 'no description' rather than 'no description blah' Ticket:#3628756 Testing Done: Before: 2023-11-29 02:38:55,758 INFO: Failed to execute interface hostbond_1 no description hostbond_1_to_host exit 2023-11-29 02:38:55,758 ERROR: "interface hostbond_1 -- no description hostbond_1_to_host -- exit" we failed to remove this command 2023-11-29 02:38:55,758 ERROR: % Unknown command: no description hostbond_1_to_host Signed-off-by: Chirag Shah <chirag@nvidia.com>
* *: convert `struct interface->connected` to DLISTDavid Lamparter2023-11-221-1/+1
| | | | | | | | | | | | | | | | | Replace `struct list *` with `DLIST(if_connected, ...)`. NB: while converting this, I found multiple places using connected prefixes assuming they were IPv4 without checking: - vrrpd/vrrp.c: vrrp_socket() - zebra/irdp_interface.c: irdp_get_prefix(), irdp_if_start(), irdp_advert_off() (these fixes are really hard to split off into separate commits as that would require going back and reapplying the change but with the old list handling) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* tools: suppress some reachable external lib "leaks"Christian Hopps2023-11-111-0/+9
| | | | | | | | | - These are just normal reachable allocs from inside external library code; however, when running valgrind with memleak types "all" in order to find FRR specific leaks (from memory.h) these are the only other reported leaks. Makes easier checking and fixing. Signed-off-by: Christian Hopps <chopps@labn.net>
* Merge pull request #14525 from LabNConsulting/chopps/mgmtd-simplify-xpathsIgor Ryzhov2023-11-082-2/+4
|\ | | | | chopps/mgmtd simplify xpaths
| * tools: checkpatch updated with darr_foreach iter macrosChristian Hopps2023-11-062-2/+3
| | | | | | | | | | | | | | | | Also update `checkpatch.sh` so it runs `checkpatch.pl` from the same directory it resides in. This allows copying them both somewhere else to use a specific version. Signed-off-by: Christian Hopps <chopps@labn.net>
| * mgmtd: simplify xpath registriesChristian Hopps2023-11-061-0/+1
| | | | | | | | | | | | | | | | | | | | - move from client id indexed array of uints for register info per client to a u64 bitmask. - add bit walking FOREACH macro Walk the client IDs whose bits are set in a mask. Signed-off-by: Christian Hopps <chopps@labn.net>
* | tools: Apply black formatting for tools/frr-reload.pyDonatas Abraitis2023-11-021-52/+32
| | | | | | | | Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | tools: fix frr-reload route-map desc cmdChirag Shah2023-11-021-0/+13
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix frr-reload script to only render 'no description' rather than 'no description blah' Ticket:#3650752 Testing: route-map TEST permit 140 description rule for PFIX_IPV6_7 match ipv6 address prefix-list PFIX_IPV6_7 exit ! end torc-11# confi t torc-11(config)# route-map TEST permit 140 torc-11(config-route-map)# no description rule for PFIX_IPV6_7 % Unknown command: no description rule for PFIX_IPV6_7 torc-11(config-route-map)# no description rule % There is no matched command. torc-11(config-route-map)# no description <cr> torc-11(config-route-map)# no description torc-11(config-route-map)# Using frr-reload failure log: 2023-10-31 00:30:31,972 INFO: Failed to execute route-map TEST permit 140 no description rule for PFIX_IPV6_7 exit 2023-10-31 00:30:31,972 ERROR: "route-map TEST permit 140 -- no description rule for PFIX_IPV6_7 -- exit" we failed to remove this command 2023-10-31 00:30:31,972 ERROR: % Unknown command: no description rule for PFIX_IPV6_7 With fix: 2023-11-02 06:10:30,024 INFO: Executed "route-map TEST permit 140 no description exit" Signed-off-by: Chirag Shah <chirag@nvidia.com>
* build: add -Wimplicit-fallthroughIgor Ryzhov2023-10-121-1/+1
| | | | | | | | | | Also: - replace all /* fallthrough */ comments with portable fallthrough; pseudo keyword to accomodate both gcc and clang - add missing break; statements as required by older versions of gcc - cleanup some code to remove unnecessary fallthrough Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* tools: make --quiet actually suppress outputJonas Gorski2023-09-141-4/+4
| | | | | | | | | | | | | | | | | | | When calling daemon_stop() with --quiet and e.g. the pidfile is empty, it won't return early since while "$fail" is set, "$2" is "--quiet", so the if condition isn't met and it will continue executing, resulting in error messages in the log: > Sep 14 14:48:33 localhost watchfrr[2085]: [YFT0P-5Q5YX] Forked background command [pid 2086]: /usr/lib/frr/watchfrr.sh restart all > Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec > Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec > Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec Fix this by moving the --quiet check into the block to log_failure_msg(), and also add the check to all other invocations of log_*_msg() to make --quiet properly suppress output. Fixes: 19a99d89f088 ("tools: suppress unuseful warnings during restarting frr") Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
* mgmtd: support bundle commands for mgmt daemon.Manoj Naragund2023-09-121-0/+16
| | | | Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
* Merge pull request #14344 from opensourcerouting/freebsd-printf-sync-20230903Donald Sharp2023-09-061-1/+1
|\ | | | | lib/printf: sync with FreeBSD for ISO C23 enhancements
| * tools/gcc-plugins: allow ISO C23 `%b`David Lamparter2023-09-031-1/+1
| | | | | | | | | | | | It behaves exactly like `%x`, so adding it is a single byte diff. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | tools/gcc-plugins: fix for GCC 13David Lamparter2023-09-043-8/+23
|/ | | | | | As usual, new GCC version, new small random changes in the API. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* tools: fix key chain reload removalRafael Zalamena2023-07-271-0/+17
| | | | | | | When deleting a key chain with frr-reload track if the whole root node is being removed or not. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* Merge pull request #10136 from idryzhov/frr-reload-exitMark Stapp2023-07-181-80/+68
|\ | | | | tools: always append "exit" in frr-reload.py
| * tools: always append "exit" in frr-reload.pyIgor Ryzhov2023-07-041-80/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When reloading the following config: ``` router ospf6 area 0 range 2001:db8::/32 advertise exit ! interface eth0 ipv6 ospf6 area 0 exit ``` frr-reload.py doesn't execute "exit" commands. Because of that, it tries to execute "interface eth0" inside the "router ospf6" context and fails. To always execute all commands from the correct context, frr-reload.py should properly exit from every entered node. Fixes #10132. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | tools: Add what FRR thinks as the fib routes for support_bundleDonald Sharp2023-07-171-0/+2
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | Merge pull request #13891 from ↵Donald Sharp2023-07-121-1/+1
|\ \ | | | | | | | | | | | | opensourcerouting/fix/ignore_errors_from_frr-reload.py tools: Ignore errors for frr reload stuff
| * | tools: Ignore errors for frr reload stuffDonatas Abraitis2023-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we pass an unknown/wrong command and do `systemctl reload frr`, all processes are killed, and not started up. Like doing with frr-reload.py, all good: ``` $ /usr/lib/frr/frr-reload.py --reload /etc/frr/frr.conf vtysh failed to process new configuration: vtysh (mark file) exited with status 2: b'line 20: % Unknown command: neighbor 192.168.10.123 bfd 300 300\n\n' ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | | tools: fix ospf area stub summary in frr-reloadChirag Shah2023-07-091-0/+20
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OSPFv2 no area x stub no-summary only resets 'no-summary' config. From frr-reload if the config line 'area x stub no-summary' is removed then it needs to remove completely. Before this change it took two frr-roload to remove the config which is inconsistent behavior. Fix is to frr-reload to add extra line to delete 'no area x stub'. Ticket:#3514775 Testing Done: Running config: router ospf ospf router-id 6.6.6.6 area 0.0.0.1 stub no-summary area 0.0.0.2 stub exit ! router ospf vrf sym_1 area 0.0.1.1 range 24.1.1.0/24 area 0.0.1.2 stub no-summary exit changed frr.conf: router ospf ospf router-id 6.6.6.6 area 0.0.0.2 stub exit ! router ospf vrf sym_1 area 0.0.1.1 range 24.1.1.0/24 exit Lines To Delete =============== router ospf no area 0.0.0.1 stub <<<< newly added router ospf vrf sym_1 no area 0.0.1.2 stub <<<< newly added router ospf no area 0.0.0.1 stub no-summary router ospf vrf sym_1 no area 0.0.1.2 stub no-summary After fix new running-config post reload: i router ospf ospf router-id 6.6.6.6 area 0.0.0.2 stub exit ! router ospf vrf sym_1 area 0.0.1.1 range 24.1.1.0/24 exit Before fix running-config post 1st reload: router ospf ospf router-id 6.6.6.6 area 0.0.0.1 stub area 0.0.0.2 stub exit ! router ospf vrf sym_1 area 0.0.1.1 range 24.1.1.0/24 area 0.0.1.2 stub exit Signed-off-by: Chirag Shah <chirag@nvidia.com>
* | tools: fix pim interface config deletionChirag Shah2023-06-301-1/+34
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When no ip pim is performed subsequent pim related configs under the interface also implicitly deleted. When doing this via frr-reload requires to remove any explicit no ip pim <blah> lines so delete list. Testing Done: running-config: interface lo ip pim ip pim use-source 6.0.0.1 exit frr.conf: remove two pim config lines. interface lo exit Before fix: 2023-06-29 23:44:26,062 INFO: Failed to execute interface lo no ip pim use-source 6.0.0.1 2023-06-29 23:44:26,142 INFO: Failed to execute interface lo no ip pim use-source 2023-06-29 23:44:26,221 INFO: Executed "interface lo no ip pim" After fix: Only no ip pim executed and rest of the other lines removed from delete list. 2023-06-30 01:07:32,618 INFO: Executed "interface lo no ip pim" Signed-off-by: Chirag Shah <chirag@nvidia.com>
* tools: checkpatch: FRR modifications to linux checkpatch.plChristian Hopps2023-06-201-29/+174
| | | | Signed-off-by: Christian Hopps <chopps@labn.net>
* tools: unmodified import of scripts/checkpatch.pl from linuxChristian Hopps2023-06-201-654/+1685
| | | | | | 0ee3e7b8893e * checkpatch: get default codespell dictionary path from package location Signed-off-by: Christian Hopps <chopps@labn.net>
* tools: fix list value remove in frr-reloadChirag Shah2023-06-061-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There might be a time element(s) from temporary list are removed more than once which leads to valueError in certain python3 version. commit-id 1543f58b5 did not handle valueError properly. This caused regression where prefix-list config leads to delete followed by add. The new fix should just pass the exception as value removal from list_to_add or list_to_del is best effort. This allows prefix-list config has no change then removes the lines from lines_to_del and lines_to_add properly. Ticket:#3490252 Testing: Configure prefix-list in frr.conf and perform multiple frr-reload. After first reload operatoin subsequent ones should not result in delete followed by add of the prefix-list but rather no-op operation. (Pdb) lines_to_add [(('ip prefix-list FOO permit 10.2.1.0/24',), None)] (Pdb) lines_to_del [(('ip prefix-list FOO seq 5 permit 10.2.1.0/24',), None), (('ip prefix-list FOO seq 10 permit 10.2.1.0/24',), None)] (Pdb) lines_to_del_to_del [(('ip prefix-list FOO seq 5 permit 10.2.1.0/24',), None), (('ip prefix-list FOO seq 10 permit 10.2.1.0/24',), None)] (Pdb) lines_to_add_to_del [(('ip prefix-list FOO permit 10.2.1.0/24',), None), (('ip prefix-list FOO permit 10.2.1.0/24',), None)] (Pdb) c > /usr/lib/frr/frr-reload.py(1562)ignore_delete_re_add_lines() -> return (lines_to_add, lines_to_del) (Pdb) lines_to_add [] (Pdb) lines_to_del [] Signed-off-by: Chirag Shah <chirag@nvidia.com>
* style: add format checker config that matches FRR style standardsChristian Hopps2023-04-181-0/+8
| | | | | | | Also move .dir-locals.el to a sample file. This file should not be in the repository as it affects the user's ability to modify it. Signed-off-by: Christian Hopps <chopps@labn.net>
* tools: Make check flag really work for reloadanlan_cs2023-04-151-0/+6
| | | | | | | The check flag of `found_pg_cmd` is already there, but not used. So, make it really work for reload. Signed-off-by: anlan_cs <vic.lan@pica8.com>